From keyprov-bounces@ietf.org Sun Jun 8 11:33:19 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 357AC28C141; Sun, 8 Jun 2008 11:33:19 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8FD133A6C01 for ; Sun, 8 Jun 2008 11:33:18 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.249 X-Spam-Level: X-Spam-Status: No, score=-2.249 tagged_above=-999 required=5 tests=[AWL=-0.250, BAYES_00=-2.599, J_CHICKENPOX_53=0.6] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wgXfd6Y+-dH2 for ; Sun, 8 Jun 2008 11:33:17 -0700 (PDT) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by core3.amsl.com (Postfix) with SMTP id 4798D3A6A63 for ; Sun, 8 Jun 2008 11:33:17 -0700 (PDT) Received: (qmail invoked by alias); 08 Jun 2008 18:33:32 -0000 Received: from a91-154-105-144.elisa-laajakaista.fi (EHLO [192.168.255.3]) [91.154.105.144] by mail.gmx.net (mp011) with SMTP; 08 Jun 2008 20:33:32 +0200 X-Authenticated: #29516787 X-Provags-ID: V01U2FsdGVkX1/MpH0OCxPMPB//dUjWAYOYf9p/Y50N8FO9V9sS1g lpjPVpz5Sn9ZIT Message-ID: <484C25FD.6040204@gmx.net> Date: Sun, 08 Jun 2008 21:33:33 +0300 From: Hannes Tschofenig User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: keyprov@ietf.org X-Y-GMX-Trusted: 0 Subject: [KEYPROV] DSKPP -- IANA Considerations X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org I believe the the current text of the DSKPP draft regarding the IANA considerations needs to be replaced by the following text: I suggest to replace the "urn:ietf:params:xml:ns:keyprov:protocol:1.0" with the "urn:ietf:params:xml:ns:keyprov:dskpp:1.0" namespace. For the PSKC document I also suggest to use "urn:ietf:params:xml:ns:keyprov:pskc:1.0" instead of "urn:ietf:params:xml:ns:keyprov:container:1.0" I also wonder whether the document should create a registry for the status codes listed in Section 4.7. For example, one would describe what is necessary to define new status codes. 11. IANA Considerations This document requires several IANA registrations detailed in the following sections. 11.1. URN Sub-Namespace Registration for urn:ietf:params:xml:ns:keyprov:dskpp:1.0 This section registers a new XML namespace, "urn:ietf:params:xml:ns:keyprov:dskpp:1.0", per the guidelines in [RFC3688]. URI: urn:ietf:params:xml:ns:keyprov:dskpp:1.0 Registrant Contact: IETF, KEYPROV working group, (keyprov@ietf.org), Andrea Doherty (andrea.doherty@rsa.com). XML: BEGIN DSKPP Messages

Namespace for DSKPP Messages

urn:ietf:params:xml:ns:keyprov:dskpp:1.0

[NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number for this specification.]

See RFCXXXX

END 11.2. XML Schema Registration This section registers an XML schema as per the guidelines in [RFC3688]. URI: urn:ietf:params:xml:schema:keyprov:dskpp:1.0 Registrant Contact: IETF, KEYPROV working group, (keyprov@ietf.org), Andrea Doherty (andrea.doherty@rsa.com). Schema: The XML for this schema can be found as the entirety of Section 7 of this document. 11.3. MIME Media Type Registration for 'application/dskpp+xml' This section registers the "application/dskpp+xml" MIME type. To: ietf-types@iana.org Subject: Registration of MIME media type application/dskpp+xml MIME media type name: application MIME subtype name: dskpp+xml Required parameters: (none) Optional parameters: charset Indicates the character encoding of enclosed XML. Default is UTF-8. Encoding considerations: Uses XML, which can employ 8-bit characters, depending on the character encoding used. See RFC 3023 [RFC3023], Section 3.2. Security considerations: This content type is designed to carry protocol data related to key management. Security mechanisms are built into the protocol to ensure that various threats are dealt with. Interoperability considerations: This content type provides a basis for a protocol Published specification: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number for this specification.] Applications which use this media type: Protocol for key exchange. Additional Information: Magic Number(s): (none) File extension(s): .xml Macintosh File Type Code(s): (none) Person & email address to contact for further information: Andrea Doherty (andrea.doherty@rsa.com) Intended usage: LIMITED USE Author/Change controller: The IETF Other information: This media type is a specialization of application/xml [RFC3023], and many of the considerations described there also apply to application/dskpp+xml. _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov From keyprov-bounces@ietf.org Sun Jun 8 13:04:31 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id D4C353A6912; Sun, 8 Jun 2008 13:04:31 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8E0BE3A6912 for ; Sun, 8 Jun 2008 13:04:30 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -5.998 X-Spam-Level: X-Spam-Status: No, score=-5.998 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_53=0.6, RCVD_IN_DNSWL_MED=-4] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B8NhUFBJrqrZ for ; Sun, 8 Jun 2008 13:04:29 -0700 (PDT) Received: from colibri.verisign.com (colibri.verisign.com [65.205.251.74]) by core3.amsl.com (Postfix) with ESMTP id 58A2F3A68D3 for ; Sun, 8 Jun 2008 13:04:29 -0700 (PDT) Received: from MOU1WNEXCN02.vcorp.ad.vrsn.com (mailer2.verisign.com [65.205.251.35]) by colibri.verisign.com (8.13.6/8.13.4) with ESMTP id m58Jljxf013393; Sun, 8 Jun 2008 12:51:15 -0700 Received: from MOU1WNEXMB10.vcorp.ad.vrsn.com ([10.25.13.204]) by MOU1WNEXCN02.vcorp.ad.vrsn.com with Microsoft SMTPSVC(6.0.3790.3959); Sun, 8 Jun 2008 13:02:41 -0700 Content-class: urn:content-classes:message MIME-Version: 1.0 X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Sun, 8 Jun 2008 13:02:40 -0700 Message-ID: <3E5A2F1AD44F5E49A74F79AB47C0C0C92C36FF@mou1wnexmb10.vcorp.ad.vrsn.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [KEYPROV] DSKPP -- IANA Considerations Thread-Index: AcjJliqtTuzyv0IfTzS6ujQLVXkqGQADHC8v From: "Pei, Mingliang" To: , X-OriginalArrivalTime: 08 Jun 2008 20:02:41.0374 (UTC) FILETIME=[9BACD7E0:01C8C9A2] Subject: Re: [KEYPROV] DSKPP -- IANA Considerations X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============1499921718==" Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org This is a multi-part message in MIME format. --===============1499921718== Content-class: urn:content-classes:message Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C8C9A2.9B6A8EC3" This is a multi-part message in MIME format. ------_=_NextPart_001_01C8C9A2.9B6A8EC3 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TmFtZSBzcGFjZSB1cmkgY2hhbmdlcyBsb29rIGZpbmUgdG8gbWUuIENvcnJlc3BvbmRpbmdseSB3 ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgSUFOQSBzZWN0aW9uIGluIFBTS0MgZHJhZnQuDQoNCi0gTWlu Zw0KDQoNCi0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0NCkZyb206IGtleXByb3YtYm91bmNl c0BpZXRmLm9yZyA8a2V5cHJvdi1ib3VuY2VzQGlldGYub3JnPg0KVG86IGtleXByb3ZAaWV0Zi5v cmcgPGtleXByb3ZAaWV0Zi5vcmc+DQpTZW50OiBTdW4gSnVuIDA4IDExOjMzOjMzIDIwMDgNClN1 YmplY3Q6IFtLRVlQUk9WXSBEU0tQUCAtLSBJQU5BIENvbnNpZGVyYXRpb25zDQoNCkkgYmVsaWV2 ZSB0aGUgdGhlIGN1cnJlbnQgdGV4dCBvZiB0aGUgRFNLUFAgZHJhZnQgcmVnYXJkaW5nIHRoZSBJ QU5BIA0KY29uc2lkZXJhdGlvbnMgbmVlZHMgdG8gYmUgcmVwbGFjZWQgYnkgdGhlIGZvbGxvd2lu ZyB0ZXh0Og0KDQpJIHN1Z2dlc3QgdG8gcmVwbGFjZSB0aGUgInVybjppZXRmOnBhcmFtczp4bWw6 bnM6a2V5cHJvdjpwcm90b2NvbDoxLjAiIA0Kd2l0aCB0aGUgInVybjppZXRmOnBhcmFtczp4bWw6 bnM6a2V5cHJvdjpkc2twcDoxLjAiICBuYW1lc3BhY2UuDQpGb3IgdGhlIFBTS0MgZG9jdW1lbnQg SSBhbHNvIHN1Z2dlc3QgdG8gdXNlIA0KInVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpw c2tjOjEuMCIgIGluc3RlYWQgb2YgDQoidXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OmNv bnRhaW5lcjoxLjAiDQoNCkkgYWxzbyB3b25kZXIgd2hldGhlciB0aGUgZG9jdW1lbnQgc2hvdWxk IGNyZWF0ZSBhIHJlZ2lzdHJ5IGZvciB0aGUgDQpzdGF0dXMgY29kZXMgbGlzdGVkIGluIFNlY3Rp b24gNC43LiBGb3IgZXhhbXBsZSwgb25lIHdvdWxkIGRlc2NyaWJlIHdoYXQgDQppcyBuZWNlc3Nh cnkgdG8gZGVmaW5lIG5ldyBzdGF0dXMgY29kZXMuDQoNCjExLiAgSUFOQSBDb25zaWRlcmF0aW9u cw0KDQogICBUaGlzIGRvY3VtZW50IHJlcXVpcmVzIHNldmVyYWwgSUFOQSByZWdpc3RyYXRpb25z IGRldGFpbGVkIGluIHRoZQ0KICAgZm9sbG93aW5nIHNlY3Rpb25zLg0KDQoxMS4xLiAgVVJOIFN1 Yi1OYW1lc3BhY2UgUmVnaXN0cmF0aW9uIGZvcg0KICAgICAgIHVybjppZXRmOnBhcmFtczp4bWw6 bnM6a2V5cHJvdjpkc2twcDoxLjANCg0KICAgVGhpcyBzZWN0aW9uIHJlZ2lzdGVycyBhIG5ldyBY TUwgbmFtZXNwYWNlLA0KICAgInVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpkc2twcDox LjAiLCBwZXIgdGhlIGd1aWRlbGluZXMgaW4NCiAgIFtSRkMzNjg4XS4NCg0KICAgICAgVVJJOiB1 cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6ZHNrcHA6MS4wDQoNCiAgICAgIFJlZ2lzdHJh bnQgQ29udGFjdDogSUVURiwgS0VZUFJPViB3b3JraW5nIGdyb3VwLA0KICAgICAgKGtleXByb3ZA aWV0Zi5vcmcpLCBBbmRyZWEgRG9oZXJ0eSAoYW5kcmVhLmRvaGVydHlAcnNhLmNvbSkuDQogICAg ICBYTUw6DQoNCiAgICAgICAgIEJFR0lODQogICAgICAgICAgIDw/eG1sIHZlcnNpb249IjEuMCI/ Pg0KICAgICAgICAgICA8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEu MCBTdHJpY3QvL0VOIg0KICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEv RFREL3hodG1sMS1zdHJpY3QuZHRkIj4NCiAgICAgICAgICAgPGh0bWwgeG1sbnM9Imh0dHA6Ly93 d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiI+DQogICAgICAgICAgICAgPGhlYWQ+ DQogICAgICAgICAgICAgICA8dGl0bGU+RFNLUFAgTWVzc2FnZXM8L3RpdGxlPg0KICAgICAgICAg ICAgIDwvaGVhZD4NCiAgICAgICAgICAgICA8Ym9keT4NCiAgICAgICAgICAgICAgIDxoMT5OYW1l c3BhY2UgZm9yIERTS1BQIE1lc3NhZ2VzPC9oMT4NCiAgICAgICAgICAgICAgIDxoMj51cm46aWV0 ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6ZHNrcHA6MS4wPC9oMj4NCiAgICAgICBbTk9URSBUTyBJ QU5BL1JGQy1FRElUT1I6IFBsZWFzZSByZXBsYWNlIFhYWFgNCiAgICAgICB3aXRoIHRoZSBSRkMg bnVtYmVyIGZvciB0aGlzIHNwZWNpZmljYXRpb24uXQ0KICAgICAgICAgICAgICAgPHA+U2VlIFJG Q1hYWFg8L3A+DQogICAgICAgICAgICAgPC9ib2R5Pg0KICAgICAgICAgICA8L2h0bWw+DQogICAg ICAgICBFTkQNCg0KMTEuMi4gIFhNTCBTY2hlbWEgUmVnaXN0cmF0aW9uDQoNCiAgIFRoaXMgc2Vj dGlvbiByZWdpc3RlcnMgYW4gWE1MIHNjaGVtYSBhcyBwZXIgdGhlIGd1aWRlbGluZXMgaW4NCiAg IFtSRkMzNjg4XS4NCg0KICAgVVJJOiAgdXJuOmlldGY6cGFyYW1zOnhtbDpzY2hlbWE6a2V5cHJv djpkc2twcDoxLjANCiAgICAgIFJlZ2lzdHJhbnQgQ29udGFjdDogSUVURiwgS0VZUFJPViB3b3Jr aW5nIGdyb3VwLA0KICAgICAgKGtleXByb3ZAaWV0Zi5vcmcpLCBBbmRyZWEgRG9oZXJ0eSAoYW5k cmVhLmRvaGVydHlAcnNhLmNvbSkuDQogICBTY2hlbWE6ICBUaGUgWE1MIGZvciB0aGlzIHNjaGVt YSBjYW4gYmUgZm91bmQgYXMgdGhlIGVudGlyZXR5IG9mDQogICAgICBTZWN0aW9uIDcgb2YgdGhp cyBkb2N1bWVudC4NCg0KMTEuMy4gIE1JTUUgTWVkaWEgVHlwZSBSZWdpc3RyYXRpb24gZm9yICdh cHBsaWNhdGlvbi9kc2twcCt4bWwnDQoNCiAgIFRoaXMgc2VjdGlvbiByZWdpc3RlcnMgdGhlICJh cHBsaWNhdGlvbi9kc2twcCt4bWwiIE1JTUUgdHlwZS4NCg0KICAgVG86ICBpZXRmLXR5cGVzQGlh bmEub3JnDQogICBTdWJqZWN0OiAgUmVnaXN0cmF0aW9uIG9mIE1JTUUgbWVkaWEgdHlwZSBhcHBs aWNhdGlvbi9kc2twcCt4bWwNCiAgIE1JTUUgbWVkaWEgdHlwZSBuYW1lOiAgYXBwbGljYXRpb24N CiAgIE1JTUUgc3VidHlwZSBuYW1lOiAgZHNrcHAreG1sDQogICBSZXF1aXJlZCBwYXJhbWV0ZXJz OiAgKG5vbmUpDQogICBPcHRpb25hbCBwYXJhbWV0ZXJzOiAgY2hhcnNldA0KICAgICAgSW5kaWNh dGVzIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgZW5jbG9zZWQgWE1MLiAgRGVmYXVsdCBpcw0K ICAgICAgVVRGLTguDQogICBFbmNvZGluZyBjb25zaWRlcmF0aW9uczogIFVzZXMgWE1MLCB3aGlj aCBjYW4gZW1wbG95IDgtYml0DQogICAgICBjaGFyYWN0ZXJzLCBkZXBlbmRpbmcgb24gdGhlIGNo YXJhY3RlciBlbmNvZGluZyB1c2VkLiAgU2VlIFJGQw0KICAgICAgMzAyMyBbUkZDMzAyM10sIFNl Y3Rpb24gMy4yLg0KICAgU2VjdXJpdHkgY29uc2lkZXJhdGlvbnM6ICBUaGlzIGNvbnRlbnQgdHlw ZSBpcyBkZXNpZ25lZCB0byBjYXJyeQ0KICAgICAgcHJvdG9jb2wgZGF0YSByZWxhdGVkIHRvIGtl eSBtYW5hZ2VtZW50LiBTZWN1cml0eSBtZWNoYW5pc21zDQogICAgICBhcmUgYnVpbHQgaW50byB0 aGUgcHJvdG9jb2wgdG8gZW5zdXJlIHRoYXQgdmFyaW91cyB0aHJlYXRzDQogICAgICBhcmUgZGVh bHQgd2l0aC4NCiAgIEludGVyb3BlcmFiaWxpdHkgY29uc2lkZXJhdGlvbnM6ICBUaGlzIGNvbnRl bnQgdHlwZSBwcm92aWRlcyBhIGJhc2lzDQogICAgICBmb3IgYSBwcm90b2NvbA0KICAgUHVibGlz aGVkIHNwZWNpZmljYXRpb246ICBSRkMgWFhYWCBbTk9URSBUTyBJQU5BL1JGQy1FRElUT1I6IFBs ZWFzZQ0KICAgICAgcmVwbGFjZSBYWFhYIHdpdGggdGhlIFJGQyBudW1iZXIgZm9yIHRoaXMgc3Bl Y2lmaWNhdGlvbi5dDQogICBBcHBsaWNhdGlvbnMgd2hpY2ggdXNlIHRoaXMgbWVkaWEgdHlwZTog IFByb3RvY29sIGZvciBrZXkgZXhjaGFuZ2UuDQogICBBZGRpdGlvbmFsIEluZm9ybWF0aW9uOiAg TWFnaWMgTnVtYmVyKHMpOiAobm9uZSkNCiAgICAgIEZpbGUgZXh0ZW5zaW9uKHMpOiAueG1sDQog ICAgICBNYWNpbnRvc2ggRmlsZSBUeXBlIENvZGUocyk6IChub25lKQ0KICAgUGVyc29uICYgZW1h aWwgYWRkcmVzcyB0byBjb250YWN0IGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uOiANCiAgIEFuZHJl YSBEb2hlcnR5IChhbmRyZWEuZG9oZXJ0eUByc2EuY29tKQ0KICAgSW50ZW5kZWQgdXNhZ2U6ICBM SU1JVEVEIFVTRQ0KICAgQXV0aG9yL0NoYW5nZSBjb250cm9sbGVyOiAgVGhlIElFVEYNCiAgIE90 aGVyIGluZm9ybWF0aW9uOiAgVGhpcyBtZWRpYSB0eXBlIGlzIGEgc3BlY2lhbGl6YXRpb24gb2YN CiAgICAgIGFwcGxpY2F0aW9uL3htbCBbUkZDMzAyM10sIGFuZCBtYW55IG9mIHRoZSBjb25zaWRl cmF0aW9ucw0KICAgICAgZGVzY3JpYmVkIHRoZXJlIGFsc28gYXBwbHkgdG8gYXBwbGljYXRpb24v ZHNrcHAreG1sLg0KICAgICANCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQpLRVlQUk9WIG1haWxpbmcgbGlzdA0KS0VZUFJPVkBpZXRmLm9yZw0KaHR0cHM6 Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXlwcm92DQo= ------_=_NextPart_001_01C8C9A2.9B6A8EC3 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMi8vRU4iPg0KPEhUTUw+ DQo8SEVBRD4NCjxNRVRBIEhUVFAtRVFVSVY9IkNvbnRlbnQtVHlwZSIgQ09OVEVOVD0idGV4dC9o dG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxNRVRBIE5BTUU9IkdlbmVyYXRvciIgQ09OVEVOVD0iTVMg RXhjaGFuZ2UgU2VydmVyIHZlcnNpb24gNi41Ljc2NTIuMjQiPg0KPFRJVExFPlJlOiBbS0VZUFJP Vl0gRFNLUFAgLS0gSUFOQSBDb25zaWRlcmF0aW9uczwvVElUTEU+DQo8L0hFQUQ+DQo8Qk9EWT4N CjwhLS0gQ29udmVydGVkIGZyb20gdGV4dC9wbGFpbiBmb3JtYXQgLS0+DQoNCjxQPjxGT05UIFNJ WkU9Mj5OYW1lIHNwYWNlIHVyaSBjaGFuZ2VzIGxvb2sgZmluZSB0byBtZS4gQ29ycmVzcG9uZGlu Z2x5IHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBJQU5BIHNlY3Rpb24gaW4gUFNLQyBkcmFmdC48QlI+ DQo8QlI+DQotIE1pbmc8QlI+DQo8QlI+DQo8QlI+DQotLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0t LS0tPEJSPg0KRnJvbToga2V5cHJvdi1ib3VuY2VzQGlldGYub3JnICZsdDtrZXlwcm92LWJvdW5j ZXNAaWV0Zi5vcmcmZ3Q7PEJSPg0KVG86IGtleXByb3ZAaWV0Zi5vcmcgJmx0O2tleXByb3ZAaWV0 Zi5vcmcmZ3Q7PEJSPg0KU2VudDogU3VuIEp1biAwOCAxMTozMzozMyAyMDA4PEJSPg0KU3ViamVj dDogW0tFWVBST1ZdIERTS1BQIC0tIElBTkEgQ29uc2lkZXJhdGlvbnM8QlI+DQo8QlI+DQpJIGJl bGlldmUgdGhlIHRoZSBjdXJyZW50IHRleHQgb2YgdGhlIERTS1BQIGRyYWZ0IHJlZ2FyZGluZyB0 aGUgSUFOQTxCUj4NCmNvbnNpZGVyYXRpb25zIG5lZWRzIHRvIGJlIHJlcGxhY2VkIGJ5IHRoZSBm b2xsb3dpbmcgdGV4dDo8QlI+DQo8QlI+DQpJIHN1Z2dlc3QgdG8gcmVwbGFjZSB0aGUgJnF1b3Q7 dXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OnByb3RvY29sOjEuMCZxdW90OzxCUj4NCndp dGggdGhlICZxdW90O3VybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpkc2twcDoxLjAmcXVv dDsmbmJzcDsgbmFtZXNwYWNlLjxCUj4NCkZvciB0aGUgUFNLQyBkb2N1bWVudCBJIGFsc28gc3Vn Z2VzdCB0byB1c2U8QlI+DQomcXVvdDt1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6cHNr YzoxLjAmcXVvdDsmbmJzcDsgaW5zdGVhZCBvZjxCUj4NCiZxdW90O3VybjppZXRmOnBhcmFtczp4 bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4wJnF1b3Q7PEJSPg0KPEJSPg0KSSBhbHNvIHdvbmRl ciB3aGV0aGVyIHRoZSBkb2N1bWVudCBzaG91bGQgY3JlYXRlIGEgcmVnaXN0cnkgZm9yIHRoZTxC Uj4NCnN0YXR1cyBjb2RlcyBsaXN0ZWQgaW4gU2VjdGlvbiA0LjcuIEZvciBleGFtcGxlLCBvbmUg d291bGQgZGVzY3JpYmUgd2hhdDxCUj4NCmlzIG5lY2Vzc2FyeSB0byBkZWZpbmUgbmV3IHN0YXR1 cyBjb2Rlcy48QlI+DQo8QlI+DQoxMS4mbmJzcDsgSUFOQSBDb25zaWRlcmF0aW9uczxCUj4NCjxC Uj4NCiZuYnNwOyZuYnNwOyBUaGlzIGRvY3VtZW50IHJlcXVpcmVzIHNldmVyYWwgSUFOQSByZWdp c3RyYXRpb25zIGRldGFpbGVkIGluIHRoZTxCUj4NCiZuYnNwOyZuYnNwOyBmb2xsb3dpbmcgc2Vj dGlvbnMuPEJSPg0KPEJSPg0KMTEuMS4mbmJzcDsgVVJOIFN1Yi1OYW1lc3BhY2UgUmVnaXN0cmF0 aW9uIGZvcjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB1cm46aWV0 ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6ZHNrcHA6MS4wPEJSPg0KPEJSPg0KJm5ic3A7Jm5ic3A7 IFRoaXMgc2VjdGlvbiByZWdpc3RlcnMgYSBuZXcgWE1MIG5hbWVzcGFjZSw8QlI+DQombmJzcDsm bmJzcDsgJnF1b3Q7dXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OmRza3BwOjEuMCZxdW90 OywgcGVyIHRoZSBndWlkZWxpbmVzIGluPEJSPg0KJm5ic3A7Jm5ic3A7IFtSRkMzNjg4XS48QlI+ DQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgVVJJOiB1cm46aWV0ZjpwYXJh bXM6eG1sOm5zOmtleXByb3Y6ZHNrcHA6MS4wPEJSPg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IFJlZ2lzdHJhbnQgQ29udGFjdDogSUVURiwgS0VZUFJPViB3b3JraW5nIGdy b3VwLDxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAoa2V5cHJvdkBpZXRmLm9y ZyksIEFuZHJlYSBEb2hlcnR5IChhbmRyZWEuZG9oZXJ0eUByc2EuY29tKS48QlI+DQombmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgWE1MOjxCUj4NCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBCRUdJTjxCUj4NCiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7P3htbCB2 ZXJzaW9uPSZxdW90OzEuMCZxdW90Oz8mZ3Q7PEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDshRE9DVFlQRSBodG1sIFBV QkxJQyAmcXVvdDstLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiZxdW90OzxCUj4NCiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyAmcXVvdDs8QSBIUkVGPSJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEv RFREL3hodG1sMS1zdHJpY3QuZHRkIj5odHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3ho dG1sMS1zdHJpY3QuZHRkPC9BPiZxdW90OyZndDs8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmx0O2h0bWwgeG1sbnM9JnF1 b3Q7PEEgSFJFRj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+aHR0cDovL3d3dy53My5v cmcvMTk5OS94aHRtbDwvQT4mcXVvdDsgeG1sOmxhbmc9JnF1b3Q7ZW4mcXVvdDsmZ3Q7PEJSPg0K Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7ICZsdDtoZWFkJmd0OzxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyAmbHQ7dGl0bGUmZ3Q7RFNLUFAgTWVzc2FnZXMmbHQ7L3RpdGxlJmd0OzxCUj4NCiZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyAmbHQ7L2hlYWQmZ3Q7PEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtib2R5Jmd0 OzxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7aDEmZ3Q7TmFtZXNwYWNlIGZv ciBEU0tQUCBNZXNzYWdlcyZsdDsvaDEmZ3Q7PEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7ICZsdDtoMiZndDt1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6ZHNrcHA6MS4wJmx0 Oy9oMiZndDs8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgW05PVEUg VE8gSUFOQS9SRkMtRURJVE9SOiBQbGVhc2UgcmVwbGFjZSBYWFhYPEJSPg0KJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHdpdGggdGhlIFJGQyBudW1iZXIgZm9yIHRoaXMgc3Bl Y2lmaWNhdGlvbi5dPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZsdDtwJmd0O1Nl ZSBSRkNYWFhYJmx0Oy9wJmd0OzxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7L2JvZHkmZ3Q7PEJS Pg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7ICZsdDsvaHRtbCZndDs8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgRU5EPEJSPg0KPEJSPg0KMTEuMi4mbmJzcDsgWE1MIFNjaGVtYSBS ZWdpc3RyYXRpb248QlI+DQo8QlI+DQombmJzcDsmbmJzcDsgVGhpcyBzZWN0aW9uIHJlZ2lzdGVy cyBhbiBYTUwgc2NoZW1hIGFzIHBlciB0aGUgZ3VpZGVsaW5lcyBpbjxCUj4NCiZuYnNwOyZuYnNw OyBbUkZDMzY4OF0uPEJSPg0KPEJSPg0KJm5ic3A7Jm5ic3A7IFVSSTombmJzcDsgdXJuOmlldGY6 cGFyYW1zOnhtbDpzY2hlbWE6a2V5cHJvdjpkc2twcDoxLjA8QlI+DQombmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgUmVnaXN0cmFudCBDb250YWN0OiBJRVRGLCBLRVlQUk9WIHdvcmtpbmcg Z3JvdXAsPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IChrZXlwcm92QGlldGYu b3JnKSwgQW5kcmVhIERvaGVydHkgKGFuZHJlYS5kb2hlcnR5QHJzYS5jb20pLjxCUj4NCiZuYnNw OyZuYnNwOyBTY2hlbWE6Jm5ic3A7IFRoZSBYTUwgZm9yIHRoaXMgc2NoZW1hIGNhbiBiZSBmb3Vu ZCBhcyB0aGUgZW50aXJldHkgb2Y8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg U2VjdGlvbiA3IG9mIHRoaXMgZG9jdW1lbnQuPEJSPg0KPEJSPg0KMTEuMy4mbmJzcDsgTUlNRSBN ZWRpYSBUeXBlIFJlZ2lzdHJhdGlvbiBmb3IgJ2FwcGxpY2F0aW9uL2Rza3BwK3htbCc8QlI+DQo8 QlI+DQombmJzcDsmbmJzcDsgVGhpcyBzZWN0aW9uIHJlZ2lzdGVycyB0aGUgJnF1b3Q7YXBwbGlj YXRpb24vZHNrcHAreG1sJnF1b3Q7IE1JTUUgdHlwZS48QlI+DQo8QlI+DQombmJzcDsmbmJzcDsg VG86Jm5ic3A7IGlldGYtdHlwZXNAaWFuYS5vcmc8QlI+DQombmJzcDsmbmJzcDsgU3ViamVjdDom bmJzcDsgUmVnaXN0cmF0aW9uIG9mIE1JTUUgbWVkaWEgdHlwZSBhcHBsaWNhdGlvbi9kc2twcCt4 bWw8QlI+DQombmJzcDsmbmJzcDsgTUlNRSBtZWRpYSB0eXBlIG5hbWU6Jm5ic3A7IGFwcGxpY2F0 aW9uPEJSPg0KJm5ic3A7Jm5ic3A7IE1JTUUgc3VidHlwZSBuYW1lOiZuYnNwOyBkc2twcCt4bWw8 QlI+DQombmJzcDsmbmJzcDsgUmVxdWlyZWQgcGFyYW1ldGVyczombmJzcDsgKG5vbmUpPEJSPg0K Jm5ic3A7Jm5ic3A7IE9wdGlvbmFsIHBhcmFtZXRlcnM6Jm5ic3A7IGNoYXJzZXQ8QlI+DQombmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgSW5kaWNhdGVzIHRoZSBjaGFyYWN0ZXIgZW5jb2Rp bmcgb2YgZW5jbG9zZWQgWE1MLiZuYnNwOyBEZWZhdWx0IGlzPEJSPg0KJm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IFVURi04LjxCUj4NCiZuYnNwOyZuYnNwOyBFbmNvZGluZyBjb25zaWRl cmF0aW9uczombmJzcDsgVXNlcyBYTUwsIHdoaWNoIGNhbiBlbXBsb3kgOC1iaXQ8QlI+DQombmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY2hhcmFjdGVycywgZGVwZW5kaW5nIG9uIHRoZSBj aGFyYWN0ZXIgZW5jb2RpbmcgdXNlZC4mbmJzcDsgU2VlIFJGQzxCUj4NCiZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyAzMDIzIFtSRkMzMDIzXSwgU2VjdGlvbiAzLjIuPEJSPg0KJm5ic3A7 Jm5ic3A7IFNlY3VyaXR5IGNvbnNpZGVyYXRpb25zOiZuYnNwOyBUaGlzIGNvbnRlbnQgdHlwZSBp cyBkZXNpZ25lZCB0byBjYXJyeTxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBw cm90b2NvbCBkYXRhIHJlbGF0ZWQgdG8ga2V5IG1hbmFnZW1lbnQuIFNlY3VyaXR5IG1lY2hhbmlz bXM8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYXJlIGJ1aWx0IGludG8gdGhl IHByb3RvY29sIHRvIGVuc3VyZSB0aGF0IHZhcmlvdXMgdGhyZWF0czxCUj4NCiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyBhcmUgZGVhbHQgd2l0aC48QlI+DQombmJzcDsmbmJzcDsgSW50 ZXJvcGVyYWJpbGl0eSBjb25zaWRlcmF0aW9uczombmJzcDsgVGhpcyBjb250ZW50IHR5cGUgcHJv dmlkZXMgYSBiYXNpczxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBmb3IgYSBw cm90b2NvbDxCUj4NCiZuYnNwOyZuYnNwOyBQdWJsaXNoZWQgc3BlY2lmaWNhdGlvbjombmJzcDsg UkZDIFhYWFggW05PVEUgVE8gSUFOQS9SRkMtRURJVE9SOiBQbGVhc2U8QlI+DQombmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgcmVwbGFjZSBYWFhYIHdpdGggdGhlIFJGQyBudW1iZXIgZm9y IHRoaXMgc3BlY2lmaWNhdGlvbi5dPEJSPg0KJm5ic3A7Jm5ic3A7IEFwcGxpY2F0aW9ucyB3aGlj aCB1c2UgdGhpcyBtZWRpYSB0eXBlOiZuYnNwOyBQcm90b2NvbCBmb3Iga2V5IGV4Y2hhbmdlLjxC Uj4NCiZuYnNwOyZuYnNwOyBBZGRpdGlvbmFsIEluZm9ybWF0aW9uOiZuYnNwOyBNYWdpYyBOdW1i ZXIocyk6IChub25lKTxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBGaWxlIGV4 dGVuc2lvbihzKTogLnhtbDxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBNYWNp bnRvc2ggRmlsZSBUeXBlIENvZGUocyk6IChub25lKTxCUj4NCiZuYnNwOyZuYnNwOyBQZXJzb24g JmFtcDsgZW1haWwgYWRkcmVzcyB0byBjb250YWN0IGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uOjxC Uj4NCiZuYnNwOyZuYnNwOyBBbmRyZWEgRG9oZXJ0eSAoYW5kcmVhLmRvaGVydHlAcnNhLmNvbSk8 QlI+DQombmJzcDsmbmJzcDsgSW50ZW5kZWQgdXNhZ2U6Jm5ic3A7IExJTUlURUQgVVNFPEJSPg0K Jm5ic3A7Jm5ic3A7IEF1dGhvci9DaGFuZ2UgY29udHJvbGxlcjombmJzcDsgVGhlIElFVEY8QlI+ DQombmJzcDsmbmJzcDsgT3RoZXIgaW5mb3JtYXRpb246Jm5ic3A7IFRoaXMgbWVkaWEgdHlwZSBp cyBhIHNwZWNpYWxpemF0aW9uIG9mPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IGFwcGxpY2F0aW9uL3htbCBbUkZDMzAyM10sIGFuZCBtYW55IG9mIHRoZSBjb25zaWRlcmF0aW9u czxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkZXNjcmliZWQgdGhlcmUgYWxz byBhcHBseSB0byBhcHBsaWNhdGlvbi9kc2twcCt4bWwuPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7PEJSPg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X188QlI+DQpLRVlQUk9WIG1haWxpbmcgbGlzdDxCUj4NCktFWVBST1ZAaWV0Zi5vcmc8QlI+DQo8 QSBIUkVGPSJodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2tleXByb3YiPmh0 dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8va2V5cHJvdjwvQT48QlI+DQo8L0ZP TlQ+DQo8L1A+DQoNCjwvQk9EWT4NCjwvSFRNTD4= ------_=_NextPart_001_01C8C9A2.9B6A8EC3-- --===============1499921718== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov --===============1499921718==-- From keyprov-bounces@ietf.org Thu Jun 12 06:40:13 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7F1F23A6ADE; Thu, 12 Jun 2008 06:40:13 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 766B53A6ADD for ; Thu, 12 Jun 2008 06:40:12 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -5.6 X-Spam-Level: X-Spam-Status: No, score=-5.6 tagged_above=-999 required=5 tests=[AWL=0.398, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_53=0.6, RCVD_IN_DNSWL_MED=-4] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1J02frMPbab7 for ; Thu, 12 Jun 2008 06:40:10 -0700 (PDT) Received: from colibri.verisign.com (colibri.verisign.com [65.205.251.74]) by core3.amsl.com (Postfix) with ESMTP id 49E483A695E for ; Thu, 12 Jun 2008 06:40:10 -0700 (PDT) Received: from MOU1WNEXCN02.vcorp.ad.vrsn.com (mailer2.verisign.com [65.205.251.35]) by colibri.verisign.com (8.13.6/8.13.4) with ESMTP id m5CDQxmi001921; Thu, 12 Jun 2008 06:26:59 -0700 Received: from MOU1WNEXMB09.vcorp.ad.vrsn.com ([10.25.15.197]) by MOU1WNEXCN02.vcorp.ad.vrsn.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 12 Jun 2008 06:40:35 -0700 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Date: Thu, 12 Jun 2008 06:39:55 -0700 Message-ID: <2788466ED3E31C418E9ACC5C316615572FF931@mou1wnexmb09.vcorp.ad.vrsn.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [KEYPROV] DSKPP -- IANA Considerations Thread-Index: AcjJliq/XCgqG0J5TsSjTRnMNMev+gC+6GmD References: <484C25FD.6040204@gmx.net> From: "Hallam-Baker, Phillip" To: "Hannes Tschofenig" , X-OriginalArrivalTime: 12 Jun 2008 13:40:35.0469 (UTC) FILETIME=[E46C5BD0:01C8CC91] Subject: Re: [KEYPROV] DSKPP -- IANA Considerations X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============0135084520==" Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org This is a multi-part message in MIME format. --===============0135084520== Content-class: urn:content-classes:message Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C8CC91.E3C236A5" This is a multi-part message in MIME format. ------_=_NextPart_001_01C8CC91.E3C236A5 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On the status codes issue, more registries appears to be better. -----Original Message----- From: keyprov-bounces@ietf.org on behalf of Hannes Tschofenig Sent: Sun 08/06/2008 2:33 PM To: keyprov@ietf.org Subject: [KEYPROV] DSKPP -- IANA Considerations =20 I believe the the current text of the DSKPP draft regarding the IANA=20 considerations needs to be replaced by the following text: I suggest to replace the "urn:ietf:params:xml:ns:keyprov:protocol:1.0"=20 with the "urn:ietf:params:xml:ns:keyprov:dskpp:1.0" namespace. For the PSKC document I also suggest to use=20 "urn:ietf:params:xml:ns:keyprov:pskc:1.0" instead of=20 "urn:ietf:params:xml:ns:keyprov:container:1.0" I also wonder whether the document should create a registry for the=20 status codes listed in Section 4.7. For example, one would describe what = is necessary to define new status codes. 11. IANA Considerations This document requires several IANA registrations detailed in the following sections. 11.1. URN Sub-Namespace Registration for urn:ietf:params:xml:ns:keyprov:dskpp:1.0 This section registers a new XML namespace, "urn:ietf:params:xml:ns:keyprov:dskpp:1.0", per the guidelines in [RFC3688]. URI: urn:ietf:params:xml:ns:keyprov:dskpp:1.0 Registrant Contact: IETF, KEYPROV working group, (keyprov@ietf.org), Andrea Doherty (andrea.doherty@rsa.com). XML: BEGIN DSKPP Messages

Namespace for DSKPP Messages

urn:ietf:params:xml:ns:keyprov:dskpp:1.0

[NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number for this specification.]

See RFCXXXX

END 11.2. XML Schema Registration This section registers an XML schema as per the guidelines in [RFC3688]. URI: urn:ietf:params:xml:schema:keyprov:dskpp:1.0 Registrant Contact: IETF, KEYPROV working group, (keyprov@ietf.org), Andrea Doherty (andrea.doherty@rsa.com). Schema: The XML for this schema can be found as the entirety of Section 7 of this document. 11.3. MIME Media Type Registration for 'application/dskpp+xml' This section registers the "application/dskpp+xml" MIME type. To: ietf-types@iana.org Subject: Registration of MIME media type application/dskpp+xml MIME media type name: application MIME subtype name: dskpp+xml Required parameters: (none) Optional parameters: charset Indicates the character encoding of enclosed XML. Default is UTF-8. Encoding considerations: Uses XML, which can employ 8-bit characters, depending on the character encoding used. See RFC 3023 [RFC3023], Section 3.2. Security considerations: This content type is designed to carry protocol data related to key management. Security mechanisms are built into the protocol to ensure that various threats are dealt with. Interoperability considerations: This content type provides a basis for a protocol Published specification: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number for this specification.] Applications which use this media type: Protocol for key exchange. Additional Information: Magic Number(s): (none) File extension(s): .xml Macintosh File Type Code(s): (none) Person & email address to contact for further information:=20 Andrea Doherty (andrea.doherty@rsa.com) Intended usage: LIMITED USE Author/Change controller: The IETF Other information: This media type is a specialization of application/xml [RFC3023], and many of the considerations described there also apply to application/dskpp+xml. =20 _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov ------_=_NextPart_001_01C8CC91.E3C236A5 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable RE: [KEYPROV] DSKPP -- IANA Considerations

On the status codes issue, more registries appears to = be better.


-----Original Message-----
From: keyprov-bounces@ietf.org on behalf of Hannes Tschofenig
Sent: Sun 08/06/2008 2:33 PM
To: keyprov@ietf.org
Subject: [KEYPROV] DSKPP -- IANA Considerations

I believe the the current text of the DSKPP draft regarding the IANA
considerations needs to be replaced by the following text:

I suggest to replace the = "urn:ietf:params:xml:ns:keyprov:protocol:1.0"
with the "urn:ietf:params:xml:ns:keyprov:dskpp:1.0"  = namespace.
For the PSKC document I also suggest to use
"urn:ietf:params:xml:ns:keyprov:pskc:1.0"  instead of
"urn:ietf:params:xml:ns:keyprov:container:1.0"

I also wonder whether the document should create a registry for the
status codes listed in Section 4.7. For example, one would describe = what
is necessary to define new status codes.

11.  IANA Considerations

   This document requires several IANA registrations detailed = in the
   following sections.

11.1.  URN Sub-Namespace Registration for
       = urn:ietf:params:xml:ns:keyprov:dskpp:1.0

   This section registers a new XML namespace,
   "urn:ietf:params:xml:ns:keyprov:dskpp:1.0", per = the guidelines in
   [RFC3688].

      URI: = urn:ietf:params:xml:ns:keyprov:dskpp:1.0

      Registrant Contact: IETF, KEYPROV working = group,
      (keyprov@ietf.org), Andrea Doherty = (andrea.doherty@rsa.com).
      XML:

         BEGIN
           <?xml = version=3D"1.0"?>
           = <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 = Strict//EN"
             = "http://www.w3.= org/TR/xhtml1/DTD/xhtml1-strict.dtd">
           <html = xmlns=3D"http://www.w3.org/1999/xhtml&qu= ot; xml:lang=3D"en">
             = <head>
            &= nbsp;  <title>DSKPP Messages</title>
             = </head>
             = <body>
            &= nbsp;  <h1>Namespace for DSKPP Messages</h1>
            &= nbsp;  = <h2>urn:ietf:params:xml:ns:keyprov:dskpp:1.0</h2>
       [NOTE TO IANA/RFC-EDITOR: Please = replace XXXX
       with the RFC number for this = specification.]
            &= nbsp;  <p>See RFCXXXX</p>
             = </body>
           = </html>
         END

11.2.  XML Schema Registration

   This section registers an XML schema as per the guidelines = in
   [RFC3688].

   URI:  urn:ietf:params:xml:schema:keyprov:dskpp:1.0
      Registrant Contact: IETF, KEYPROV working = group,
      (keyprov@ietf.org), Andrea Doherty = (andrea.doherty@rsa.com).
   Schema:  The XML for this schema can be found as the = entirety of
      Section 7 of this document.

11.3.  MIME Media Type Registration for 'application/dskpp+xml'

   This section registers the = "application/dskpp+xml" MIME type.

   To:  ietf-types@iana.org
   Subject:  Registration of MIME media type = application/dskpp+xml
   MIME media type name:  application
   MIME subtype name:  dskpp+xml
   Required parameters:  (none)
   Optional parameters:  charset
      Indicates the character encoding of = enclosed XML.  Default is
      UTF-8.
   Encoding considerations:  Uses XML, which can employ = 8-bit
      characters, depending on the character = encoding used.  See RFC
      3023 [RFC3023], Section 3.2.
   Security considerations:  This content type is = designed to carry
      protocol data related to key management. = Security mechanisms
      are built into the protocol to ensure = that various threats
      are dealt with.
   Interoperability considerations:  This content type = provides a basis
      for a protocol
   Published specification:  RFC XXXX [NOTE TO = IANA/RFC-EDITOR: Please
      replace XXXX with the RFC number for this = specification.]
   Applications which use this media type:  Protocol for = key exchange.
   Additional Information:  Magic Number(s): (none)
      File extension(s): .xml
      Macintosh File Type Code(s): (none)
   Person & email address to contact for further = information:
   Andrea Doherty (andrea.doherty@rsa.com)
   Intended usage:  LIMITED USE
   Author/Change controller:  The IETF
   Other information:  This media type is a = specialization of
      application/xml [RFC3023], and many of = the considerations
      described there also apply to = application/dskpp+xml.
    
_______________________________________________
KEYPROV mailing list
KEYPROV@ietf.org
https://www.ietf.o= rg/mailman/listinfo/keyprov

------_=_NextPart_001_01C8CC91.E3C236A5-- --===============0135084520== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov --===============0135084520==-- From keyprov-bounces@ietf.org Tue Jun 17 12:25:47 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B09243A6B5D; Tue, 17 Jun 2008 12:25:47 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id F0AD23A6B5C for ; Tue, 17 Jun 2008 12:25:46 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.539 X-Spam-Level: X-Spam-Status: No, score=-2.539 tagged_above=-999 required=5 tests=[AWL=0.060, BAYES_00=-2.599] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lAsZi9MzsyeS for ; Tue, 17 Jun 2008 12:25:46 -0700 (PDT) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by core3.amsl.com (Postfix) with SMTP id F3B203A6AB3 for ; Tue, 17 Jun 2008 12:25:45 -0700 (PDT) Received: (qmail invoked by alias); 17 Jun 2008 19:26:30 -0000 Received: from a91-154-105-144.elisa-laajakaista.fi (EHLO [192.168.255.3]) [91.154.105.144] by mail.gmx.net (mp050) with SMTP; 17 Jun 2008 21:26:30 +0200 X-Authenticated: #29516787 X-Provags-ID: V01U2FsdGVkX19CWLRDfU1CPALPjASZDjMAJZz0wBUbM+Va0f4Ovn e4O3NYMx5u9Cty Message-ID: <48580FE2.5030600@gmx.net> Date: Tue, 17 Jun 2008 22:26:26 +0300 From: Hannes Tschofenig User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: keyprov@ietf.org X-Y-GMX-Trusted: 0 Subject: [KEYPROV] Request for Agenda Items X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org Hi all, we need to prepare the agenda for the meeting. Please let me know what you believe we should definitely discuss or shouldn't discuss anymore. Ciao Hannes _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov From keyprov-bounces@ietf.org Wed Jun 18 09:50:16 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C6E0D3A6A48; Wed, 18 Jun 2008 09:50:16 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 69B3528C0E9 for ; Wed, 18 Jun 2008 09:50:15 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=x tagged_above=-999 required=5 tests=[] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MHmFC5kNi00E for ; Wed, 18 Jun 2008 09:50:15 -0700 (PDT) Received: from frhub1.activcard.fr (frhub1.activcard.fr [91.151.120.133]) by core3.amsl.com (Postfix) with ESMTP id 39AD43A6A28 for ; Wed, 18 Jun 2008 09:50:12 -0700 (PDT) Received: from sur-corp-ex-02.corp.ad.activcard.com (sur-corp-ex-02.corp.ad.activcard.com [192.168.33.40]) by frhub1.activcard.fr (Postfix) with ESMTP id 7898725ED5B; Wed, 18 Jun 2008 18:51:04 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C8D163.79FB62FB" Date: Wed, 18 Jun 2008 18:50:55 +0200 Message-ID: <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0D3@sur-corp-ex-02.corp.ad.activcard.com> In-Reply-To: <9ED76AB595E4944BB33D8998DE448D110160C92D@CORPUSMX10B.corp.emc.com> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: [KEYPROV] [pskc] Latest draft of PSKC Thread-Index: Acihb52vIXPZfM+dQBGaWxrT4r5ocAAVy7xQAHs9/BAAB0GJoAAC0jWgARViyUAASBMeYAFfxKKAAAGFK/UAAAvvgANQaPGwAZRV6yADujT6IA== References: <9ED76AB595E4944BB33D8998DE448D110160C92D@CORPUSMX10B.corp.emc.com> From: "Philip Hoyer" To: "Pei, Mingliang" , , "Hannes Tschofenig" , "Hallam-Baker, Phillip" Cc: keyprov@ietf.org Subject: Re: [KEYPROV] [pskc] Latest draft of PSKC X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C8D163.79FB62FB Content-Type: multipart/alternative; boundary="----_=_NextPart_002_01C8D163.79FB62FB" ------_=_NextPart_002_01C8D163.79FB62FB Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Please find attached the latest work in progress draft and related schema, =20 Changes made from version 4 are: =20 1. Added optional Id element to the container in case another document includes more than one container and wants to reference it uniquely, this is of type xs:Id 2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became mandatory)=20 3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to xs:ID 4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF as it refers to the ID of the element of (3) see directly above 5. Added optional PINPolicyId attribute of type xs:ID to PINPolicyType 6. Added the KeyContainer:KeyProperties element that was missing from version -04 (oversight).This is where the common properties for a key are actually held within a container 7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case=20 =20 Extension points: =20 Added a '' to=20 1. KeyContainerType 2. KeyPropertiesType 3. KeyType 4. PINPolicy 5. DeviceIDType 6. DeviceType 7. UsageType =20 Added a '' to: 1. UsageType (since it contains the attributes of ' So I thought it would be wise to be able to extend this =20 =20 =20 Outstanding issues that need to be discussed: 1. Should we make KeyType:KeyId of type xs:ID instead of xs:string 2. Should we make KeyType:KeyProfileId and KeyProperties:KeyProfileId of type xs:ID instead of xs:string 3. For all the uses of xs:ID should we add facets of minlength, maxlength and whitespace? Or do we just have standard 4. Should we go for xs:string for unencrypted data elements - Rob Philpott and others seem strongly for it but Sean Turner was against it at the last IETF in Philadelphia 5. Where else do we need '' as extension points 6. For the added '' do we need a description = within the spec or do we just leave them in the parts of the schema fragments throughout the spec as obvious extension points? 7. Address other issues raised by Rob Philpott: Here below with my comments and numbered Rob Philpott Comment plus number (RPC1, RPC2, ... etc) =20 RPC1. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device. Also since there are already implementations out there changing this would make it incompatible. RPC2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. RPC3. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc RPC4. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. RPC5 In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote =20 =20 Philip =20 =20 =20 ________________________________ From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]=20 Sent: Friday, May 30, 2008 4:36 PM To: keyprov@ietf.org Cc: Philip Hoyer Subject: FW: [KEYPROV] [pskc] Latest draft of PSKC =20 Here is Philip Hoyer's response to Rob's comments (see below), which we initially handled offline, and then we decided it would be better to further the discussion on the mailing list. =20 -- Andrea =20 1. Use of xs:ID attributes: a. The xs:ID datatype is only used in the DerivedKeyType complexType. xs:ID is the preferred mechanism for referring to other XML elements in an instance document. So why are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the "KeyPropertiesId" attribute) and KeyType ("KeyId")? Why don't these use xs:ID attributes? [PH] good point I was thinking that xs:Id for KeyPropertiesId could be a good choice The KeyId on the other hand is not really used to be referred to. Do you think it would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?=20 b. Why doesn't a KeyContainer have an (optional) ID that could be used to reference it in an instance document? [PH] valid comment and I will think we should add this=20 c. Same question for PINPolicy? [PH] agreed d. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device e. Section 5.2.1 says that the DeviceIdType is an extensible type, but there are no extension points in it. [PH] agreed I think we should add an xs:any 2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. a. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc b. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. c. It is also a pain for implementers to deal with the limitation of the data typing available for unencrypted elements. For example, for a SecurID token with a display interval of 60 seconds, I cannot simply use an xml schema-defined datatype of xs:integer with a value of "60". I have to Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the receiving end). Why is this necessary? I could define such an item with a single XML element, but here I need 3 or 4. [PH] using xs:string for plainvalue was discussed during the last IETF meeting (I personally am in favor of it) but Sean Turner and the rest of the people did not see much value in it. If we use string we will need to deice for specific data elements what the encoding rules are. For example do we say for 8 byte unsigned int to encode just string e.g. '60' or leading 0 examples '00000060'. I would appreciate your thoughts on this. Also how would we encode binary data in string form base64 encoded? d. This approach does not produce "readable" XML since the data values are always Base64-encoded. That is just crazy when the data is not sensitive in nature. Please do not underestimate the value of being able to look at data in an instance document and know what it is without having to run it through a Base64 decoder! This is a major drawback. [PH] agreed and see answer above 3. RE: PINPolicy: a. If I specify a PINPolicy, I am forced to specify a PINKeyID, which forces me to create another Key element (even if I don't have any additional PIN policy info that I need to pass along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more complex than it needs to be.=20 [PH] if you are referring to the fact that '' is set to = required I agree with you. We should set this to 'optional'. I do not agree with your 90% use case analysis since the main use cases I have come across where to transmit the initial random pin for PINPads tokens within the same PSKC document from manufacturing to the validation server. b. The PINPolicy element only contains "policy" attributes for "WrongPINtry" and "PINUsageMode" and the element is not directly extensible. Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references. IMO, PIN policy info should be in the PINPolicy element, not in a separate "Key" element! The only thing that should go in the Key element is a PIN value that is being expressly communicated with the instance document. That is, a PIN value IS a key; PIN policy information IS NOT a key. [PH] I agree we need to make PINPolicy extensible and not put stuff into the Data elements of the PINKey. Are there any other elements that you know of we should include now and not just as an xs:any extension? c. It seems to us that there are additional universally-known PIN policy attributes that should be included in the schema. Things such as the PIN's maximum and minimum length and it's data type (integer, alphanumeric). Unless these are part of the spec, we currently are forced to create custom Data elements for them (and put them in a referenced Key element). BTW - Just to be clear, I am talking about the POLICY information associated with whatever PIN a user uses with their token. I'm not talking about the attributes of a specific PIN value that can be expressed in a Key element. As an example, to express a min and max PIN length policy, we have to create custom Data elements in a separate Key element (and also Base64 encode the values). I'm sorry, but this is getting ridiculous.=20 NA=3D=3D OA=3D=3D [PH] no the format and length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 of the spec) would make that clear here is the XML fragment: MTIzNA=3D=3D Notes: a. If I had an xs:any extension point, I could express this in 2 lines of XML in the PinPolicy element. b. This example doesn't include the PIN format, which would require me to either: i. Use another custom Data element=20 ii. Include a ResponseFormat element that then requires inclusion of a "Length" attribute. But what would the Length attribute really mean in this case? d. Why isn't a PINPolicy reusable across multiple tokens (it has no ID that can be used in a reference from a token definition). If I want to define a PINPolicy that applies to multiple tokens, the PINPolicy element needs its own ID. [PH] I see your point. If we make PINKeyId optional as in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your purpose. e. The "WrongPINtry" element name (in PINPolicyType) is not consistent with the other camel-case names ("try" should be "Try"). [PH] agreed, will change f. In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote 4. The use of "ResponseFormat" for describing a PIN is very confusing. The spec defines ResponseFormat as follows "The ResponseFormat element defines the characteristics of the result of a computation. This defines the format of the OTP or of the response to a challenge." A PIN is not the result of a "computation", nor is it a response to a challenge. It seems quite odd to use this Key construct for a PIN. I think that either another usage type should be defined or the ResponseFormat definition should be changed to also reflect its use for describing a PIN. [PH] Yes I think we need to change the description. I am getting a lot of push back to include PIN requirements in the spec so I tried to convince people that tit was a good idea without having to introduce to many new schema types. Here you say it is odd to use the Key element for the PIN value but above you agree that a PIN IS a Key. So I would keep it in the Key element buy change description. =20 ------_=_NextPart_002_01C8D163.79FB62FB Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Re: [KEYPROV] [pskc] Latest draft of PSKC

Please find attached the latest = work in progress draft and related schema,

 

= Changes made from version 4 are:

 

  1. Added optional Id element to the container in case another document = includes more than one container and wants to reference it uniquely, this is = of type xs:Id
  2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became = mandatory)
  3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to = xs:ID
  4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF = as it refers to the ID of the element of (3) see directly = above
  5. Added optional PINPolicyId attribute of type xs:ID to = PINPolicyType
  6. Added the KeyContainer:KeyProperties element that was missing from = version -04 (oversight).This is where the common properties for a key are actually held within a container
  7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case =

 

Extension = points:

 

Added a ‘<xs:any namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0" maxOccurs=3D"unbounded"/>’ = to

  1. KeyContainerType<= /span>
  2. KeyPropertiesType=
  3. KeyType
  4. PINPolicy<= /font>
  5. DeviceIDType
  6. DeviceType=
  7. UsageType<= /font>

 

Added a ‘<xs:anyAttribute namespace=3D"##other"/>’ = to:

  1. UsageType (since it contains the attributes of = ‘           =      

<xs:attribute name=3D"OTP" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"CR" type=3D"xs:boolean" = default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Integrity" type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Encrypt" type=3D"xs:boolean" = default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Unlock" type=3D"xs:boolean" default=3D"false"/>

      =       So I thought it would be wise to be able to extend = this

 

 

 

= Outstanding issues that need to be discussed:

  1. Should we make KeyType:KeyId of type xs:ID instead of = xs:string
  2. Should we make KeyType:KeyProfileId and KeyProperties:KeyProfileId of type = xs:ID instead of xs:string
  3. For all the uses of xs:ID should we add facets of minlength, maxlength = and whitespace? Or do we just have = standard
  4. Should we go for xs:string for unencrypted data elements – Rob = Philpott and others seem strongly for it but Sean Turner was against it at the = last IETF in Philadelphia<= /li>
  5. Where else do we need ‘<anyAttribute = namespace=3D"##other" processContents=3D"lax"/>’ as extension = points
  6. For the added ‘<xs:any namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0" maxOccurs=3D"unbounded"/>’ do we need a = description within the spec or do we just leave them in the parts of the schema fragments throughout the spec as obvious extension = points?
  7. Address other issues raised by Rob Philpott: Here below with my comments = and numbered Rob Philpott Comment plus number (RPC1, RPC2, … = etc)

 

RPC1.      The use = of the DeviceIdType is inconsistent with other “ID”’s (that = are used for referential information).  The elements in the DeviceIDType = seem more appropriate for the DeviceType or KeyType elements.  At a minimum, = I would not call this a “DeviceIdType” (perhaps “DeviceInfoType”?) but really, I would just put its elements directly in the DeviceType complexType).  I would also give = <Device> elements an optional referential ID via xs:ID.

[PH] so basically you are saying = that any high level entity (Key, Device, KeyContainer etc) should have an ID that = is xs:ID? The thought of DeviceId was to aggregate under a specific type = the elements that comprise the compound key to look up the device. Also = since there are already implementations out there changing this would make it = incompatible.

RPC2.       We = are really unhappy with the proposed extensibility mechanism. This goes = against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO):

[PH] this has = been extensively discussed at IETF and there are pros and cons for all = approaches. The pro’s of the name value approach is that it will be re-usable = for the ASN.1 spec and that we will have a semantic registry defined by = IANA.


RPC3.       The use of “Reserved = data attribute names” as described in section 7 is really difficult to = work with. First, <Data> elements should ONLY be used for = “real” extensions… i.e. things that aren’t already known at the = time the spec is written.  If we already know that the items defined in = section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be “reserved” = uses of the <DATA> element.  We just don’t understand the = desire to do it this way. Having explicitly defined elements also allows for more flexible datayping.

[PH] this has = been extensively discussed. And we opted for the name value pair approach. = This mean that all elements in Data can be parsed in the same manner and = individually be encrypted or not. There will be a centralized semantic registry by IANA, = etc


RPC4.      This mechanism only lets us create = very simple name-value pair extensions.  If we have some small groups of related extensions, we’d really like to be able to define them = externally in a private schema via their own complexType definitions.  With = the current method, it’s going to be very messy to add groups of = extensions or extensions that have more complex data values.

[PH] why do you = say that, the name could be also be a namespace for an wholly encrypted or base64 = encoded XML sub node. I see your point though in terms of parsing here. Could = you give me an example of what you had in mind since we have considered quite a = few use cases and not come across the requirement for grouped = extensions.

RPC5       = In general, it is undesirable to create abbreviations such as “InAlgo” (in PINUsageMode) to be used as XML keywords. To = stay consistent with “Local” and “Prepend”, I would = strongly suggest something like “Embed” or = “Algorithmic”.
[PH[ we had Embed before = and people got confused by the meaning. So maybe Algorithmic is a better choice, = that is why I tried to express the use of the PIN in the algorithm as InAlgo. I = do not feel very strong about it. Maybe we can have a = vote

 

 

Philip

 

 

 


From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]
Sent: Friday, May 30, = 2008 4:36 PM
To: keyprov@ietf.org
Cc: Philip Hoyer
Subject: FW: [KEYPROV] = [pskc] Latest draft of PSKC

 

Here is Philip Hoyer's = response to Rob's comments (see below), which we initially handled offline, = and then we decided it would be better to further the discussion on the = mailing list. 

-- Andrea

 
 1.       Use of = xs:ID attributes:

a.       The xs:ID datatype is only used = in the DerivedKeyType complexType.  xs:ID is the preferred mechanism for referring to other XML elements in an instance document.  So why = are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the “KeyPropertiesId” attribute) and = KeyType (“KeyId”)? Why don’t these use xs:ID attributes?

[PH] good point = I was thinking that xs:Id for KeyPropertiesId could be a good choice  The = KeyId on the other hand is not really used to be referred to. Do you think it = would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?


b.      Why doesn’t a KeyContainer have = an (optional) ID that could be used to reference it in an instance = document?

[PH] valid = comment and I will think we should add this

c.       Same question for PINPolicy?

[PH] = agreed

d.      The use of the DeviceIdType is = inconsistent with other “ID”’s (that are used for referential information).  The elements in the DeviceIDType seem more = appropriate for the DeviceType or KeyType elements.  At a minimum, I would not call = this a “DeviceIdType” (perhaps “DeviceInfoType”?) but = really, I would just put its elements directly in the DeviceType = complexType).  I would also give <Device> elements an optional referential ID via = xs:ID.

[PH] so basically you are saying = that any high level entity (Key, Device, KeyContainer etc) should have an ID that = is xs:ID? The thought of DeviceId was to aggregate under a specific type = the elements that comprise the compound key to look up the = device


e.      Section 5.2.1 says that the = DeviceIdType is an extensible type, but there are no extension points in it.

[PH] agreed I = think we should add an xs:any

2.       We are really unhappy with the = proposed extensibility mechanism. This goes against general XML schema best = practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior = (IMO):

[PH] this has = been extensively discussed at IETF and there are pros and cons for all = approaches. The pro’s of the name value approach is that it will be re-usable = for the ASN.1 spec and that we will have a semantic registry defined by = IANA.



a.       The use of “Reserved data attribute names” as described in section 7 is really difficult to = work with. First, <Data> elements should ONLY be used for = “real” extensions… i.e. things that aren’t already known at the = time the spec is written.  If we already know that the items defined in = section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be “reserved” = uses of the <DATA> element.  We just don’t understand the = desire to do it this way. Having explicitly defined elements also allows for more flexible datayping.

[PH] this has = been extensively discussed. And we opted for the name value pair approach. = This mean that all elements in Data can be parsed in the same manner and = individually be encrypted or not. There will be a centralized semantic registry by IANA, = etc


b.      This mechanism only lets us create very = simple name-value pair extensions.  If we have some small groups of = related extensions, we’d really like to be able to define them externally = in a private schema via their own complexType definitions.  With the = current method, it’s going to be very messy to add groups of extensions or extensions that have more complex data values.

[PH] why do you = say that, the name could be also be a namespace for an wholly encrypted or base64 = encoded XML sub node. I see your point though in terms of parsing here. Could = you give me an example of what you had in mind since we have considered quite a = few use cases and not come across the requirement for grouped = extensions.


c.       It is also a pain for = implementers to deal with the limitation of the data typing available for unencrypted <Data> elements.  For example, for a SecurID token with a = display interval of 60 seconds, I cannot simply use an xml schema-defined = datatype of xs:integer with a value of “60”.  I have to = Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the receiving end). Why is this necessary?  I could define such an item = with a single XML element, but here I need 3 or 4.

[PH] using = xs:string for plainvalue was discussed during the last IETF meeting (I personally am = in favor of it) but Sean Turner and the rest of the people did not see much value = in it. If we use string we will need to deice for specific data elements what = the encoding rules are. For example do we say for 8 byte unsigned int to = encode just string e.g. ‘60’ or leading 0 examples = ‘00000060’. I would appreciate your thoughts on this. Also how would we encode = binary data in string form base64 encoded?



d.      This approach does not produce “readable” XML since the data values are always Base64-encoded.  That is just crazy when the data is not sensitive = in nature.  Please do not underestimate the value of being able to = look at data in an instance document and know what it is without having to run = it through a Base64 decoder! This is a major drawback.

[PH] agreed and = see answer above


3.       RE: PINPolicy:

a.       If I specify a PINPolicy, I am = forced to specify a PINKeyID, which forces me to create another Key element (even = if I don’t have any additional PIN policy info that I need to pass = along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more = complex than it needs to be. 

[PH] if you are = referring to the fact that ‘<xs:attribute name=3D"PINKeyId" type=3D"xs:string" use=3D"required"/>’ is = set to required I agree with you. We should set this to ‘optional’. = I do not agree with your 90% use case analysis since the main use cases I = have come across where to transmit the initial random pin for PINPads tokens = within the same PSKC document from manufacturing to the validation = server.



b.      The PINPolicy element only contains “policy” attributes for “WrongPINtry” and “PINUsageMode” and the element is not directly = extensible.  Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references.  IMO, PIN policy info = should be in the PINPolicy element, not in a separate “Key” = element! The only thing that should go in the Key element is a PIN value that is = being expressly communicated with the instance document.  That is, a PIN = value IS a key; PIN policy information IS NOT a key.

[PH] I agree we = need to make PINPolicy extensible and not put stuff into the Data elements of = the PINKey. Are there any other elements that you know of we should include = now and not just as an xs:any extension?


c.       It seems to us that there are = additional universally-known PIN policy attributes that should be included in the schema.  Things such as the PIN’s maximum and minimum length = and it’s data type (integer, alphanumeric).  Unless these are = part of the spec, we currently are forced to create custom Data elements for = them (and put them in a referenced Key element). BTW – Just to be clear, I = am talking about the POLICY information associated with whatever PIN a user = uses with their token.  I’m not talking about the attributes of a specific PIN value that can be expressed in a Key element.  As an = example, to express a min and max PIN length policy, we have to create custom = Data elements in a separate Key element (and also Base64 encode the = values).  I’m sorry, but this is getting ridiculous. 

           <Key KeyId=3D"07552252661"

             KeyAlgorithm=3D"http://www.ietf.org/keyprov= /pskc#pin">

            &= nbsp; <Data Name=3D"PIN_MIN_LENGTH">

            &= nbsp;     <PlainValue>NA=3D=3D</PlainValue>

            &= nbsp; </Data>

            &= nbsp; <Data Name=3D"PIN_MAX_LENGTH">

            &= nbsp;     <PlainValue>OA=3D=3D</PlainValue>

            &= nbsp; </Data>

           = </Key>

[PH] no the format and = length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 = of the spec) would make that clear here is the XML = fragment:

       <Key KeyId=3D"07552252661"

          KeyAlgorithm=3D"http://www.ietf.org/keyprov/pskc#pin"><= /o:p>

          &= nbsp; <Usage>

          &= nbsp;     <ResponseFormat Length=3D"4" = Format=3D"DECIMAL"/>

          &= nbsp; </Usage>

          &= nbsp; <Data Name=3D"SECRET">

          &= nbsp;     <PlainValue>MTIzNA=3D=3D</PlainValue>

          &= nbsp; </Data>

        = </Key>

Notes:

a.       If I had an xs:any extension = point, I could express this in 2 lines of XML in the PinPolicy element.

b.      This example doesn’t include the = PIN format, which would require me to either:

            &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            = ;        i.            Use another custom Data element 

            &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            = ;      ii.            = Include a ResponseFormat element that then requires inclusion of a = “Length” attribute. But what would the Length attribute really mean in this = case?

d.      Why isn’t a PINPolicy reusable = across multiple tokens (it has no ID that can be used in a reference from a = token definition).  If I want to define a PINPolicy that applies to = multiple tokens, the PINPolicy element needs its own ID.

[PH] I see your point. If we make PINKeyId optional as = in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your = purpose.


e.      The “WrongPINtry” element = name (in PINPolicyType) is not consistent with the other camel-case names (“try” should be “Try”).

[PH] agreed, will change


f.        In general, it is = undesirable to create abbreviations such as “InAlgo” (in PINUsageMode) to = be used as XML keywords. To stay consistent with “Local” and “Prepend”, I would strongly suggest something like “Embed” or “Algorithmic”.
[PH[ we had Embed before = and people got confused by the meaning. So maybe Algorithmic is a better choice, = that is why I tried to express the use of the PIN in the algorithm as InAlgo. I = do not feel very strong about it. Maybe we can have a = vote


4.       The use of = “ResponseFormat” for describing a PIN is very confusing.  The spec defines = ResponseFormat as follows “The ResponseFormat element defines the characteristics = of the result of a computation.  This defines the format of the OTP or of = the response to a challenge.” A PIN is not the result of a = “computation”, nor is it a response to a challenge.  It seems quite odd to use = this Key construct for a PIN. I think that either another usage type should be = defined or the ResponseFormat definition should be changed to also reflect its = use for describing a PIN.
[PH] Yes I think we need = to change the description. I am getting a lot of push back to include PIN = requirements in the spec so I tried to convince people that tit was a good idea without = having to introduce to many new schema types. Here you say it is odd to use the = Key element for the PIN value but above you agree that a PIN IS a Key. So I = would keep it in the Key element buy change description.

 

------_=_NextPart_002_01C8D163.79FB62FB-- ------_=_NextPart_001_01C8D163.79FB62FB Content-Type: text/xml; name="draft-ietf-keyprov-portable-symmetric-key-container-05_wip_180608.xml" Content-Transfer-Encoding: base64 Content-Description: draft-ietf-keyprov-portable-symmetric-key-container-05_wip_180608.xml Content-Disposition: attachment; filename="draft-ietf-keyprov-portable-symmetric-key-container-05_wip_180608.xml" PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjw/eG1sLXN0eWxlc2hlZXQg dHlwZT0ndGV4dC94c2wnIGhyZWY9J3JmYzI2MjkueHNsdCcgPz4NCjwhRE9DVFlQRSByZmMgU1lT VEVNICJyZmMyNjI5LmR0ZCIgWw0KCTwhRU5USVRZIHJmYzIxMTkgUFVCTElDICcnIA0KICAgICAg J2h0dHA6Ly94bWwucmVzb3VyY2Uub3JnL3B1YmxpYy9yZmMvYmlieG1sL3JlZmVyZW5jZS5SRkMu MjExOS54bWwnPg0KXT4NCjxyZmMgY2F0ZWdvcnk9InN0ZCIgaXByPSJmdWxsMzk3OCIgZG9jTmFt ZT0iZHJhZnQtaWV0Zi1rZXlwcm92LXBvcnRhYmxlLXN5bW1ldHJpYy1rZXktY29udGFpbmVyLTA1 LnR4dCI+DQoJPD9yZmMgdG9jPSJ5ZXMiID8+DQoJPD9yZmMgc3ltcmVmcz0ieWVzIiA/Pg0KCTw/ cmZjIHNvcnRyZWZzPSJ5ZXMiPz4NCgk8P3JmYyBpcHJub3RpZmllZD0ibm8iID8+DQoJPD9yZmMg c3RyaWN0PSJ5ZXMiID8+DQoJPGZyb250Pg0KCQk8dGl0bGU+UG9ydGFibGUgU3ltbWV0cmljIEtl eSBDb250YWluZXI8L3RpdGxlPg0KCQk8YXV0aG9yIGluaXRpYWxzPSJQLiIgc3VybmFtZT0iSG95 ZXIiIGZ1bGxuYW1lPSJQaGlsaXAgSG95ZXIiPg0KCQkJPG9yZ2FuaXphdGlvbiBhYmJyZXY9IkFj dGl2SWRlbnRpdHkiPg0KCQkJQWN0aXZJZGVudGl0eSwgSW5jLg0KCSAgICA8L29yZ2FuaXphdGlv bj4NCgkJCTxhZGRyZXNzPg0KCQkJCTxwb3N0YWw+DQoJCQkJCTxzdHJlZXQ+MTA5IEJvcm91Z2gg SGlnaCBTdHJlZXQ8L3N0cmVldD4NCgkJCQkJPGNpdHk+TG9uZG9uPC9jaXR5Pg0KCQkJCQk8cmVn aW9uPlNFMTwvcmVnaW9uPg0KCQkJCQk8Y29kZT4xTkw8L2NvZGU+DQoJCQkJCTxjb3VudHJ5PlVL PC9jb3VudHJ5Pg0KCQkJCTwvcG9zdGFsPg0KCQkJCTxwaG9uZT4rNDQgKDApIDIwIDc3NDQgNjQ1 NTwvcGhvbmU+DQoJCQkJPGVtYWlsPlBoaWxpcC5Ib3llckBhY3RpdmlkZW50aXR5LmNvbTwvZW1h aWw+DQoJCQk8L2FkZHJlc3M+DQoJCTwvYXV0aG9yPg0KCQk8YXV0aG9yIGluaXRpYWxzPSJNLiIg c3VybmFtZT0iUGVpIiBmdWxsbmFtZT0iTWluZ2xpYW5nIFBlaSI+DQoJCQk8b3JnYW5pemF0aW9u IGFiYnJldj0iVmVyaVNpZ24iPg0KCQkJVmVyaVNpZ24sIEluYy4NCgkgICAgPC9vcmdhbml6YXRp b24+DQoJCQk8YWRkcmVzcz4NCgkJCQk8cG9zdGFsPg0KCQkJCQk8c3RyZWV0PjQ4NyBFLiBNaWRk bGVmaWVsZCBSb2FkPC9zdHJlZXQ+DQoJCQkJCTxjaXR5Pk1vdW50YWluIFZpZXc8L2NpdHk+DQoJ CQkJCTxyZWdpb24+Q0E8L3JlZ2lvbj4NCgkJCQkJPGNvZGU+OTQwNDM8L2NvZGU+DQoJCQkJCTxj b3VudHJ5PlVTQTwvY291bnRyeT4NCgkJCQk8L3Bvc3RhbD4NCgkJCQk8cGhvbmU+KzEgNjUwIDQy NiA1MTczPC9waG9uZT4NCgkJCQk8ZW1haWw+bXBlaUB2ZXJpc2lnbi5jb208L2VtYWlsPg0KCQkJ PC9hZGRyZXNzPg0KCQk8L2F1dGhvcj4NCgkJPGF1dGhvciBpbml0aWFscz0iUy4iIHN1cm5hbWU9 Ik1hY2hhbmkiIGZ1bGxuYW1lPSJTYWxhaCBNYWNoYW5pIj4NCgkJCTxvcmdhbml6YXRpb24gYWJi cmV2PSJEaXZlcnNpbmV0Ij4NCgkJCURpdmVyc2luZXQsIEluYy4NCgkgICAgPC9vcmdhbml6YXRp b24+DQoJCQk8YWRkcmVzcz4NCgkJCQk8cG9zdGFsPg0KCQkJCQk8c3RyZWV0PjIyMjUgU2hlcHBh cmQgQXZlbnVlIEVhc3Q8L3N0cmVldD4NCgkJCQkJPHN0cmVldD5TdWl0ZSAxODAxPC9zdHJlZXQ+ DQoJCQkJCTxjaXR5PlRvcm9udG88L2NpdHk+DQoJCQkJCTxyZWdpb24+T250YXJpbzwvcmVnaW9u Pg0KCQkJCQk8Y29kZT5NMkogNUMyPC9jb2RlPg0KCQkJCQk8Y291bnRyeT5DYW5hZGE8L2NvdW50 cnk+DQoJCQkJPC9wb3N0YWw+DQoJCQkJPHBob25lPisxIDQxNiA3NTYgMjMyNCBFeHQuIDMyMTwv cGhvbmU+DQoJCQkJPGVtYWlsPnNtYWNoYW5pQGRpdmVyc2luZXQuY29tPC9lbWFpbD4NCgkJCTwv YWRkcmVzcz4NCgkJPC9hdXRob3I+DQoJCTxkYXRlIGRheT0iMTgiIG1vbnRoPSJKdW5lIiB5ZWFy PSIyMDA4Ii8+DQoJCTx3b3JrZ3JvdXA+a2V5cHJvdjwvd29ya2dyb3VwPg0KCQk8YWJzdHJhY3Q+ DQoJCQk8dD5UaGlzIGRvY3VtZW50IHNwZWNpZmllcyBhIHN5bW1ldHJpYyBrZXkgZm9ybWF0IGZv ciB0cmFuc3BvcnQgDQoJCSAgICAgYW5kIHByb3Zpc2lvbmluZyBvZiBzeW1tZXRyaWMga2V5cyAo Zm9yIGV4YW1wbGUgT25lIFRpbWUgUGFzc3dvcmQgKE9UUCkgc2hhcmVkIHNlY3JldHMgb3IgDQog ICAgICAgICAgICAgICAgICAgICBzeW1tZXRyaWMgY3J5cHRvZ3JhcGhpYyBrZXlzKSB0byBkaWZm ZXJlbnQgdHlwZXMgb2YgY3J5cHRvIG1vZHVsZXMgc3VjaCBhcyBhIHN0cm9uZyBhdXRoZW50aWNh dGlvbiBkZXZpY2UuIA0KICAgICAgICAgICAgICAgICAgICAgVGhlIHN0YW5kYXJkIGtleSB0cmFu c3BvcnQgZm9ybWF0IGVuYWJsZXMgZW50ZXJwcmlzZXMgdG8gZGVwbG95IGJlc3Qtb2YtYnJlZWQg c29sdXRpb25zIGNvbWJpbmluZyANCiAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgZnJv bSBkaWZmZXJlbnQgdmVuZG9ycyBpbnRvIHRoZSBzYW1lIGluZnJhc3RydWN0dXJlLiA8L3Q+DQoJ CQk8dD5UaGlzIHdvcmsgaXMgYSBqb2ludCBlZmZvcnQgYnkgdGhlIG1lbWJlcnMgb2YgT0FUSCAo SW5pdGlhdGl2ZSBmb3IgT3BlbiBBdVRIZW50aWNhdGlvbikNCiAgICAgICAgICAgICAgICAgICAg IHRvIHNwZWNpZnkgYSBmb3JtYXQgdGhhdCBjYW4gYmUgZnJlZWx5IGRpc3RyaWJ1dGVkIHRvIHRo ZSB0ZWNobmljYWwgY29tbXVuaXR5LiBUaGUgYXV0aG9ycyANCiAgICAgICAgICAgICAgICAgICAg IGJlbGlldmUgdGhhdCBhIGNvbW1vbiBhbmQgc2hhcmVkIHNwZWNpZmljYXRpb24gd2lsbCBmYWNp bGl0YXRlIGFkb3B0aW9uIG9mIHR3by1mYWN0b3IgDQogICAgICAgICAgICAgICAgICAgICBhdXRo ZW50aWNhdGlvbiBvbiB0aGUgSW50ZXJuZXQgYnkgZW5hYmxpbmcgaW50ZXJvcGVyYWJpbGl0eSBi ZXR3ZWVuIGNvbW1lcmNpYWwgYW5kIA0KICAgICAgICAgICAgICAgICAgICAgb3Blbi1zb3VyY2Ug aW1wbGVtZW50YXRpb25zLjwvdD4NCgkJPC9hYnN0cmFjdD4NCgk8L2Zyb250Pg0KCTxtaWRkbGU+ DQoJCTxzZWN0aW9uIHRpdGxlPSJJbnRyb2R1Y3Rpb24iPg0KCQkJPHQ+V2l0aCBpbmNyZWFzaW5n IHVzZSBvZiBzeW1tZXRyaWMga2V5IGJhc2VkIGF1dGhlbnRpY2F0aW9uIHN5c3RlbXMgc3VjaCBh cyBzeXN0ZW1zIGJhc2VkIG9uZSB0aW1lIHBhc3N3b3JkIChPVFApIGFuZCBjaGFsbGVuZ2UgDQoJ CXJlc3BvbnNlIG1lY2hhbmlzbXMsIHRoZXJlIGlzIGEgbmVlZCBmb3IgdmVuZG9yIGludGVyb3Bl cmFiaWxpdHkgYW5kIGEgc3RhbmRhcmQgZm9ybWF0IGZvciBpbXBvcnRpbmcsIGV4cG9ydGluZyBv ciANCgkJcHJvdmlzaW9uaW5nIHN5bW1ldHJpYyBrZXlzIGZyb20gb25lIHN5c3RlbSB0byBhbm90 aGVyLiBUcmFkaXRpb25hbGx5IGF1dGhlbnRpY2F0aW9uIHNlcnZlciB2ZW5kb3JzIA0KCQlhbmQg c2VydmljZSBwcm92aWRlcnMgaGF2ZSB1c2VkIHByb3ByaWV0YXJ5IGZvcm1hdHMgZm9yIGltcG9y dGluZywgZXhwb3J0aW5nIGFuZCBwcm92aXNpb25pbmcgdGhlc2Uga2V5cyANCgkJaW50byB0aGVp ciBzeXN0ZW1zIG1ha2luZyBpdCBoYXJkIHRvIHVzZSB0b2tlbnMgZnJvbSB2ZW5kb3IgQSB3aXRo IGEgc2VydmVyIGZyb20gdmVuZG9yIEIuPC90Pg0KCQkJPHQ+VGhpcyBJbnRlcm5ldCBkcmFmdCBk ZXNjcmliZXMgYSBzdGFuZGFyZCBmb3JtYXQgZm9yIHNlcmlhbGl6aW5nIHN5bW1ldHJpYyBrZXlz IHN1Y2ggYXMgT1RQIHNoYXJlZCBzZWNyZXRzIGZvciBzeXN0ZW0gaW1wb3J0LCBleHBvcnQgb3Ig bmV0d29yay9wcm90b2NvbCB0cmFuc3BvcnQuIA0KCQlUaGUgZ29hbCBpcyB0aGF0IA0KCQl0aGUg Zm9ybWF0IHdpbGwgZmFjaWxpdGF0ZSBkeW5hbWljIHByb3Zpc2lvbmluZyBhbmQgdHJhbnNmZXIg b2YgYSBzeW1tZXRyaWMga2V5cyBzdWNoIGFzIGFuIE9UUCBzaGFyZWQgc2VjcmV0IG9yIA0KICAg ICAgICBhbiBlbmNyeXB0aW9uIGtleSBvZiBkaWZmZXJlbnQgdHlwZXMuIEluIHRoZSBjYXNlIG9m IE9UUCBzaGFyZWQgc2VjcmV0cywgdGhlIGZvcm1hdCB3aWxsIGZhY2lsaXRhdGUgDQogICAgICAg IGR5bmFtaWMgcHJvdmlzaW9uaW5nIHVzaW5nIGFuIG9ubGluZSBwcm92aXNpb25pbmcgcHJvdG9j b2wgdG8gZGlmZmVyZW50IGZsYXZvcnMgb2YgZW1iZWRkZWQgdG9rZW5zIG9yIGFsbG93IA0KICAg ICAgICBjdXN0b21lcnMgdG8gaW1wb3J0IG5ldyBvciBleGlzdGluZyB0b2tlbnMgaW4gYmF0Y2gg b3Igc2luZ2xlIGluc3RhbmNlcyBpbnRvIGEgY29tcGxpYW50IHN5c3RlbS48L3Q+DQoJCQk8dD5U aGlzIGRyYWZ0IGFsc28gc3BlY2lmaWVzIHRoZSBrZXkgYXR0cmlidXRlcyByZXF1aXJlZCBmb3Ig Y29tcHV0YXRpb24gc3VjaCBhcyB0aGUgaW5pdGlhbCBldmVudCANCgkJY291bnRlciB1c2VkIGlu IHRoZSBIT1RQIGFsZ29yaXRobSA8eHJlZiB0YXJnZXQ9IkhPVFAiLz4uIEl0IGlzIGFsc28gYXBw bGljYWJsZSBmb3Igb3RoZXIgDQogICAgICAgIHRpbWUtYmFzZWQgb3IgcHJvcHJpZXRhcnkgYWxn b3JpdGhtcy4gPC90Pg0KCQkJPHQ+VG8gcHJvdmlkZSBhbiBhbmFsb2d5LCBpbiBwdWJsaWMga2V5 IGVudmlyb25tZW50cyB0aGUgUEtDUyMxMiBmb3JtYXQgPHhyZWYgdGFyZ2V0PSJQS0NTMTIiLz4g aXMgY29tbW9ubHkgdXNlZCBmb3IgDQoJCWltcG9ydGluZyBhbmQgZXhwb3J0aW5nIHByaXZhdGUg a2V5cyBhbmQgY2VydGlmaWNhdGVzIGJldHdlZW4gc3lzdGVtcy4gSW4gdGhlIGVudmlyb25tZW50 cyBvdXRsaW5lZCANCgkJaW4gdGhpcyBkb2N1bWVudCB3aGVyZSBPVFAga2V5cyBtYXkgYmUgdHJh bnNwb3J0ZWQgZGlyZWN0bHkgZG93biB0byBzbWFydGNhcmRzIG9yIGRldmljZXMgDQoJCXdpdGgg bGltaXRlZCBjb21wdXRpbmcgY2FwYWJpbGl0aWVzLCBhIGZvcm1hdCB3aXRoIHNtYWxsIChzaXpl IGluIGJ5dGVzKSBhbmQgZXhwbGljaXQgc2hhcmVkIHNlY3JldCANCiAgICAgICAgY29uZmlndXJh dGlvbiBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gaXMgZGVzaXJhYmxlLCBhdm9pZGluZyBjb21wbGV4 aXR5IG9mIFBLQ1MjMTIuIEZvciBleGFtcGxlLA0KICAgICAgICBvbmUgd291bGQgaGF2ZSB0byB1 c2Ugb3BhcXVlIGRhdGEgd2l0aGluIFBLQ1MjMTIgdG8gY2Fycnkgc2hhcmVkIHNlY3JldCBhdHRy aWJ1dGVzIHVzZWQgZm9yIE9UUCANCiAgICAgICAgY2FsY3VsYXRpb25zLCB3aGVyZWFzIGEgbW9y ZSBleHBsaWNpdCBhdHRyaWJ1dGUgc2NoZW1hIGRlZmluaXRpb24gaXMgYmV0dGVyIGZvciBpbnRl cm9wZXJhYmlsaXR5DQogICAgICAgIGFuZCBlZmZpY2llbmN5LjwvdD4NCgkJPC9zZWN0aW9uPg0K CQk8c2VjdGlvbiB0aXRsZT0iVGVybWlub2xvZ3kiPg0KICAgICAgICAgIDxzZWN0aW9uIHRpdGxl PSJLZXkgV29yZHMiPg0KCQkJPHQ+VGhlIGtleSB3b3JkcyAiTVVTVCIsICJNVVNUIE5PVCIsICJS RVFVSVJFRCIsICJTSEFMTCIsDQogICAgICAgICAgICAiU0hBTEwgTk9UIiwgIlNIT1VMRCIsICJT SE9VTEQgTk9UIiwgIlJFQ09NTUVOREVEIiwgIk1BWSIsDQogICAgICAgICAgICBhbmQgIk9QVElP TkFMIiBpbiB0aGlzIGRvY3VtZW50IGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcw0KICAgICAgICAg ICAgZGVzY3JpYmVkIGluIDx4cmVmIHRhcmdldD0iUkZDMjExOSIvPi48L3Q+DQogICAgICAgICAg PC9zZWN0aW9uPg0KICAgICAgICAgICAgPHNlY3Rpb24gdGl0bGU9IkRlZmluaXRpb25zIj4NCiAg ICAgICAgICAgICAgPHQ+VGhpcyBzZWN0aW9uIGRlZmluZXMgdGVybXMgdXNlZCBpbiB0aGlzIGRv Y3VtZW50LiBUaGUgc2FtZSB0ZXJtcyANCiAgICAgICAgICAgICAgICBtYXkgYmUgZGVmaW5lZCBk aWZmZXJlbnRseSBpbiBvdGhlciBkb2N1bWVudHMuDQogICAgICAgICAgICAgICAgPGxpc3Qgc3R5 bGU9ImhhbmdpbmciPg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkF1dGhlbnRpY2F0 aW9uIFRva2VuOiI+QSBwaHlzaWNhbCBkZXZpY2UgdGhhdCBhbiBhdXRob3JpemVkIHVzZXIgb2Yg DQogICAgICAgICAgICAgICAgICAgIGNvbXB1dGVyIHNlcnZpY2VzIGlzIGdpdmVuIHRvIGFpZCBp biBhdXRoZW50aWNhdGlvbi4gVGhlIHRlcm0gbWF5IGFsc28gcmVmZXIgdG8gDQogICAgICAgICAg ICAgICAgICBzb2Z0d2FyZSB0b2tlbnMuPC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1Rl eHQ9IkJ1bGsgUHJvdmlzaW9uaW5nOiI+VHJhbnNmZXJyaW5nIG11bHRpcGxlIGtleXMgbGlua2Vk IHRvIG11bHRpcGxlIGRldmljZXMgaW4gYSBzaW5nbGUgZXhlY3V0aW9uIHN0ZXAgd2l0aGluIG9u ZSBzaW5nbGUgUFNLQyBLZXlDb250YWluZXI8L3Q+DQogICAgICAgICAgICAgICAgICA8dCBoYW5n VGV4dD0iQ3J5cHRvZ3JhcGhpYyBNb2R1bGU6Ij5BIGNvbXBvbmVudCBvZiBhbiBhcHBsaWNhdGlv biwgd2hpY2ggZW5hYmxlcw0KICAgICAgIHN5bW1ldHJpYyBrZXkgY3J5cHRvZ3JhcGhpYyBmdW5j dGlvbmFsaXR5PC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNyeXB0b2dyYXBo aWMgS2V5OiI+QSBwYXJhbWV0ZXIgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgY3J5cHRvZ3Jh cGhpYyANCiAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtIHRoYXQgZGV0ZXJtaW5lcyBpdHMg b3BlcmF0aW9uIGluIHN1Y2ggYSB3YXkgdGhhdCBhbiBlbnRpdHkgd2l0aCBrbm93bGVkZ2UgDQog ICAgICAgICAgICAgICAgICAgIG9mIHRoZSBrZXkgY2FuIHJlcHJvZHVjZSBvciByZXZlcnNlIHRo ZSBvcGVyYXRpb24sIHdoaWxlIGFuIGVudGl0eSB3aXRob3V0IGtub3dsZWRnZSANCiAgICAgICAg ICAgICAgICAgIG9mIHRoZSBrZXkgY2Fubm90IChzZWUgPHhyZWYgdGFyZ2V0PSJOSVNULVNQODAw LTU3Ii8+KTwvdD4NCiAgICAgICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDcnlwdG9ncmFwaGlj IFRva2VuOiI+U2VlIEF1dGhlbnRpY2F0aW9uIFRva2VuPC90Pg0KICAgICAgICAgICAgICAgICAg PHQgaGFuZ1RleHQ9IkRldmljZToiPkEgcGh5c2ljYWwgcGllY2Ugb2YgaGFyZHdhcmUsIG9yIGEg c29mdHdhcmUgZnJhbWV3b3JrLCB0aGF0DQogICAgICAgICAgICAgICAgICBob3N0cyBzeW1tZXRy aWMga2V5czwvdD4NCiAgICAgICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJEZXZpY2UgSUQgKERl dmljZUlkKToiPkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkZXZpY2UsIHJlcHJlc2VudGlu ZyANCiAgICAgICAgICAgICAgICAgIHRoZSBpZGVudGlmeWluZyBjcml0ZXJpYSB0byB1bmlxdWVs eSBpZGVudGlmeSBhIGRldmljZTwvdD4NCiAgICAgICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJE eW5hbWljIFByb3Zpc2lvbmluZzoiPlVzYWdlIG9mIGEgcHJvdG9jb2wsIHN1Y2ggYXMgRFNLUFAs IHRvIG1ha2UgYSBrZXkgY29udGFpbmVyIGF2YWlsYWJsZSB0byBhIHJlY2lwaWVudDwvdD4NCiAg ICAgICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJFbmNyeXB0aW9uIEtleToiPkEga2V5IHVzZWQg dG8gZW5jcnlwdCBrZXk8L3Q+DQogICAgICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iS2V5OiI+ U2VlIENyeXB0b2dyYXBoaWMgS2V5PC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IkhhcmR3YXJlIFRva2VuOiI+U2VlIEF1dGhlbnRpY2F0aW9uIFRva2VuPC90Pg0KICAgICAgICAg ICAgICAgICAgPHQgaGFuZ1RleHQ9IktleSBBbGdvcml0aG06Ij5BIHdlbGwtZGVmaW5lZCBjb21w dXRhdGlvbmFsIHByb2NlZHVyZSB0aGF0IHRha2VzIA0KICAgICAgICAgICAgICAgICAgdmFyaWFi bGUgaW5wdXRzIGluY2x1ZGluZyBhIGNyeXB0b2dyYXBoaWMga2V5IGFuZCBwcm9kdWNlcyBhbiBv dXRwdXQuPC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IktleSBDb250YWluZXI6 Ij5BbiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgc3ltbWV0cmljIGtleXMgYW5kIHRoZWlyDQog ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIGZvciBzZXQgb2YgZGV2aWNlczwvdD4NCiAgICAg ICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJLZXkgSUQgKEtleUlEKToiPkEgdW5pcXVlIGlkZW50 aWZpZXIgZm9yIHRoZSBzeW1tZXRyaWMga2V5PC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFu Z1RleHQ9IktleSBJc3N1ZXI6Ij5BbiBvcmdhbml6YXRpb24gdGhhdCBpc3N1ZXMgc3ltbWV0cmlj IGtleXMgdG8gZW5kLXVzZXJzPC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9Iktl eSBUeXBlOiI+VGhlIHR5cGUgb2Ygc3ltbWV0cmljIGtleSBjcnlwdG9ncmFwaGljIG1ldGhvZHMg Zm9yIHdoaWNoDQogICAgICAgICAgICAgICAgICAgIHRoZSBrZXkgd2lsbCBiZSB1c2VkIChlLmcu LCBPQVRIIEhPVFAgb3IgUlNBIFNlY3VySUQgYXV0aGVudGljYXRpb24sIEFFUyBlbmNyeXB0aW9u LCANCiAgICAgICAgICAgICAgICAgIGV0Yy4pPC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFu Z1RleHQ9IlNlY3JldCBLZXk6Ij5UaGUgc3ltbWV0cmljIGtleSBkYXRhPC90Pg0KICAgICAgICAg ICAgICAgICAgPHQgaGFuZ1RleHQ9IlNvZnR3YXJlIFRva2VuOiI+QSB0eXBlIG9mIGF1dGhlbnRp Y2F0aW9uIHRva2VuIHRoYXQgaXMgc3RvcmVkIG9uIA0KICAgICAgICAgICAgICAgICAgICBhIGdl bmVyYWwtcHVycG9zZSBlbGVjdHJvbmljIGRldmljZSBzdWNoIGFzIGEgZGVza3RvcCBjb21wdXRl ciwgbGFwdG9wLCBQREEsIA0KICAgICAgICAgICAgICAgICAgb3IgbW9iaWxlIHBob25lIDwvdD4N CiAgICAgICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJUb2tlbjoiPlNlZSBBdXRoZW50aWNhdGlv biBUb2tlbjwvdD4NCiAgICAgICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJVc2VyOiI+VGhlIHBl cnNvbiBvciBjbGllbnQgdG8gd2hvbSBkZXZpY2VzIGFyZSBpc3N1ZWQ8L3Q+DQogICAgICAgICAg ICAgICAgICA8dCBoYW5nVGV4dD0iVXNlciBJRDoiPkEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRo ZSB1c2VyIG9yIGNsaWVudDwvdD4NCiAgICAgICAgICAgICAgPC9saXN0PjwvdD4gICAgICAgICAg ICANCiAgICAgICAgICA8L3NlY3Rpb24+DQoJCTwvc2VjdGlvbj4NCgkNCgkJDQoJCTxzZWN0aW9u IHRpdGxlPSJVc2UgQ2FzZXMiPg0KCQkNCgkJCTx0PlRoaXMgc2VjdGlvbiBkZXNjcmliZXMgYSBj b21wcmVoZW5zaXZlIGxpc3Qgb2YgdXNlIGNhc2VzIHRoYXQgaW5zcGlyZWQgdGhlIGRldmVsb3Bt ZW50IG9mIA0KCQl0aGlzIHNwZWNpZmljYXRpb24uIFRoZXNlIHJlcXVpcmVtZW50cyB3ZXJlIHVz ZWQgdG8gZGVyaXZlIHRoZSBwcmltYXJ5IHJlcXVpcmVtZW50IHRoYXQgZHJvdmUgdGhlIGRlc2ln bi4NCgkJVGhlc2UgcmVxdWlyZW1lbnRzIGFyZSBjb3ZlcmVkIGluIHRoZSBuZXh0IHNlY3Rpb24u PC90Pg0KCQkJPHQ+VGhlc2UgdXNlIGNhc2VzIGFsc28gaGVscCBpbiB1bmRlcnN0YW5kaW5nIHRo ZSBhcHBsaWNhYmlsaXR5IG9mIHRoaXMgc3BlY2lmaWNhdGlvbiB0byByZWFsIHdvcmxkIHNpdHVh dGlvbnMuPC90Pg0KCQkJPHNlY3Rpb24gdGl0bGU9Ik9ubGluZSBVc2UgQ2FzZXMiPg0KCQkJDQoJ CQkJPHQ+VGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgdXNlIGNhc2VzIHJlbGF0ZWQgdG8gcHJv dmlzaW9uaW5nIHRoZSBrZXlzIA0KCQl1c2luZyBhbiBvbmxpbmUgcHJvdmlzaW9uaW5nIHByb3Rv Y29sIHN1Y2ggYXMgPHhyZWYgdGFyZ2V0PSJEU0tQUCIvPjwvdD4NCgkJDQoJCQkJPHNlY3Rpb24g dGl0bGU9IlRyYW5zcG9ydCBvZiBrZXlzIGZyb20gU2VydmVyIHRvIENyeXB0byBNb2R1bGUiPg0K CQkJCQk8dD5Gb3IgZXhhbXBsZSwgYSBtb2JpbGUgZGV2aWNlIHVzZXIgd2FudHMgdG8gb2J0YWlu IGEgc3ltbWV0cmljIGtleSBmb3IgdXNlIHdpdGggYSBjcnlwdG9tb2R1bGUgb24gdGhlIGRldmlj ZS4gIFRoZSBjcnlwdG9tb2R1bGUgY2xpZW50IGZyb20gdmVuZG9yIEEgaW5pdGlhdGVzIHRoZSBw cm92aXNpb25pbmcgcHJvY2VzcyBhZ2FpbnN0IGEgcHJvdmlzaW9uaW5nIHN5c3RlbSBmcm9tIHZl bmRvciBCIHVzaW5nIGEgc3RhbmRhcmRzLWJhc2VkIHByb3Zpc2lvbmluZyBwcm90b2NvbCBzdWNo IGFzIDx4cmVmIHRhcmdldD0iRFNLUFAiLz4uIFRoZSBwcm92aXNpb25pbmcgZW50aXR5IGRlbGl2 ZXJzIG9uZSBvciBtb3JlIGtleXMgaW4gYSBzdGFuZGFyZCBmb3JtYXQgdGhhdCBjYW4gYmUgcHJv Y2Vzc2VkIGJ5IHRoZSBtb2JpbGUgZGV2aWNlLjwvdD4NCgkJDQoJCQkJCTx0PkZvciBleGFtcGxl LCBpbiBhIHZhcmlhdGlvbiBvZiB0aGUgYWJvdmUsIGluc3RlYWQgb2YgdGhlIHVzZXIncyBtb2Jp bGUgcGhvbmUsIGEga2V5IA0KCQlpcyBwcm92aXNpb25lZCBpbiB0aGUgdXNlcidzIHNvZnQgdG9r ZW4gYXBwbGljYXRpb24gb24gYSBsYXB0b3AgdXNpbmcgYSANCgkJbmV0d29yay1iYXNlZCBvbmxp bmUgcHJvdG9jb2wuIEFzIGJlZm9yZSwgdGhlIHByb3Zpc2lvbmluZyBzeXN0ZW0gZGVsaXZlcnMg YSBrZXkgaW4gYSBzdGFuZGFyZCBmb3JtYXQgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IHRoZSBz b2Z0IHRva2VuIG9uIHRoZSBQQy48L3Q+DQoNCgkJCQkJPHQ+Rm9yIGV4YW1wbGUsIHRoZSBlbmQt dXNlciBvciB0aGUga2V5IGlzc3VlciB3YW50cyB0byB1cGRhdGUgb3IgY29uZmlndXJlIGFuIGV4 aXN0aW5nIA0KICAgICAgICAgICAgICAgICAgICBrZXkgaW4gdGhlIGNyeXB0b21vZHVsZSBhbmQg cmVxdWVzdHMgYSByZXBsYWNlbWVudCBrZXkgY29udGFpbmVyLiANCiAgICAgICAgICAgICAgICAg ICAgVGhlIGNvbnRhaW5lciBtYXkgb3IgbWF5IG5vdCBpbmNsdWRlIGEgbmV3IGtleSBhbmQgbWF5 IGluY2x1ZGUgbmV3IG9yIHVwZGF0ZWQgDQogICAgICAgICAgICAgICAgICAgIGtleSBhdHRyaWJ1 dGVzIHN1Y2ggYXMgYSBuZXcgY291bnRlciB2YWx1ZSBpbiBIT1RQIGtleSBjYXNlLCANCiAgICAg ICAgICAgICAgICAgICAgYSBtb2RpZmllZCByZXNwb25zZSBmb3JtYXQgb3IgbGVuZ3RoLCBhIG5l dyBmcmllbmRseSBuYW1lLCBldGMuPC90Pg0KDQoJCQkJPC9zZWN0aW9uPg0KDQoJCQkJPHNlY3Rp b24gdGl0bGU9IlRyYW5zcG9ydCBvZiBrZXlzIGZyb20gQ3J5cHRvIE1vZHVsZSB0byBDcnlwdG8g TW9kdWxlIj4NCgkJCQkJPHQ+Rm9yIGV4YW1wbGUsIGEgdXNlciB3YW50cyB0byB0cmFuc3BvcnQg YSBrZXkgZnJvbSBvbmUgY3J5cHRvbW9kdWxlIHRvIGFub3RoZXIuICBUaGVyZSBtYXkgYmUgdHdv IGNyeXB0b2dyYXBoaWMgbW9kdWxlcywgb25lIG9uIGEgY29tcHV0ZXIgb25lIG9uIGEgbW9iaWxl IHBob25lLCBhbmQgdGhlIHVzZXIgd2FudHMgdG8gdHJhbnNwb3J0IGEga2V5IGZyb20gdGhlIGNv bXB1dGVyIHRvIHRoZSBtb2JpbGUgcGhvbmUuICBUaGUgdXNlciBjYW4gZXhwb3J0IHRoZSBrZXkg YW5kIHJlbGF0ZWQgZGF0YSBpbiBhIHN0YW5kYXJkIGZvcm1hdCBmb3IgaW5wdXQgaW50byB0aGUg b3RoZXIgY3J5cHRvbW9kdWxlLjwvdD4NCgkJCQk8L3NlY3Rpb24+DQoNCgkJCQk8c2VjdGlvbiB0 aXRsZT0iVHJhbnNwb3J0IG9mIGtleXMgZnJvbSBDcnlwdG8gTW9kdWxlIHRvIFNlcnZlciI+DQoJ CQkJCTx0PkZvciBleGFtcGxlLCBhIHVzZXIgd2FudHMgdG8gYWN0aXZhdGUgYW5kIHVzZSBhIG5l dyBrZXkgYW5kIHJlbGF0ZWQgZGF0YSBhZ2FpbnN0IGEgdmFsaWRhdGlvbiBzeXN0ZW0gdGhhdCBp cyBub3QgYXdhcmUgb2YgdGhpcyBrZXkuICBUaGlzIGtleSBtYXkgYmUgZW1iZWRkZWQgaW4gdGhl IGNyeXB0b21vZHVsZSAoZS5nLiAgU0QgY2FyZCwgVVNCIGRyaXZlKSB0aGF0IHRoZSB1c2VyIGhh cyBwdXJjaGFzZWQgYXQgdGhlIGxvY2FsIGVsZWN0cm9uaWNzIHJldGFpbGVyLiAgQWxvbmcgd2l0 aCB0aGUgY3J5cHRvbW9kdWxlLCB0aGUgdXNlciBtYXkgZ2V0IHRoZSBrZXkgb24gYSBDRCBvciBh IGZsb3BweSBpbiBhIHN0YW5kYXJkIGZvcm1hdC4gIFRoZSB1c2VyIGNhbiBub3cgdXBsb2FkIHZp YSBhIHNlY3VyZSBvbmxpbmUgY2hhbm5lbCBvciBpbXBvcnQgdGhpcyBrZXkgYW5kIHJlbGF0ZWQg ZGF0YSBpbnRvIHRoZSBuZXcgdmFsaWRhdGlvbiBzeXN0ZW0gYW5kIHN0YXJ0IHVzaW5nIHRoZSBr ZXkuPC90PgkJCQkNCjwvc2VjdGlvbj4NCgkJCQkNCgkJCQk8c2VjdGlvbiB0aXRsZT0iU2VydmVy IHRvIHNlcnZlciBCdWxrIGltcG9ydC9leHBvcnQgb2Yga2V5cyI+DQoJCQkJCTx0PkZyb20gdGlt ZSB0byB0aW1lLCBhIGtleSBtYW5hZ2VtZW50IHN5c3RlbSBtYXkgYmUgcmVxdWlyZWQgdG8gaW1w b3J0IG9yIGV4cG9ydCBrZXlzIGluIGJ1bGsgZnJvbSBvbmUgZW50aXR5IHRvIGFub3RoZXIuIDwv dD4NCgkJCQkJPHQ+Rm9yIGV4YW1wbGUsIGluc3RlYWQgb2YgaW1wb3J0aW5nIGtleXMgZnJvbSBh IG1hbnVmYWN0dXJlciB1c2luZyBhIGZpbGUsIGEgdmFsaWRhdGlvbiBzZXJ2ZXIgbWF5IGRvd25s b2FkIHRoZSBrZXlzIHVzaW5nIGFuIG9ubGluZSBwcm90b2NvbC4gIFRoZSBrZXlzIGNhbiBiZSBk b3dubG9hZGVkIGluIGEgc3RhbmRhcmQgZm9ybWF0IHRoYXQgY2FuIGJlIHByb2Nlc3NlZCBieSBh IHZhbGlkYXRpb24gc3lzdGVtLjwvdD4NCgkJCQkJPHQ+Rm9yIGV4YW1wbGUsIGluIGEgdmFyaWF0 aW9uIG9mIHRoZSBhYm92ZSwgYW4gT1RBIGtleSBwcm92aXNpb25pbmcgZ2F0ZXdheSB0aGF0IHBy b3Zpc2lvbnMga2V5cyB0byBtb2JpbGUgcGhvbmVzIG1heSBvYnRhaW4ga2V5IG1hdGVyaWFsIGZy b20gYSBrZXkgaXNzdWVyIHVzaW5nIGFuIG9ubGluZSBwcm90b2NvbC4gIFRoZSBrZXlzIGFyZSBk ZWxpdmVyZWQgaW4gYSBzdGFuZGFyZCBmb3JtYXQgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IHRo ZSBrZXkgcHJvdmlzaW9uaW5nIGdhdGV3YXkgYW5kIHN1YnNlcXVlbnRseSBzZW50IHRvIHRoZSBl bmQtdXNlcidzIG1vYmlsZSBwaG9uZS48L3Q+DQoJCQkJPC9zZWN0aW9uPg0KCQkJPC9zZWN0aW9u Pg0KCQkJDQoJCQk8c2VjdGlvbiB0aXRsZT0iT2ZmbGluZSBVc2UgQ2FzZXMiPg0KCQkJCTx0PlRo aXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIHVzZSBjYXNlcyByZWxhdGluZyB0byBvZmZsaW5lIHRy YW5zcG9ydCBvZiBrZXlzIGZyb20gb25lIHN5c3RlbSB0byBhbm90aGVyLCANCgkJdXNpbmcgc29t ZSBmb3JtIG9mIGV4cG9ydCBhbmQgaW1wb3J0IG1vZGVsLiA8L3Q+DQoNCgkJCQk8c2VjdGlvbiB0 aXRsZT0iU2VydmVyIHRvIHNlcnZlciBCdWxrIGltcG9ydC9leHBvcnQgb2Yga2V5cyI+DQoJCQkJ CTx0PkZvciBleGFtcGxlLCBjcnlwdG8gbW9kdWxlcyBzdWNoIGFzIE9UUCBhdXRoZW50aWNhdGlv biB0b2tlbnMsIG1heSBoYXZlIHRoZWlyIHN5bW1ldHJpYyBrZXlzIGluaXRpYWxpemVkIGR1cmlu ZyB0aGUgbWFudWZhY3R1cmluZyBwcm9jZXNzIGluIGJ1bGssIHJlcXVpcmluZyBjb3BpZXMgb2Yg dGhlIGtleXMgYW5kIGFsZ29yaXRobSBkYXRhIHRvIGJlIGxvYWRlZCBpbnRvIHRoZSBhdXRoZW50 aWNhdGlvbiBzeXN0ZW0gdGhyb3VnaCBhIGZpbGUgb24gcG9ydGFibGUgbWVkaWEuICBUaGUgbWFu dWZhY3R1cmVyIHByb3ZpZGVzIHRoZSBrZXlzIGFuZCByZWxhdGVkIGRhdGEgaW4gdGhlIGZvcm0g b2YgYSBmaWxlIGNvbnRhaW5pbmcgcmVjb3JkcyBpbiBzdGFuZGFyZCBmb3JtYXQsIHR5cGljYWxs eSBvbiBhIENELiAgTm90ZSB0aGF0IHRoZSB0b2tlbiBtYW51ZmFjdHVyZXIgYW5kIHRoZSB2ZW5k b3IgZm9yIHRoZSB2YWxpZGF0aW9uIHN5c3RlbSBtYXkgYmUgdGhlIHNhbWUgb3IgZGlmZmVyZW50 LiBTb21lIGNyeXB0byBtb2R1bGVzIHdpbGwgYWxsb3cgbG9jYWwgUElOIG1hbmFnZW1lbnQgKHRo ZSBkZXZpY2Ugd2lsbCBoYXZlIGEgUElOIHBhZCkgaGVuY2UgcmFuZG9tIGluaXRpYWwgUElOcyBz ZXQgYXQgbWFudWZhY3R1cmluZyBzaG91bGQgYmUgdHJhbnNtaXR0ZWQgdG9nZXRoZXIgd2l0aCB0 aGUgcmVzcGVjdGl2ZSBrZXlzIHRoZXkgcHJvdGVjdC48L3Q+DQoJCQkJCTx0PkZvciBleGFtcGxl LCBhbiBlbnRlcnByaXNlIHdhbnRzIHRvIHBvcnQga2V5cyBhbmQgcmVsYXRlZCBkYXRhIGZyb20g YW4gZXhpc3RpbmcgdmFsaWRhdGlvbiBzeXN0ZW0gQSBpbnRvIGEgZGlmZmVyZW50IHZhbGlkYXRp b24gc3lzdGVtIEIuIFRoZSBleGlzdGluZyB2YWxpZGF0aW9uIHN5c3RlbSBwcm92aWRlcyB0aGUg ZW50ZXJwcmlzZSB3aXRoIGEgZnVuY3Rpb25hbGl0eSB0aGF0IGVuYWJsZXMgZXhwb3J0IG9mIGtl eXMgYW5kIHJlbGF0ZWQgZGF0YSAoZS5nLiBmb3IgT1RQIGF1dGhlbnRpY2F0aW9uIHRva2Vucykg aW4gYSBzdGFuZGFyZCBmb3JtYXQuICBTaW5jZSB0aGUgT1RQIHRva2VucyBhcmUgaW4gdGhlIHN0 YW5kYXJkIGZvcm1hdCwgdGhlIGVudGVycHJpc2UgY2FuIGltcG9ydCB0aGUgdG9rZW4gcmVjb3Jk cyBpbnRvIHRoZSBuZXcgdmFsaWRhdGlvbiBzeXN0ZW0gQiBhbmQgc3RhcnQgdXNpbmcgdGhlIGV4 aXN0aW5nIHRva2Vucy4gIE5vdGUgdGhhdCB0aGUgdmVuZG9ycyBmb3IgdGhlIHR3byB2YWxpZGF0 aW9uIHN5c3RlbXMgbWF5IGJlIHRoZSBzYW1lIG9yIGRpZmZlcmVudC4gPC90Pg0KCQkJPC9zZWN0 aW9uPgkJCQkJDQoJCQkJDQoJCQk8L3NlY3Rpb24+DQoJCTwvc2VjdGlvbj4NCgkJPHNlY3Rpb24g dGl0bGU9IlJlcXVpcmVtZW50cyI+DQoJCQk8dD5UaGlzIHNlY3Rpb24gb3V0bGluZXMgdGhlIG1v c3QgcmVsZXZhbnQgcmVxdWlyZW1lbnRzIHRoYXQgYXJlIHRoZSBiYXNpcyBvZiANCgkJdGhpcyB3 b3JrLiBTZXZlcmFsIG9mIHRoZSByZXF1aXJlbWVudHMgd2VyZSBkZXJpdmVkIGZyb20gdXNlIGNh c2VzIGRlc2NyaWJlZCBhYm92ZS4gDQoNCgkJPGxpc3Qgc3R5bGU9ImZvcm1hdCBSJWQ6Ij4NCgkJ CQkJPHQ+VGhlIGZvcm1hdCBNVVNUIHN1cHBvcnQgdHJhbnNwb3J0IG9mIG11bHRpcGxlIHR5cGVz IG9mIHN5bW1ldHJpYyBrZXlzIGFuZCByZWxhdGVkIGF0dHJpYnV0ZXMgZm9yIGFsZ29yaXRobXMg DQoJCWluY2x1ZGluZyBIT1RQLCBvdGhlciBPVFAsIGNoYWxsZW5nZS1yZXNwb25zZSwgZXRjLjwv dD4NCgkJCQkJPHQ+VGhlIGZvcm1hdCBNVVNUIGhhbmRsZSB0aGUgc3ltbWV0cmljIGtleSBpdHNl bGYgYXMgd2VsbCBvZiBhdHRyaWJ1dGVzIHRoYXQgYXJlIA0KCQl0eXBpY2FsbHkgYXNzb2NpYXRl ZCB3aXRoIHN5bW1ldHJpYyBrZXlzLiBTb21lIG9mIHRoZXNlIGF0dHJpYnV0ZXMgbWF5IGJlDQoN CgkJCTxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD5VbmlxdWUgS2V5IElkZW50aWZp ZXI8L3Q+DQoJCQkJCQkJPHQ+SXNzdWVyIGluZm9ybWF0aW9uPC90Pg0KCQkJCQkJCTx0PkFsZ29y aXRobSBJRDwvdD4NCgkJCQkJCQk8dD5BbGdvcml0aG0gbW9kZTwvdD4NCgkJCQkJCQk8dD5Jc3N1 ZXIgTmFtZTwvdD4NCgkJCQkJCQk8dD5LZXkgZnJpZW5kbHkgbmFtZTwvdD4NCgkJCQkJCQk8dD5F dmVudCBjb3VudGVyIHZhbHVlIChtb3ZpbmcgZmFjdG9yIGZvciBPVFAgYWxnb3JpdGhtcyk8L3Q+ DQoJCQkJCQkJPHQ+VGltZSB2YWx1ZTwvdD4NCgkJCQkJCTwvbGlzdD4NCgkJCQkJPC90Pg0KCQkJ CQk8dD5UaGUgZm9ybWF0IFNIT1VMRCBzdXBwb3J0IGJvdGggb2ZmbGluZSBhbmQgb25saW5lIHNj ZW5hcmlvcy4gVGhhdCBpcyBpdCBzaG91bGQgYmUgDQoJCXNlcmlhbGl6YWJsZSB0byBhIGZpbGUg YXMgd2VsbCBhcyBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gdXNlIHRoaXMgZm9ybWF0IGluIG9u bGluZSANCgkJcHJvdmlzaW9uaW5nIHByb3RvY29scyBzdWNoIGFzIDx4cmVmIHRhcmdldD0iRFNL UFAiLz48L3Q+DQoJCQkJCTx0PlRoZSBmb3JtYXQgU0hPVUxEIGFsbG93IGJ1bGsgcmVwcmVzZW50 YXRpb24gb2Ygc3ltbWV0cmljIGtleXM8L3Q+DQoJCQkJCTx0PlRoZSBmb3JtYXQgU0hPVUxEIGFs bG93IGJ1bGsgcmVwcmVzZW50YXRpb24gb2YgUElOcyByZWxhdGVkIHRvIHNwZWNpZmljIGtleXM8 L3Q+DQoJCQkJCTx0PlRoZSBmb3JtYXQgU0hPVUxEIGJlIHBvcnRhYmxlIHRvIHZhcmlvdXMgcGxh dGZvcm1zLiBGdXJ0aGVybW9yZSwgaXQgU0hPVUxEIGJlIA0KCQljb21wdXRhdGlvbmFsbHkgZWZm aWNpZW50IHRvIHByb2Nlc3MuPC90Pg0KCQkJCQk8dD5UaGUgZm9ybWF0IE1VU1QgcHJvdmlkZSBh cHByb3ByaWF0ZSBsZXZlbCBvZiBzZWN1cml0eSBpbiB0ZXJtcyBvZiBkYXRhIGVuY3J5cHRpb24g DQoJCWFuZCBkYXRhIGludGVncml0eS4gPC90Pg0KCQkJCQk8dD5Gb3Igb25saW5lIHNjZW5hcmlv cyB0aGUgZm9ybWF0IFNIT1VMRCBOT1QgcmVseSBvbiB0cmFuc3BvcnQgbGV2ZWwgc2VjdXJpdHkg DQoJCShlLmcuLCBTU0wvVExTKSBmb3IgY29yZSBzZWN1cml0eSByZXF1aXJlbWVudHMuPC90Pg0K CQkJCQk8dD5UaGUgZm9ybWF0IFNIT1VMRCBiZSBleHRlbnNpYmxlLiBJdCBTSE9VTEQgZW5hYmxl IGV4dGVuc2lvbiBwb2ludHMgYWxsb3dpbmcgDQoJCXZlbmRvcnMgdG8gc3BlY2lmeSBhZGRpdGlv bmFsIGF0dHJpYnV0ZXMgaW4gdGhlIGZ1dHVyZS48L3Q+DQoJCQkJCTx0PlRoZSBmb3JtYXQgU0hP VUxEIGFsbG93IGZvciBkaXN0cmlidXRpb24gb2Yga2V5IGRlcml2YXRpb24gZGF0YSB3aXRob3V0 IA0KCQl0aGUgYWN0dWFsIHN5bW1ldHJpYyBrZXkgaXRzZWxmLiBUaGlzIGlzIHRvIHN1cHBvcnQg c3ltbWV0cmljIGtleSBtYW5hZ2VtZW50IHNjaGVtZXMgDQoJCXRoYXQgcmVseSBvbiBrZXkgZGVy aXZhdGlvbiBhbGdvcml0aG1zIGJhc2VkIG9uIGEgcHJlLXBsYWNlZCBtYXN0ZXIga2V5LiBUaGUg a2V5IA0KCQlkZXJpdmF0aW9uIGRhdGEgdHlwaWNhbGx5IGNvbnNpc3RzIG9mIGEgcmVmZXJlbmNl IHRvIHRoZSBrZXksIHJhdGhlciB0aGFuIHRoZSBrZXkgdmFsdWUgaXRzZWxmLjwvdD4NCgkJCQkJ PHQ+VGhlIGZvcm1hdCBTSE9VTEQgYWxsb3cgZm9yIGFkZGl0aW9uYWwgbGlmZWN5Y2xlIG1hbmFn ZW1lbnQgb3BlcmF0aW9ucyANCgkJc3VjaCBhcyBjb3VudGVyIHJlc3luY2hyb25pemF0aW9uLiBT dWNoIHByb2Nlc3NlcyByZXF1aXJlIGNvbmZpZGVudGlhbGl0eSBiZXR3ZWVuIGNsaWVudCANCgkJ YW5kIHNlcnZlciwgdGh1cyBjb3VsZCB1c2UgYSBjb21tb24gc2VjdXJlIGNvbnRhaW5lciBmb3Jt YXQsIHdpdGhvdXQgdGhlIHRyYW5zZmVyIG9mIGtleSBtYXRlcmlhbC48L3Q+DQoJCQkJCTx0PlRo ZSBmb3JtYXQgTVVTVCBzdXBwb3J0IHRoZSB1c2Ugb2YgcHJlLXNoYXJlZCBzeW1tZXRyaWMga2V5 cyB0byBlbnN1cmUgY29uZmlkZW50aWFsaXR5IG9mIA0KCQlzZW5zaXRpdmUgZGF0YSBlbGVtZW50 cy4gPC90Pg0KCQkJCQk8dD5UaGUgZm9ybWF0IE1VU1Qgc3VwcG9ydCBhIHBhc3N3b3JkLWJhc2Vk IGVuY3J5cHRpb24gKFBCRSkgPHhyZWYgdGFyZ2V0PSJQS0NTNSIvPiBzY2hlbWUgdG8gZW5zdXJl IA0KCQlzZWN1cml0eSBvZiBzZW5zaXRpdmUgZGF0YSBlbGVtZW50cy4gVGhpcyBpcyBhIHdpZGVs eSB1c2VkIG1ldGhvZCBmb3IgdmFyaW91cyBwcm92aXNpb25pbmcgc2NlbmFyaW9zLjwvdD4NCgkJ CQkJPHQ+VGhlIGZvcm1hdCBTSE9VTEQgc3VwcG9ydCBhc3ltbWV0cmljIGVuY3J5cHRpb24gYWxn b3JpdGhtcyBzdWNoIGFzIFJTQSB0byBlbnN1cmUgDQoJCWVuZC10by1lbmQgc2VjdXJpdHkgb2Yg c2Vuc2l0aXZlIGRhdGEgZWxlbWVudHMuIFRoaXMgaXMgdG8gc3VwcG9ydCBzY2VuYXJpb3MgDQoJ CXdoZXJlIGEgcHJlLXNldCBzaGFyZWQgZW5jcnlwdGlvbiBrZXkgaXMgZGlmZmljdWx0IHRvIHVz ZS4gPC90Pg0KCQkJCTwvbGlzdD4NCgkJCTwvdD4NCgkJPC9zZWN0aW9uPg0KCQk8c2VjdGlvbiB0 aXRsZT0iUG9ydGFibGUgS2V5IGNvbnRhaW5lciBkZWZpbml0aW9uIj4NCgkJCTx0PlRoZSBwb3J0 YWJsZSBrZXkgY29udGFpbmVyIGlzIGJhc2VkIG9uIGFuIFhNTCBzY2hlbWEgZGVmaW5pdGlvbiBh bmQgY29udGFpbnMgdGhlIGZvbGxvd2luZyBtYWluIGVudGl0aWVzOiANCgkJPGxpc3Qgc3R5bGU9 Im51bWJlcnMiPg0KCQkJCQk8dD5LZXlDb250YWluZXIgZW50aXR5IGFzIGRlZmluZWQgaW4gPHhy ZWYgdGFyZ2V0PSJLZXlDb250YWluZXJFbnRpdHkiLz4NCgkJCQkJPC90Pg0KCQkJCQk8dD5EZXZp Y2UgZW50aXR5IGFzIGRlZmluZWQgaW4gPHhyZWYgdGFyZ2V0PSJEZXZpY2VFbnRpdHkiLz4NCgkJ CQkJPC90Pg0KCQkJCQk8dD5LZXlQcm9wZXJ0aWVzIGVudGl0eSBhcyBkZWZpbmVkIGluIDx4cmVm IHRhcmdldD0iS2V5UHJvcGVydGllc0VudGl0eSIvPg0KCQkJCQk8L3Q+DQoJCQkJCTx0PktleSBl bnRpdHkgYXMgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9IktleUVudGl0eSIvPg0KCQkJCQk8L3Q+ DQoJCQkJPC9saXN0Pg0KCQkJPC90Pg0KCQkJPHQ+QWRkaXRpb25hbGx5IG90aGVyIFhNTCBzY2hl bWEgdHlwZXMgaGF2ZSBiZWVuIGRlZmluZWQgYW5kIGFyZSBkZXRhaWxlZCBpbiB0aGUgcmVsZXZh bnQgc3Vic2VjdGlvbnMgb2YgdGhpcyBkb2N1bWVudDwvdD4NCgkJCTx0PkEgS2V5Q29udGFpbmVy IE1BWSBjb250YWluIG9uZSBvciBtb3JlIERldmljZSBlbnRpdGllcy4gDQoJQSBEZXZpY2UgTUFZ IGNvbnRhaW4gb25lIG9yIG1vcmUgS2V5IGVudGl0aWVzPC90Pg0KCQkJPHQ+DQoJVGhlIGZpZ3Vy ZSBiZWxvdyBpbmRpY2F0ZXMgYSBwb3NzaWJsZSByZWxhdGlvbnNoaXAgZGlhZ3JhbSBvZiBhIGNv bnRhaW5lci4NCgk8L3Q+DQoJCQk8ZmlndXJlPg0KCQkJCTxhcnR3b3JrPg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCnwgS2V5Q29udGFpbmVyICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8DQp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfA0KfCAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgIHwN CnwgIHwgIEtleXByb3BlcnRpZXMgMSB8ICAgICAgICAgICAgICAgICAgICB8DQp8ICB8ICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfA0KfCAgLS0tLS0tLS0tLS0tLS0tLS0t LS0gICAgICAgICAgICAgICAgICAgIHwNCnwgIC0tLS0tLS0tLS0tLS0tLS0tLSAgIC0tLS0tLS0t LS0tLS0tLS0tICB8DQp8ICB8IERldmljZSAxICAgICAgIHwgICB8IERldmljZSBuICAgICAgfCAg fA0KfCAgfCAgICAgICAgICAgICAgICB8ICAgfCAgICAgICAgICAgICAgIHwgIHwNCnwgIHwgIC0t LS0tLS0tLS0tLSAgfCAgIHwgLS0tLS0tLS0tLS0tICB8ICB8DQp8ICB8ICB8IEtleSAxICAgIHwg IHwgICB8IHwgS2V5IG4gICAgfCAgfCAgfA0KfCAgfCAgLS0tLS0tLS0tLS0tICB8ICAgfCAtLS0t LS0tLS0tLS0gIHwgIHwNCnwgIHwgICAgICAgICAgICAgICAgfCAgIHwgICAgICAgICAgICAgICB8 ICB8DQp8ICB8ICAgICAgICAgICAgICAgIHwgICB8ICAgICAgICAgICAgICAgfCAgfA0KfCAgfCAg LS0tLS0tLS0tLS0tICB8ICAgfCAtLS0tLS0tLS0tLS0gIHwgIHwNCnwgIHwgIHwgS2V5IG0gICAg fCAgfCAgIHwgfCBLZXkgcCAgICB8ICB8ICB8DQp8ICB8ICAtLS0tLS0tLS0tLS0gIHwgICB8IC0t LS0tLS0tLS0tLSAgfCAgfA0KfCAgLS0tLS0tLS0tLS0tLS0tLS0tICAgLS0tLS0tLS0tLS0tLS0t LS0gIHwNCnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KCTwvYXJ0d29yaz4NCgkJ CTwvZmlndXJlPg0KCQkJPHQ+VGhlIGZvbGxvd2luZyBzZWN0aW9uIGRlc2NyaWJlIGluIGRldGFp bCBhbGwgdGhlIGVudGl0aWVzIGFuZCByZWxhdGVkIFhNTCBzY2hlbWEgZWxlbWVudHMgYW5kIGF0 dHJpYnV0ZXM6PC90Pg0KCQkJPHNlY3Rpb24gYW5jaG9yPSJLZXlDb250YWluZXJFbnRpdHkiIHRp dGxlPSJLZXlDb250YWluZXIiPg0KCQkJCTx0PlRoZSBLZXlDb250YWluZXIgcmVwcmVzZW50cyB0 aGUga2V5IA0KCWNvbnRhaW5lciBlbnRpdHkuICBBIENvbnRhaW5lciBNQVkgY29udGFpbiBtb3Jl IHRoYW4gb25lIERldmljZSBlbnRpdHk7IGVhY2ggRGV2aWNlIA0KCWVudGl0eSBNQVkgY29udGFp biBtb3JlIHRoYW4gb25lIEtleSBlbnRpdHkuPC90Pg0KCQkJCTx0PlRoZSBLZXlDb250YWluZXIg aXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvdD4NCgkJCQk8ZmlndXJlPg0KCQkJCQk8cHJlYW1ibGUv Pg0KCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjx4czpjb21wbGV4VHlwZSBuYW1lPSJLZXlDb250 YWluZXJUeXBlIj4NCgk8eHM6c2VxdWVuY2U+DQoJCTx4czplbGVtZW50IG5hbWU9IkVuY3J5cHRp b25LZXkiIA0KCQl0eXBlPSJkczpLZXlJbmZvVHlwZSIgbWluT2NjdXJzPSIwIi8+DQoJCTx4czpl bGVtZW50IG5hbWU9Ik1BQ0FsZ29yaXRobSIgDQoJCXR5cGU9InBza2M6S2V5QWxnb3JpdGhtVHlw ZSIgbWluT2NjdXJzPSIwIi8+DQoJCTx4czplbGVtZW50IG5hbWU9IkRldmljZSIgDQoJCXR5cGU9 InBza2M6RGV2aWNlVHlwZSIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCgkJPHhzOmVsZW1lbnQg bmFtZT0iS2V5UHJvcGVydGllcyIgDQoJCXR5cGU9InBza2M6S2V5UHJvcGVydGllc1R5cGUiIG1p bk9jY3Vycz0iMCIgDQoJCW1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJCTx4czplbGVtZW50IG5h bWU9IlNpZ25hdHVyZSIgDQoJCXR5cGU9ImRzOlNpZ25hdHVyZVR5cGUiIG1pbk9jY3Vycz0iMCIv Pg0KCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgDQoJCXByb2Nlc3NDb250ZW50cz0ibGF4 IiBtaW5PY2N1cnM9IjAiIA0KCQltYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCTwveHM6c2VxdWVu Y2U+DQoJPHhzOmF0dHJpYnV0ZSBuYW1lPSJWZXJzaW9uIiB0eXBlPSJwc2tjOlZlcnNpb25UeXBl IiANCgl1c2U9InJlcXVpcmVkIi8+DQoJPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlDb250YWluZXJJ RCIgdHlwZT0ieHM6SUQiIA0KCXVzZT0ib3B0aW9uYWwiLz4NCjwveHM6Y29tcGxleFR5cGU+DQpd XT48L2FydHdvcms+DQoJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCTwvZmlndXJlPg0KCQkJCTx0PlRo ZSBhdHRyaWJ1dGVzIG9mIHRoZSBLZXlDb250YWluZXIgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5p bmdzOg0KCQk8bGlzdCBzdHlsZT0ic3ltYm9scyI+DQoJCQkJCQkJCTx0PiZsdDtWZXJzaW9uIChN QU5EQVRPUlkpPiwgdGhlIHZlcnNpb24gbnVtYmVyIGZvciB0aGUgcG9ydGFibGUga2V5IGNvbnRh aW5lciBmb3JtYXQgDQoJCQkJCQkJKHRoZSBYTUwgc2NoZW1hIGRlZmluZWQgaW4gdGhpcyBkb2N1 bWVudCkuPC90Pg0KCQkJCQkJCQk8dD4mbHQ7S2V5Q29udGFpbmVySUQgKE9QVElPTkFMKT4sIHRo ZSB1bmlxdWUgSUQgZm9yIHRoaXMgY29udGFpbmVyIGluIGNhc2UgYW4gWE1MIGRvY3VtZW50IGNv bnRhaW5zIG1vcmUgdGhhbiBvbmUgY29udGFpbmVyIGFuZCB3YW50cyB0byByZWZlciB0byB0aGVt IHVuaXF1ZWx5LjwvdD4NCgkJCQkJPC9saXN0Pg0KCQkJCTwvdD4NCgkJCQk8dD5UaGUgZWxlbWVu dHMgb2YgdGhlIEtleUNvbnRhaW5lciBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6DQoJCTxs aXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCTx0PiZsdDtFbmNyeXB0aW9uS2V5IChPUFRJT05B TCk+LCBJZGVudGlmaWVzIHRoZSBlbmNyeXB0aW9uIGtleSwgYWxnb3JpdGhtIGFuZCBwb3NzaWJs ZSBwYXJhbWV0ZXJzIHVzZWQgdG8gcHJvdGVjdCB0aGUgU2VjcmV0IEtleSBkYXRhIGluIHRoZSBj b250YWluZXIuIFBsZWFzZSBzZWUgPHhyZWYgdGFyZ2V0PSJFbmNyeXB0aW9uS2V5RGVzY3JpcHRp b24iLz4gZm9yIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIGhvdyB0byBwcm90ZWN0IGtleSBkYXRh IGluIHRyYW5zaXQgYW5kIHRoZSB1c2FnZSBvZiB0aGlzIGVsZW1lbnQuDQoJCQkJCQk8L3Q+DQoJ CQkJCQk8dD4mbHQ7TUFDQWxnb3JpdGhtIChPUFRJT05BTCk+LCBJZGVudGlmaWVzIHRoZSBhbGdv cml0aG0gdXNlZCB0byBnZW5lcmF0ZSBhIGtleWVkIGRpZ2VzdCBvZiB0aGUgdGhlIFNlY3JldCBL ZXkgZGF0YSB2YWx1ZXMgd2hlbiBwcm90ZWN0aW9uIGFsZ29yaXRobXMgYXJlIHVzZWQgdGhhdCBk byBub3QgaGF2ZSBpbnRlZ3JpdHkgY2hlY2tzLiBUaGUgZGlnZXN0IGd1YXJhbnRlZXMgdGhlIGlu dGVncml0eSBhbmQgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUga2V5IGRhdGEuIGZvciBwcm9maWxl IGFuZCB1c2FnZSBwbGVhc2Ugc2VlIDx4cmVmIHRhcmdldD0iU3ltbWV0cmljS2V5UHJvdGVjdGlv bkRlc2NyaXB0aW9uIi8+DQoJCQkJCQk8L3Q+DQoJCQkJCQk8dD4mbHQ7RGV2aWNlPiwgdGhlIGhv c3QgRGV2aWNlIGZvciBvbmUgb3IgbW9yZSBLZXlzIGFzIGRlZmluZWQgaW4gPHhyZWYgdGFyZ2V0 PSJEZXZpY2VFbnRpdHkiLz4gVGhlIEtleUNvbnRhaW5lciBNQVkgY29udGFpbiBtdWx0aXBsZSBE ZXZpY2UgZGF0YSBlbGVtZW50cywgYWxsb3dpbmcgZm9yIGJ1bGsgcHJvdmlzaW9uaW5nIG9mIG11 bHRpcGxlIGRldmljZXMgZWFjaCBjb250YWluaW5nIG11bHRpcGxlIGtleXMuPC90Pg0KCQkJCQkJ PHQ+Jmx0O0tleVByb3BlcnRpZXMgKE9QVElPTkFMKT4sIG9uZSBvciBtb3JlIGtleSBwcm9wZXJ0 eSBlbnRpdGllcyBjb250YWluaW5nIGtleSByZWxhdGVkIHByb3BlcnRpZXMgdGhhdCBhcmUgY29t bW9uIGZvciBrZXlzIHdpdGhpbiB0aGlzIGNvbnRhaW5lci4gUGxlYXNlIHNlZSA8eHJlZiB0YXJn ZXQ9IktleVByb3BlcnRpZXNFbnRpdHkiLz4gZm9yIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRo aXMgZWxlbWVudC4NCgkJCQkJCTwvdD4NCgkJCQkJCTx0PiZsdDtTaWduYXR1cmUgKE9QVElPTkFM KT4sIHRoZSBzaWduYXR1cmUgdmFsdWUgb2YgdGhlIENvbnRhaW5lci4gIA0KCQlXaGVuIHRoZSBz aWduYXR1cmUgaXMgYXBwbGllZCB0byB0aGUgZW50aXJlIGNvbnRhaW5lciwgaXQgTVVTVCB1c2Ug WE1MIFNpZ25hdHVyZSANCgkJbWV0aG9kcyBhcyBkZWZpbmVkIGluIDx4cmVmIHRhcmdldD0iWE1M RFNJRyIvPi4gSXQgTUFZIGJlIG9taXR0ZWQgd2hlbiBhcHBsaWNhdGlvbiANCgkJbGF5ZXIgcHJv dmlzaW9uaW5nIG9yIHRyYW5zcG9ydCBsYXllciBwcm92aXNpb25pbmcgcHJvdG9jb2xzIHByb3Zp ZGUgdGhlIGludGVncml0eSBhbmQgDQoJCWF1dGhlbnRpY2l0eSBvZiB0aGUgcGF5bG9hZCBiZXR3 ZWVuCXRoZSBzZW5kZXIgYW5kIHRoZSByZWNpcGllbnQgb2YgdGhlIGNvbnRhaW5lci4gDQoJCVdo ZW4gcmVxdWlyZWQsIHRoaXMgc3BlY2lmaWNhdGlvbiByZWNvbW1lbmRzIHVzaW5nIGEgc3ltbWV0 cmljIGtleSBiYXNlZCBzaWduYXR1cmUgDQoJCXdpdGggdGhlIHNhbWUga2V5IHVzZWQgaW4gdGhl IGVuY3J5cHRpb24gb2YgdGhlIHNlY3JldCBrZXkgZGF0YS4gVGhlIHNpZ25hdHVyZSBpcyBlbnZl bG9wZWQuPC90Pg0KCQkJCQk8L2xpc3Q+DQoJCQkJPC90Pg0KCQkJPC9zZWN0aW9uPg0KCQkJPHNl Y3Rpb24gYW5jaG9yPSJEZXZpY2VFbnRpdHkiIHRpdGxlPSJEZXZpY2UiPg0KCQkJCTx0PlRoZSBE ZXZpY2UgcmVwcmVzZW50cyB0aGUgRGV2aWNlIGVudGl0eSBpbiB0aGUgQ29udGFpbmVyLiANCglB IERldmljZSBNQVkgYmUgYm91bmQgdG8gYSB1c2VyIGFuZCBNQVkgY29udGFpbiBtb3JlIHRoYW4g b25lIGtleXMuIEEga2V5IFNIT1VMRCBiZSBib3VuZCB0byBvbmx5IG9uZSBEZXZpY2UuIDwvdD4N CgkJCQk8dD5UaGUgRGV2aWNlIGlzIGRlZmluZWQgYXMgZm9sbG93czo8L3Q+DQoJCQkJPGZpZ3Vy ZT4NCgkJCQkJPHByZWFtYmxlLz4NCgkJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQo8eHM6Y29tcGxl eFR5cGUgbmFtZT0iRGV2aWNlVHlwZSI+DQogIDx4czpzZXF1ZW5jZT4NCiAgICA8eHM6ZWxlbWVu dCBuYW1lPSJEZXZpY2VJZCIgdHlwZT0icHNrYzpEZXZpY2VJZFR5cGUiIG1pbk9jY3Vycz0iMCIv Pg0KICAgIDx4czplbGVtZW50IG5hbWU9IktleSIgdHlwZT0icHNrYzpLZXlUeXBlIiBtYXhPY2N1 cnM9InVuYm91bmRlZCIvPg0KICAgIDx4czplbGVtZW50IG5hbWU9IlVzZXJJZCIgdHlwZT0ieHM6 c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCgk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgDQoJ cHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQi Lz4NCiAgPC94czpzZXF1ZW5jZT4NCjwveHM6Y29tcGxleFR5cGU+DQoJICAgICAgICBdXT48L2Fy dHdvcms+DQoJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCTwvZmlndXJlPg0KCQkJCTx0PlRoZSBlbGVt ZW50cyBvZiB0aGUgRGV2aWNlIGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nczoNCgkJPGxpc3Qg c3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJPHQ+Jmx0O0RldmljZUlkPiwgYSB1bmlxdWUgaWRlbnRp ZmllciBmb3IgdGhlIGRldmljZSwgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9IkRldmljZUlkRWxl bWVudCIvPg0KCQkJCQkJPC90Pg0KCQkJCQkJPHQ+Jmx0O0tleT4sIHJlcHJlc2VudHMgdGhlIGtl eSBlbnRpdHkgYXMgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9IktleUVudGl0eSIvPg0KCQkJCQkJ PC90Pg0KCQkJCQkJPHQ+Jmx0O1VzZXJJZD4sIG9wdGlvbmFsbHkgaWRlbnRpZmllcyB0aGUgb3du ZXIgb3IgdGhlIHVzZXIgb2YgdGhlIERldmljZSwgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Yg YSBEaXN0aW5ndWlzaGVkIE5hbWUgYXMgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9IlJGQzQ1MTQi Lz4uIEZvciBleGFtcGxlIFVJRD1qc21pdGgsREM9ZXhhbXBsZSxEQz1uZXQuIEluIHN5c3RlbXMg d2hlcmUgdW5pcXVlIHVzZXIgSWRzIGFyZSB1c2VkIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24g J1VJRD1bdW5pcXVlSWRdJyBNVVNUIGJlIHVzZWQuPC90Pg0KCQkJCQk8L2xpc3Q+DQoJCQkJPC90 Pg0KCQkJCTxzZWN0aW9uIGFuY2hvcj0iRGV2aWNlSWRFbGVtZW50IiB0aXRsZT0iRGV2aWNlSWQi Pg0KCQkJCQk8dD5UaGUgRGV2aWNlSWQgcmVwcmVzZW50cyB0aGUgaWRlbnRpZnlpbmcgY3JpdGVy aWEgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRldmljZSB0aGF0IGNvbnRhaW5zIHRoZSBhc3Nv Y2lhdGVkIA0KCWtleXMuIFNpbmNlIGRldmljZXMgY2FuIGNvbWUgaW4gZGlmZmVyZW50IGZvcm0g ZmFjdG9ycyBzdWNoIGFzIGhhcmR3YXJlIHRva2Vucywgc21hcnQtY2FyZHMsIHNvZnQgdG9rZW5z IA0KCWluIGEgbW9iaWxlIHBob25lIG9yIFBDIGV0YyB0aGlzIGVsZW1lbnQgYWxsb3dzIGRpZmZl cmVudCBjcml0ZXJpYSB0byBiZSB1c2VkLiBDb21iaW5lZCB0aG91Z2ggdGhlIGNyaXRlcmlhIE1V U1QgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRldmljZS4gRm9yIGV4YW1wbGUgZm9yIGhhcmR3YXJl IHRva2VucyB0aGUgY29tYmluYXRpb24gb2YgU2VyaWFsTm8gYW5kIE1hbnVmYWN0dXJlciB3aWxs IHVuaXF1ZWx5IGlkZW50aWZ5IGEgZGV2aWNlIGJ1dCBub3QgU2VyaWFsTm8gYWxvbmUgc2luY2Ug dHdvIGRpZmZlcmVudCB0b2tlbiBtYW51ZmFjdHVyZXJzIG1pZ2h0IGlzc3VlIGRldmljZXMgd2l0 aCB0aGUgc2FtZSBzZXJpYWwgbnVtYmVyIChzaW1pbGFyIHRvIHRoZSBJc3N1ZXJETiBhbmQgc2Vy aWFsIG51bWJlciBvZiBhIGNlcnRpZmljYXRlKS4gU3ltbWV0cmljIEtleXMgdXNlZCBpbiB0aGUg cGF5bWVudCBpbmR1c3RyeSBhcmUgdXN1YWxseSBzdG9yZWQgb24gSW50ZWdyYXRlZCBDaXJjdWl0 IFNtYXJ0IENhcmRzLiBUaGVzZSBjYXJkcyBhcmUgdW5pcXVlbHkgaWRlbnRpZmllZCB2aWEgdGhl IFByaW1hcnkgQWNjb3VudCBOdW1iZXIgKFBBTiwgdGhlIGxvbmcgbnVtYmVyIHByaW50ZWQgb24g dGhlIGZyb250IG9mIHRoZSBjYXJkKSBhbmQgYW4gZXhwaXJ5IGRhdGUgb2YgdGhlIGNhcmQuIERl dmljZUlkIGlzIGFuIGV4dGVuc2libGUgdHlwZSB0aGF0IGFsbG93cyBhbGwgdGhlc2UgZGlmZmVy ZW50IHdheXMgdG8gdW5pcXVlbHkgaWRlbnRpZnkgYSBzcGVjaWZpYyBrZXkgY29udGFpbmluZyBk ZXZpY2UuPC90Pg0KCQkJCQk8dD5UaGUgRGV2aWNlSWQgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwv dD4NCgkJCQkJPGZpZ3VyZT4NCgkJCQkJCTxwcmVhbWJsZS8+DQoJCQkJCQk8YXJ0d29yaz48IVtD REFUQVsNCjx4czpjb21wbGV4VHlwZSBuYW1lPSJEZXZpY2VJZFR5cGUiPg0KPHhzOnNlcXVlbmNl Pg0KICAgIDx4czplbGVtZW50IG5hbWU9Ik1hbnVmYWN0dXJlciIgdHlwZT0ieHM6c3RyaW5nIi8+ DQogICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VyaWFsTm8iIHR5cGU9InhzOnN0cmluZyIvPg0KICAg IDx4czplbGVtZW50IG5hbWU9Ik1vZGVsIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIv Pg0KICAgIDx4czplbGVtZW50IG5hbWU9Iklzc3VlTm8iIHR5cGU9InhzOnN0cmluZyIgbWluT2Nj dXJzPSIwIi8+DQogICAgPHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSIgdHlwZT0ieHM6ZGF0 ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KICAgIDx4czplbGVtZW50IG5hbWU9IlN0YXJ0RGF0ZSIg dHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCTx4czphbnkgbmFtZXNwYWNlPSIj I290aGVyIiANCglwcm9jZXNzQ29udGVudHM9ImxheCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9 InVuYm91bmRlZCIvPg0KPC94czpzZXF1ZW5jZT4NCjwveHM6Y29tcGxleFR5cGU+DQoJICAgICAg ICBdXT48L2FydHdvcms+DQoJCQkJCQk8cG9zdGFtYmxlLz4NCgkJCQkJPC9maWd1cmU+DQoJCQkJ CTx0PlRoZSBlbGVtZW50cyBvZiBEZXZpY2VJZCBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6 DQoJCTxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD4mbHQ7TWFudWZhY3R1cmVyPiwg dGhlIG1hbnVmYWN0dXJlciBvZiB0aGUgZGV2aWNlLjwvdD4NCgkJCQkJCQk8dD4mbHQ7U2VyaWFs Tm8+LCB0aGUgc2VyaWFsIG51bWJlciBvZiB0aGUgZGV2aWNlIG9yIHRoZSBQQU4gKHByaW1hcnkg YWNjb3VudCBudW1iZXIpIA0KCQlpbiBjYXNlIG9mIHBheW1lbnQgc21hcnQgY2FyZHMuPC90Pg0K CQkJCQkJCTx0PiZsdDtNb2RlbD4sIHRoZSBtb2RlbCBvZiB0aGUgZGV2aWNlIChlLmcgb25lLWJ1 dHRvbi1IT1RQLXRva2VuLVYxKTwvdD4NCgkJCQkJCQk8dD4mbHQ7SXNzdWVObz4sIHRoZSBpc3N1 ZSBudW1iZXIgaW4gY2FzZSBvZiBzbWFydCBjYXJkcyB3aXRoIHRoZSBzYW1lIFBBTiwgZXF1aXZh bGVudCB0byBhIA0KCQlQU04gKFBBTiBTZXF1ZW5jZSBOdW1iZXIpLjwvdD4NCgkJCQkJCQk8dD4m bHQ7RXhwaXJ5RGF0ZT4sIHRoZSBleHBpcnkgZGF0ZSBvZiBhIGRldmljZSAoc3VjaCBhcyB0aGUg b25lIG9uIGEgcGF5bWVudCBjYXJkLHVzZWQgd2hlbiBpc3N1ZSBudW1iZXJzIGFyZSBub3QgcHJp bnRlZCBvbiBjYXJkcykuPC90Pg0KCQkJCQkJCTx0PiZsdDtTdGFydERhdGU+LCB0aGUgc3RhcnQg ZGF0ZSBvZiBhIGRldmljZSAoc3VjaCBhcyB0aGUgb25lIG9uIGEgcGF5bWVudCBjYXJkLHVzZWQg d2hlbiBpc3N1ZSBudW1iZXJzIGFyZSBub3QgcHJpbnRlZCBvbiBjYXJkcykuPC90Pg0KCQkJCQkJ PC9saXN0Pg0KCQkJCQk8L3Q+DQoJCQkJPC9zZWN0aW9uPg0KCQkJPC9zZWN0aW9uPg0KCQkJPHNl Y3Rpb24gYW5jaG9yPSJLZXlQcm9wZXJ0aWVzRW50aXR5IiB0aXRsZT0iS2V5UHJvcGVydGllcyI+ DQoJCQkJPHQ+VGhlIEtleVByb3BlcnRpZXMgcmVwcmVzZW50cyBjb21tb24gcHJvcGVydGllcyBz aGFyZWQgYnkgbW9yZSB0aGFuIG9uZSBrZXkgaGVsZCBpbiB0aGUgY29udGFpbmVyLiBJZiBhIHZh bHVlIGlzIHNldCBpbiB0aGUgcHJvcGVydGllcyB0aGUgS2V5IGVsZW1lbnQgY2FuIHJlZmVyIHRv IGl0IHZpYSBLZXlQcm9wZXJ0aWVzSWQgYXR0cmlidXRlLiBWYWx1ZXMgdGhhdCBhcmUgcHJlc2Vu dCBpbiB0aGUgS2V5IGVsZW1lbnQgaXRzZWxmIE1VU1QgdGFrZSBwcmVjZW5kZW5jZSBvdmVyIHZh bHVlcyBzZXQgaW4gS2V5UHJvcGVydGllcy4gVGhlIEtleVByb3BlcnRpZXMgaXMgZGVmaW5lZCBh cyBmb2xsb3dzOjwvdD4NCgkJCQk8ZmlndXJlPg0KCQkJCQk8cHJlYW1ibGUvPg0KCQkJCQk8YXJ0 d29yaz48IVtDREFUQVsNCjx4czpjb21wbGV4VHlwZSBuYW1lPSJLZXlQcm9wZXJ0aWVzVHlwZSI+ DQoJPHhzOnNlcXVlbmNlPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJJc3N1ZXIiIHR5cGU9InhzOnN0 cmluZyIgDQoJCW1pbk9jY3Vycz0iMCIvPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJVc2FnZSIgdHlw ZT0icHNrYzpVc2FnZVR5cGUiIA0KCQltaW5PY2N1cnM9IjAiLz4NCgkJPHhzOmVsZW1lbnQgbmFt ZT0iS2V5UHJvZmlsZUlkIiB0eXBlPSJ4czpzdHJpbmciIA0KCQltaW5PY2N1cnM9IjAiLz4NCgkJ PHhzOmVsZW1lbnQgbmFtZT0iTWFzdGVyS2V5SWQiIHR5cGU9InhzOnN0cmluZyIgDQoJCW1pbk9j Y3Vycz0iMCIvPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJEYXRhIiB0eXBlPSJwc2tjOkRhdGFUeXBl IiANCgkJbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQk8eHM6ZWxlbWVu dCBuYW1lPSJQSU5Qb2xpY3kiIA0KCQl0eXBlPSJwc2tjOlBJTlBvbGljeVR5cGUiIG1pbk9jY3Vy cz0iMCIvPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJFeHBpcnlEYXRlIiANCgkJdHlwZT0ieHM6ZGF0 ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJTdGFydERhdGUiIHR5 cGU9InhzOmRhdGVUaW1lIiANCgkJbWluT2NjdXJzPSIwIi8+DQoJCTx4czphbnkgbmFtZXNwYWNl PSIjI290aGVyIiANCgkJcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0iMCIgDQoJCW1h eE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJPC94czpzZXF1ZW5jZT4NCgk8eHM6YXR0cmlidXRlIG5h bWU9IktleVByb3BlcnRpZXNJZCIgdHlwZT0ieHM6SUQiIA0KCXVzZT0icmVxdWlyZWQiLz4NCgk8 eHM6YXR0cmlidXRlIG5hbWU9IktleUFsZ29yaXRobSIgDQoJdHlwZT0icHNrYzpLZXlBbGdvcml0 aG1UeXBlIiB1c2U9Im9wdGlvbmFsIi8+DQo8L3hzOmNvbXBsZXhUeXBlPg0KCV1dPjwvYXJ0d29y az4NCgkJCQkJPHBvc3RhbWJsZS8+DQoJCQkJPC9maWd1cmU+DQoJCQkJPHQ+VGhlIGF0dHJpYnV0 ZXMgb2YgdGhlIEtleVByb3BlcnRpZXMgZW50aXR5IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5n czoNCgkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJPHQ+S2V5UHJvcGVydGllc0lkIChN QU5EQVRPUlkpLCBhIHVuaXF1ZSBhbmQgZ2xvYmFsIGlkZW50aWZpZXIgb2Ygc2V0IG9mIEtleVBy b3BlcnRpZXMuIFRoZSBpZGVudGlmaWVyIGlzIGRlZmluZWQgYXMgYSBzdHJpbmcgb2YgYWxwaGFu dW1lcmljIGNoYXJhY3RlcnMuPC90Pg0KCQkJCQkJPHQ+Jmx0O0tleUFsZ29yaXRobSAoT1BUSU9O QUwpPiwgdGhlIHVuaXF1ZSBVUkkgb2YgdGhlIHR5cGUgb2YgYWxnb3JpdGhtIHRvIHVzZSB3aXRo IHRoZSBzZWNyZXQga2V5LCBmb3IgcHJvZmlsZXMgYXJlIGRlc2NyaWJlZCBpbiA8eHJlZiB0YXJn ZXQ9IktleUFsZ29yaXRobUF0dHJpYnV0ZSIvPg0KCQkJCQkJPC90Pg0KCQkJCQk8L2xpc3Q+DQoJ CQkJPC90Pg0KCQkJCTx0PlNpbmNlIEtleVByb3BlcnRpZXMgYXJlIGEgbWV0aG9kIHRvIGNvbW1v bmFsaXNlIHRoZSBlbGVtZW50cyBpbiBLZXkgcGxlYXNlIHJlZmVyIHRvIHNlY3Rpb24gPHhyZWYg dGFyZ2V0PSJLZXlFbnRpdHkiLz4gZm9yIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIGFsbCBlbGVt ZW50cy4NCgkJCQkJPC90Pg0KCQkJCQk8L3NlY3Rpb24+DQoJCQkJDQoJCQkNCgkJCTxzZWN0aW9u IGFuY2hvcj0iS2V5RW50aXR5IiB0aXRsZT0iS2V5Ij4NCgkJCQk8dD5UaGUgS2V5IHJlcHJlc2Vu dHMgdGhlIGtleSBlbnRpdHkgaW4gdGhlIEtleUNvbnRhaW5lci4gVGhlIEtleSBpcyBkZWZpbmVk IGFzIGZvbGxvd3M6PC90Pg0KCQkJCTxmaWd1cmU+DQoJCQkJCTxwcmVhbWJsZS8+DQoJCQkJCTxh cnR3b3JrPjwhW0NEQVRBWw0KPHhzOmNvbXBsZXhUeXBlIG5hbWU9IktleVR5cGUiPg0KCTx4czpz ZXF1ZW5jZT4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iSXNzdWVyIiB0eXBlPSJ4czpzdHJpbmciIA0K CQltaW5PY2N1cnM9IjAiLz4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iVXNhZ2UiIHR5cGU9InBza2M6 VXNhZ2VUeXBlIiANCgkJbWluT2NjdXJzPSIwIi8+DQoJCTx4czplbGVtZW50IG5hbWU9IktleVBy b2ZpbGVJZCIgdHlwZT0ieHM6c3RyaW5nIiANCgkJbWluT2NjdXJzPSIwIi8+DQoJCTx4czplbGVt ZW50IG5hbWU9Ik1hc3RlcktleUlkIiB0eXBlPSJ4czpzdHJpbmciIA0KCQltaW5PY2N1cnM9IjAi Lz4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iRnJpZW5kbHlOYW1lIiB0eXBlPSJ4czpzdHJpbmciIA0K CQltaW5PY2N1cnM9IjAiLz4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iRGF0YSIgdHlwZT0icHNrYzpE YXRhVHlwZSIgDQoJCW1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCgkJPHhz OmVsZW1lbnQgbmFtZT0iUElOUG9saWN5IiANCgkJdHlwZT0icHNrYzpQSU5Qb2xpY3lUeXBlIiBt aW5PY2N1cnM9IjAiLz4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSIgdHlwZT0ieHM6 ZGF0ZVRpbWUiIA0KCQltaW5PY2N1cnM9IjAiLz4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iU3RhcnRE YXRlIiB0eXBlPSJ4czpkYXRlVGltZSIgDQoJCW1pbk9jY3Vycz0iMCIvPg0KCQk8eHM6YW55IG5h bWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIA0KCQltaW5PY2N1cnM9IjAi IG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJPC94czpzZXF1ZW5jZT4NCgk8eHM6YXR0cmlidXRl IG5hbWU9IktleUlkIiB0eXBlPSJ4czpzdHJpbmciIA0KCXVzZT0icmVxdWlyZWQiLz4NCgk8eHM6 YXR0cmlidXRlIG5hbWU9IktleUFsZ29yaXRobSIgDQoJdHlwZT0icHNrYzpLZXlBbGdvcml0aG1U eXBlIiB1c2U9Im9wdGlvbmFsIi8+DQoJPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlQcm9wZXJ0aWVz SWQiIHR5cGU9InhzOklEUkVGIiANCgl1c2U9Im9wdGlvbmFsIi8+DQo8L3hzOmNvbXBsZXhUeXBl Pg0KDQoJXV0+PC9hcnR3b3JrPg0KCQkJCQk8cG9zdGFtYmxlLz4NCgkJCQk8L2ZpZ3VyZT4NCgkJ CQk8dD5UaGUgYXR0cmlidXRlcyBvZiB0aGUgS2V5IGVudGl0eSBoYXZlIHRoZSBmb2xsb3dpbmcg bWVhbmluZ3M6DQoJCTxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCTx0PktleUlkIChNQU5E QVRPUlkpLCBhIHVuaXF1ZSBhbmQgZ2xvYmFsIGlkZW50aWZpZXIgb2YgdGhlIHN5bW1ldHJpYyBr ZXkuIFRoZSBpZGVudGlmaWVyIA0KCQlpcyBkZWZpbmVkIGFzIGEgc3RyaW5nIG9mIGFscGhhbnVt ZXJpYyBjaGFyYWN0ZXJzLjwvdD4NCgkJCQkJCTx0PiZsdDtLZXlBbGdvcml0aG0gKE9QVElPTkFM KT4sIHRoZSB1bmlxdWUgVVJJIG9mIHRoZSB0eXBlIG9mIGFsZ29yaXRobSB0byB1c2Ugd2l0aCB0 aGUgc2VjcmV0IGtleSwgZm9yIHByb2ZpbGVzIGFyZSBkZXNjcmliZWQgaW4gPHhyZWYgdGFyZ2V0 PSJLZXlBbGdvcml0aG1BdHRyaWJ1dGUiLz4NCgkJCQkJCTwvdD4NCgkJCQkJCTx0PiZsdDtLZXlQ cm9wZXJ0aWVzSWQgKE9QVElPTkFMKT4sIHRoZSByZWZlcmVuY2VzIHRvIHRoZSB1bmlxdWUgaWQg b2YgdGhlIEtleVByb3BlcnRpZXMgd2hvc2UgdmFsdWUgdGhlIGluc3RhbmNlIG9mIHRoaXMga2V5 IGluaGVyaXRzLiBJZiB0aGlzIHZhbHVlIGlzIHNldCBpbXBsZW1lbnRhdGlvbiBNVVNUIGxvb2t1 cCB0aGUgS2V5cHJvcGVydGllcyBlbGVtZW50IHJlZmVycmVkIHRvIGJ5IHRoaXMgdW5pcXVlIElk IGFuZCB0aGlzIGluc3RhbmNlIG9mIGtleSB3aWxsIGluaGVyaXQgYWxsIHZhbHVlcyBmcm9tIHRo ZSBLZXlQcm9wZXJ0aWVzLiBWYWx1ZXMgaGVsZCBpbiB0aGUga2V5IGluc3RhbmNlIGl0IE1VU1Qg dGFrZSBwcmVjZWRlbmNlIG92ZXIgdmFsdWVzIGluaGVyaXRlZCBmcm9tIEtleVByb3BlcnRpZXMu Ii8+DQoJCQkJCQk8L3Q+DQoJCQkJCTwvbGlzdD4NCgkJCQk8L3Q+DQoJCQkJPHQ+VGhlIGVsZW1l bnRzIG9mIHRoZSBLZXkgZW50aXR5IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nczoNCgkJPGxp c3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJPHQ+Jmx0O0lzc3VlciAoT1BUSU9OQUwpPiwgVGhl IGtleSBpc3N1ZXIgbmFtZSwgdGhpcyBpcyBub3JtYWxseSB0aGUgbmFtZSBvZiB0aGUgb3JnYW5p emF0aW9uIHRoYXQgaXNzdWVzIHRoZSBrZXkgdG8gdGhlIGVuZCB1c2VyIG9mIHRoZSBrZXkuIEZv ciBleGFtcGxlIE15QmFuayBpc3N1aW5nIGhhcmR3YXJlIHRva2VucyB0byB0aGVpciByZXRhaWwg YmFua2luZyB1c2VycyAnTXlCYW5rJyB3b3VsZCBiZSB0aGUgaXNzdWVyLiBUaGUgSXNzdWVyIGlz IGRlZmluZWQgYXMgYSBTdHJpbmcuPC90Pg0KCQkJCQkJPHQ+Jmx0O1VzYWdlIChNQU5EQVRPUlkp PiwgZGVmaW5lcyB0aGUgaW50ZW5kZWQgdXNhZ2Ugb2YgdGhlIGtleSBhbmQgcmVsYXRlZCBtZXRh ZGF0YSBhcyBkZWZpbmVkIGluIDx4cmVmIHRhcmdldD0iVXNhZ2VFbGVtZW50Ii8+DQoJCQkJCQk8 L3Q+DQoJCQkJCQk8dD4mbHQ7S2V5UHJvZmlsZUlkIChPUFRJT05BTCk+LCBBIHVuaXF1ZSBpZGVu dGlmaWVyIHVzZWQgYmV0d2VlbiB0aGUgc2VuZGluZyBhbmQgcmVjZWl2aW5nIHBhcnR5IG9mIHRo ZSBjb250YWluZXIgdG8gZXN0YWJsaXNoIGEgc2V0IG9mIGNvbnN0YW50IHZhbHVlcyByZWxhdGVk IHRvIGEga2V5IHRoYXQgYXJlIG5vdCB0cmFuc21pdHRlZCB2aWEgdGhlIGNvbnRhaW5lci4gRm9y IGV4YW1wbGUgYSBzbWFydCBjYXJkIGFwcGxpY2F0aW9uIHBlcnNvbmFsaXNhdGlvbiBwcm9maWxl IGlkIHJlbGF0ZWQgdG8gYXR0cmlidXRlcyBwcmVzZW50IG9uIGEgc21hcnQgY2FyZCBhcHBsaWNh dGlvbiB0aGF0IGhhdmUgaW5mbHVlbmNlIHdoZW4gY29tcHV0aW5nIGEgcmVzcG9uc2UuIEFuIGV4 YW1wbGUgY291bGQgYmUgYW4gRU1WIE1hc3RlckNhcmQgQ0FQIDx4cmVmIHRhcmdldD0iQ0FQIi8+ IGFwcGxpY2F0aW9uIG9uIGEgY2FyZCBwZXJzb25hbGlzZWQgd2l0aCBkYXRhIGZvciBhIHNwZWNp ZmljIGJhdGNoIG9mIGNhcmRzIHN1Y2ggYXM6IA0KCQkJPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0K CQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5JQUYgIEludGVybmV0IGF1dGhlbnRpY2F0aW9uIGZsYWcg PC90Pg0KCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5DVk4gIENyeXB0b2dyYW0gdmVyc2lvbiBudW1i ZXIsIGZvciBleGFtcGxlIChNQ0hJUDIsIE1DSElQNCwgVklTQSAxMywgVklTQTE0KTwvdD4NCgkJ CQkJCQkJPHQgaGFuZ1RleHQ9IiI+QUlQIChBcHBsaWNhdGlvbiBJbnRlcmNoYW5nZSBQcm9maWxl KSwgMiBieXRlczwvdD4NCgkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+VFZSIFRlcm1pbmFsIFZlcmlm aWNhdGlvbiBSZXN1bHQsIDUgYnl0ZXM8L3Q+DQoJCQkJCQkJCTx0IGhhbmdUZXh0PSIiPkNWUiBU aGUgY2FyZCB2ZXJpZmljYXRpb24gcmVzdWx0PC90Pg0KCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5B bW91bnRPdGhlcjwvdD4NCgkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+VHJhbnNhY3Rpb25EYXRlPC90 Pg0KCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5UZXJtaW5hbENvdW50cnlDb2RlPC90Pg0KCQkJCQkJ CQk8dCBoYW5nVGV4dD0iIj5UcmFuc2FjdGlvbkN1cnJlbmN5Q29kZTwvdD4NCgkJCQkJCQkJPHQg aGFuZ1RleHQ9IiI+QW1vdW50QXV0aG9yaXNlZDwvdD4NCgkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+ SUlQQjwvdD4NCgkJCQkJCQk8L2xpc3Q+DQpUaGVzZSB2YWx1ZXMgYXJlIG5vdCBjb250YWluZWQg d2l0aGluIGF0dHJpYnV0ZXMgaW4gdGhlIGNvbnRhaW5lciBidXQgDQoJYXJlIHNoYXJlZCBiZXR3 ZWVuIHRoZSBtYW51ZmFjdHVyaW5nIGFuZCB0aGUgdmFsaWRhdGlvbiBzZXJ2aWNlIHRocm91Z2gg dGhpcyB1bmlxdWUgS2V5UHJvZmlsZUlkLiBUaGUgS2V5UHJvZmlsZUlkIGlzIGRlZmluZWQgYXMg YSBTdHJpbmcuPC90Pg0KCQkJCQkJPHQ+Jmx0O01hc3RlcktleUlkIChPUFRJT05BTCk+LCBUaGUg dW5pcXVlIHJlZmVyZW5jZSB0byBhIG1hc3RlciBrZXkgd2hlbiBrZXkgZGVyaXZhdGlvbiBzY2hl bWVzIGFyZSB1c2VkIGFuZCBubyBzcGVjaWZpYyBrZXkgaXMgdHJhbnNwb3J0ZWQgYnV0IG9ubHkg dGhlIHJlZmVyZW5jZSB0byB0aGUgbWFzdGVyIGtleSB1c2VkIHRvIGRlcml2ZSBhIHNwZWNpZmlj IGtleSBhbmQgc29tZSBkZXJpdmF0aW9uIGRhdGEuPC90Pg0KCQkJCQkJPHQ+Jmx0O0ZyaWVuZGx5 TmFtZSAoT1BUSU9OQUwpPiwgVGhlIHVzZXIgZnJpZW5kbHkgbmFtZSB0aGF0IGlzIGFzc2lnbmVk IHRvIHRoZSBzZWNyZXQga2V5IGZvciBlYXN5IHJlZmVyZW5jZS4gVGhlIEZyaWVuZGx5TmFtZSBp cyBkZWZpbmVkIGFzIGEgU3RyaW5nLjwvdD4NCgkJCQkJCTx0PiZsdDtEYXRhIChPUFRJT05BTCk+ LCB0aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgZGF0YSByZWxhdGVkIHRvIHRoZSBrZXkgYXMgZGVm aW5lZCBpbiA8eHJlZiB0YXJnZXQ9IkRhdGFBdHRyaWJ1dGUiLz4NCgkJCQkJCTwvdD4NCgkJCQkJ CTx0PiZsdDtQSU5Qb2xpY3kgKE9QVElPTkFMKT4sIHRoZSBwb2xpY3kgb2YgdGhlIFBJTiByZWxh dGluZyB0byB0aGUgdXNhZ2Ugb2YgdGhpcyBrZXkgYXMgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9 IlBJTlBvbGljeUVsZW1lbnQiLz4NCgkJCQkJCTwvdD4NCgkJCQkJCTx0PiZsdDtFeHBpcnlEYXRl IChPUFRJT05BTCk+LCB0aGUgZXhwaXJ5IGRhdGUgb2YgdGhlIGtleSwgaXQgTVVTVCBub3QgYmUg cG9zc2libGUgdG8gdXNlIHRoaXMga2V5IGFmdGVyIHRoaXMgZGF0ZTwvdD4NCgkJCQkJCTx0PiZs dDtTdGFydERhdGUgKE9QVElPTkFMKT4sIHRoZSBzdGFydCBkYXRlIG9mIHRoZSBrZXksIGl0IE1V U1Qgbm90IGJlIHBvc3NpYmxlIHRvIHVzZSB0aGlzIGtleSBiZWZvcmUgdGhpcyBkYXRlPC90Pg0K CQkJCQk8L2xpc3Q+DQoJCQkJPC90Pg0KCQkJCTxzZWN0aW9uIGFuY2hvcj0iRGF0YUF0dHJpYnV0 ZSIgdGl0bGU9IkRhdGEgKE9QVElPTkFMKSI+DQoJCQkJCTx0PkRlZmluZXMgdGhlIGRhdGEgYXR0 cmlidXRlcyBvZiB0aGUgc3ltbWV0cmljIGtleS4gRWFjaCBpcyBhIG5hbWUgdmFsdWUgcGFpciB3 aGljaCBoYXMgZWl0aGVyIGEgcGxhaW4gdmFsdWUgKGluIGNhc2Ugb2Ygbm8gZW5jcnlwdGlvbikg b3IgYSBlbmNyeXB0ZWQgdmFsdWUgYXMgZGVmaW5lZCBpbiBFbmNyeXB0ZWREYXRhVHlwZSBpbiBY TUwgRW5jcnlwdGlvbi4gDQoJCQkJCTwvdD4NCgkJCQkJPHQ+VGhpcyBpcyBhbHNvIHdoZXJlIHRo ZSBrZXkgdmFsdWUgaXMgdHJhbnNwb3J0ZWQsICAgPHhyZWYgdGFyZ2V0PSJEYXRhQXR0cmlidXRl TmFtZXMiLz4gZGVmaW5lcyBhIGxpc3Qgb2YgcmVzZXJ2ZWQgYXR0cmlidXRlIG5hbWVzLiANCgkJ CQkJCTwvdD4NCgkJCQkJPHQ+RGF0YSBlbGVtZW50IGlzIGRlZmluZWQgYXMgZm9sbG93czo8L3Q+ DQoJCQkJCTxmaWd1cmU+DQoJCQkJCQk8cHJlYW1ibGUvPg0KCQkJCQkJPGFydHdvcms+PCFbQ0RB VEFbDQo8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4N CiAgICA8eHM6Y2hvaWNlPg0KICAgICAgIDx4czplbGVtZW50IG5hbWU9IlBsYWluVmFsdWUiIHR5 cGU9InhzOmJhc2U2NEJpbmFyeSIvPg0KICAgICAgIDx4czplbGVtZW50IG5hbWU9IkVuY3J5cHRl ZFZhbHVlIiB0eXBlPSJ4ZW5jOkVuY3J5cHRlZERhdGFUeXBlIi8+DQogICAgPC94czpjaG9pY2U+ DQogICAgPHhzOmVsZW1lbnQgbmFtZT0iVmFsdWVNQUMiIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIg bWluT2NjdXJzPSIwIi8+CQkJDQogICAgPC94czpzZXF1ZW5jZT4NCiAgICA8eHM6YXR0cmlidXRl IG5hbWU9Ik5hbWUiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPg0KPC94czpjb21w bGV4VHlwZT4NCgkgICAgICAgIF1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJ CQk8L2ZpZ3VyZT4NCgkJCQkJPHQ+VGhlIGF0dHJpYnV0ZXMgb2YgdGhlIERhdGEgZWxlbWVudCBo YXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6DQoJCTxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJ CQkJCQk8dD5OYW1lLCBkZWZpbmVzIHRoZSBuYW1lIG9mIHRoZSBuYW1lLXZhbHVlIHBhaXIsIDx4 cmVmIHRhcmdldD0iRGF0YUF0dHJpYnV0ZU5hbWVzIi8+IGRlZmluZXMgYSBsaXN0IG9mIHJlc2Vy dmVkIGF0dHJpYnV0ZSBuYW1lczwvdD4NCgkJCQkJCTwvbGlzdD4NCgkJCQkJPC90Pg0KCQkJCQk8 dD5UaGUgZWxlbWVudHMgb2YgdGhlIERhdGEgZWxlbWVudCBoYXZlIHRoZSBmb2xsb3dpbmcgbWVh bmluZ3M6DQoJCTxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD5UaGUgJmx0O1BsYWlu VmFsdWU+IGNvbnZleXMgYW4gdW5lbmNyeXB0ZWQgdmFsdWUgb2YgdGhlIG5hbWUtdmFsdWUgcGFp ciBpbiBiYXNlIDY0IGVuY29kaW5nLjwvdD4NCgkJCQkJCQk8dD5UaGUgJmx0O0VuY3J5cHRlZFZh bHVlPiBlbGVtZW50IGluIHRoZSBEYXRhVHlwZSBjb252ZXlzIGFuIGVuY3J5cHRlZCB2YWx1ZSBv ZiB0aGUgbmFtZS12YWx1ZSBwYWlyIGluc2lkZSBhbiBFbmNyeXB0ZWREYXRhVHlwZSBhcyBkZWZp bmVkIGluIFhNTCBFbmNyeXB0aW9uLjwvdD4NCgkJCQkJCQk8dD5UaGUgJmx0O1ZhbHVlTUFDIChP UFRJT05BTCk+IGVsZW1lbnQgaW4gdGhlIERhdGFUeXBlIGNvbnZleXMgYSBrZXllZCBNQUMgdmFs dWUgb2YgdGhlIHVuZW5jcnlwdGVkIGRhdGEgZm9yIHRoZSBjYXNlcyB3aGVyZSB0aGUgYWxnb3Jp dGhtIHRvIHByb3RlY3Qga2V5IGRhdGEgaW4gdHJhbnNpdCwgYXMgZGVzY3JpYmVkIGluIHNlY3Rp b24gPHhyZWYgdGFyZ2V0PSJTeW1tZXRyaWNLZXlQcm90ZWN0aW9uRGVzY3JpcHRpb24iLz4gLGRv ZXMgbm90IHN1cHBvcnQgaW50ZWdyaXR5IGNoZWNrcy48L3Q+DQoJCQkJCQk8L2xpc3Q+DQoJCQkJ CTwvdD4NCgkJCQk8L3NlY3Rpb24+DQoJCQkJPHNlY3Rpb24gYW5jaG9yPSJVc2FnZUVsZW1lbnQi IHRpdGxlPSJVc2FnZSAoTUFOREFUT1JZKSI+DQoJCQkJCTx0PlRoZSBVc2FnZSBlbGVtZW50IGRl ZmluZXMgdGhlIHVzYWdlIGF0dHJpYnV0ZShzKSBvZiB0aGUga2V5IGVudGl0eS4gVXNhZ2UgaXMg ZGVmaW5lZCBhcyBmb2xsb3dzOjwvdD4NCgkJCQkJPGZpZ3VyZT4NCgkJCQkJCTxwcmVhbWJsZS8+ DQoJCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjx4czpjb21wbGV4VHlwZSBuYW1lPSJVc2FnZVR5 cGUiPg0KCTx4czpzZXF1ZW5jZT4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iQ2hhbGxlbmdlRm9ybWF0 IiBtaW5PY2N1cnM9IjAiPg0KCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJICA8eHM6YXR0cmlidXRl IG5hbWU9IkZvcm1hdCIgDQoJCQkgIHR5cGU9InBza2M6VmFsdWVGb3JtYXRUeXBlIiANCgkJCSAg dXNlPSJyZXF1aXJlZCIvPg0KCQkJICA8eHM6YXR0cmlidXRlIG5hbWU9Ik1pbiIgDQoJCQkgIHR5 cGU9InhzOnVuc2lnbmVkSW50IiB1c2U9InJlcXVpcmVkIi8+DQoJCQkgIDx4czphdHRyaWJ1dGUg bmFtZT0iTWF4IiANCgkJCSAgdHlwZT0ieHM6dW5zaWduZWRJbnQiIHVzZT0icmVxdWlyZWQiLz4N CgkJCSAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJDaGVja0RpZ2l0cyINCgkJCSAgdHlwZT0ieHM6Ym9v bGVhbiIgZGVmYXVsdD0iZmFsc2UiLz4NCgkJCTwveHM6Y29tcGxleFR5cGU+DQoJCTwveHM6ZWxl bWVudD4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VGb3JtYXQiPg0KCQkJPHhzOmNvbXBs ZXhUeXBlPg0KCQkJICA8eHM6YXR0cmlidXRlIG5hbWU9IkZvcm1hdCINCgkJCSAgdHlwZT0icHNr YzpWYWx1ZUZvcm1hdFR5cGUiIA0KCQkJICB1c2U9InJlcXVpcmVkIi8+DQoJCQkgIDx4czphdHRy aWJ1dGUgbmFtZT0iTGVuZ3RoIg0KCQkJICB0eXBlPSJ4czp1bnNpZ25lZEludCIgdXNlPSJyZXF1 aXJlZCIvPg0KICAJCQkgIDx4czphdHRyaWJ1dGUgbmFtZT0iQ2hlY2tEaWdpdHMiIA0KICAJCQkg IHR5cGU9InhzOmJvb2xlYW4iIGRlZmF1bHQ9ImZhbHNlIi8+DQoJCQk8L3hzOmNvbXBsZXhUeXBl Pg0KCQk8L3hzOmVsZW1lbnQ+DQoJCTx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNz Q29udGVudHM9ImxheCIgDQoJCW1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4N Cgk8L3hzOnNlcXVlbmNlPg0KCTx4czphdHRyaWJ1dGUgbmFtZT0iT1RQIiB0eXBlPSJ4czpib29s ZWFuIiANCglkZWZhdWx0PSJmYWxzZSIvPg0KCTx4czphdHRyaWJ1dGUgbmFtZT0iQ1IiIHR5cGU9 InhzOmJvb2xlYW4iIA0KCWRlZmF1bHQ9ImZhbHNlIi8+DQoJPHhzOmF0dHJpYnV0ZSBuYW1lPSJJ bnRlZ3JpdHkiIHR5cGU9InhzOmJvb2xlYW4iIA0KCWRlZmF1bHQ9ImZhbHNlIi8+DQoJPHhzOmF0 dHJpYnV0ZSBuYW1lPSJFbmNyeXB0IiB0eXBlPSJ4czpib29sZWFuIiANCglkZWZhdWx0PSJmYWxz ZSIvPg0KCTx4czphdHRyaWJ1dGUgbmFtZT0iVW5sb2NrIiB0eXBlPSJ4czpib29sZWFuIiANCglk ZWZhdWx0PSJmYWxzZSIvPg0KCTx4czphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIi8+ DQo8L3hzOmNvbXBsZXhUeXBlPg0KCV1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1ibGUvPg0K CQkJCQk8L2ZpZ3VyZT4NCgkJCQkJPHQ+VGhlIGF0dHJpYnV0ZXMgb2YgdGhlIFVzYWdlIGVsZW1l bnQgZGVmaW5lIHRoZSBpbnRlbmRlZCB1c2FnZSBvZiB0aGUga2V5IA0KCQkJCQlhbmQgYXJlIGEg Y29tYmluYXRpb24gb2Ygb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyAoc2V0IHRvIHRydWUp Og0KCQkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJCTx0Pk9UUCwgdGhlIGtleSB3aWxs IGJlIHVzZWQgZm9yIE9UUCBnZW5lcmF0aW9uPC90Pg0KCQkJCQkJCTx0PkNSLCB0aGUga2V5IHdp bGwgYmUgdXNlZCBmb3IgQ2hhbGxlbmdlL1Jlc3BvbnNlIHB1cnBvc2VzPC90Pg0KCQkJCQkJCTx0 PkVuY3J5cHQsIHRoZSBrZXkgd2lsbCBiZSB1c2VkIGZvciBkYXRhIGVuY3J5cHRpb24gcHVycG9z ZXM8L3Q+DQoJCQkJCQkJPHQ+SW50ZWdyaXR5LCB0aGUga2V5IHdpbGwgYmUgdXNlZCB0byBnZW5l cmF0ZSBhIGtleWVkIG1lc3NhZ2UgZGlnZXN0IGZvciBkYXRhIGludGVncml0eSBvciBhdXRoZW50 aWNhdGlvbiBwdXJwb3Nlcy48L3Q+DQoJCQkJCQkJPHQ+VW5sb2NrLCB0aGUga2V5IHdpbGwgYmUg dXNlZCBmb3IgYW4gaW52ZXJzZSBjaGFsbGVuZ2UgcmVzcG9uc2UgaW4gdGhlDQoJCQljYXNlIGEg dXNlciBoYXMgbG9ja2VkIHRoZSBkZXZpY2UgYnkgZW50ZXJpbmcgYSB3cm9uZyBQSU4gdG9vIG1h bnkgdGltZXMgDQoJCQkoZm9yIGRldmljZXMgd2l0aCBQSU4taW5wdXQgY2FwYWJpbGl0eSk8L3Q+ DQoJCQkJCQk8L2xpc3Q+DQoJCQkJCTwvdD4NCgkJCQkJPHNlY3Rpb24gdGl0bGU9Ik9UUCBhbmQg Q1Igc3BlY2lmaWMgVXNhZ2UgZWxlbWVudHMgKE9QVElPTkFMKSI+DQoJCQkJCQk8dD5XaGVuIHRo ZSBpbnRlbmRlZCB1c2FnZSBvZiBhIGtleSB1c2FnZSBpcyBPVFAgYW5kL29yIENSLCANCgkJdGhl IGZvbGxvd2luZyBhZGRpdGlvbmFsIGVsZW1lbnRzIE1VU1QgYmUgcHJvdmlkZWQgd2l0aGluIHRo ZSBVc2FnZSBlbGVtZW50IHRvIHN1cHBvcnQgdGhlIE9UUCBhbmQvb3IgdGhlIA0KCQlyZXNwb25z ZSBjb21wdXRhdGlvbiBhcyByZXF1aXJlZCBieSB0aGUgdW5kZXJseWluZyBhbGdvcml0aG0uIFRo ZXNlIGVsZW1lbnRzIGFsc28gYWxsb3cgdG8gY3VzdG9taXplIG9yIA0KCQljb25maWd1cmUgdGhl IHJlc3VsdCBvZiB0aGUgY29tcHV0YXRpb24gKGUuZy4gZm9ybWF0LCBsZW5ndGgpLjwvdD4NCgkJ CQkJCTxzZWN0aW9uIHRpdGxlPSJDaGFsbGVuZ2VGb3JtYXQgZWxlbWVudCAoTUFOREFUT1JZKSI+ DQoJCQkJCQkJPHQ+VGhlIENoYWxsZW5nZUZvcm1hdCBlbGVtZW50IGRlZmluZXMgdGhlIGNoYXJh Y3RlcmlzdGljcyBvZiB0aGUgY2hhbGxlbmdlIGluIGEgQ1IgdXNhZ2Ugc2NlbmFyaW8uIA0KCQlU aGUgQ2hhbGxlbmdlIGVsZW1lbnQgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0 ZXM6IA0KCQkNCgkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJCQkJPHQ+Rm9ybWF0IChN QU5EQVRPUlkpDQoJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJCQkJCTx0IGhhbmdU ZXh0PSIiPkRlZmluZXMgdGhlIGZvcm1hdCBvZiB0aGUgY2hhbGxlbmdlIGFjY2VwdGVkIGJ5IA0K CQkJCXRoZSBkZXZpY2UgYW5kIE1VU1QgYmUgb25lIG9mIHRoZSB2YWx1ZXMgZGVmaW5lZCBpbiA8 eHJlZiB0YXJnZXQ9IlZhbHVlRm9ybWF0Ii8+DQoJCQkJCQkJCQkJCTwvdD4NCgkJCQkJCQkJCQk8 L2xpc3Q+DQoJCQkJCQkJCQk8L3Q+DQoJCQkJCQkJCQk8dD5DaGVja0RpZ2l0IChPUFRJT05BTCkN CgkJCTxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCgkJCQkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+RGVm aW5lcyBpZiB0aGUgZGV2aWNlIG5lZWRzIHRvIGNoZWNrIHRoZSBhcHBlbmRlZCBMdWhuIGNoZWNr IA0KCQkJCWRpZ2l0IGNvbnRhaW5lZCBpbiBhIHByb3ZpZGVkIGNoYWxsZW5nZS4gVGhpcyBpcyBv bmx5IHZhbGlkIGlmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdERUNJTUFMJy4gVmFsdWUgTVVT VCBiZToNCgkJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJCQkJCQkJPHQgaGFuZ1Rl eHQ9IiI+VFJVRSBkZXZpY2Ugd2lsbCBjaGVjayB0aGUgYXBwZW5kZWQgTHVobiBjaGVjayBkaWdp dCBpbiBhIHByb3ZpZGVkIGNoYWxsZW5nZSA8L3Q+DQoJCQkJCQkJCQkJCQkJPHQgaGFuZ1RleHQ9 IiI+RkFMU0UgZGV2aWNlIHdpbGwgbm90IGNoZWNrIGFwcGVuZGVkIEx1aG4gY2hlY2sgZGlnaXQg aW4gY2hhbGxlbmdlPC90Pg0KCQkJCQkJCQkJCQkJPC9saXN0Pg0KCQkJCQkJCQkJCQk8L3Q+DQoJ CQkJCQkJCQkJPC9saXN0Pg0KCQkJCQkJCQkJPC90Pg0KCQkJCQkJCQkJPHQ+TWluIChNQU5EQVRP UlkpDQoJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJCQkJCTx0IGhhbmdUZXh0PSIi PkRlZmluZXMgdGhlIG1pbmltdW0gc2l6ZSBvZiB0aGUgY2hhbGxlbmdlIGFjY2VwdGVkIGJ5IHRo ZSBkZXZpY2UgZm9yIENSIG1vZGUuPC90Pg0KCQkJCQkJCQkJCQk8dD5JZiB0aGUgRm9ybWF0IGF0 dHJpYnV0ZSBpcyAnREVDSU1BTCcsICdIRVhBREVDSU1BTCcgb3IgJ0FMUEhBTlVNRVJJQycgdGhp cyB2YWx1ZSBpbmRpY2F0ZXMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cy9jaGFyYWN0ZXJz LjwvdD4NCgkJCQkJCQkJCQkJPHQ+SWYgdGhlIEZvcm1hdCBhdHRyaWJ1dGUgaXMgJ0JBU0U2NCcg b3IgJ0JJTkFSWScsIHRoaXMgdmFsdWUgaW5kaWNhdGVzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBi eXRlcyBvZiB0aGUgdW5lbmNvZGVkIHZhbHVlLjwvdD4NCgkJCQkJCQkJCQkJPHQ+VmFsdWUgTVVT VCBiZTo8L3Q+DQoJCQkJCQkJCQkJCTx0Pg0KCQkJCQkJCQkJCQkJPGxpc3Qgc3R5bGU9Imhhbmdp bmciPg0KCQkJCQkJCQkJCQkJCTx0IGhhbmdUZXh0PSIiPlVuc2lnbmVkIGludGVnZXIuPC90Pg0K CQkJCQkJCQkJCQkJPC9saXN0Pg0KCQkJCQkJCQkJCQk8L3Q+DQoJCQkJCQkJCQkJPC9saXN0Pg0K CQkJCQkJCQkJPC90Pg0KCQkJCQkJCQkJPHQ+TWF4IChNQU5EQVRPUlkpDQoJCQk8bGlzdCBzdHls ZT0iaGFuZ2luZyI+DQoJCQkJCQkJCQkJCTx0IGhhbmdUZXh0PSIiPkRlZmluZXMgdGhlIG1heGlt dW0gc2l6ZSBvZiB0aGUgY2hhbGxlbmdlIGFjY2VwdGVkIGJ5IHRoZSBkZXZpY2UgZm9yIENSIG1v ZGUuPC90Pg0KCQkJCQkJCQkJCQk8dD5JZiB0aGUgRm9ybWF0IGF0dHJpYnV0ZSBpcyAnREVDSU1B TCcsICdIRVhBREVDSU1BTCcgb3IgJ0FMUEhBTlVNRVJJQycgdGhpcyB2YWx1ZSBpbmRpY2F0ZXMg dGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cy9jaGFyYWN0ZXJzLjwvdD4NCgkJCQkJCQkJCQkJ PHQ+SWYgdGhlIEZvcm1hdCBhdHRyaWJ1dGUgaXMgJ0JBU0U2NCcgb3IgJ0JJTkFSWScsIHRoaXMg dmFsdWUgaW5kaWNhdGVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyBvZiB0aGUgdW5lbmNv ZGVkIHZhbHVlLjwvdD4NCgkJCQkJCQkJCQkJPHQ+VmFsdWUgTVVTVCBiZTo8L3Q+DQoJCQkJCQkJ CQkJCTx0Pg0KCQkJCQkJCQkJCQkJPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0KCQkJCQkJCQkJCQkJ CTx0IGhhbmdUZXh0PSIiPlVuc2lnbmVkIGludGVnZXIuPC90Pg0KCQkJCQkJCQkJCQkJPC9saXN0 Pg0KCQkJCQkJCQkJCQk8L3Q+DQoJCQkJCQkJCQkJPC9saXN0Pg0KCQkJCQkJCQkJPC90Pg0KCQkJ CQkJCQk8L2xpc3Q+DQoJCQkJCQkJPC90Pg0KCQkJCQkJPC9zZWN0aW9uPg0KCQkJCQkJPHNlY3Rp b24gdGl0bGU9IlJlc3BvbnNlRm9ybWF0IGVsZW1lbnQgKE1BTkRBVE9SWSkiPg0KCQkJCQkJCTx0 PlRoZSBSZXNwb25zZUZvcm1hdCBlbGVtZW50IGRlZmluZXMgdGhlIGNoYXJhY3RlcmlzdGljcyBv ZiB0aGUgcmVzdWx0IG9mIA0KCQlhIGNvbXB1dGF0aW9uLiBUaGlzIGRlZmluZXMgdGhlIGZvcm1h dCBvZiB0aGUgT1RQIG9yIG9mIHRoZSByZXNwb25zZSB0byBhIGNoYWxsZW5nZS4gRm9yIGNhc2Vz IHdoZXJlIHRoZSBrZXkgaXMgYSBQSU4gdmFsdWUgdGhpcyBlbGVtZW50IGNvbnRhaW5zIHRoZSBm b3JtYXQgb2YgdGhlIFBJTiBpdHNlbGYuIA0KCQlUaGUgUmVzcG9uc2UgYXR0cmlidXRlIGlzIGRl ZmluZWQgYnkgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOiANCgkJDQoJCTxsaXN0IHN0eWxlPSJz eW1ib2xzIj4NCgkJCQkJCQkJCTx0PkZvcm1hdCAoTUFOREFUT1JZKQ0KCQkJPGxpc3Qgc3R5bGU9 ImhhbmdpbmciPg0KCQkJCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5EZWZpbmVzIHRoZSBmb3JtYXQg b2YgdGhlIHJlc3BvbnNlIGdlbmVyYXRlZCBieSANCgkJCQl0aGUgZGV2aWNlIGFuZCBNVVNUIGJl IG9uZSBvZiB0aGUgdmFsdWVzIGRlZmluZWQgaW4gPHhyZWYgdGFyZ2V0PSJWYWx1ZUZvcm1hdCIv Pg0KCQkJCQkJCQkJCQk8L3Q+DQoJCQkJCQkJCQkJPC9saXN0Pg0KCQkJCQkJCQkJPC90Pg0KCQkJ CQkJCQkJPHQ+Q2hlY2tEaWdpdCAoT1BUSU9OQUwpDQoJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+ DQoJCQkJCQkJCQkJCTx0IGhhbmdUZXh0PSIiPkRlZmluZXMgaWYgdGhlIGRldmljZSBuZWVkcyB0 byBhcHBlbmQgYSBMdWhuIGNoZWNrIA0KCQkJCWRpZ2l0IHRvIHRoZSByZXNwb25zZS4gVGhpcyBp cyBvbmx5IHZhbGlkIGlmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdERUNJTUFMJy4gVmFsdWUg TVVTVCBiZToNCgkJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJCQkJCQkJPHQgaGFu Z1RleHQ9IiI+VFJVRSBkZXZpY2Ugd2lsbCBhcHBlbmQgYSBMdWhuIGNoZWNrIGRpZ2l0IHRvIHRo ZSByZXNwb25zZS4gPC90Pg0KCQkJCQkJCQkJCQkJCTx0IGhhbmdUZXh0PSIiPkZBTFNFIGRldmlj ZSB3aWxsIG5vdCBhcHBlbmQgYSBMdWhuIGNoZWNrIGRpZ2l0IHRvIHRoZSByZXNwb25zZS48L3Q+ DQoJCQkJCQkJCQkJCQk8L2xpc3Q+DQoJCQkJCQkJCQkJCTwvdD4NCgkJCQkJCQkJCQk8L2xpc3Q+ DQoJCQkJCQkJCQk8L3Q+DQoJCQkJCQkJCQk8dD5MZW5ndGggKE1BTkRBVE9SWSkNCgkJCTxsaXN0 IHN0eWxlPSJoYW5naW5nIj4NCgkJCQkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+RGVmaW5lcyB0aGUg bGVuZ3RoIG9mIHRoZSByZXNwb25zZSBnZW5lcmF0ZWQgYnkgdGhlIGRldmljZS48L3Q+DQoJCQkJ CQkJCQkJCTx0PklmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdERUNJTUFMJywgJ0hFWEFERUNJ TUFMJyBvciAnQUxQSEFOVU1FUklDJyB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgbnVtYmVyIG9m IGRpZ2l0cy9jaGFyYWN0ZXJzLjwvdD4NCgkJCQkJCQkJCQkJPHQ+SWYgdGhlIEZvcm1hdCBhdHRy aWJ1dGUgaXMgJ0JBU0U2NCcgb3IgJ0JJTkFSWScsIHRoaXMgdmFsdWUgaW5kaWNhdGVzIHRoZSBu dW1iZXIgb2YgYnl0ZXMgb2YgdGhlIHVuZW5jb2RlZCB2YWx1ZS48L3Q+DQoJCQkJCQkJCQkJCTx0 PlZhbHVlIE1VU1QgYmU6PC90Pg0KCQkJCQkJCQkJCQk8dD4NCgkJCQkJCQkJCQkJCTxsaXN0IHN0 eWxlPSJoYW5naW5nIj4NCgkJCQkJCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5VbnNpZ25lZCBpbnRl Z2VyLiA8L3Q+DQoJCQkJCQkJCQkJCQk8L2xpc3Q+DQoJCQkJCQkJCQkJCTwvdD4NCgkJCQkJCQkJ CQk8L2xpc3Q+DQoJCQkJCQkJCQk8L3Q+DQoJCQkJCQkJCTwvbGlzdD4NCgkJCQkJCQk8L3Q+DQoJ CQkJCQk8L3NlY3Rpb24+DQoJCQkJCTwvc2VjdGlvbj4NCgkJCQk8L3NlY3Rpb24+DQoJCQkJPHNl Y3Rpb24gYW5jaG9yPSJWYWx1ZUZvcm1hdCIgdGl0bGU9IlZhbHVlRm9ybWF0Ij4NCgkJCQkJPHQ+ VGhlIFZhbHVlRm9ybWF0IGVsZW1lbnQgZGVmaW5lcyBhbGxvd2VkIGZvcm1hdHMgZm9yIGNoYWxs ZW5nZXMgb3IgcmVzcG9uc2VzIGluIE9UUCBhbGdvcml0aG1zLjwvdD4NCgkJCQkJPHQ+VmFsdWVG b3JtYXQgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvdD4NCgkJCQkJPGZpZ3VyZT4NCgkJCQkJCTxw cmVhbWJsZS8+DQoJCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjxzaW1wbGVUeXBlIG5hbWU9IlZh bHVlRm9ybWF0Ij4NCiAgPHJlc3RyaWN0aW9uIGJhc2U9InN0cmluZyI+DQogICAgPGVudW1lcmF0 aW9uIHZhbHVlPSJERUNJTUFMIi8+DQogICAgPGVudW1lcmF0aW9uIHZhbHVlPSJIRVhBREVDSU1B TCIvPg0KICAgIDxlbnVtZXJhdGlvbiB2YWx1ZT0iQUxQSEFOVU1FUklDIi8+DQogICAgPGVudW1l cmF0aW9uIHZhbHVlPSJCQVNFNjQiLz4NCiAgICA8ZW51bWVyYXRpb24gdmFsdWU9IkJJTkFSWSIv Pg0KICA8L3Jlc3RyaWN0aW9uPg0KPC9zaW1wbGVUeXBlPg0KXV0+PC9hcnR3b3JrPg0KCQkJCQkJ PHBvc3RhbWJsZS8+DQoJCQkJCTwvZmlndXJlPg0KCQkJCQk8dD4NCgkJCQkJCTxsaXN0IHN0eWxl PSJoYW5naW5nIj4NCgkJCQkJCQk8dCBoYW5nVGV4dD0iIj5ERUNJTUFMIE9ubHkgbnVtZXJpY2Fs IGRpZ2l0czwvdD4NCgkJCQkJCQk8dCBoYW5nVGV4dD0iIj5IRVhBREVDSU1BTCBIZXhhZGVjaW1h bCByZXNwb25zZTwvdD4NCgkJCQkJCQk8dCBoYW5nVGV4dD0iIj5BTFBIQU5VTUVSSUMgQWxsIGxl dHRlcnMgYW5kIG51bWJlcnMgKGNhc2Ugc2Vuc2l0aXZlKTwvdD4NCgkJCQkJCQk8dCBoYW5nVGV4 dD0iIj5CQVNFNjQgQmFzZSA2NCBlbmNvZGVkPC90Pg0KCQkJCQkJCTx0IGhhbmdUZXh0PSIiPkJJ TkFSWSBCaW5hcnkgZGF0YSwgdGhpcyBpcyBtYWlubHkgdXNlZCBpbiBjYXNlIG9mIGNvbm5lY3Rl ZCBkZXZpY2VzPC90Pg0KCQkJCQkJPC9saXN0Pg0KCQkJCQk8L3Q+DQoJCQkJPC9zZWN0aW9uPg0K CQkJCTxzZWN0aW9uIGFuY2hvcj0iUElOUG9saWN5RWxlbWVudCIgdGl0bGU9IlBJTlBvbGljeSI+ DQoJCQkJCTx0PlRoZSBQSU5Qb2xpY3kgZWxlbWVudCBwcm92aWRlcyBhIG1lYW4gdG8gZGVmaW5l IGhvdyB0aGUgdXNhZ2Ugb2YgYSBzcGVjaWZpYyBrZXkgaXMgcHJvdGVjdGVkIGJ5IGEgUElOLiBU aGUgUElOIGl0c2VsZiBjYW4gYmUgdHJhbnNtaXR0ZWQgYXMgYSBrZXkgdXNpbmcgdGhlIGNvbnRh aW5lci48L3Q+DQoJCQkJCTx0PklmIHRoZSBQSU5Qb2xpY3kgZWxlbWVudCBpcyBwcmVzZW50IGlu IHRoZSBLZXkgZWxlbWVudCB0aGVuIHRoZSBrZXkgaXMgcHJvdGVjdGVkIHdpdGggYSBQSU4gYXMg ZGVmaW5lZCB3aXRoaW4gdGhlIFBJTlBvbGljeSBlbGVtZW50LjwvdD4NCgkJCQkJPHQ+UElOUG9s aWN5IGlzIGRlZmluZWQgYXMgZm9sbG93czo8L3Q+DQoJCQkJCTxmaWd1cmU+DQoJCQkJCQk8cHJl YW1ibGUvPg0KCQkJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQo8eHM6Y29tcGxleFR5cGUgbmFtZT0i UElOUG9saWN5VHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJQSU5Vc2FnZU1vZGUiIHR5cGU9InBza2M6UElOVXNhZ2VNb2RlVHlwZSIvPg0KICAgICAg ICA8eHM6ZWxlbWVudCBuYW1lPSJXcm9uZ1BJTlRyeSIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIA0K ICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIg cHJvY2Vzc0NvbnRlbnRzPSJsYXgiIA0KCQltaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3Vu ZGVkIi8+DQogICAgPC94czpzZXF1ZW5jZT4NCgk8eHM6YXR0cmlidXRlIG5hbWU9IlBJTlBvbGlj eUlkIiB0eXBlPSJ4czpJRCIgdXNlPSJvcHRpb25hbCIvPg0KICAgIDx4czphdHRyaWJ1dGUgbmFt ZT0iUElOS2V5SWQiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJvcHRpb25hbCIvPg0KPC94czpjb21w bGV4VHlwZT4NCl1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCQk8L2ZpZ3Vy ZT4NCgkJCQkJPHQ+IFRoZSBhdHRyaWJ1dGVzIG9mIFBJTlBvbGljeSBoYXZlIHRoZSBmb2xsb3dp bmcgbWVhbmluZw0KCQkJCTxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD5QSU5Qb2xp Y3lJZCAoT1BUSU9OQUwpLCB0aGUgdW5pcXVlIElkIG9mIHRoaXMgUElOUG9saWN5IHdpdGhpbiB0 aGlzIGNvbnRhaW5lciA8L3Q+DQoJCQkJCQkJPHQ+UElOS2V5SWQgKE9QVElPTkFMKSwgdGhlIHVu aXF1ZSBrZXkgSWQgd2l0aGluIHRoaXMgY29udGFpbmVyIHRoYXQgY29udGFpbnMgdGhlIHZhbHVl IG9mIHRoZSBQSU4gdGhhdCBwcm90ZWN0cyB0aGUga2V5PC90Pg0KCQkJCQkJPC9saXN0Pg0KCQkJ CQk8L3Q+DQoJCQkJCTx0PiBUaGUgZWxlbWVudHMgb2YgUElOUG9saWN5IGhhdmUgdGhlIGZvbGxv d2luZyBtZWFuaW5nDQoJCQkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJCTx0PiZsdDtQ SU5Vc2FnZU1vZGUgKE1BTkRBVE9SWSk+ICwgdGhlIHdheSB0aGUgUElOIGlzIHVzZWQgZHVyaW5n IHRoZSB1c2FnZSBvZiB0aGUga2V5IGFzIGRlZmluZWQgaW4gPHhyZWYgdGFyZ2V0PSJQSU5Vc2Fn ZU1vZGVFbGVtZW50Ii8+PC90Pg0KCQkJCQkJCTx0PiZsdDtXcm9uZ1BJTlRyeSAoT1BUSU9OQUwp PiwgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgUElOIGNhbiBiZSBlbnRlcmVkIHdyb25nbHkgYmVm b3JlIGl0IE1VU1Qgbm90IGJlIHBvc3NpYmxlIHRvIHVzZSB0aGUga2V5IGFueW1vcmU8L3Q+DQoJ CQkJCQkJDQoJCQkJCQk8L2xpc3Q+DQoJCQkJCTwvdD4NCgkJCQkJPHNlY3Rpb24gYW5jaG9yPSJQ SU5Vc2FnZU1vZGVFbGVtZW50IiB0aXRsZT0iUElOVXNhZ2VNb2RlIj4NCgkJCQkJCTx0PlRoZSBQ SU5Vc2FnZU1vZGUgZWxlbWVudCBkZWZpbmVzIGhvdyB0aGUgUElOIGlzIHVzZWQgd2l0aCBhIHNw ZWNpZmljIGtleTwvdD4NCgkJCQkJCTx0PlBJTlVzYWdlTW9kZSBpcyBkZWZpbmVkIGFzIGZvbGxv d3M6PC90Pg0KCQkJCQkJPGZpZ3VyZT4NCgkJCQkJCQk8cHJlYW1ibGUvPg0KCQkJCQkJCTxhcnR3 b3JrPjwhW0NEQVRBWw0KPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlBJTlVzYWdlTW9kZVR5cGUiPg0K ICAgIDx4czpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KICAgICAgICA8eHM6ZWxlbWVu dCBuYW1lPSJMb2NhbCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQcmVwZW5kIi8+DQog ICAgICAgIDx4czplbGVtZW50IG5hbWU9IkluQWxnbyIvPg0KICAgICAgICA8eHM6YW55IG5hbWVz cGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIA0KICAgICAgICBtaW5PY2N1cnM9 IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgPC94czpjaG9pY2U+DQo8L3hzOmNvbXBs ZXhUeXBlPg0KXV0+PC9hcnR3b3JrPg0KCQkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCQkJPC9maWd1 cmU+DQoJCQkJCQk8dD4gVGhlIGVsZW1lbnRzIG9mIFBJTlBvbGljeSBoYXZlIHRoZSBmb2xsb3dp bmcgbWVhbmluZw0KCQkJCTxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQkJPHQ+Jmx0O0xv Y2FsPiwgdGhlIFBJTiBpcyBjaGVja2VkIGxvY2FsbHkgb24gdGhlIGRldmljZSBiZWZvcmUgYWxs b3dpbmcgdGhlIGtleSB0byBiZSB1c2VkIGluIGV4ZWN1dGluZyB0aGUgYWxnb3JpdGhtPC90Pg0K CQkJCQkJCQk8dD4mbHQ7UHJlcGVuZD4sIHRoZSBQSU4gaXMgcHJlcGVuZGVkIHRvIHRoZSBPVFAg b3IgcmVzcG9uc2UgaGFuY2UgaXQgTVVTVCBiZSBjaGFja2VkIGJ5IHRoZSB2YWxpZGF0aW9uIHNl cnZlcjwvdD4NCgkJCQkJCQkJPHQ+Jmx0O0luQWxnbz4sIHRoZSBQSU4gaXMgdXNlZCBhcyBwYXJ0 IG9mIHRoZSBhbGdvcml0aG0gY29tcHV0YXRpb248L3Q+DQoJCQkJCQkJPC9saXN0Pg0KCQkJCQkJ PC90Pg0KCQkJCQk8L3NlY3Rpb24+DQoJCQkJPC9zZWN0aW9uPg0KCQkJPC9zZWN0aW9uPg0KCQk8 L3NlY3Rpb24+DQoJCTxzZWN0aW9uIGFuY2hvcj0iU2VjdXJpdHlBbGdvcml0aG1EZXNjcmlwdGlv biIgdGl0bGU9IlVzYWdlIGFuZCBwcm9maWxlIG9mIGFsZ29yaXRobXMgZm9yIHRoZSBwb3J0YWJs ZSBzeW1tZXRyaWMga2V5IGNvbnRhaW5lciI+DQoJCQk8dD5UaGlzIHNlY3Rpb24gZGV0YWlscyB0 aGUgdXNlIG9mIHRoZSBYTUwgZW5jcnlwdGlvbiBhbmQgWE1MIHNpZ25hdHVyZSBlbGVtZW50cyB0 byBwcm90ZWN0IHRoZSBrZXlzIHRyYW5zcG9ydGVkIGluIHRoZSBjb3RhaW5lci4gSXQgYWxzbyBw cm9maWxlcyB0aGUgbnVtYmVyIG9mIGFsZ29yaXRobXMgc3VwcG9ydGVkIGJ5IFhNTCBlbmNyeXB0 aW9uIGFuZCBYTUwgc2lnbmF0dXJlIHRvIGEgbWFuZGF0b3J5IHN1YnNldCBmb3IgaW50ZXJvcGVy YWJpbGl0eS4NCgkJCQk8L3Q+DQoJCQk8dD5XaGVuIG5vIGFsZ29yaXRobSBpcyBwcm92aWRlZCB0 aGUgdmFsdWVzIHdpdGhpbiB0aGUgY29udGFpbmVyIGFyZSB1bmVuY3J5cHRlZCwgaW1wbGVtZW50 YXRpb25zIFNIQUxMIGVuc3VyZSB0aGUgcHJpdmFjeSBvZiB0aGUga2V5IGRhdGEgdGhyb3VnaCBv dGhlciBzdGFuZGFyZCBtZWNoYW5pc21zIGUuZy4gdHJhbnNwb3J0IGxldmVsIGVuY3J5cHRpb24u PC90Pg0KCQkJPHNlY3Rpb24gYW5jaG9yPSJFbmNyeXB0aW9uS2V5RGVzY3JpcHRpb24iIHRpdGxl PSJVc2FnZSBvZiBFbmNyeXB0aW9uS2V5IHRvIHByb3RlY3Qga2V5cyBpbiB0cmFuc2l0Ij4NCgkJ CQk8dD5UaGUgRW5jcnlwdGlvbktleSBlbGVtZW50IGluIHRoZSBLZXlDb250YWluZXIgZGVmaW5l cyB0aGUga2V5LCBhbGdvcml0aG0gYW5kIHBhcmFtZXRlcnMgdXNlZCB0byBlbmNyeXB0IA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBTZWNyZXQgS2V5IGRhdGEg YXR0cmlidXRlcyBpbiB0aGUgQ29udGFpbmVyLiBUaGUgc3RhbmRhcmQgc2NoZW1hIDx4cmVmIHRh cmdldD0iWE1MRU5DIi8+IGlzIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFkb3B0ZWQgaW4gY2Fycnkgc3VjaCBpbmZvcm1hdGlvbiBhbmQgYW4gZW5jcnlwdGVkIHZh bHVlLiBUaGUgZW5jcnlwdGlvbiBpcyBhcHBsaWVkIG9uIGVhY2ggDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW5kaXZpZHVhbCBTZWNyZXQgS2V5IGRhdGEgaW4gdGhl IENvbnRhaW5lci4gVGhlIGVuY3J5cHRpb24gbWV0aG9kIE1VU1QgYmUgdGhlIA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbWUgZm9yIGFsbCBTZWNyZXQgS2V5IGRh dGEgaW4gdGhlIGNvbnRhaW5lci4gPC90Pg0KCQkJCTx0PlRoZSBmb2xsb3dpbmcgc2VjdGlvbnMg ZGVmaW5lIHNwZWNpZmljYWxseSB0aGUgZGlmZmVyZW50IHN1cHBvcnRlZCBtZWFucyB0byBwcm90 ZWN0IHRoZSBrZXlzOg0KICAgICAgICAgICAgICAgICAgICAgPC90Pg0KCQkJCTxzZWN0aW9uIGFu Y2hvcj0iU3ltbWV0cmljS2V5UHJvdGVjdGlvbkRlc2NyaXB0aW9uIiB0aXRsZT0iUHJvdGVjdGlu ZyBrZXlzIHVzaW5nIGEgcHJlLXNoYXJlZCBrZXkgdmlhIHN5bW1ldHJpYyBhbGdvcml0aG1zIj4N CgkJCQkJPHQ+V2hlbiBwcm90ZWN0aW5nIHRoZSBwYXlsb2FkIHdpdGggcHJlLXNoYXJlZCBrZXlz IGltcGxlbWVudGF0aW9ucyBTSE9VTEQgc2V0IHRoZSBuYW1lIG9mIHRoZSBzcGVjaWZpYyBwcmUt c2hhcmVkIGtleSBpbiB0aGUgS2V5TmFtZSBlbGVtZW50IG9mIHRoZSBFbmNyeXB0aW9uS2V5IG9m IHRoZSBLZXlDb250YWluZXIuDQoJCQkJCUZvciBleGFtcGxlOg0KCQkJCQk8ZmlndXJlPg0KCQkJ CQkJCTxwcmVhbWJsZS8+DQoJCQkJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQo8S2V5Q29udGFpbmVy IFZlcnNpb249IjEuMCIgDQogIHhtbG5zPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6 Y29udGFpbmVyOjEuMCIgDQogIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3ht bGRzaWcjIiANCiAgeG1sbnM6eGVuYz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMj Ij4NCiAgICA8RW5jcnlwdGlvbktleT4NCiAgICAgICAgPGRzOktleU5hbWU+UFJFX1NIQVJFRF9L RVk8L2RzOktleU5hbWU+DQogICAgPC9FbmNyeXB0aW9uS2V5Pg0KICAgIC4uLi4NCgkgICAgICAg IF1dPjwvYXJ0d29yaz4NCgkJCQkJCQk8cG9zdGFtYmxlLz4NCgkJCQkJCTwvZmlndXJlPgkJCQkJ DQoJCQkJCTwvdD4NCgkJCQkJPHQ+CQkJCQ0KCQkJCQlUaGUgZm9sbG93aW5nIGlzIHRoZSBsaXN0 IG9mIHN5bW1ldHJpYyBrZXkgZW5jcnlwdGlvbiBhbGdvcml0aG0gYW5kIHBvc3NpYmxlIHBhcmFt ZXRlcnMgdXNlZCB0byBwcm90ZWN0IHRoZSBTZWNyZXQgS2V5IGRhdGEgaW4gdGhlIGNvbnRhaW5l ci4gU3lzdGVtcyBpbXBsZW1lbnRpbmcgUFNLQyBNVVNUIHN1cHBvcnQgdGhlIE1BTkRBVE9SWSBh bGdvcml0aG1zIGRldGFpbGVkIGJlbG93LjwvdD4NCgkJCQkJPHQ+VGhlIGVuY3J5cHRpb24gYWxn b3JpdGhtIFVSSSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcuDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJ CQk8dD5odHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyN0cmlwbGVkZXMtY2JjIC0gTUFO REFUT1JZPC90Pg0KCQkJCQkJCTx0Pmh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2Fl czEyOC1jYmMgLSBNQU5EQVRPUlk8L3Q+DQoJCQkJCQkJPHQ+aHR0cDovL3d3dy53My5vcmcvMjAw MS8wNC94bWxlbmMjYWVzMTkyLWNiYyAtIE9QVElPTkFMPC90Pg0KCQkJCQkJCTx0Pmh0dHA6Ly93 d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2FlczI1Ni1jYmMgLSBNQU5EQVRPUlk8L3Q+DQoJCQkJ CQkJPHQ+aHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMja3ctdHJpcGxlZGVzIC0gTUFO REFUT1JZPC90Pg0KCQkJCQkJCTx0Pmh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2t3 LWFlczEyOCAtIE1BTkRBVE9SWTwvdD4NCgkJCQkJCQk8dD5odHRwOi8vd3d3LnczLm9yZy8yMDAx LzA0L3htbGVuYyNrdy1hZXMyNTYgLSBNQU5EQVRPUlk8L3Q+DQoJCQkJCQkJPHQ+aHR0cDovL3d3 dy53My5vcmcvMjAwMS8wNC94bWxlbmMja3ctYWVzNTEyIC0gT1BUSU9OQUw8L3Q+DQoJCQkJCQk8 L2xpc3Q+DQoJCQkJCTwvdD4NCgkJCQkJPHQ+V2hlbiBhbGdvcml0aG1zIHdpdGhvdXQgaW50ZWdy aXR5IGNoZWNrcyBhcmUgdXNlZCAoZS5nLiBodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVu YyNhZXMyNTYtY2JjKSBhIGtleWVkIE1BQyB2YWx1ZSB1c2luZyB0aGUgc2FtZSBrZXkgYXMgdGhl IGVuY3J5cHRpb24ga2V5IFNIT1VMRCBiZSBwbGFjZWQgaW4gdGhlIFZhbHVlTUFDIGVsZW1lbnQg b2YgdGhlIERhdGEgZWxlbWVudC4NCkluIHRoaXMgY2FzZSB0aGUgTUFDIGFsZ29yaXRobSB0eXBl IE1VU1QgYmUgc2V0IGluIHRoZSBNQUNBbGdvcml0aG0gZWxlbWVudCBpbiB0aGUga2V5IGNvbnRh aW5lciBlbnRpdHkgYXMgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9IktleUNvbnRhaW5lckVudGl0 eSIvPi4NCkltcGxlbWVudGF0aW9ucyBvZiBQU0tDIE1VU1Qgc3VwcG9ydCB0aGUgTUFOREFUT1JZ IE1BQyBhbGdvcml0aG1zIGRldGFpbGVkIGJlbG93LiBUaGUgTUFDQWxnb3JpdGhtIFVSSSBjYW4g YmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD5odHRwOi8vd3d3 LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjaG1hYy1zaGExICAtIE1BTkRBVE9SWTwvdD4NCgkJCQkJ CTwvbGlzdD4NCg0KRm9yIGV4YW1wbGU6DQoJCQkJCTxmaWd1cmU+DQoJCQkJCQkJPHByZWFtYmxl Lz4NCgkJCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjxLZXlDb250YWluZXIgVmVyc2lvbj0iMS4w IiANCiAgeG1sbnM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4w IiANCiAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIA0KICB4 bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiPg0KICAgIDxFbmNy eXB0aW9uS2V5Pg0KICAgICAgICA8ZHM6S2V5TmFtZT5QUkVfU0hBUkVEX0tFWTwvZHM6S2V5TmFt ZT4NCiAgICA8L0VuY3J5cHRpb25LZXk+DQogICAgPE1BQ0FsZ29yaXRobT5odHRwOi8vd3d3Lncz Lm9yZy8yMDAwLzA5L3htbGRzaWcjaG1hYy1zaGExDQogICAgPC9NQUNBbGdvcml0aG0+DQogICAg Li4uLi4NCgkgICAgICAgIF1dPjwvYXJ0d29yaz4NCgkJCQkJCQk8cG9zdGFtYmxlLz4NCgkJCQkJ CTwvZmlndXJlPg0KCQkJCQk8L3Q+DQoJCQkJPC9zZWN0aW9uPg0KCQkJCTxzZWN0aW9uIHRpdGxl PSJQcm90ZWN0aW5nIGtleXMgdXNpbmcgcGFzc3BocmFzZSBiYXNlZCBlbmNyeXB0aW9uIGtleXMi Pg0KCQkJCQk8dD5UbyBiZSBhYmxlIHRvIHN1cHBvcnQgcGFzc3BocmFzZSBiYXNlZCBlbmNyeXB0 aW9uIGtleXMgYXMgZGVmaW5lZCBpbiBQS0NTIzUgdGhlIGZvbGxvd2luZyBYTUwgcmVwcmVzZW50 YXRpb24gb2YgdGhlIFBCRSByZWxhdGVzIHBhcmFtZXRlcnMgaGF2ZSBiZWVuIGludHJvZHVjZWQg aW4gdGhlIHNjaGVtYS4gQWx0aG91Z2ggdGhlIGFwcHJvYWNoIGlzIGV4dGVuc2libGUgaW1wbGVt ZW50YXRpb25zIG9mIFBTS0MgTVVTVCBzdXBwb3J0IHRoZSBLZXlEZXJpdmF0aW9uTWV0aG9kIGFs Z29yaXRobSBVUkkgb2YgaHR0cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcnNhbGFicy9wa2NzL3Nj aGVtYXMvcGtjcy01I3Bia2RmMi4NCgkJCQkJPC90Pg0KCQkJCQk8ZmlndXJlPg0KCQkJCQkJPHBy ZWFtYmxlLz4NCgkJCQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0KPHhzOmNvbXBsZXhUeXBlIG5hbWU9 IkRlcml2ZWRLZXlUeXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgIDx4czplbGVtZW50 IG5hbWU9IktleURlcml2YXRpb25NZXRob2QiIA0KICAgICAgICAgIHR5cGU9InBza2M6S2V5RGVy aXZhdGlvbk1ldGhvZFR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBy ZWY9InhlbmM6UmVmZXJlbmNlTGlzdCIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgIDx4czplbGVt ZW50IG5hbWU9IkNhcnJpZWRLZXlOYW1lIiB0eXBlPSJ4czpzdHJpbmciIA0KICAgICAgICAgIG1p bk9jY3Vycz0iMCIvPg0KICAgIDwveHM6c2VxdWVuY2U+DQogICAgPHhzOmF0dHJpYnV0ZSBuYW1l PSJJZCIgdHlwZT0ieHM6SUQiIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8eHM6YXR0cmlidXRlIG5h bWU9IlR5cGUiIHR5cGU9InhzOmFueVVSSSIgdXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29t cGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IktleURlcml2YXRpb25NZXRob2RU eXBlIj4NCiAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0i IyNvdGhlciIgbWluT2NjdXJzPSIwIiANCiAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5k ZWQiLz4NCiAgICA8L3hzOnNlcXVlbmNlPg0KICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iQWxnb3Jp dGhtIiB0eXBlPSJ4czphbnlVUkkiIA0KICAgIHVzZT0icmVxdWlyZWQiLz4NCjwveHM6Y29tcGxl eFR5cGU+DQoJICAgICAgICBdXT48L2FydHdvcms+DQoJCQkJCQk8cG9zdGFtYmxlLz4NCgkJCQkJ PC9maWd1cmU+DQoJCQkJCQk8dD5UaGUgYXR0cmlidXRlcyBvZiB0aGUgRGVyaXZlZEtleSBoYXZl IHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJCTx0PklEIChPUFRJT05BTCks IHRoZSB1bmlxdWUgSUQgZm9yIHRoaXMga2V5PC90Pg0KCQkJCQkJCTx0PlR5cGUgKE9QVElPTkFM KSwgVGhpcyBhdHRyaWJ1dGUgd2FzIGluY2x1ZGVkIGZvciBjb25mb3JtYW5jZSB3aXRoIHhtbCBl bmNyeXB0aW9uLCBpdCBpcyBhbiBvcHRpb25hbCBhdHRyaWJ1dGUgaWRlbnRpZnlpbmcgdHlwZSBp bmZvcm1hdGlvbiBhYm91dCB0aGUgcGxhaW50ZXh0IGZvcm0gb2YgdGhlIGVuY3J5cHRlZCBjb250 ZW50LiBQbGVhc2Ugc2VlIDx4cmVmIHRhcmdldD0iWE1MRU5DIi8+IHNlY3Rpb24gMy4xIFR5cGUg Zm9yIG1vcmUgZGV0YWlscy48L3Q+DQoJCQkJCQk8L2xpc3Q+DQoJCQkJCTwvdD4JCQkJPHQ+VGhl IGVsZW1lbnRzIG9mIHRoZSBEZXJpdmVkS2V5IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nczoN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlzdCBzdHlsZT0ic3lt Ym9scyI+DQoJCQkJCQkJPHQ+Jmx0O0tleURlcml2YXRpb25NZXRob2Q+OiBVUkkgb2YgdGhlIGFs Z29yaXRobXMgdXNlZCB0byBkZXJpdmUgdGhlIGtleSBlLmcuIChodHRwOi8vd3d3LnJzYXNlY3Vy aXR5LmNvbS9yc2FsYWJzL3BrY3Mvc2NoZW1hcy9wa2NzLTUjcGJrZGYyKTwvdD4NCgkJCQkJCQk8 dD4mbHQ7UmVmZXJlbmNlTGlzdCAoT1BUSU9OQUwpPjogYSBsaXN0IG9mIElEcyBvZiB0aGUgZWxl bWVudHMgdGhhdCBoYXZlIGJlZW4gZW5jcnlwdGVkIGJ5IHRoaXMga2V5PC90Pg0KCQkJCQkJCTx0 PiZsdDtDYXJyaWVkS2V5TmFtZSAoT1BUSU9OQUwpPjogZnJpZW5kbHkgbmFtZSBvZiB0aGUga2V5 PC90Pg0KCQkJCQkJPC9saXN0Pg0KCQkJCQk8L3Q+DQoJCQkJCTx0Pg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGVuIHVzaW5nIHRoZSBQS0NTNSBQQkUgYWxn b3JpdGhtIChVUkk9aHR0cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcnNhbGFicy9wa2NzL3NjaGVt YXMvcGtjcy01I3BiZXMyKSBhbmQgcmVsYXRlZCBwYXJhbWV0ZXJzLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgRGVyaXZlZEtleSBlbGVtZW50IE1VU1Qg YmUgdXNlZCB3aXRoaW4gdGhlIEVuY3J5cHRpb25LZXkgZWxlbWVudCBvZiB0aGUgS2V5Q29udGFp bmVyIGluIGV4YWN0bHkgdGhlIGZvcm0gYXMgc2hvd24gYmVsb3c6DQoJCQkJCTxmaWd1cmU+DQoJ CQkJCQkJPHByZWFtYmxlLz4NCgkJCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjw/eG1sIHZlcnNp b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQo8S2V5Q29udGFpbmVyDQogIHhtbG5zPSJ1cm46 aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCINCiAgeG1sbnM6cGtjcy01 PQ0KICAgICJodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJzL3BrY3Mvc2NoZW1hcy9w a2NzLTV2Mi0wIyINCiAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt YS1pbnN0YW5jZSINCiAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNp ZyMiDQogIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyINCiAg VmVyc2lvbj0iMS4wIj4NCiAgICA8RW5jcnlwdGlvbktleT4NCiAgICAgIDxEZXJpdmVkS2V5IElk PSIjUGFzc3BocmFzZTEiPg0KICAgICAgICA8Q2FycmllZEtleU5hbWU+UGFzc3BocmFzZTE8L0Nh cnJpZWRLZXlOYW1lPg0KICAgICAgICA8S2V5RGVyaXZhdGlvbk1ldGhvZA0KICAgICAgICAgIEFs Z29yaXRobT0NCiAgICAgImh0dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy9z Y2hlbWFzL3BrY3MtNSNwYmtkZjIiPg0KICAgICAgICAgIDxQYXJhbWV0ZXJzIHhzaTp0eXBlPSJw a2NzLTU6UEJLREYyUGFyYW1ldGVyVHlwZSI+DQogICAgICAgICAgICA8U2FsdD4NCiAgICAgICAg ICAgICAgPFNwZWNpZmllZD5EZjNkUkFoakdoOD08L1NwZWNpZmllZD4NCiAgICAgICAgICAgIDwv U2FsdD4NCiAgICAgICAgICAgIDxJdGVyYXRpb25Db3VudD4yMDAwPC9JdGVyYXRpb25Db3VudD4N CiAgICAgICAgICAgIDxLZXlMZW5ndGg+MTY8L0tleUxlbmd0aD4NCiAgICAgICAgICAgIDxQUkYv Pg0KICAgICAgICAgIDwvUGFyYW1ldGVycz4NCiAgICAgICAgPC9LZXlEZXJpdmF0aW9uTWV0aG9k Pg0KICAgICAgPC9EZXJpdmVkS2V5Pg0KICAgIDwvRW5jcnlwdGlvbktleT4gIA0KLi4uLg0KCSAg ICAgICAgXV0+PC9hcnR3b3JrPg0KCQkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCQkJPC9maWd1cmU+ DQoJCQkJCTwvdD4NCgkJCQk8L3NlY3Rpb24+DQoJCQk8L3NlY3Rpb24+DQoJCQk8c2VjdGlvbiB0 aXRsZT0iUHJvdGVjdGluZyBrZXlzIHVzaW5nIGFzeW1tZXRyaWMgYWxnb3JpdGhtcyI+DQoJCQkJ PHQ+VGhlIGZvbGxvd2luZyBpcyB0aGUgbGlzdCBvZiBhc3ltbWV0cmljIGtleSBlbmNyeXB0aW9u IGFsZ29yaXRobSBhbmQgcG9zc2libGUgcGFyYW1ldGVycyB1c2VkIHRvIHByb3RlY3QgdGhlIFNl Y3JldCBLZXkgZGF0YSBpbiB0aGUgY29udGFpbmVyLiBTeXN0ZW1zIGltcGxlbWVudGluZyBQU0tD IE1VU1Qgc3VwcG9ydCB0aGUgTUFOREFUT1JZIGFsZ29yaXRobXMgZGV0YWlsZWQgYmVsb3cuIFRo ZSBlbmNyeXB0aW9uIGFsZ29yaXRobSBVUkkgY2FuIGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nLg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlzdCBzdHlsZT0i c3ltYm9scyI+DQoJCQkJCQk8dD5odHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNyc2Et MV81IC0gTUFOREFUT1JZPC90Pg0KCQkJCQkJPHQ+aHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94 bWxlbmMjcnNhLW9hZXAtbWdmMXAgLSBPUFRJT05BTDwvdD4NCgkJCQkJPC9saXN0Pg0KCQkJCTwv dD4NCgkJCQk8dD4NCg0KRm9yIGV4YW1wbGU6DQoJCQkJCTxmaWd1cmU+DQoJCQkJCQk8cHJlYW1i bGUvPg0KCQkJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k aW5nPSJVVEYtOCI/Pg0KDQo8cHNrYzpLZXlDb250YWluZXIgVmVyc2lvbj0iMS4wIg0KICB4bWxu czpwc2tjPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCINCiAg eG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiDQogIHhtbG5zOnhl bmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI+DQogICAgPHBza2M6RW5jcnlw dGlvbktleT4NCiAgICAgICAgPGRzOlg1MDlEYXRhPg0KICAgICAgICAgICAgPGRzOlg1MDlDZXJ0 aWZpY2F0ZT5taWliPC9kczpYNTA5Q2VydGlmaWNhdGU+DQogICAgICAgIDwvZHM6WDUwOURhdGE+ DQogICAgPC9wc2tjOkVuY3J5cHRpb25LZXk+DQogICAgPHBza2M6RGV2aWNlPg0KICAgICAgICA8 cHNrYzpEZXZpY2VJZD4NCiAgICAgICAgICAgIDxwc2tjOk1hbnVmYWN0dXJlcj5BQ01FPC9wc2tj Ok1hbnVmYWN0dXJlcj4NCiAgICAgICAgICAgIDxwc2tjOlNlcmlhbE5vPjA3NTUyMjUyNjY8L3Bz a2M6U2VyaWFsTm8+DQogICAgICAgIDwvcHNrYzpEZXZpY2VJZD4NCiAgICAgICAgPHBza2M6S2V5 IEtleUFsZ29yaXRobT0NCiAgICAgICAgICJodHRwOi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNr YyNob3RwIiANCiAgICAgICAgIEtleUlkPSIwNzU1MjI1MjY2Ij4NCiAgICAgICAgICAgIDxwc2tj Oklzc3Vlcj5Bbklzc3VlcjwvcHNrYzpJc3N1ZXI+DQogICAgICAgICAgICA8cHNrYzpVc2FnZSBP VFA9InRydWUiPg0KICAgICAgICAgICAgICAgIDxwc2tjOlJlc3BvbnNlRm9ybWF0IExlbmd0aD0i OCIgDQogICAgICAgICAgICAgICAgRm9ybWF0PSJERUNJTUFMIi8+DQogICAgICAgICAgICA8L3Bz a2M6VXNhZ2U+DQogICAgICAgICAgICA8cHNrYzpEYXRhIE5hbWU9IkNPVU5URVIiPg0KICAgICAg ICAgICAgICAgIDxwc2tjOlBsYWluVmFsdWU+QXBya3VBPT08L3Bza2M6UGxhaW5WYWx1ZT4NCiAg ICAgICAgICAgIDwvcHNrYzpEYXRhPg0KICAgICAgICAgICAgPHBza2M6RGF0YSBOYW1lPSJTRUNS RVQiPg0KICAgICAgICAgICAgICA8cHNrYzpFbmNyeXB0ZWRWYWx1ZSBJZD0iRUQiPg0KICAgICAg ICAgICAgICAgIDx4ZW5jOkVuY3J5cHRpb25NZXRob2QNCiAgICAgICAgICAgICAgICAgIEFsZ29y aXRobT0NCiAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVu YyNyc2FfMV81Ii8+DQogICAgICAgICAgICAgICAgPHhlbmM6Q2lwaGVyRGF0YT4NCiAgICAgICAg ICAgICAgICAgIDx4ZW5jOkNpcGhlclZhbHVlPnJmNGR4M3J2RVBPMHZLdEtMMTROYmVWdThuaz0N CiAgICAgICAgICAgICAgICAgIDwveGVuYzpDaXBoZXJWYWx1ZT4NCiAgICAgICAgICAgICAgICA8 L3hlbmM6Q2lwaGVyRGF0YT4NCiAgICAgICAgICAgICAgPC9wc2tjOkVuY3J5cHRlZFZhbHVlPg0K ICAgICAgICAgICAgPC9wc2tjOkRhdGE+DQogICAgICAgIDwvcHNrYzpLZXk+DQogICAgPC9wc2tj OkRldmljZT4NCjwvcHNrYzpLZXlDb250YWluZXI+XV0+PC9hcnR3b3JrPg0KCQkJCQkJPHBvc3Rh bWJsZS8+DQoJCQkJCTwvZmlndXJlPg0KCQkJCTwvdD4NCgkJCTwvc2VjdGlvbj4NCgkJCTxzZWN0 aW9uIGFuY2hvcj0iS2V5QWxnb3JpdGhtQXR0cmlidXRlIiB0aXRsZT0iUHJvZmlsZSBvZiBLZXkg QWxnb3JpdGhtIj4NCgkJCQk8dD5UaGlzIHNlY3Rpb24gcHJvZmlsZXMgdGhlIHR5cGUocykgb2Yg YWxnb3JpdGhtIG9mIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGtleShzKSB0cmFuc3BvcnRlZCBp biB0aGUgY29udGFpbmVyLiBUaGUgZm9sbG93aW5nIGFsZ29yaXRobSBVUklzIGFyZSBhbW9uZyB0 aGUgZGVmYXVsdCBzdXBwb3J0IGxpc3QuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCTx0Pmh0dHA6Ly93d3cu dzMub3JnLzIwMDEvMDQveG1sZW5jI3RyaXBsZWRlcy1jYmM8L3Q+DQoJCQkJCQk8dD5odHRwOi8v d3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNhZXMxMjgtY2JjPC90Pg0KCQkJCQkJPHQ+aHR0cDov L3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjYWVzMTkyLWNiYzwvdD4NCgkJCQkJCTx0Pmh0dHA6 Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2FlczI1Ni1jYmM8L3Q+DQoJCQkJCQk8dD5odHRw Oi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNrYyNob3RwPC90Pg0KCQkJCQkJPHQ+aHR0cDovL3d3 dy5pZXRmLm9yZy9rZXlwcm92L3Bza2MjcGluPC90Pg0KCQkJCQk8L2xpc3Q+DQoJCQkJPC90Pg0K CQkJCTxzZWN0aW9uIGFuY2hvcj0iT1RQQWxnb3JpdGhtIiB0aXRsZT0iT1RQIEtleSBBbGdvcml0 aG0gSWRlbnRpZmllcnMiPg0KCQkJCQk8dD5PVFAga2V5IGFsZ29yaXRobSBVUklzIGhhdmUgbm90 IGJlZW4gZGVmaW5lZCBpbiBhIGNvbW1vbmx5IGF2YWlsYWJsZSBzdGFuZGFyZCBzcGVjaWZpY2F0 aW9uLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGRv Y3VtZW50IGRlZmluZXMgdGhlIGZvbGxvd2luZyBVUklzIGZvciB0aGUgc3RhbmRhcmQgT1RQIGFs Z29yaXRobXMgZGVmaW5lZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbiA8eHJlZiB0YXJnZXQ9IkhPVFAiLz4uPC90Pg0KCQkJCQk8c2VjdGlvbiBhbmNob3I9 IkhPVFBPVFBBbGdvcml0aG0iIHRpdGxlPSJIT1RQIj4NCgkJCQkJCTx0PlN0YW5kYXJkIGRvY3Vt ZW50OiBSRkM0MjI2PC90Pg0KCQkJCQkJPHQ+SWRlbnRpZmllcjogaHR0cDovL3d3dy5pZXRmLm9y Zy9rZXlwcm92L3Bza2MjaG90cDwvdD4NCgkJCQkJCTx0Pk5vdGUgdGhhdCB0aGUgYWN0dWFsIFVS TCB3aWxsIGJlIGZpbmFsaXplZCBvbmNlIGEgVVJMIGZvciB0aGlzIGRvY3VtZW50IGlzIGRldGVy bWluZWQuPC90Pg0KCQkJCQk8L3NlY3Rpb24+DQoJCQkJCTxzZWN0aW9uIGFuY2hvcj0iVmVuZG9y T1RQQWxnb3JpdGhtIiB0aXRsZT0iT3RoZXIgT1RQIEFsZ29yaXRobXMiPg0KCQkJCQkJPHQ+QW4g aW1wbGVtZW50YXRpb24gc2hvdWxkIHJlZmVyIHRvICB2ZW5kb3IgcmVnaXN0ZXJlZCBPVFAga2V5 IGFsZ29yaXRobSBVUklzIGZvcg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb3RoZXIgZXhpc3RpbmcgT1RQIGFsZ29yaXRobXMsIGZvciBleGFtcGxlLCB0 aGUgUlNBIFNlY3VySUQgT1RQIGFsZ29yaXRobSANCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzIGZvbGxvd3MuDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJ ICAgICA8dD5odHRwOi8vd3d3LnJzYS5jb20vcnNhbGFicy9vdHBzL3NjaGVtYXMvMjAwNS8wOS9v dHBzLXdzdCNTZWN1cklELUFFUzwvdD4JCQkJCQkNCgkJCQkJICAgICAgICAgPC9saXN0Pg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Pg0KCQkJCQk8 L3NlY3Rpb24+DQoJCQkJPC9zZWN0aW9uPg0KCQkJCTxzZWN0aW9uIGFuY2hvcj0iVmFsdWVDb21w YXJlQWxnb3JpdGhtIiB0aXRsZT0iUElOIGtleSB2YWx1ZSBjb21wYXJlIGFsZ29yaXRobSBpZGVu dGlmaWVyIj4NCgkJCQkJPHQ+UElOIGtleSBhbGdvcml0aG0gVVJJcyBoYXZlIG5vdCBiZWVuIGRl ZmluZWQgaW4gYSBjb21tb25seSBhdmFpbGFibGUgc3RhbmRhcmQgc3BlY2lmaWNhdGlvbi4NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBkb2N1bWVudCBk ZWZpbmVzIHRoZSBmb2xsb3dpbmcgVVJJcyBmb3IgYSBzdHJhaWdodCB2YWx1ZSBjb21hcHJpc29u IG9mIHRoZSB0cmFuc3BvcnRlZCBzZWNyZXQga2V5IGRhdGEgYXMgd2hlbiByZXF1aXJlZCB0byBj b21wYXJlIGEgUElOLjwvdD4NCgkJCQkJCTx0PklkZW50aWZpZXI6IGh0dHA6Ly93d3cuaWV0Zi5v cmcva2V5cHJvdi9wc2tjI3BpbjwvdD4NCgkJCQkJCTx0Pk5vdGUgdGhhdCB0aGUgYWN0dWFsIFVS TCB3aWxsIGJlIGZpbmFsaXplZCBvbmNlIGEgVVJMIGZvciB0aGlzIGRvY3VtZW50IGlzIGRldGVy bWluZWQuPC90Pg0KCQkJCTwvc2VjdGlvbj4NCgkJCTwvc2VjdGlvbj4NCgkJPC9zZWN0aW9uPg0K CQk8c2VjdGlvbiBhbmNob3I9IkRhdGFBdHRyaWJ1dGVOYW1lcyIgdGl0bGU9IlJlc2VydmVkIGRh dGEgYXR0cmlidXRlIG5hbWVzIj4NCgkJCTx0PlRoZSBmb2xsb3dpbmcga2V5IGRhdGEgYXR0cmli dXRlIG5hbWVzIGhhdmUgYmVlbiByZXNlcnZlZDoNCgkJCTxsaXN0IHN0eWxlPSJoYW5naW5nIj4N CgkJCQkJPHQgaGFuZ1RleHQ9IiI+U0VDUkVUOiB0aGUgc2hhcmVkIHNlY3JldCBrZXkgdmFsdWUg aW4gYmluYXJ5LCBiYXNlNjQgZW5jb2RlZDwvdD4NCgkJCQkJPHQgaGFuZ1RleHQ9IiI+Q09VTlRF UjogdGhlIGV2ZW50IGNvdW50ZXIgZm9yIGV2ZW50IGJhc2VkIE9UUCBhbGdvcml0aG1zLiA4IGJ5 dGVzIHVuc2lnbmVkIGludGVnZXINCmluIGJpZyBlbmRpYW4gKGkuZS4gbmV0d29yayBieXRlIG9y ZGVyKSBmb3JtIGJhc2U2NCBlbmNvZGVkPC90Pg0KCQkJCQk8dCBoYW5nVGV4dD0iIj5USU1FOiB0 aGUgdGltZSBmb3IgdGltZSBiYXNlZCBPVFAgYWxnb3JpdGhtcy4gOCBieXRlcyB1bnNpZ25lZCBp bnRlZ2VyDQppbiBiaWcgZW5kaWFuIChpLmUuIG5ldHdvcmsgYnl0ZSBvcmRlcikgZm9ybSBiYXNl NjQgZW5jb2RlZCAoTnVtYmVyIG9mIHNlY29uZHMgc2luY2UgMTk3MCk8L3Q+DQoJCQkJCTx0IGhh bmdUZXh0PSIiPlRJTUVfSU5URVJWQUw6IHRoZSB0aW1lIGludGVydmFsIHZhbHVlIGZvciB0aW1l IGJhc2VkIE9UUCBhbGdvcml0aG1zLiA4IGJ5dGVzIHVuc2lnbmVkIGludGVnZXINCmluIGJpZyBl bmRpYW4gKGkuZS4gbmV0d29yayBieXRlIG9yZGVyKSBmb3JtIGJhc2U2NCBlbmNvZGVkLjwvdD4N CgkJCQkJPHQgaGFuZ1RleHQ9IiI+VElNRV9EUklGVDogdGhlIGRldmljZSBjbG9jayBkcmlmdCB2 YWx1ZSBmb3IgdGltZSBiYXNlZCBPVFAgYWxnb3JpdGhtcy4gDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBpbmRpY2F0ZXMg bnVtYmVyIG9mIHNlY29uZHMgdGhhdCB0aGUgZGV2aWNlIGNsb2NrIG1heSBkcmlmdCBlYWNoIGRh eS4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDIgYnl0ZXMgdW5zaWduZWQgaW50ZWdlciBpbiBiaWcgZW5kaWFuIChpLmUuIG5ldHdvcmsg Ynl0ZSBvcmRlcikgZm9ybSBiYXNlNjQgZW5jb2RlZC48L3Q+DQoJCQkJPC9saXN0Pg0KCQkJPC90 Pg0KCQk8L3NlY3Rpb24+DQoJCTxzZWN0aW9uIGFuY2hvcj0ic2NoZW1hIiB0aXRsZT0iRm9ybWFs IFN5bnRheCI+DQoJCQk8dD5UaGUgZm9sbG93aW5nIHN5bnRheCBzcGVjaWZpY2F0aW9uIHVzZXMg dGhlIHdpZGVseSBhZG9wdGVkIFhNTCBzY2hlbWEgZm9ybWF0IGFzIGRlZmluZWQgYnkgYSBXM0Mg DQoJcmVjb21tZW5kYXRpb24gKGh0dHA6Ly93d3cudzMub3JnL1RSL3htbHNjaGVtYS0wLykuIEl0 IGlzIGEgY29tcGxldGUgc3ludGF4IGRlZmluaXRpb24gaW4gdGhlIFhNTCANCglTY2hlbWEgRGVm aW5pdGlvbiBmb3JtYXQgKFhTRCk8L3Q+DQoJCQk8dD5BbGwgaW1wbGVtZW50YXRpb25zIG9mIHRo aXMgc3RhbmRhcmQgbXVzdCBjb21wbHkgd2l0aCB0aGUgc2NoZW1hIGJlbG93LjwvdD4NCgkJCTxm aWd1cmU+DQoJCQkJPHByZWFtYmxlLz4NCgkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjw/eG1sIHZl cnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQo8eHM6c2NoZW1hIHhtbG5zOnhzPSJodHRw Oi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgDQogIHhtbG5zOnBza2M9InVybjppZXRmOnBh cmFtczp4bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4wIiANCiAgeG1sbnM6ZHM9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIA0KICB4bWxuczp4ZW5jPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAxLzA0L3htbGVuYyMiIA0KICB0YXJnZXROYW1lc3BhY2U9InVybjppZXRmOnBhcmFt czp4bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4wIiANCiAgZWxlbWVudEZvcm1EZWZhdWx0PSJx dWFsaWZpZWQiIGF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCIgDQogIHZlcnNpb249 IjEuMCI+DQogICAgPHhzOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv MDkveG1sZHNpZyMiDQogICAgICBzY2hlbWFMb2NhdGlvbj0NCiAgICAgICJodHRwOi8vd3d3Lncz Lm9yZy9UUi8yMDAyL1JFQy14bWxkc2lnLWNvcmUtMjAwMjAyMTIvDQogICAgICB4bWxkc2lnLWNv cmUtc2NoZW1hLnhzZCIvPg0KICAgIDx4czppbXBvcnQgbmFtZXNwYWNlPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAxLzA0L3htbGVuYyMiIA0KICAgICAgc2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cu dzMub3JnL1RSLw0KICAgICAgeG1sZW5jLWNvcmUveGVuYy1zY2hlbWEueHNkIi8+DQogICAgICAN CiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iS2V5Q29udGFpbmVyVHlwZSI+DQogICAgPHhzOnNl cXVlbmNlPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbmNyeXB0aW9uS2V5IiB0eXBlPSJk czpLZXlJbmZvVHlwZSIgDQogICAgICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgIDx4czpl bGVtZW50IG5hbWU9Ik1BQ0FsZ29yaXRobSIgdHlwZT0icHNrYzpLZXlBbGdvcml0aG1UeXBlIiAN CiAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGV2 aWNlIiB0eXBlPSJwc2tjOkRldmljZVR5cGUiIA0KICAgICAgICAgIG1heE9jY3Vycz0idW5ib3Vu ZGVkIi8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IktleVByb3BlcnRpZXMiIA0KICAgICAg ICB0eXBlPSJwc2tjOktleVByb3BlcnRpZXNUeXBlIiBtaW5PY2N1cnM9IjAiIA0KICAgICAgICBt YXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTaWduYXR1 cmUiIHR5cGU9ImRzOlNpZ25hdHVyZVR5cGUiIA0KICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0K ICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgi IA0KICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+ICANCiAgICA8 L3hzOnNlcXVlbmNlPg0KICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iVmVyc2lvbiIgdHlwZT0icHNr YzpWZXJzaW9uVHlwZSIgDQogICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAgPHhzOmF0dHJpYnV0 ZSBuYW1lPSJLZXlDb250YWluZXJJRCIgDQogICAgdHlwZT0ieHM6SUQiIHVzZT0ib3B0aW9uYWwi Lz4gIA0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iVmVy c2lvblR5cGUiIGZpbmFsPSJyZXN0cmljdGlvbiI+DQogICAgICAgICAgICA8eHM6cmVzdHJpY3Rp b24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAgICAgICAgICAgICAgICAgPHhzOnBhdHRlcm4gdmFs dWU9IlxkezEsMn1cLlxkezEsM30iLz4NCiAgICAgICAgICAgIDwveHM6cmVzdHJpY3Rpb24+DQog ICAgPC94czpzaW1wbGVUeXBlPg0KCTx4czpjb21wbGV4VHlwZSBuYW1lPSJLZXlQcm9wZXJ0aWVz VHlwZSI+DQoJCTx4czpzZXF1ZW5jZT4NCgkJCTx4czplbGVtZW50IG5hbWU9Iklzc3VlciIgDQoJ CQl0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0i VXNhZ2UiIA0KCQkJdHlwZT0icHNrYzpVc2FnZVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhz OmVsZW1lbnQgbmFtZT0iS2V5UHJvZmlsZUlkIiANCgkJCXR5cGU9InhzOnN0cmluZyIgbWluT2Nj dXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJNYXN0ZXJLZXlJZCIgDQoJCQl0eXBlPSJ4 czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iRGF0YSIgdHlw ZT0icHNrYzpEYXRhVHlwZSIgDQoJCQltaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVk Ii8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJQSU5Qb2xpY3kiIA0KCQkJdHlwZT0icHNrYzpQSU5Q b2xpY3lUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IkV4cGlyeURh dGUiIA0KCQkJdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1l bnQgbmFtZT0iU3RhcnREYXRlIiANCgkJCXR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAi Lz4NCiAgICAgICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVu dHM9ImxheCIgDQogICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVk Ii8+ICANCgkJPC94czpzZXF1ZW5jZT4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlQcm9wZXJ0 aWVzSWQiIA0KCQl0eXBlPSJ4czpJRCIgdXNlPSJyZXF1aXJlZCIvPg0KCQk8eHM6YXR0cmlidXRl IG5hbWU9IktleUFsZ29yaXRobSIgDQoJCXR5cGU9InBza2M6S2V5QWxnb3JpdGhtVHlwZSIgDQoJ CXVzZT0ib3B0aW9uYWwiLz4NCgk8L3hzOmNvbXBsZXhUeXBlPiAgICANCiAgICA8eHM6Y29tcGxl eFR5cGUgbmFtZT0iS2V5VHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAg IDx4czplbGVtZW50IG5hbWU9Iklzc3VlciIgDQogICAgICAgICAgICB0eXBlPSJ4czpzdHJpbmci IG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNhZ2UiIA0K ICAgICAgICAgICAgdHlwZT0icHNrYzpVc2FnZVR5cGUiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9 IktleVByb2ZpbGVJZCIgDQoJCQl0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJ PHhzOmVsZW1lbnQgbmFtZT0iTWFzdGVyS2V5SWQiIA0KCQkJdHlwZT0ieHM6c3RyaW5nIiBtaW5P Y2N1cnM9IjAiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkZyaWVuZGx5TmFtZSIg DQogICAgICAgICAgICB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAg ICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YSIgdHlwZT0icHNrYzpEYXRhVHlwZSIgDQogICAgICAg ICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8 eHM6ZWxlbWVudCBuYW1lPSJQSU5Qb2xpY3kiIA0KICAgICAgICAgICAgdHlwZT0icHNrYzpQSU5Q b2xpY3lUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9 IkV4cGlyeURhdGUiIA0KICAgICAgICAgICAgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0i MCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RhcnREYXRlIiANCiAgICAgICAg ICAgIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgIDx4czph bnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIgDQogICAgICAgICAg ICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgIDwveHM6c2Vx dWVuY2U+DQogICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iS2V5SWQiIA0KICAgICAgICB0eXBl PSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1l PSJLZXlBbGdvcml0aG0iIA0KICAgICAgICB0eXBlPSJwc2tjOktleUFsZ29yaXRobVR5cGUiIA0K ICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJL ZXlQcm9wZXJ0aWVzSWQiIA0KICAgICAgICB0eXBlPSJ4czpJRFJFRiIgdXNlPSJvcHRpb25hbCIv Pg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRlcml2 ZWRLZXlUeXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmVsZW1l bnQgbmFtZT0iS2V5RGVyaXZhdGlvbk1ldGhvZCIgDQogICAgICAgICAgICAgIHR5cGU9InBza2M6 S2V5RGVyaXZhdGlvbk1ldGhvZFR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhz OmVsZW1lbnQgcmVmPSJ4ZW5jOlJlZmVyZW5jZUxpc3QiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAg ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ2FycmllZEtleU5hbWUiIHR5cGU9InhzOnN0cmluZyIg DQogICAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0K ICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IklkIiB0eXBlPSJ4czpJRCIgdXNlPSJvcHRpb25h bCIvPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IlR5cGUiIHR5cGU9InhzOmFueVVSSSIg dXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhU eXBlIG5hbWU9IktleURlcml2YXRpb25NZXRob2RUeXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNl Pg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIG1pbk9jY3Vycz0iMCIg DQogICAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVl bmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkFsZ29yaXRobSIgdHlwZT0ieHM6YW55 VVJJIiANCiAgICAgICAgdXNlPSJyZXF1aXJlZCIvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQog ICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlBJTlBvbGljeVR5cGUiPg0KICAgICAgICA8eHM6c2Vx dWVuY2U+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQSU5Vc2FnZU1vZGUiIA0KICAg ICAgICAgICAgICB0eXBlPSJwc2tjOlBJTlVzYWdlTW9kZVR5cGUiLz4NCiAgICAgICAgICAgIDx4 czplbGVtZW50IG5hbWU9Ildyb25nUElOVHJ5IiB0eXBlPSJ4czp1bnNpZ25lZEludCIgDQogICAg ICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9 IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4IiANCiAgICAgICAgICAgIG1pbk9jY3Vycz0i MCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4gCQkJDQogICAgICAgIDwveHM6c2VxdWVuY2U+DQog ICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iUElOUG9saWN5SWQiIHR5cGU9InhzOklEIiANCiAg ICAgICAgdXNlPSJvcHRpb25hbCIvPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IlBJTktl eUlkIiB0eXBlPSJ4czpzdHJpbmciIA0KICAgICAgICAgIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8 L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJQSU5Vc2FnZU1vZGVU eXBlIj4NCiAgICAgICAgICAgIDx4czpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KICAg ICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMb2NhbCIvPg0KICAgICAgICAgICAg ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQcmVwZW5kIi8+DQogICAgICAgICAgICAgICAgICAg IDx4czplbGVtZW50IG5hbWU9IkVtYmVkIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czphbnkg bmFtZXNwYWNlPSIjI290aGVyIiANCiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0NvbnRlbnRz PSJsYXgiIG1pbk9jY3Vycz0iMCIgDQogICAgICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5i b3VuZGVkIi8+DQogICAgICAgICAgICA8L3hzOmNob2ljZT4NCiAgICA8L3hzOmNvbXBsZXhUeXBl Pg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZXZpY2VJZFR5cGUiPg0KICAgICAgICA8eHM6 c2VxdWVuY2U+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1hbnVmYWN0dXJlciIgdHlwZT0i eHM6c3RyaW5nIi8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IlNlcmlhbE5vIiB0eXBlPSJ4 czpzdHJpbmciLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTW9kZWwiIHR5cGU9InhzOnN0 cmluZyIgDQogICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1l PSJJc3N1ZU5vIiB0eXBlPSJ4czpzdHJpbmciIA0KICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAg ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIA0K ICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RhcnRE YXRlIiB0eXBlPSJ4czpkYXRlVGltZSIgDQogICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAg ICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIA0KICAg ICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgIDwveHM6 c2VxdWVuY2U+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFt ZT0iRGV2aWNlVHlwZSI+DQogICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgIDx4czplbGVtZW50 IG5hbWU9IkRldmljZUlkIiB0eXBlPSJwc2tjOkRldmljZUlkVHlwZSIgDQogICAgICAgICAgbWlu T2NjdXJzPSIwIi8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IktleSIgdHlwZT0icHNrYzpL ZXlUeXBlIiANCiAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8eHM6 ZWxlbWVudCBuYW1lPSJVc2VySWQiIHR5cGU9InhzOnN0cmluZyIgDQogICAgICAgIG1pbk9jY3Vy cz0iMCIvPg0KICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRl bnRzPSJsYXgiIA0KICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+ DQogICAgICA8L3hzOnNlcXVlbmNlPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNv bXBsZXhUeXBlIG5hbWU9IlVzYWdlVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg ICAgICAgIDx4czplbGVtZW50IG5hbWU9IkNoYWxsZW5nZUZvcm1hdCIgbWluT2NjdXJzPSIwIj4N CiAgICAgICAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+DQogICAgICAgICAgICAgICAgICAgIDx4 czphdHRyaWJ1dGUgbmFtZT0iRm9ybWF0IiANCiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJw c2tjOlZhbHVlRm9ybWF0VHlwZSIgdXNlPSJyZXF1aXJlZCIvPg0KICAgICAgICAgICAgICAgICAg ICA8eHM6YXR0cmlidXRlIG5hbWU9Ik1pbiIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIA0KICAgICAg ICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAgPHhz OmF0dHJpYnV0ZSBuYW1lPSJNYXgiIHR5cGU9InhzOnVuc2lnbmVkSW50IiANCiAgICAgICAgICAg ICAgICAgICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRy aWJ1dGUgbmFtZT0iQ2hlY2tEaWdpdHMiIHR5cGU9InhzOmJvb2xlYW4iIA0KICAgICAgICAgICAg ICAgICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAgICAgICAgICAgICAgPC94czpjb21wbGV4 VHlwZT4NCiAgICAgICAgICAgIDwveHM6ZWxlbWVudD4NCiAgICAgICAgICAgIDx4czplbGVtZW50 IG5hbWU9IlJlc3BvbnNlRm9ybWF0Ij4NCiAgICAgICAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+ DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iRm9ybWF0IiANCiAgICAg ICAgICAgICAgICAgICAgICB0eXBlPSJwc2tjOlZhbHVlRm9ybWF0VHlwZSIgdXNlPSJyZXF1aXJl ZCIvPg0KICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9Ikxlbmd0aCIgdHlw ZT0ieHM6dW5zaWduZWRJbnQiIA0KICAgICAgICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQi Lz4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJDaGVja0RpZ2l0cyIg dHlwZT0ieHM6Ym9vbGVhbiIgDQogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0iZmFsc2Ui Lz4NCiAgICAgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgICAgICAgICAgPC94czpl bGVtZW50Pg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3ND b250ZW50cz0ibGF4IiANCiAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJv dW5kZWQiLz4NCiAgICAgICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6YXR0 cmlidXRlIG5hbWU9Ik9UUCIgdHlwZT0ieHM6Ym9vbGVhbiIgZGVmYXVsdD0iZmFsc2UiLz4NCiAg ICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iQ1IiIHR5cGU9InhzOmJvb2xlYW4iIGRlZmF1 bHQ9ImZhbHNlIi8+DQogICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkludGVncml0eSIg dHlwZT0ieHM6Ym9vbGVhbiIgDQogICAgICAgICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAg ICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkVuY3J5cHQiIHR5cGU9InhzOmJvb2xlYW4iIA0K ICAgICAgICAgICAgICBkZWZhdWx0PSJmYWxzZSIvPg0KICAgICAgICAgICAgPHhzOmF0dHJpYnV0 ZSBuYW1lPSJVbmxvY2siIHR5cGU9InhzOmJvb2xlYW4iIA0KICAgICAgICAgICAgICBkZWZhdWx0 PSJmYWxzZSIvPg0KICAgICAgICAgICAgIDx4czphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290 aGVyIi8+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i RGF0YVR5cGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6Y2hvaWNl Pg0KICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlBsYWluVmFsdWUiIHR5cGU9Inhz OmJhc2U2NEJpbmFyeSIvPg0KICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkVuY3J5 cHRlZFZhbHVlIiANCiAgICAgICAgICAgICAgICAgIHR5cGU9InhlbmM6RW5jcnlwdGVkRGF0YVR5 cGUiLz4NCiAgICAgICAgICAgIDwveHM6Y2hvaWNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQg bmFtZT0iVmFsdWVNQUMiIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgDQogICAgICAgICAgICAgIG1p bk9jY3Vycz0iMCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmli dXRlIG5hbWU9Ik5hbWUiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPg0KICAgIDwv eHM6Y29tcGxleFR5cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iS2V5QWxnb3JpdGhtVHlw ZSI+DQogICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czphbnlVUkkiLz4NCiAgICA8L3hz OnNpbXBsZVR5cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iVmFsdWVGb3JtYXRUeXBlIj4N CiAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICAgICAgICA8 eHM6ZW51bWVyYXRpb24gdmFsdWU9IkRFQ0lNQUwiLz4NCiAgICAgICAgICAgIDx4czplbnVtZXJh dGlvbiB2YWx1ZT0iSEVYQURFQ0lNQUwiLz4NCiAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2 YWx1ZT0iQUxQSEFOVU1FUklDIi8+DQogICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9 IkJBU0U2NCIvPg0KICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJCSU5BUlkiLz4N CiAgICAgICAgPC94czpyZXN0cmljdGlvbj4NCiAgICA8L3hzOnNpbXBsZVR5cGU+DQogICAgPHhz OmVsZW1lbnQgbmFtZT0iS2V5Q29udGFpbmVyIiB0eXBlPSJwc2tjOktleUNvbnRhaW5lclR5cGUi Lz4NCjwveHM6c2NoZW1hPg0KCQkJCQ0KCQkJCQ0KXV0+PC9hcnR3b3JrPg0KCQkJCTxwb3N0YW1i bGUvPg0KCQkJPC9maWd1cmU+DQoJCTwvc2VjdGlvbj4NCgkJDQoNCgkJPHNlY3Rpb24gYW5jaG9y PSJpYW5hIiB0aXRsZT0iSUFOQSBDb25zaWRlcmF0aW9ucyI+DQoNCgkJCTxzZWN0aW9uIHRpdGxl PSJDb250ZW50LXR5cGUgcmVnaXN0cmF0aW9uIGZvciAnYXBwbGljYXRpb24vcHNrYyt4bWwnIj4N Cg0KCQkJCTx0PlRoaXMgc3BlY2lmaWNhdGlvbiByZXF1ZXN0cyB0aGUgcmVnaXN0cmF0aW9uIG9m IGEgbmV3IE1JTUUgdHlwZSBhY2NvcmRpbmcgdG8gdGhlDQoJCQkJCXByb2NlZHVyZXMgb2YgUkZD IDQyODggPHhyZWYgdGFyZ2V0PSJSRkM0Mjg4Ii8+IGFuZCBndWlkZWxpbmVzIGluIFJGQyAzMDIz IDx4cmVmDQoJCQkJCQl0YXJnZXQ9IlJGQzMwMjMiLz4uPC90Pg0KDQoJCQkJPHQ+DQoJCQkJCTxs aXN0IHN0eWxlPSJoYW5naW5nIj4NCgkJCQkJCTx0IGhhbmdUZXh0PSJNSU1FIG1lZGlhIHR5cGUg bmFtZToiPmFwcGxpY2F0aW9uIA0KCQkJCQkJPC90Pg0KDQoJCQkJCQk8dCBoYW5nVGV4dD0iTUlN RSBzdWJ0eXBlIG5hbWU6Ij5wc2tjK3htbCANCgkJCQkJCTwvdD4NCg0KCQkJCQkJPHQgaGFuZ1Rl eHQ9Ik1hbmRhdG9yeSBwYXJhbWV0ZXJzOiI+bm9uZQ0KCQkJCQkJPC90Pg0KDQoJCQkJCQk8dCBo YW5nVGV4dD0iT3B0aW9uYWwgcGFyYW1ldGVyczoiPmNoYXJzZXQ8dnNwYWNlIGJsYW5rTGluZXM9 IjEiLz4gSW5kaWNhdGVzDQoJCQkJCQkJdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiBlbmNsb3Nl ZCBYTUwuDQoJCQkJCQk8L3Q+DQoNCgkJCQkJCTx0IGhhbmdUZXh0PSJFbmNvZGluZyBjb25zaWRl cmF0aW9uczoiPiBVc2VzIFhNTCwgd2hpY2ggY2FuIGVtcGxveSA4LWJpdA0KCQkJCQkJCWNoYXJh Y3RlcnMsIGRlcGVuZGluZyBvbiB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQuIFNlZSBSRkMg MzAyMyA8eHJlZg0KCQkJCQkJCQl0YXJnZXQ9IlJGQzMwMjMiLz4sIFNlY3Rpb24gMy4yLjwvdD4N Cg0KCQkJCQkJPHQgaGFuZ1RleHQ9IlNlY3VyaXR5IGNvbnNpZGVyYXRpb25zOiI+IFRoaXMgY29u dGVudCB0eXBlIGlzIGRlc2lnbmVkIHRvDQoJCQkJCQkJY2FycnkgUFNLQyBwcm90b2NvbCBwYXls b2Fkcy48L3Q+DQoNCgkJCQkJCTx0IGhhbmdUZXh0PSJJbnRlcm9wZXJhYmlsaXR5IGNvbnNpZGVy YXRpb25zOiI+Tm9uZTwvdD4NCg0KCQkJCQkJPHQgaGFuZ1RleHQ9IlB1Ymxpc2hlZCBzcGVjaWZp Y2F0aW9uOiI+UkZDWFhYWCBbTk9URSBUTyBJQU5BL1JGQy1FRElUT1I6DQoJCQkJCQkJUGxlYXNl IHJlcGxhY2UgWFhYWCB3aXRoIHRoZSBSRkMgbnVtYmVyIG9mIHRoaXMgc3BlY2lmaWNhdGlvbi5d DQoJCQkJCQk8L3Q+DQoNCgkJCQkJCTx0IGhhbmdUZXh0PSJBcHBsaWNhdGlvbnMgd2hpY2ggdXNl IHRoaXMgbWVkaWEgdHlwZToiPiBUaGlzIE1JTUUgdHlwZSBpcw0KCQkJCQkJCWJlaW5nIHVzZWQg YXMgYSBzeW1tZXRyaWMga2V5IGNvbnRhaW5lciBmb3JtYXQgZm9yIHRyYW5zcG9ydCBhbmQNCgkJ CQkJCQlwcm92aXNpb25pbmcgb2Ygc3ltbWV0cmljIGtleXMgKE9uZSBUaW1lIFBhc3N3b3JkIChP VFApIHNoYXJlZCBzZWNyZXRzDQoJCQkJCQkJb3Igc3ltbWV0cmljIGNyeXB0b2dyYXBoaWMga2V5 cykgdG8gZGlmZmVyZW50IHR5cGVzIG9mIHN0cm9uZw0KCQkJCQkJCWF1dGhlbnRpY2F0aW9uIGRl dmljZXMuIEFzIHN1Y2gsIGl0IGlzIHVzZWQgZm9yIGtleSBwcm92aXNpb25pbmcNCgkJCQkJCQlz eXN0ZW1zLiANCgkJCQkJCTwvdD4NCg0KCQkJCQkJPHQgaGFuZ1RleHQ9IkFkZGl0aW9uYWwgaW5m b3JtYXRpb246Ij4NCgkJCQkJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJCTx0IGhh bmdUZXh0PSJNYWdpYyBOdW1iZXI6Ij5Ob25lDQoJCQkJCQkJCTwvdD4NCg0KCQkJCQkJCQk8dCBo YW5nVGV4dD0iRmlsZSBFeHRlbnNpb246Ij4ucHNrY3htbA0KCQkJCQkJCQk8L3Q+DQoNCgkJCQkJ CQkJPHQgaGFuZ1RleHQ9Ik1hY2ludG9zaCBmaWxlIHR5cGUgY29kZToiPidURVhUJw0KCQkJCQkJ CQk8L3Q+DQoJCQkJCQkJPC9saXN0Pg0KCQkJCQkJPC90Pg0KDQoJCQkJCQk8dCBoYW5nVGV4dD0i UGVyc29uYWwgYW5kIGVtYWlsIGFkZHJlc3MgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb246Ij5QaGls aXAgSG95ZXIsIA0KCQkJCQkJCVBoaWxpcC5Ib3llckBhY3RpdmlkZW50aXR5LmNvbQ0KCQkJCQkJ PC90Pg0KDQoJCQkJCQk8dCBoYW5nVGV4dD0iSW50ZW5kZWQgdXNhZ2U6Ij5MSU1JVEVEIFVTRQ0K CQkJCQkJPC90Pg0KDQoJCQkJCQk8dCBoYW5nVGV4dD0iQXV0aG9yOiI+DQoJCQkJCQkJIFRoaXMg c3BlY2lmaWNhdGlvbiBpcyBhIHdvcmsgaXRlbSBvZiB0aGUgSUVURg0KCQkJCQkJCUtFWVBST1Yg d29ya2luZyBncm91cCwgd2l0aCBtYWlsaW5nIGxpc3QgYWRkcmVzcw0KCQkJCQkJCQkmbHQ7a2V5 cHJvdkBpZXRmLm9yZyZndDsuDQoJCQkJCQk8L3Q+DQoJCQkJCQk8dCBoYW5nVGV4dD0iQ2hhbmdl IGNvbnRyb2xsZXI6Ij4NCgkJCQkJCQlUaGUgSUVTRyAmbHQ7aWVzZ0BpZXRmLm9yZyZndDsgPC90 Pg0KCQkJCQk8L2xpc3Q+DQoJCQkJPC90Pg0KCQkJPC9zZWN0aW9uPg0KDQoJCQk8c2VjdGlvbiB0 aXRsZT0iWE1MIFNjaGVtYSBSZWdpc3RyYXRpb24iPg0KDQoJCQkJPHQ+IFRoaXMgc2VjdGlvbiBy ZWdpc3RlcnMgYW4gWE1MIHNjaGVtYSBhcyBwZXIgdGhlIGd1aWRlbGluZXMgaW4gPHhyZWYNCgkJ CQkJCXRhcmdldD0iUkZDMzY4OCIvPi48L3Q+DQoJCQkJPHQ+DQoJCQkJCTxsaXN0IHN0eWxlPSJo YW5naW5nIj4NCgkJCQkJCTx0IGhhbmdUZXh0PSJVUkk6Ij51cm46aWV0ZjpwYXJhbXM6eG1sOm5z OmtleXByb3Y6Y29udGFpbmVyOjEuMDwvdD4NCgkJCQkJCTx0IGhhbmdUZXh0PSJSZWdpc3RyYW50 IENvbnRhY3Q6Ij5JRVRGIEtFWVBST1YgV29ya2luZyBHcm91cCwgUGhpbGlwIEhveWVyDQoJCQkJ CQkJKFBoaWxpcC5Ib3llckBhY3RpdmlkZW50aXR5LmNvbSkuPC90Pg0KCQkJCQkJPHQgaGFuZ1Rl eHQ9IlhNTCBTY2hlbWE6Ij5UaGUgWE1MIHNjaGVtYSB0byBiZSByZWdpc3RlcmVkIGlzIGNvbnRh aW5lZCBpbg0KCQkJCQkJCQk8eHJlZiB0YXJnZXQ9InNjaGVtYSIvPi4gSXRzIGZpcnN0IGxpbmUg aXMgPGZpZ3VyZT4NCgkJCQkJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQo8P3htbCB2ZXJzaW9uPSIx LjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KXV0+PC9hcnR3b3JrPg0KCQkJCQkJCTwvZmlndXJlPiBh bmQgaXRzIGxhc3QgbGluZSBpczxmaWd1cmU+DQoJCQkJCQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0K PC94czpzY2hlbWE+DQpdXT48L2FydHdvcms+DQoJCQkJCQkJPC9maWd1cmU+DQoJCQkJCQk8L3Q+ DQoJCQkJCTwvbGlzdD4NCgkJCQk8L3Q+DQoJCQk8L3NlY3Rpb24+DQoNCgkJCTxzZWN0aW9uIHRp dGxlPSJVUk4gU3ViLU5hbWVzcGFjZSBSZWdpc3RyYXRpb24gZm9yIHVybjppZXRmOnBhcmFtczp4 bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4wIj4NCg0KCQkJCTx0PiBUaGlzIHNlY3Rpb24gcmVn aXN0ZXJzIGEgbmV3IFhNTCBuYW1lc3BhY2UsICJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXBy b3Y6Y29udGFpbmVyOjEuMCIsIHBlcg0KCQkJCQl0aGUgZ3VpZGVsaW5lcyBpbiA8eHJlZiB0YXJn ZXQ9IlJGQzM2ODgiLz4uIDwvdD4NCg0KCQkJCTx0Pg0KCQkJCQk8bGlzdCBzdHlsZT0iaGFuZ2lu ZyI+DQoJCQkJCQk8dCBoYW5nVGV4dD0iVVJJOiI+dXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlw cm92OmNvbnRhaW5lcjoxLjA8L3Q+DQoNCgkJCQkJCTx0IGhhbmdUZXh0PSJSZWdpc3RyYW50IENv bnRhY3Q6Ij5JRVRGIEtFWVBST1YgV29ya2luZyBHcm91cCwgUGhpbGlwIEhveWVyDQoJCQkJCQkJ KFBoaWxpcC5Ib3llckBhY3RpdmlkZW50aXR5LmNvbSkuPC90Pg0KDQoJCQkJCQk8dCBoYW5nVGV4 dD0iWE1MOiI+DQoJCQkJCQkJPGZpZ3VyZT4NCgkJCQkJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQpC RUdJTg0KPD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1cz Qy8vRFREIFhIVE1MIEJhc2ljIDEuMC8vRU4iDQogICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRt bC1iYXNpYy94aHRtbC1iYXNpYzEwLmR0ZCI+DQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5v cmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCiAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBl Ig0KICAgICAgICBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1pc28tODg1OS0xIi8+DQogIDx0 aXRsZT5QU0tDIE5hbWVzcGFjZTwvdGl0bGU+DQo8L2hlYWQ+DQo8Ym9keT4NCiAgPGgxPk5hbWVz cGFjZSBmb3IgUFNLQzwvaDE+DQogIDxoMj51cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6 Y29udGFpbmVyOjEuMDwvaDI+DQo8cD5TZWUgPGEgaHJlZj0iW1VSTCBvZiBwdWJsaXNoZWQgUkZD XSI+UkZDWFhYWA0KICAgIFtOT1RFIFRPIElBTkEvUkZDLUVESVRPUjoNCiAgICAgUGxlYXNlIHJl cGxhY2UgWFhYWCB3aXRoIHRoZSBSRkMgbnVtYmVyIG9mIHRoaXMNCiAgICBzcGVjaWZpY2F0aW9u Ll08L2E+LjwvcD4NCjwvYm9keT4NCjwvaHRtbD4NCkVORA0KXV0+PC9hcnR3b3JrPg0KCQkJCQkJ CTwvZmlndXJlPg0KCQkJCQkJPC90Pg0KCQkJCQk8L2xpc3Q+DQoJCQkJPC90Pg0KCQkJPC9zZWN0 aW9uPg0KDQoNCiAgICA8c2VjdGlvbiB0aXRsZT0iU3ltbWV0cmljIEtleSBBbGdvcml0aG0gSWRl bnRpZmllciBSZWdpc3RyeSI+DQogICAgICA8dCA+DQogICAgICAgIFRoaXMgc3BlY2lmaWNhdGlv biByZXF1ZXN0cyB0aGUgY3JlYXRpb24gb2YgYSBuZXcgSUFOQSByZWdpc3RyeSBmb3INCiAgICAg ICAgc3ltbWV0cmljIGtleSBjcnlwdG9ncmFwaGljIGFsZ29yaXRobSBpZGVudGlmaWVycyBpbiBh Y2NvcmRhbmNlIHdpdGgNCiAgICAgICAgdGhlIHByaW5jaXBsZXMgc2V0IG91dCBpbiA8eHJlZiB0 YXJnZXQ9IlJGQzI0MzQiPlJGQyAyNDM0PC94cmVmPmFzDQogICAgICAgIGZvbGxvd3M6DQogICAg ICA8L3Q+DQoNCiAgICAgIDxzZWN0aW9uIHRpdGxlPSJBcHBsaWNhYmlsaXR5Ij4NCiAgICAgICAg PHQ+DQogICAgICAgICAgVGhlIHVzZSBvZiBVUklzIGFzIGFsZ29yaXRobSBpZGVudGlmaWVycyBw cm92aWRlcyBhbiBlZmZlY3RpdmVseQ0KICAgICAgICAgIHVubGltaXRlZCBuYW1lc3BhY2UuIFdo aWxlIHRoaXMgZWxpbWluYXRlcyB0aGUgcG9zc2liaWxpdHkgb2YNCiAgICAgICAgICBuYW1lc3Bh Y2UgZXhoYXVzdGlvbiBpdCBjcmVhdGVzIGEgbmV3IGNvbmNlcm4sIHRoYXQgZGl2ZXJnZW50DQog ICAgICAgICAgaWRlbnRpZmllcnMgd2lsbCBiZSBlbXBsb3llZCBmb3IgdGhlIHNhbWUgcHVycG9z ZSBpbiBkaWZmZXJlbnQNCiAgICAgICAgICBjb250ZXh0cy4NCiAgICAgICAgPC90Pg0KICAgICAg ICA8dD4NCiAgICAgICAgICBUaGUga2V5IGFsZ29yaXRobSByZWdpc3RyeSBpcyBpbnRlbmRlZCB0 byBwcm92aWRlDQogICAgICAgICAgYSBtZWFucyBvZiBzcGVjaWZ5aW5nIHRoZSBjYW5vbmljYWwg aWRlbnRpZmllciB0byBiZSB1c2VkIGZvcg0KICAgICAgICAgIGEgZ2l2ZW4gYWxnb3JpdGhtLiBJ ZiBhbiBhbGdvcml0aG0gaGFzIGFuIGlkZW50aWZpZXIgc3BlY2lmaWVkIGluDQogICAgICAgICAg dGhlIHJlZ2lzdHJ5IGEgYXBwbGljYXRpb24gdGhhdCBpcyBjb25mb3JtYW50IHRvIGEgcHJvdG9j b2wNCiAgICAgICAgICBzcGVjaWZpY2F0aW9uIHRoYXQgc3BlY2lmaWVzIHVzZSBvZiB0aGF0IHJl Z2lzdHJ5IHRvIGRlZmluZQ0KICAgICAgICAgIGlkZW50aWZpZXJzIFNIT1VMRCBhbHdheXMgdXNl IHRoYXQgcGFydGljdWxhciBmb3JtIG9mIHRoZQ0KICAgICAgICAgIGlkZW50aWZpZXIgd2hlbiBv cmlnaW5hdGluZyBkYXRhLiBBIGNvbmZvcm1hbnQgYXBwbGljYXRpb24NCiAgICAgICAgICBNQVkg YWNjZXB0IG90aGVyIGlkZW50aWZpZXJzIGluIGRhdGEgdGhhdCBpcyByZWNlaXZlZC4NCiAgICAg ICAgPC90Pg0KICAgICAgICA8dD4NCiAgICAgICAgICBGb3IgdGhlIHNha2Ugb2YgZXhwZWRpZW5j eSwgdGhlIGluaXRpYWwgcmVnaXN0cnkgb25seSBkZWZpbmVzDQogICAgICAgICAgYWxnb3JpdGht IGNsYXNzZXMgZm9yIHN5bW1ldHJpYyBhbGdvcml0aG1zIHBsdXMgY3J5cHRvZ3JhcGhpYw0KICAg ICAgICAgIG1lc3NhZ2UgZGlnZXN0IGZ1bmN0aW9ucyAob25lLXdheSBoYXNoKS4gV2hpbGUgdGhl IHNhbWUgcHJpbmNpcGxlcw0KICAgICAgICAgIG1heSBiZSBleHRlbmRlZCB0byBhc3ltbWV0cmlj IGFsZ29yaXRobXMsIGRvaW5nIHNvIHdvdWxkIHJlcXVpcmUNCiAgICAgICAgICBtdWNoIGdyZWF0 ZXIgY29uc2lkZXJhdGlvbiBvZiBpc3N1ZXMgc3VjaCBhcyBrZXkgbGVuZ3RoIGFuZA0KICAgICAg ICAgIHRyZWF0bWVudCBvZiBwYXJhbWV0ZXJzLCBwYXJ0aWN1bGFybHkgd2hlcmUgZWxpcHRpYyBj dXJ2ZQ0KICAgICAgICAgIGNyeXB0b2dyYXBoeSBhbGdvcml0aG1zIGFyZSBjb25jZXJuZWQuDQog ICAgICAgIDwvdD4NCiAgICAgICAgPHQ+DQogICAgICAgICAgQXMgcGFydCBvZiB0aGlzIHJlZ2lz dHJ5IHRoZSBJQU5BIHdpbGwgbWFpbnRhaW4gdGhlIGZvbGxvd2luZw0KICAgICAgICAgIGluZm9y bWF0aW9uOg0KICAgICAgICA8L3Q+DQogICAgICAgIDx0Pg0KICAgICAgICAgIDxsaXN0IHN0eWxl PSJoYW5naW5nIj4NCiAgICAgICAgICA8dCBoYW5nVGV4dD0iQ29tbW9uIE5hbWUiPg0KICAgICAg ICAgICAgVGhlIG5hbWUgYnkgd2hpY2ggdGhlIGFsZ29yaXRobSBpcyBnZW5lcmFsbHkgcmVmZXJy ZWQuDQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0IGhhbmdUZXh0PSJDbGFzcyI+DQogICAg ICAgICAgICBUaGUgdHlwZSBvZiBhbGdvcml0aG0sIGVuY3J5cHRpb24sIE1lc3NhZ2UgQXV0aGVu dGljYXRpb24gQ29kZSAoTUFDKSwNCiAgICAgICAgICAgIE9uZSBUaW1lIFBhd3dvcmQgKE9UUCks IERpZ2VzdCwgZXRjLg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgICA8dCBoYW5nVGV4dD0iQ2Fu bm9uaWNhbCBVUkkiPg0KICAgICAgICAgICAgVGhlIGNhbm5vbmljYWwgVVJJIHRvIGJlIHVzZWQg dG8gaWRlbnRpZnkgdGhlIGFsZ29yaXRobS4NCiAgICAgICAgICA8L3Q+DQogICAgICAgICAgPHQg aGFuZ1RleHQ9IkFsZ29yaXRobSBEZWZpbml0aW9uIj4NCiAgICAgICAgICAgIEEgcmVmZXJlbmNl IHRvIHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgYWxnb3JpdGhtIGRlc2NyaWJlZA0KICAgICAg ICAgICAgYnkgdGhlIGlkZW50aWZpZXIgaXMgZGVmaW5lZC4NCiAgICAgICAgICA8L3Q+DQogICAg ICAgICAgPHQgaGFuZ1RleHQ9IklkZW50aWZpZXIgRGVmaW5pdGlvbiI+DQogICAgICAgICAgICBB IHJlZmVyZW5jZSB0byB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlIHVzZSBvZiB0aGUgaWRlbnRp Zmllcg0KICAgICAgICAgICAgdG8gcmVmZXIgdG8gdGhlIGFsZ29yaXRobSBpcyBkZXNjcmliZWQu IFRoaXMgd291bGQgaWRlYWxseQ0KICAgICAgICAgICAgYmUgdGhlIGRvY3VtZW50IGluIHdoaWNo IHRoZSBhbGdvcml0aG0gaXMgZGVmaW5lZC4NCiAgICAgICAgICA8L3Q+DQogICAgICAgICAgPHQ+ DQogICAgICAgICAgICA8IS0tIFRoZSBJQU5BIHdpbGwgcmVnaXN0ZXIgYW55IFVSSSBidXQgaXQg YXBwZWFycyB0aGF0IGl0IHdpbGwgb25seQ0KICAgICAgICBBU1NJR04gaWRlbnRpZmllcnMgaW4g VVJOIHNwYWNlIC0tPg0KICAgICAgICAgICAgSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHJlZ2lzdHJh bnQgZG9lcyBub3QgcmVxdWVzdCBhIHBhcnRpY3VsYXIgVVJJLA0KICAgICAgICAgICAgdGhlIElB TkEgd2lsbCBhc3NpZ24gaXQgYSBVbmlmb3JtIFJlc291cmNlIE5hbWUgKFVSTikgdGhhdCBmb2xs b3dzDQogICAgICAgICAgICA8eHJlZiB0YXJnZXQ9IlJGQzM1NTMiPlJGQyAzNTUzPC94cmVmPi4N CiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvbGlzdD4NCiAgICAgICAgPC90Pg0KICAgICAgICA8 dD4NCiAgICAgICAgICBOb3RlIHRoYXQgd2hlcmUgYSBzaW5nbGUgYWxnb3JpdGhtIGhhcyBkaWZm ZXJlbnQgZm9ybXMgZGlzdGluZ3Vpc2hlZA0KICAgICAgICAgIGJ5IHBhcmVtZXRlcnMgc3VjaCBh cyBrZXkgbGVuZ3RoLCB0aGUgYWxnb3JpdGhtIGNsYXNzIGFuZCBlYWNoDQogICAgICAgICAgY29t YmluYXRpb24gb2YgYWxnb3JpdGhtDQogICAgICAgICAgcGFyYW1ldGVycyBtYXkgYmUgY29uc2lk ZXJlZCBhIGRpc3RpbmN0IGFsZ29yaXRobSBmb3IgdGhlIHB1cnBvc2UNCiAgICAgICAgICBvZiBh c3NpZ25pbmcgaWRlbnRpZmllcnMuDQogICAgICAgIDwvdD4NCiAgICAgIDwvc2VjdGlvbj4NCiAg ICAgIDxzZWN0aW9uIHRpdGxlPSJSZWdpc3RlcmFibGUgQWxnb3JpdGhtcyI+DQoNCiAgICAgICAg PHNlY3Rpb24gdGl0bGU9IkFzc2lnbmVkIFVSSXMiPg0KICAgICAgICAgIDx0Pg0KICAgICAgICAg ICAgSWYgdGhlIHJlZ2lzdHJhbnQgd2lzaGVzIHRvDQogICAgICAgICAgICBoYXZlIGEgVVJJIGFz c2lnbmVkLCB0aGVuIGEgVVJOIG9mIHRoZSBmb3JtDQogICAgICAgICAgPC90Pg0KDQogICAgICAg ICAgPHQ+DQogICAgICAgICAgICB1cm46aWV0ZjpwYXJhbXM6eG1sOiZsdDtjbGFzcyZndDs6Jmx0 O2lkJmd0Ow0KICAgICAgICAgIDwvdD4NCg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgd2ls bCBiZSBhc3NpZ25lZCB3aGVyZSAmbHQ7Y2xhc3MmZ3Q7IGlzIHRoZSB0eXBlIG9mIHRoZSBhbGdv cml0aG0gYmVpbmcNCiAgICAgICAgICAgIGlkZW50aWZpZWQgKHNlZSBiZWxvdykuICZsdDtpZCZn dDsgaXMgYSB1bmlxdWUgaWQgc3BlY2lmaWVkIGJ5IHRoZSBwYXJ0eSBtYWtpbmcNCiAgICAgICAg ICAgIHRoZSByZXF1ZXN0IGFuZCB3aWxsIG5vcm1hbGx5IGJlIGVpdGhlciB0aGUgY29tbW9uIG5h bWUgb2YgdGhlIGFsZ29yaXRobQ0KICAgICAgICAgICAgb3IgYW4gYWJicmV2aWF0aW9uIHRoZXJl b2YuDQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgTk9URTogaW4g b3JkZXIgZm9yIGEgVVJOIG9mIHRoaXMgdHlwZSB0byBiZQ0KICAgICAgICAgICAgYXNzaWduZWQs IHRoZSBpdGVtIGJlaW5nIHJlZ2lzdGVyZWQgTVVTVCBoYXZlIGJlZW4gdGhyb3VnaCB0aGUgSUVU Rg0KICAgICAgICAgICAgY29uc2Vuc3VzIHByb2Nlc3MuICBCYXNpY2FsbHksIHRoaXMgbWVhbnMg dGhhdCBpdCBtdXN0IGJlIGRvY3VtZW50ZWQNCiAgICAgICAgICAgIGluIGEgUkZDLg0KICAgICAg ICAgIDwvdD4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIE5PVEU6IEV4cGVydCBSZXZpZXcg aXMgc3VmZmljaWVudCBpbiBjYXNlcyB3aGVyZSB0aGUgcmVxdWVzdCBkb2VzIG5vdA0KICAgICAg ICAgICAgcmVxdWlyZSBhIFVSTiBhc3NpZ25tZW50IGludGhlIElFVEYgbmFtZXNwYWNlLiBJRVRG IGNvbnNlbnN1cyBpcyBub3QNCiAgICAgICAgICAgIHJlcXVpcmVkLg0KICAgICAgICAgIDwvdD4N CiAgICAgICAgPC9zZWN0aW9uPg0KDQogICAgICAgIDxzZWN0aW9uIHRpdGxlPSJBc3NpZ25lZCBD bGFzc2VzIj4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIEVhY2ggYWxnb3JpdGhtIE1VU1Qg YmVsb25nIHRvIGFuIGFzc2lnbmVkIGFsZ29yaXRobSBjbGFzcy4NCiAgICAgICAgICAgIEluIHRo ZSBjYXNlIHRoYXQgYWRkaXRpb25hbCBjbGFzc2VzIGFyZSByZXF1aXJlZCB0aGVzZSBhcmUgdG8N CiAgICAgICAgICAgIGJlIHNwZWNpZmllZCBieSBJRVRGIENvbnNlbnN1cyBhY3Rpb24uDQogICAg ICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgVGhlIGluaXRpYWwgYXNzaWdu ZWQgY2xhc3NlcyBhcmU6DQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0PiAgICAgICAgICAN CiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAgICAgICAgPHQgaGFu Z1RleHQ9IkRpZ2VzdCI+DQogICAgICAgICAgICAgICAgQSBjcnlwdG9ncmFwaGljIERpZ2VzdCBh bGdvcml0aG0uDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 Ik1BQyI+DQogICAgICAgICAgICAgICAgQSBNZXNzYWdlIEF1dGhlbnRpY2F0aW9uIENvZGUgYWxn b3JpdGhtLg0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJT eW1tZXRyaWMiPg0KICAgICAgICAgICAgICAgIEEgc3ltbWV0cmljIGVuY3J5cHRpb24gYWxnb3Jp dGhtLg0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJPVFAi Pg0KICAgICAgICAgICAgICAgIEEgb25lIHRpbWUgcGFzc3dvcmQgKE9UUCkgYWxnb3JpdGhtLg0K ICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICA8L2xpc3Q+DQogICAgICAgICAgPC90Pg0K ICAgICAgICA8L3NlY3Rpb24+DQoNCiAgICAgIDwvc2VjdGlvbj4NCiAgICAgIDxzZWN0aW9uIHRp dGxlPSJSZWdpc3RyYXRpb24gUHJvY2VkdXJlcyI+DQogICAgICAgIDxzZWN0aW9uIHRpdGxlPSJS ZXZpZXciPg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgQWxnb3JpdGhtIGlkZW50aWZpZXIg cmVnaXN0cmF0aW9ucyBhcmUgdG8gYmUgc3ViamVjdCB0byBFeHBlcnQgUmV2aWV3DQogICAgICAg ICAgICBhcyBwZXIgPHhyZWYgdGFyZ2V0PSJSRkMyNDM0Ij5SRkMgMjQzNDwveHJlZj4uDQogICAg ICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgVGhlIG5lZWQgZm9yIHN1cHBv cnRpbmcgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHJlZ2lzdHJhdGlvbiBkZXBlbmRzDQogICAgICAg ICAgICBvbiB0aGUgbmF0dXJlIG9mIHRoZSByZXF1ZXN0LiBJbiB0aGUgY2FzZSBvZiBhIGNyeXB0 b2dyYXBoaWMgYWxnb3JpdGhtDQogICAgICAgICAgICB0aGF0IGlzIGJlaW5nIGRlc2NyaWJlZCBm b3IgcHVibGljYXRpb24gYXMgYW4gUkZDLCB0aGUgcmVxdWVzdA0KICAgICAgICAgICAgZm9yIGEg VVJJIGFsbG9jYXRpb24gd291bGQgbm9ybWFsbHkgYXBwZWFyIHdpdGhpbiB0aGUgUkZDIGl0c2Vs Zi4NCiAgICAgICAgICAgIEluIHRoZSBjYXNlIG9mIGEgY3J5cHRvZ3JhcGhpYyBhbGdvcml0aG0g dGhhdCBpcyBmdWxseSBhbmQgY29tcHJlaGVuc2l2ZWx5DQogICAgICAgICAgICBkZWZpbmVkIGlu IGFub3RoZXIgZm9ybSwgaXQgd291bGQgbm90IGJlIG5lY2Vzc2FyeSB0byBkdXBsaWNhdGUgdGhl DQogICAgICAgICAgICBpbmZvcm1hdGlvbiBmb3IgdGhlIHNha2Ugb2YgaXNzdWluZyB0aGUgaW5m b3JtYXRpb24gaW4gdGhlIFJGQyBzZXJpZXMuDQogICAgICAgICAgICBJbiBvdGhlciBjYXNlcyBh biBSRkMgbWF5IGJlIHJlcXVpcmVkIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IGNlcnRhaW4NCiAg ICAgICAgICAgIGFsZ29yaXRobSBwYXJhbWV0ZXJzIGFyZSBzdWZmaWNpZW50bHkgYW5kIHVuYW1i aWd1b3VzbHkgZGVmaW5lZC4NCiAgICAgICAgICA8L3Q+DQogICAgICAgICAgPHQ+DQogICAgICAg ICAgICBUaGUgc2NvcGUgb2Ygc3VjaCBleHBlcnQgcmV2aWV3IGlzIHRvIGJlIHN0cmljdGx5IGxp bWl0ZWQgdG8NCiAgICAgICAgICAgIGlkZW50aWZ5aW5nIHBvc3NpYmxlIGFtYmlndWl0eSBhbmQv b3IgZHVwbGljYXRpb24gb2YgZXhpc3RpbmcNCiAgICAgICAgICAgIGlkZW50aWZpZXJzLiBUaGUg ZXhwZXJ0IHJldmlldyBNVVNUIE5PVCBjb25zaWRlciB0aGUgY3J5cHRvZ3JhcGhpYw0KICAgICAg ICAgICAgcHJvcGVydGllcywgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGNvbnNpZGVyYXRpb25zIG9y IGFueSBvdGhlciBmYWN0b3INCiAgICAgICAgICAgIG5vdCByZWxhdGVkIHRvIHRoZSB1c2Ugb2Yg dGhlIGlkZW50aWZpZXIuDQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0KICAgICAgICAg ICAgSW4gcmV2aWV3aW5nIGEgcmVxdWVzdCwgdGhlIGV4cGVydCBzaG91bGQgY29uc2lkZXIgd2hl dGhlciBvdGhlcg0KICAgICAgICAgICAgVVJJIGlkZW50aWZpZXJzIGFyZSBhbHJlYWR5IGRlZmlu ZWQgZm9yIGEgZ2l2ZW4gYWxnb3JpdGhtLiBJbiBzdWNoIGNhc2VzDQogICAgICAgICAgICBpdCBp cyB0aGUgZHV0eSBvZiB0aGUgZXhwZXJ0IHRvIGJyaW5nIHRoZSBwb3RlbnRpYWwgZHVwbGljYXRp b24gdG8NCiAgICAgICAgICAgIHRoZSBub3RpY2Ugb2YgdGhlIHByb3Bvc2VycyBvZiB0aGUgcmVn aXN0cmF0aW9uIGFuZCB0aGUgU2VjdXJpdHkNCiAgICAgICAgICAgIEFyZWEgRGlyZWN0b3JzLiBJ ZiB0aGUgcHJvcG9zZXJzIGFyZSBub3Qgd2lsbGluZyB0byBhY2NlcHQNCiAgICAgICAgICAgIHJl Z2lzdHJhdGlvbiBvZiB0aGUgZXhpc3RpbmcgaWRlbnRpZmllciB0aGUgSUVURiBDb25zZW5zdXMg cG9saWN5DQogICAgICAgICAgICBpcyB0byBhcHBseS4NCiAgICAgICAgICA8L3Q+DQogICAgICAg ICAgPHQ+DQogICAgICAgICAgICBJbiByZXZpZXdpbmcgYSByZXF1ZXN0LCB0aGUgZXhwZXJ0IHNo b3VsZCBjb25zaWRlciB3aGV0aGVyIHRoZQ0KICAgICAgICAgICAgYWxnb3JpdGhtIGlzIHN1ZmZp Y2llbnRseSBkZWZpbmVkIHRvIGFsbG93IHN1Y2Nlc3NmdWwgaW50ZXJvcGVyYXRpb24uDQogICAg ICAgICAgICBJbiBwYXJ0aWN1bGFyIHRoZSBleHBlcnQgc2hvdWxkIGNvbnNpZGVyIHdoZXRoZXIg aXNzdWVzIHN1Y2ggYXMNCiAgICAgICAgICAgIGtleSBzaXplcyBhbmQgYnl0ZSBvcmRlciBhcmUg c3VmZmljaWVudGx5IGRlZmluZWQgdG8gYWxsb3cgZm9yDQogICAgICAgICAgICBpbnRlcm9wZXJh dGlvbi4NCiAgICAgICAgICA8L3Q+DQogICAgICAgICAgPHQ+DQogICAgICAgICAgICBXaGlsZSB0 aGUgZGVmaW50aW9uIHJlcXVpcmVtZW50IE1BWSBiZSBzYXRpc2lmZWQgYnkgYSBjb21wcmVoZW5z aXZlDQogICAgICAgICAgICBzcGVjaWZpY2F0aW9uIG9mIHRoZSBhbGdvcml0aG0sIGRpc2Nsb3N1 cmUgb2YgdGhlIGFsZ29yaXRobSBpcyBub3QNCiAgICAgICAgICAgIG1hbmRhdG9yeS4NCiAgICAg ICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9IkNh bm9uaWNhbCBVUkkiPg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgVW50aWwgdGhlIElBTkEg cmVxdWVzdHMgb3IgaW1wbGVtZW50cyBhbiBhdXRvbWF0ZWQgcHJvY2VzcyBmb3IgdGhlDQogICAg ICAgICAgICByZWdpc3RyYXRpb24gb2YgdGhlc2UgZWxlbWVudHMsIGFueSBzcGVjaWZpY2F0aW9u cyBtdXN0IG1ha2UgdGhhdA0KICAgICAgICAgICAgcmVxdWVzdCBwYXJ0IG9mIHRoZSBJQU5BIGNv bnNpZGVyYXRpb25zIHNlY3Rpb24gb2YgdGhlaXIgcmVzcGVjdGl2ZQ0KICAgICAgICAgICAgZG9j dW1lbnRzLiAgVGhhdCByZXF1ZXN0IG11c3QgYmUgaW4gdGhlIGZvcm0gb2YgdGhlIGZvbGxvd2lu Zw0KICAgICAgICAgICAgdGVtcGxhdGU6DQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0K ICAgICAgICAgICAgPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0KICAgICAgICAgICAgPHQgaGFuZ1Rl eHQ9IkNvbW1vbiBOYW1lIj4NCiAgICAgICAgICAgICAgVGhlIG5hbWUgYnkgd2hpY2ggdGhlIGFs Z29yaXRobSBpcyBnZW5lcmFsbHkgcmVmZXJyZWQuDQogICAgICAgICAgICA8L3Q+DQogICAgICAg ICAgICA8dCBoYW5nVGV4dD0iQ2xhc3MiPg0KICAgICAgICAgICAgICBUaGUgdHlwZSBvZiBhbGdv cml0aG0sIGVuY3J5cHRpb24sIE1lc3NhZ2UgQXV0aGVudGljYXRpb24gQ29kZSAoTUFDKSwNCiAg ICAgICAgICAgICAgT25lIFRpbWUgUGF3d29yZCAoT1RQKSwgRGlnZXN0LCBldGMuIEFzIHNwZWNp ZmllZCBieQ0KICAgICAgICAgICAgICBhIGRlZmluZWQgYWxnb3JpdGhtIGNsYXNzLg0KICAgICAg ICAgICAgPC90Pg0KICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IlVSSSI+DQogICAgICAgICAgICAg IFRoZSBjYW5ub25pY2FsIFVSSSB0byBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBhbGdvcml0aG0u DQogICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICA8dCBoYW5nVGV4dD0iQWxnb3JpdGhtIERl ZmluaXRpb24iPg0KICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byB0aGUgZG9jdW1lbnQgaW4g d2hpY2ggdGhlIGFsZ29yaXRobSBkZXNjcmliZWQNCiAgICAgICAgICAgICAgYnkgdGhlIGlkZW50 aWZpZXIgaXMgZGVmaW5lZC4NCiAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgIDx0IGhhbmdU ZXh0PSJJZGVudGlmaWVyIERlZmluaXRpb24iPg0KICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0 byB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlIHVzZSBvZiB0aGUgaWRlbnRpZmllcg0KICAgICAg ICAgICAgICB0byByZWZlciB0byB0aGUgYWxnb3JpdGhtIGlzIGRlc2NyaWJlZC4gVGhpcyB3b3Vs ZCBpZGVhbGx5DQogICAgICAgICAgICAgIGJlIHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgYWxn b3JpdGhtIGlzIGRlZmluZWQuDQogICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICA8dCBoYW5n VGV4dD0iUmVnaXN0cmFudCBDb250YWN0Ij4NCiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8g dGhlIGRvY3VtZW50IGluIHdoaWNoIHRoZSB1c2Ugb2YgdGhlIGlkZW50aWZpZXINCiAgICAgICAg ICAgICAgdG8gcmVmZXIgdG8gdGhlIGFsZ29yaXRobSBpcyBkZXNjcmliZWQuIFRoaXMgd291bGQg aWRlYWxseQ0KICAgICAgICAgICAgICBiZSB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlIGFsZ29y aXRobSBpcyBkZWZpbmVkLg0KICAgICAgICAgICAgPC90Pg0KICAgICAgICAgIDwvbGlzdD4NCiAg ICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9 IkFsaWFzIFVSSSI+DQogICAgICAgICAgPHQ+DQogICAgICAgICAgICBJbiB0aGUgY2FzZSB0aGF0 IG11bHRpcGxlIGlkZW50aWZpZXJzIGhhdmUgYmVlbiBhc3NpZ25lZCB0byB0aGUgc2FtZQ0KICAg ICAgICAgICAgaWRlbnRpZmllcnMsIGFkZGl0aW9uYWwgaWRlbnRpZmllcnMgTUFZIGJlIHJlZ2lz dGVyZWQgYXMgYWxpYXNlcy4gQW4NCiAgICAgICAgICAgIGVudHJ5IGZvciBhbiBhbGlhcyBjb250 YWlucyBhbGwgdGhlIGVudHJpZXMgZm9yIGEgY2Fub25pY2FsIFVSSSB3aXRoDQogICAgICAgICAg ICB0aGUgYWRkaXRpb24gb2YgYSByZWZlcmVuY2UgdG8gdGhlIGNhbm9uaWNhbCBVUkkgdG8gYmUg dXNlZDoNCiAgICAgICAgICA8L3Q+DQogICAgICAgICAgPHQ+DQogICAgICAgICAgICA8bGlzdCBz dHlsZT0iaGFuZ2luZyI+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJBbGlhcyBmb3IgVVJJ Ij4NCiAgICAgICAgICAgICAgICBUaGUgY2Fubm9uaWNhbCBVUkkgdGhhdCBpZGVudGlmaWVzIHRo ZSBhbGdvcml0aG0uIFRoZSBVUkkgcmVmZXJlbmNlZA0KICAgICAgICAgICAgICAgIE1VU1QgYmUg YSBjYW5vbmljYWwgVVJJLg0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICA8L2xpc3Q+ DQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgSW4gdGhlIGNhc2Ug b2YgZGlzcHV0ZSBhcyB0byB3aGljaCBVUkkgaXMgdG8gYmUgY29uc2lkZXJlZCBjYW5vbmljYWwN CiAgICAgICAgICAgIHRoZSBtYXR0ZXIgaXMgdG8gYmUgc2V0dGxlZCBieSBJRVNHIGFjdGlvbi4N CiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCiAgICAgIDwvc2VjdGlvbj4NCiAg ICAgIDxzZWN0aW9uIHRpdGxlPSJJbml0aWFsIFZhbHVlcyI+DQogICAgICAgIDx0Pg0KICAgICAg ICAgIFRoZSBmb2xsb3dpbmcgaW5pdGlhbCB2YWx1ZXMgYXJlIGRlZmluZWQuIE5vdGUgdGhhdCB0 aGVzZSB2YWx1ZXMgYXJlDQogICAgICAgICAgbGltaXRlZCB0byBpZGVudGlmaWVycyB0aGF0IGFy ZSByZXF1aXJlZCBieSBLRVlQUk9WIGJ1dCBub3Qgc3BlY2lmaWVkDQogICAgICAgICAgZWxzZXdo ZXJlOg0KICAgICAgICA8L3Q+DQogICAgICAgIDxzZWN0aW9uIHRpdGxlPSJIT1RQIj4NCiAgICAg ICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAgICAg ICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lOiI+DQogICAgICAgICAgICAgICAgSE9UUA0KICAg ICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDbGFzczoiPg0KICAg ICAgICAgICAgICAgIE9UUA0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhh bmdUZXh0PSJVUkk6Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmlldGYub3JnL2tleXBy b3YvcHNrYyNob3RwDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1Rl eHQ9IkFsZ29yaXRobSBEZWZpbml0aW9uOiI+DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5p ZXRmLm9yZy9yZmMvcmZjNDIyNi50eHQNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAg ICA8dCBoYW5nVGV4dD0iSWRlbnRpZmllciBEZWZpbml0aW9uIj4NCiAgICAgICAgICAgICAgICAo dGhpcyBSRkMpDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IlJlZ2lzdHJhbnQgQ29udGFjdDoiPg0KICAgICAgICAgICAgICAgIElFU0cNCiAgICAgICAgICAg ICAgPC90Pg0KICAgICAgICAgICAgPC9saXN0Pg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgPC9z ZWN0aW9uPg0KICAgICAgICA8c2VjdGlvbiB0aXRsZT0iSE9UUC1ITUFDLVNIQS0xIj4NCiAgICAg ICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAgICAg ICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lOiI+DQogICAgICAgICAgICAgICAgSE9UUC1ITUFD LVNIQS0xDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNs YXNzOiI+DQogICAgICAgICAgICAgICAgT1RQDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAg ICAgICAgPHQgaGFuZ1RleHQ9IlVSSToiPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuaWV0 Zi5vcmcvcmZjL3JmYzQyMjYudHh0I0hPVFAtSE1BQy1TSEEtMQ0KICAgICAgICAgICAgICA8L3Q+ DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJBbGdvcml0aG0gRGVmaW5pdGlvbjoiPg0KICAg ICAgICAgICAgICAgIGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzQyMjYudHh0DQogICAgICAg ICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IklkZW50aWZpZXIgRGVmaW5p dGlvbiI+DQogICAgICAgICAgICAgICAgKHRoaXMgUkZDKQ0KICAgICAgICAgICAgICA8L3Q+DQog ICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJSZWdpc3RyYW50IENvbnRhY3Q6Ij4NCiAgICAgICAg ICAgICAgICBJRVNHDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgIDwvbGlzdD4NCiAg ICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9 IktFWVBST1YtUElOIj4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJo YW5naW5nIj4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lOiI+DQogICAg ICAgICAgICAgICAgS0VZUFJPVi1QSU4NCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAg ICA8dCBoYW5nVGV4dD0iQ2xhc3M6Ij4NCiAgICAgICAgICAgICAgICBTeW1tZXRyaWMgc3RhdGlj IGNyZWRlbnRpYWwgY29tcGFyaXNvbg0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAg IDx0IGhhbmdUZXh0PSJVUkk6Ij4NCiAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5pZXRmLm9y Zy9rZXlwcm92L3Bza2MjcGluDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQg aGFuZ1RleHQ9IkFsZ29yaXRobSBEZWZpbml0aW9uOiI+DQogICAgICAgICAgICAgICAgKHRoaXMg ZG9jdW1lbnQpDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IklkZW50aWZpZXIgRGVmaW5pdGlvbiI+DQogICAgICAgICAgICAgICAgKHRoaXMgZG9jdW1lbnQp DQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IlJlZ2lzdHJh bnQgQ29udGFjdDoiPg0KICAgICAgICAgICAgICAgIElFU0cNCiAgICAgICAgICAgICAgPC90Pg0K ICAgICAgICAgICAgPC9saXN0Pg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgPC9zZWN0aW9uPg0K ICAgICAgICA8c2VjdGlvbiB0aXRsZT0iU2VjdXJJRC1BRVMiPg0KICAgICAgICAgIDx0Pg0KICAg ICAgICAgICAgPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4 dD0iQ29tbW9uIE5hbWU6Ij4NCiAgICAgICAgICAgICAgICBTZWN1cklELUFFUw0KICAgICAgICAg ICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDbGFzczoiPg0KICAgICAgICAg ICAgICAgIE9UUA0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0 PSJVUkk6Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2Fs YWJzL290cHMvc2NoZW1hcy8yMDA1LzA5L290cHMtd3N0I1NlY3VySUQtQUVTDQogICAgICAgICAg ICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkFsZ29yaXRobSBEZWZpbml0aW9u OiI+DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5yc2EuY29tL3JzYWxhYnMvbm9kZS5hc3A/ aWQ9MjgyMQ0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJJ ZGVudGlmaWVyIERlZmluaXRpb24iPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cucnNhLmNv bS9yc2FsYWJzL25vZGUuYXNwP2lkPTI4MjENCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAg ICAgICA8dCBoYW5nVGV4dD0iUmVnaXN0cmFudCBDb250YWN0OiI+DQogICAgICAgICAgICAgICAg QW5kcmVhIERvaGVydHksIFJTQSB0aGUgU2VjdXJpdHkgRGl2aXNpb24gb2YgRU1DLCAmbHQ7YW5k cmVhLmRvaGVydHlAcnNhLmNvbSZndDsNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAg PC9saXN0Pg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgPC9zZWN0aW9uPg0KICAgICAgICA8c2Vj dGlvbiB0aXRsZT0iU2VjdXJJRC1BTEdPUiI+DQogICAgICAgICAgPHQ+DQogICAgICAgICAgICA8 bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDb21tb24g TmFtZToiPg0KICAgICAgICAgICAgICAgIFNlY3VySUQtQUxHT1INCiAgICAgICAgICAgICAgPC90 Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ2xhc3M6Ij4NCiAgICAgICAgICAgICAgICBP VFANCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iVVJJOiI+ DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcnNhbGFicy9vdHBz L3NjaGVtYXMvMjAwNS8wOS9vdHBzLXdzdCNTZWN1cklELUFMR09SDQogICAgICAgICAgICAgIDwv dD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkFsZ29yaXRobSBEZWZpbml0aW9uOiI+DQog ICAgICAgICAgICAgICAgaHR0cDovL3d3dy5yc2EuY29tL3JzYWxhYnMvbm9kZS5hc3A/aWQ9Mjgy MQ0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJJZGVudGlm aWVyIERlZmluaXRpb24iPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cucnNhLmNvbS9yc2Fs YWJzL25vZGUuYXNwP2lkPTI4MjENCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8 dCBoYW5nVGV4dD0iUmVnaXN0cmFudCBDb250YWN0OiI+DQogICAgICAgICAgICAgICAgQW5kcmVh IERvaGVydHksIFJTQSB0aGUgU2VjdXJpdHkgRGl2aXNpb24gb2YgRU1DLCAmbHQ7YW5kcmVhLmRv aGVydHlAcnNhLmNvbSZndDsNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgPC9saXN0 Pg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgPC9zZWN0aW9uPg0KICAgICAgICA8c2VjdGlvbiB0 aXRsZT0iQWN0aXZJZGVudGl0eS0zREVTIj4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIDxs aXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBO YW1lOiI+DQogICAgICAgICAgICAgICAgQWN0aXZJZGVudGl0eS0zREVTDQogICAgICAgICAgICAg IDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNsYXNzOiI+DQogICAgICAgICAgICAg ICAgT1RQDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IlVS SToiPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYWN0aXZpZGVudGl0eS5jb20vMjAwOC8w NC9hbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVudGl0eS0zREVTDQogICAgICAgICAgICAg IDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkFsZ29yaXRobSBEZWZpbml0aW9uOiI+ DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hY3RpdmlkZW50aXR5LmNvbS8yMDA4LzA0L2Fs Z29yaXRobXMvYWxnb3JpdGhtcyNBY3RpdklkZW50aXR5LTNERVMNCiAgICAgICAgICAgICAgPC90 Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iSWRlbnRpZmllciBEZWZpbml0aW9uIj4NCiAg ICAgICAgICAgICAgICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHkuY29tLzIwMDgvMDQvYWxnb3Jp dGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHktM0RFUw0KICAgICAgICAgICAgICA8L3Q+DQog ICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJSZWdpc3RyYW50IENvbnRhY3Q6Ij4NCiAgICAgICAg ICAgICAgICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRlbnRpdHkgSW5jLCAmbHQ7cGhpbGlwLmhveWVy QGFjdGl2aWRlbnRpdHkuY29tJmd0Ow0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICA8 L2xpc3Q+DQogICAgICAgICAgPC90Pg0KICAgICAgICA8L3NlY3Rpb24+DQogICAgICAgIDxzZWN0 aW9uIHRpdGxlPSJBY3RpdklkZW50aXR5LUFFUyI+DQogICAgICAgICAgPHQ+DQogICAgICAgICAg ICA8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDb21t b24gTmFtZToiPg0KICAgICAgICAgICAgICAgIEFjdGl2SWRlbnRpdHktQUVTDQogICAgICAgICAg ICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNsYXNzOiI+DQogICAgICAgICAg ICAgICAgT1RQDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IlVSSToiPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYWN0aXZpZGVudGl0eS5jb20vMjAw OC8wNC9hbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVudGl0eS1BRVMNCiAgICAgICAgICAg ICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQWxnb3JpdGhtIERlZmluaXRpb246 Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHkuY29tLzIwMDgvMDQv YWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHktQUVTDQogICAgICAgICAgICAgIDwv dD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IklkZW50aWZpZXIgRGVmaW5pdGlvbiI+DQog ICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hY3RpdmlkZW50aXR5LmNvbS8yMDA4LzA0L2FsZ29y aXRobXMvYWxnb3JpdGhtcyNBY3RpdklkZW50aXR5LUFFUw0KICAgICAgICAgICAgICA8L3Q+DQog ICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJSZWdpc3RyYW50IENvbnRhY3Q6Ij4NCiAgICAgICAg ICAgICAgICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRlbnRpdHkgSW5jLCAmbHQ7cGhpbGlwLmhveWVy QGFjdGl2aWRlbnRpdHkuY29tJmd0Ow0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICA8 L2xpc3Q+DQogICAgICAgICAgPC90Pg0KICAgICAgICA8L3NlY3Rpb24+DQogICAgICAgIDxzZWN0 aW9uIHRpdGxlPSJBY3RpdklkZW50aXR5LURFUyI+DQogICAgICAgICAgPHQ+DQogICAgICAgICAg ICA8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDb21t b24gTmFtZToiPg0KICAgICAgICAgICAgICAgIEFjdGl2SWRlbnRpdHktREVTDQogICAgICAgICAg ICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNsYXNzOiI+DQogICAgICAgICAg ICAgICAgT1RQDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IlVSSToiPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYWN0aXZpZGVudGl0eS5jb20vMjAw OC8wNC9hbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVudGl0eS1ERVMNCiAgICAgICAgICAg ICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQWxnb3JpdGhtIERlZmluaXRpb246 Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHkuY29tLzIwMDgvMDQv YWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHktREVTDQogICAgICAgICAgICAgIDwv dD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IklkZW50aWZpZXIgRGVmaW5pdGlvbiI+DQog ICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hY3RpdmlkZW50aXR5LmNvbS8yMDA4LzA0L2FsZ29y aXRobXMvYWxnb3JpdGhtcyNBY3RpdklkZW50aXR5LURFUw0KICAgICAgICAgICAgICA8L3Q+DQog ICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJSZWdpc3RyYW50IENvbnRhY3Q6Ij4NCiAgICAgICAg ICAgICAgICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRlbnRpdHkgSW5jLCAmbHQ7cGhpbGlwLmhveWVy QGFjdGl2aWRlbnRpdHkuY29tJmd0Ow0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICA8 L2xpc3Q+DQogICAgICAgICAgPC90Pg0KICAgICAgICA8L3NlY3Rpb24+DQogICAgICAgIDxzZWN0 aW9uIHRpdGxlPSJBY3RpdklkZW50aXR5LUVWRU5UIj4NCiAgICAgICAgICA8dD4NCiAgICAgICAg ICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNv bW1vbiBOYW1lOiI+DQogICAgICAgICAgICAgICAgQWN0aXZJZGVudGl0eS1FVkVOVA0KICAgICAg ICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDbGFzczoiPg0KICAgICAg ICAgICAgICAgIE9UUA0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdU ZXh0PSJVUkk6Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHkuY29t LzIwMDgvMDQvYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHktRVZFTlQNCiAgICAg ICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQWxnb3JpdGhtIERlZmlu aXRpb246Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHkuY29tLzIw MDgvMDQvYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHktRVZFTlQNCiAgICAgICAg ICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iSWRlbnRpZmllciBEZWZpbml0 aW9uIj4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHkuY29tLzIwMDgv MDQvYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHktRVZFTlQNCiAgICAgICAgICAg ICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iUmVnaXN0cmFudCBDb250YWN0OiI+ DQogICAgICAgICAgICAgICAgUGhpbGlwIEhveWVyLCBBY3RpdklkZW50aXR5IEluYywgJmx0O3Bo aWxpcC5ob3llckBhY3RpdmlkZW50aXR5LmNvbSZndDsNCiAgICAgICAgICAgICAgPC90Pg0KICAg ICAgICAgICAgPC9saXN0Pg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgPC9zZWN0aW9uPg0KICAg ICAgICANCiAgICAgICAgDQogICAgICA8L3NlY3Rpb24+DQogICAgPC9zZWN0aW9uPg0KDQogICAg PHNlY3Rpb24gdGl0bGU9IlhNTCBEYXRhIFRhZyBJZGVudGlmaWVyIFJlZ2lzdHJ5Ij4NCiAgICAg IDx0ID4NCiAgICAgICAgVGhpcyBzcGVjaWZpY2F0aW9uIHJlcXVlc3RzIHRoZSBjcmVhdGlvbiBv ZiBhIG5ldyBJQU5BIHJlZ2lzdHJ5IGZvcg0KICAgICAgICBYTUwgRGF0YSBUYWcgaWRlbnRpZmll cnMgaW4gYWNjb3JkYW5jZSB3aXRoDQogICAgICAgIHRoZSBwcmluY2lwbGVzIHNldCBvdXQgaW4g PHhyZWYgdGFyZ2V0PSJSRkMyNDM0Ij5SRkMgMjQzNDwveHJlZj5hcw0KICAgICAgICBmb2xsb3dz Og0KICAgICAgPC90Pg0KDQogICAgICA8dD4NCiAgICAgICAgW01vcmUgZXhwbGFuYXRpb24gb2Yg d2h5IGFuIGVzY2FwZSB0byB0YWcgdmFsdWUgbGlzdHMgaXMgZGVzaXJhYmxlDQogICAgICAgIHdo ZW4gaW5zZXJ0aW5nIHVuc3RydWN0dXJlZCBkYXRhIGludG8gYW4gWE1MIHNjaGVtYV0NCiAgICAg IDwvdD4NCiAgICAgIDxzZWN0aW9uIHRpdGxlPSJBcHBsaWNhYmlsaXR5Ij4NCiAgICAgICAgPHQ+ DQoNCiAgICAgICAgPC90Pg0KICAgICAgICA8dD4NCiAgICAgICAgICBBcyBwYXJ0IG9mIHRoaXMg cmVnaXN0cnkgdGhlIElBTkEgd2lsbCBtYWludGFpbiB0aGUgZm9sbG93aW5nDQogICAgICAgICAg aW5mb3JtYXRpb246DQogICAgICAgIDwvdD4NCiAgICAgICAgPHQ+DQogICAgICAgICAgPGxpc3Qg c3R5bGU9ImhhbmdpbmciPg0KICAgICAgICAgIDx0IGhhbmdUZXh0PSJDb21tb24gTmFtZSI+DQog ICAgICAgICAgICBDb21tb24gbmFtZSBmb3IgYnkgd2hpY2ggdGhlIHRhZyBpcyByZWZlcnJlZCB0 bw0KICAgICAgICAgIDwvdD4NCiAgICAgICAgICA8dCBoYW5nVGV4dD0iQ2Fubm9uaWNhbCBVUkki Pg0KICAgICAgICAgICAgVGhlIGNhbm5vbmljYWwgVVJJIHRvIGJlIGVtcGxveWVkIHdoZW4gY2l0 aW5nIHRoZSB0YWcuDQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0IGhhbmdUZXh0PSJEYXRh IFR5cGUiPg0KICAgICAgICAgICAgVGhlIGRhdGEgdHlwZSBvZiB0aGUgZGF0YSB0aGF0IGlzIGJv dW5kIHRvIHRoZSB0YWcuDQogICAgICAgICAgPC90Pg0KICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IiBEZWZpbml0aW9uIj4NCiAgICAgICAgICAgICAgQSByZWZlcmVuY2UgdG8gdGhlIGRvY3VtZW50 IGluIHdoaWNoIHRoZSBkYXRhIHRhZyBkZWZpbmVkDQogICAgICAgICAgICAgIGJ5IHRoZSBpZGVu dGlmaWVyIGlzIGRlZmluZWQuDQogICAgICAgICAgICA8L3Q+DQogICAgICAgIDwvbGlzdD4NCiAg ICAgICAgPC90Pg0KICAgICAgICA8dD4NCiAgICAgICAgICA8IS0tIFRoZSBJQU5BIHdpbGwgcmVn aXN0ZXIgYW55IFVSSSBidXQgaXQgYXBwZWFycyB0aGF0IGl0IHdpbGwgb25seQ0KICAgICAgICBB U1NJR04gaWRlbnRpZmllcnMgaW4gVVJOIHNwYWNlIC0tPg0KICAgICAgICAgIEluIHRoZSBjYXNl IHdoZXJlIHRoZSByZWdpc3RyYW50IGRvZXMgbm90IHJlcXVlc3QgYSBwYXJ0aWN1bGFyIFVSSSwN CiAgICAgICAgICB0aGUgSUFOQSB3aWxsIGFzc2lnbiBpdCBhIFVuaWZvcm0gUmVzb3VyY2UgTmFt ZSAoVVJOKSB0aGF0IGZvbGxvd3MNCiAgICAgICAgICA8eHJlZiB0YXJnZXQ9IlJGQzM1NTMiPlJG QyAzNTUzPC94cmVmPi4NCiAgICAgICAgPC90Pg0KDQoNCiAgICAgIDwvc2VjdGlvbj4NCiAgICAg IDxzZWN0aW9uIHRpdGxlPSJSZWdpc3RlcmFibGUgRGF0YSBUYWdzIj4NCg0KICAgICAgICA8c2Vj dGlvbiB0aXRsZT0iQXNzaWduZWQgVVJJcyI+DQogICAgICAgICAgPHQ+DQogICAgICAgICAgICBJ ZiB0aGUgcmVnaXN0cmFudCB3aXNoZXMgdG8NCiAgICAgICAgICAgIGhhdmUgYSBVUkkgYXNzaWdu ZWQsIHRoZW4gYSBVUk4gb2YgdGhlIGZvcm0NCiAgICAgICAgICA8L3Q+DQoNCiAgICAgICAgICA8 dD4NCiAgICAgICAgICAgIHVybjppZXRmOnBhcmFtczp4bWw6ZGF0YXRhZzombHQ7dGFnJmd0Ow0K ICAgICAgICAgIDwvdD4NCg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgd2lsbCBiZSBhc3Np Z25lZCB3aGVyZSAmbHQ7dGFnJmd0OyBpcyBhIHVuaXF1ZSBpZCBzcGVjaWZpZWQgYnkgdGhlIHBh cnR5IG1ha2luZw0KICAgICAgICAgICAgdGhlIHJlcXVlc3QgYW5kIHdpbGwgbm9ybWFsbHkgYmUg ZWl0aGVyIHRoZSBjb21tb24gbmFtZSBvZiB0aGUgdGFnDQogICAgICAgICAgICBvciBhbiBhYmJy ZXZpYXRpb24gdGhlcmVvZi4NCiAgICAgICAgICA8L3Q+DQogICAgICAgICAgPHQ+DQogICAgICAg ICAgICBOT1RFOiBpbiBvcmRlciBmb3IgYSBVUk4gb2YgdGhpcyB0eXBlIHRvIGJlDQogICAgICAg ICAgICBhc3NpZ25lZCwgdGhlIGl0ZW0gYmVpbmcgcmVnaXN0ZXJlZCBNVVNUIGhhdmUgYmVlbiB0 aHJvdWdoIHRoZSBJRVRGDQogICAgICAgICAgICBjb25zZW5zdXMgcHJvY2Vzcy4gIEJhc2ljYWxs eSwgdGhpcyBtZWFucyB0aGF0IGl0IG11c3QgYmUgZG9jdW1lbnRlZA0KICAgICAgICAgICAgaW4g YSBSRkMuDQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgTk9URTog RXhwZXJ0IFJldmlldyBpcyBzdWZmaWNpZW50IGluIGNhc2VzIHdoZXJlIHRoZSByZXF1ZXN0IGRv ZXMgbm90DQogICAgICAgICAgICByZXF1aXJlIGEgVVJOIGFzc2lnbm1lbnQgaW50aGUgSUVURiBu YW1lc3BhY2UuIElFVEYgY29uc2Vuc3VzIGlzIG5vdA0KICAgICAgICAgICAgcmVxdWlyZWQuDQog ICAgICAgICAgPC90Pg0KICAgICAgICA8L3NlY3Rpb24+DQoNCiAgICAgIDwvc2VjdGlvbj4NCiAg ICAgIDxzZWN0aW9uIHRpdGxlPSJSZWdpc3RyYXRpb24gUHJvY2VkdXJlcyI+DQogICAgICAgIDxz ZWN0aW9uIHRpdGxlPSJSZXZpZXciPg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgRGF0YSB0 YWcgcmVnaXN0cmF0aW9ucyBhcmUgdG8gYmUgc3ViamVjdCB0byBFeHBlcnQgUmV2aWV3DQogICAg ICAgICAgICBhcyBwZXIgPHhyZWYgdGFyZ2V0PSJSRkMyNDM0Ij5SRkMgMjQzNDwveHJlZj4uDQog ICAgICAgICAgPC90Pg0KDQogICAgICAgIDwvc2VjdGlvbj4NCiAgICAgICAgPHNlY3Rpb24gdGl0 bGU9IkRhdGEgVGFnIEVudHJ5Ij4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIFVudGlsIHRo ZSBJQU5BIHJlcXVlc3RzIG9yIGltcGxlbWVudHMgYW4gYXV0b21hdGVkIHByb2Nlc3MgZm9yIHRo ZQ0KICAgICAgICAgICAgcmVnaXN0cmF0aW9uIG9mIHRoZXNlIGVsZW1lbnRzLCBhbnkgc3BlY2lm aWNhdGlvbnMgbXVzdCBtYWtlIHRoYXQNCiAgICAgICAgICAgIHJlcXVlc3QgcGFydCBvZiB0aGUg SUFOQSBjb25zaWRlcmF0aW9ucyBzZWN0aW9uIG9mIHRoZWlyIHJlc3BlY3RpdmUNCiAgICAgICAg ICAgIGRvY3VtZW50cy4gIFRoYXQgcmVxdWVzdCBtdXN0IGJlIGluIHRoZSBmb3JtIG9mIHRoZSBm b2xsb3dpbmcNCiAgICAgICAgICAgIHRlbXBsYXRlOg0KICAgICAgICAgIDwvdD4NCiAgICAgICAg ICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAgICAgICAg PHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lIj4NCiAgICAgICAgICAgICAgICBDb21tb24gbmFtZSBm b3IgYnkgd2hpY2ggdGhlIHRhZyBpcyByZWZlcnJlZCB0bw0KICAgICAgICAgICAgICA8L3Q+DQog ICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDYW5ub25pY2FsIFVSSSI+DQogICAgICAgICAgICAg ICAgVGhlIGNhbm5vbmljYWwgVVJJIHRvIGJlIGVtcGxveWVkIHdoZW4gY2l0aW5nIHRoZSB0YWcu DQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkRhdGEgVHlw ZSI+DQogICAgICAgICAgICAgICAgVGhlIGRhdGEgdHlwZSBvZiB0aGUgZGF0YSB0aGF0IGlzIGJv dW5kIHRvIHRoZSB0YWcuDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFu Z1RleHQ9IiBEZWZpbml0aW9uIj4NCiAgICAgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byB0aGUg ZG9jdW1lbnQgaW4gd2hpY2ggdGhlIGRhdGEgdGFnIGRlZmluZWQNCiAgICAgICAgICAgICAgICBi eSB0aGUgaWRlbnRpZmllciBpcyBkZWZpbmVkLg0KICAgICAgICAgICAgICA8L3Q+DQoNCiAgICAg ICAgICAgIDwvbGlzdD4NCiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCg0KICAg ICAgPC9zZWN0aW9uPg0KICAgICAgPHNlY3Rpb24gdGl0bGU9IkluaXRpYWwgVmFsdWVzIj4NCiAg ICAgICAgPHQ+DQogICAgICAgICAgVGhlIGZvbGxvd2luZyBpbml0aWFsIHZhbHVlcyBhcmUgZGVm aW5lZC4gTm90ZSB0aGF0IHRoZXNlIHZhbHVlcyBhcmUNCiAgICAgICAgICBsaW1pdGVkIHRvIGlk ZW50aWZpZXJzIHRoYXQgYXJlIHJlcXVpcmVkIGJ5IEtFWVBST1YgYnV0IG5vdCBzcGVjaWZpZWQN CiAgICAgICAgICBlbHNld2hlcmU6DQogICAgICAgIDwvdD4NCiAgICAgICAgPHNlY3Rpb24gdGl0 bGU9IlNlY3JldCI+DQogICAgICAgICAgPHQ+DQogICAgICAgICAgICA8bGlzdCBzdHlsZT0iaGFu Z2luZyI+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDb21tb24gTmFtZSI+DQogICAgICAg ICAgICAgICAgU2VjcmV0DQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFu Z1RleHQ9IkNhbm5vbmljYWwgVVJJIj4NCiAgICAgICAgICAgICAgICB1cm46aWV0ZjpwYXJhbXM6 eG1sOmRhdGF0YWc6c2VjcmV0DQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQg aGFuZ1RleHQ9IkRhdGEgVHlwZSI+DQogICAgICAgICAgICAgICAgYmluYXJ5LCBiYXNlNjQgZW5j b2RlZA0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJEZWZp bmVkIGluIj4NCiAgICAgICAgICAgICAgICAodGhpcyBkb2N1bWVudCkNCiAgICAgICAgICAgICAg PC90PiAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2xpc3Q+DQogICAgICAgICAgPC90Pg0K ICAgICAgICA8L3NlY3Rpb24+DQogICAgICAgIDxzZWN0aW9uIHRpdGxlPSJDb3VudGVyIj4NCiAg ICAgICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAg ICAgICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lIj4NCiAgICAgICAgICAgICAgICBDb3VudGVy DQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNhbm5vbmlj YWwgVVJJIj4NCiAgICAgICAgICAgICAgICB1cm46aWV0ZjpwYXJhbXM6eG1sOmRhdGF0YWc6Y291 bnRlcg0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJEYXRh IFR5cGUiPg0KICAgICAgICAgICAgICAgIDggYnl0ZXMNCiAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnRlZ2VyIGluIGJpZyBlbmRpYW4gKGkuZS4gbmV0d29yayBieXRlIG9yZGVyKSBmb3JtDQog ICAgICAgICAgICAgICAgYmFzZTY0IGVuY29kZWQNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAg ICAgICAgICA8dCBoYW5nVGV4dD0iRGVmaW5lZCBpbiI+DQogICAgICAgICAgICAgICAgKHRoaXMg ZG9jdW1lbnQpDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgIDwvbGlzdD4NCiAgICAg ICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9IlRp bWUiPg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0K ICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ29tbW9uIE5hbWUiPg0KICAgICAgICAgICAgICAg IFRpbWUNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ2Fu bm9uaWNhbCBVUkkiPg0KICAgICAgICAgICAgICAgIHVybjppZXRmOnBhcmFtczp4bWw6ZGF0YXRh Zzp0aW1lDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkRh dGEgVHlwZSI+DQogICAgICAgICAgICAgICAgOCBieXRlcyB1bnNpZ25lZA0KICAgICAgICAgICAg ICAgIGludGVnZXIgaW4gYmlnIGVuZGlhbiAoaS5lLiBuZXR3b3JrIGJ5dGUgb3JkZXIpIGZvcm0g YmFzZTY0DQogICAgICAgICAgICAgICAgZW5jb2RlZCAoTnVtYmVyIG9mIHNlY29uZHMgc2luY2Ug MTk3MCkNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iRGVm aW5lZCBpbiI+DQogICAgICAgICAgICAgICAgKHRoaXMgZG9jdW1lbnQpDQogICAgICAgICAgICAg IDwvdD4NCiAgICAgICAgICAgIDwvbGlzdD4NCiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvc2Vj dGlvbj4NCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9IlRpbWUgSW50ZXJ2YWwiPg0KICAgICAgICAg IDx0Pg0KICAgICAgICAgICAgPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0KICAgICAgICAgICAgICA8 dCBoYW5nVGV4dD0iQ29tbW9uIE5hbWUiPg0KICAgICAgICAgICAgICAgIFRpbWUgSW50ZXJ2YWwN CiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ2Fubm9uaWNh bCBVUkkiPg0KICAgICAgICAgICAgICAgIHVybjppZXRmOnBhcmFtczp4bWw6ZGF0YXRhZzp0aW1l X2ludGVydmFsDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IkRhdGEgVHlwZSI+DQogICAgICAgICAgICAgICAgOCBieXRlcyB1bnNpZ25lZCBpbnRlZ2VyIGlu IGJpZyBlbmRpYW4gKGkuZS4gbmV0d29yaw0KICAgICAgICAgICAgICAgIGJ5dGUgb3JkZXIpIGZv cm0gYmFzZTY0IGVuY29kZWQuDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQg aGFuZ1RleHQ9IkRlZmluZWQgaW4iPg0KICAgICAgICAgICAgICAgICh0aGlzIGRvY3VtZW50KQ0K ICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICA8L2xpc3Q+DQogICAgICAgICAgPC90Pg0K ICAgICAgICA8L3NlY3Rpb24+DQogICAgICAgIDxzZWN0aW9uIHRpdGxlPSJUaW1lIERyaWZ0Ij4N CiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAg ICAgICAgICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lIj4NCiAgICAgICAgICAgICAgICB1cm46 aWV0ZjpwYXJhbXM6eG1sOmRhdGF0YWc6dGltZV9kcmlmdA0KICAgICAgICAgICAgICA8L3Q+DQog ICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDYW5ub25pY2FsIFVSSSI+DQogICAgICAgICAgICAg ICAgVGltZSBEcmlmdA0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdU ZXh0PSJEYXRhIFR5cGUiPg0KICAgICAgICAgICAgICAgIDIgYnl0ZXMgdW5zaWduZWQgaW50ZWdl ciBpbiBiaWcgZW5kaWFuDQogICAgICAgICAgICAgICAgKGkuZS4gbmV0d29yayBieXRlIG9yZGVy KSBmb3JtIGJhc2U2NCBlbmNvZGVkLg0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAg IDx0IGhhbmdUZXh0PSJEZWZpbmVkIGluIj4NCiAgICAgICAgICAgICAgICAodGhpcyBkb2N1bWVu dCkNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgPC9saXN0Pg0KICAgICAgICAgIDwv dD4NCiAgICAgICAgPC9zZWN0aW9uPiAgICAgICAgDQogICAgICA8L3NlY3Rpb24+DQogICAgPC9z ZWN0aW9uPg0KDQoNCgkJPC9zZWN0aW9uPg0KDQoNCgkJDQoJCQ0KCQk8c2VjdGlvbiB0aXRsZT0i U2VjdXJpdHkgQ29uc2lkZXJhdGlvbnMiPg0KCQkJPHQ+VGhlIHBvcnRhYmxlIGtleSBjb250YWlu ZXIgY2FycmllcyBzZW5zaXRpdmUgaW5mb3JtYXRpb24gKGUuZy4sIA0KCWNyeXB0b2dyYXBoaWMg a2V5cykgYW5kIG1heSBiZSB0cmFuc3BvcnRlZCBhY3Jvc3MgdGhlIGJvdW5kYXJpZXMgb2Ygb25l IHNlY3VyZSANCglwZXJpbWV0ZXIgdG8gYW5vdGhlci4gRm9yIGV4YW1wbGUsIGEgY29udGFpbmVy IHJlc2lkaW5nIHdpdGhpbiB0aGUgc2VjdXJlIHBlcmltZXRlciANCglvZiBhIGJhY2stZW5kIHBy b3Zpc2lvbmluZyBzZXJ2ZXIgaW4gYSBzZWN1cmUgcm9vbSBtYXkgYmUgdHJhbnNwb3J0ZWQgYWNy b3NzIHRoZSANCglpbnRlcm5ldCB0byBhbiBlbmQtdXNlciBkZXZpY2UgYXR0YWNoZWQgdG8gYSBw ZXJzb25hbCBjb21wdXRlci4gVGhpcyBtZWFucyB0aGF0IHNwZWNpYWwgDQoJY2FyZSBtdXN0IGJl IHRha2VuIHRvIGVuc3VyZSB0aGUgY29uZmlkZW50aWFsaXR5LCBpbnRlZ3JpdHksIGFuZCBhdXRo ZW50aWNpdHkgb2YgDQoJdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCB3aXRoaW4uPC90Pg0KCQkJ PHNlY3Rpb24gdGl0bGU9IlBheWxvYWQgY29uZmlkZW50aWFsaXR5Ij4NCgkJCQk8dD5CeSBkZXNp Z24sIHRoZSBjb250YWluZXIgYWxsb3dzIHR3byBtYWluIGFwcHJvYWNoZXMgdG8gZ3VhcmFudGVl aW5nIHRoZSBjb25maWRlbnRpYWxpdHkgDQoJb2YgdGhlIGluZm9ybWF0aW9uIGl0IGNvbnRhaW5z IHdoaWxlIHRyYW5zcG9ydGVkLiA8L3Q+DQoJCQkJPHQ+Rmlyc3QsIHRoZSBjb250YWluZXIga2V5 IGRhdGEgcGF5bG9hZCBtYXkgYmUgZW5jcnlwdGVkLjwvdD4NCgkJCQk8dD5JbiB0aGlzIGNhc2Ug bm8gdHJhbnNwb3J0IGxheWVyIHNlY3VyaXR5IGlzIHJlcXVpcmVkLiBIb3dldmVyLCBzdGFuZGFy ZCBzZWN1cml0eSBiZXN0IA0KCXByYWN0aWNlcyBhcHBseSB3aGVuIHNlbGVjdGluZyB0aGUgc3Ry ZW5ndGggb2YgdGhlIGNyeXB0b2dyYXBoaWMgYWxnb3JpdGhtIGZvciBwYXlsb2FkIA0KCWVuY3J5 cHRpb24uIFN5bW1ldHJpYyBjcnlwdG9ncmFwaGljIGNpcGhlciBzaG91bGQgYmUgdXNlZCAtIHRo ZSBsb25nZXIgdGhlIGNyeXB0b2dyYXBoaWMgDQoJa2V5LCB0aGUgc3Ryb25nZXIgdGhlIHByb3Rl Y3Rpb24uIEF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZyBib3RoIDNERVMgYW5kIEFFUyBhcmUg DQoJbWFuZGF0b3J5IGFsZ29yaXRobXMgYnV0IDNERVMgbWF5IGJlIGRyb3BwZWQgaW4gdGhlIHJl bGF0aXZlbHkgbmVhciBmdXR1cmUuIA0KCUFwcGxpY2F0aW9ucyBjb25jZXJuZWQgd2l0aCBhbGdv cml0aG0gbG9uZ2V2aXR5IGFyZSBhZHZpc2VkIHRvIHVzZSBBRVMtMjU2LUNCQy4gSW4gY2FzZXMg d2hlcmUgDQoJdGhlIGV4Y2hhbmdlIG9mIGVuY3J5cHRpb24ga2V5cyBiZXR3ZWVuIHRoZSBzZW5k ZXIgYW5kIHRoZSByZWNlaXZlciBpcyBub3QgcG9zc2libGUsIA0KCWFzeW1tZXRyaWMgZW5jcnlw dGlvbiBvZiB0aGUgc2VjcmV0IGtleSBwYXlsb2FkIG1heSBiZSBlbXBsb3llZC4gU2ltaWxhcmx5 IHRvIHN5bW1ldHJpYyBrZXkgDQoJY3J5cHRvZ3JhcGh5LCB0aGUgc3Ryb25nZXIgdGhlIGFzeW1t ZXRyaWMga2V5LCB0aGUgbW9yZSBzZWN1cmUgdGhlIHByb3RlY3Rpb24gaXMuIDwvdD4NCgkJCQk8 dD5JZiB0aGUgcGF5bG9hZCBpcyBlbmNyeXB0ZWQgd2l0aCBhIG1ldGhvZCB0aGF0IHVzZXMgb25l IG9mIHRoZSBwYXNzd29yZC1iYXNlZCBlbmNyeXB0aW9uIA0KCW1ldGhvZHMgcHJvdmlkZWQgYWJv dmUsIHRoZSBwYXlsb2FkIG1heSBiZSBzdWJqZWN0ZWQgdG8gcGFzc3dvcmQgZGljdGlvbmFyeSBh dHRhY2tzIHRvIGJyZWFrIA0KCXRoZSBlbmNyeXB0aW9uIHBhc3N3b3JkIGFuZCByZWNvdmVyIHRo ZSBpbmZvcm1hdGlvbi4gU3RhbmRhcmQgc2VjdXJpdHkgYmVzdCBwcmFjdGljZXMgZm9yIA0KCXNl bGVjdGlvbiBvZiBzdHJvbmcgZW5jcnlwdGlvbiBwYXNzd29yZHMgYXBwbHkgPHhyZWYgdGFyZ2V0 PSJTY2huZWllciIvPi48L3Q+DQoJCQkJPHQ+UHJhY3RpY2FsIGltcGxlbWVudGF0aW9ucyBzaG91 bGQgdXNlIFBCRVNhbHQgYW5kIFBCRUl0ZXJhdGlvbkNvdW50IHdoZW4gUEJFIGVuY3J5cHRpb24g aXMgDQoJdXNlZC4gRGlmZmVyZW50IFBCRVNhbHQgdmFsdWUgcGVyIGtleSBjb250YWluZXIgc2hv dWxkIGJlIHVzZWQgZm9yIGJlc3QgcHJvdGVjdGlvbi48L3Q+DQoJCQkJPHQ+VGhlIHNlY29uZCBh cHByb2FjaCB0byBwcm90ZWN0aW5nIHRoZSBjb25maWRlbnRpYWxpdHkgb2YgdGhlIHBheWxvYWQg aXMgYmFzZWQgb24gdXNpbmcgDQoJdHJhbnNwb3J0IGxheWVyIHNlY3VyaXR5LiBUaGUgc2VjdXJl IGNoYW5uZWwgZXN0YWJsaXNoZWQgYmV0d2VlbiB0aGUgc291cmNlIHNlY3VyZSBwZXJpbWV0ZXIg DQoJKHRoZSBwcm92aXNpb25pbmcgc2VydmVyIGZyb20gdGhlIGV4YW1wbGUgYWJvdmUpIGFuZCB0 aGUgdGFyZ2V0IHBlcmltZXRlciAodGhlIGRldmljZSBhdHRhY2hlZCANCgl0byB0aGUgZW5kLXVz ZXIgY29tcHV0ZXIpIHV0aWxpemVzIGVuY3J5cHRpb24gdG8gdHJhbnNwb3J0IHRoZSBtZXNzYWdl cyB0aGF0IHRyYXZlbCBhY3Jvc3MuIA0KCU5vIHBheWxvYWQgZW5jcnlwdGlvbiBpcyByZXF1aXJl ZCBpbiB0aGlzIG1vZGUuIFNlY3VyZSBjaGFubmVscyB0aGF0IGVuY3J5cHQgYW5kIGRpZ2VzdCBl YWNoIA0KCW1lc3NhZ2UgcHJvdmlkZSBhbiBleHRyYSBtZWFzdXJlIG9mIHNlY3VyaXR5LCBlc3Bl Y2lhbGx5IHdoZW4gdGhlIHNpZ25hdHVyZSBvZiB0aGUgcGF5bG9hZCANCglkb2VzIG5vdCBlbmNv bXBhc3MgdGhlIGVudGlyZSBwYXlsb2FkLiA8L3Q+DQoJCQkJPHQ+QmVjYXVzZSBvZiB0aGUgZmFj dCB0aGF0IHRoZSBwbGFpbiB0ZXh0IHBheWxvYWQgaXMgcHJvdGVjdGVkIG9ubHkgYnkgdGhlIHRy YW5zcG9ydCBsYXllciANCglzZWN1cml0eSwgcHJhY3RpY2FsIGltcGxlbWVudGF0aW9uIG11c3Qg ZW5zdXJlIHByb3RlY3Rpb24gYWdhaW5zdCBtYW4taW4tdGhlLW1pZGRsZSBhdHRhY2tzIDx4cmVm IHRhcmdldD0iU2NobmVpZXIiLz4uIA0KCVZhbGlkYXRpbmcgdGhlIHNlY3VyZSBjaGFubmVsIGVu ZC1wb2ludHMgaXMgY3JpdGljYWxseSBpbXBvcnRhbnQgZm9yIGVsaW1pbmF0aW5nIGludHJ1ZGVy cyANCgl0aGF0IG1heSBjb21wcm9taXNlIHRoZSBjb25maWRlbnRpYWxpdHkgb2YgdGhlIHBheWxv YWQuPC90Pg0KCQkJPC9zZWN0aW9uPg0KCQkJPHNlY3Rpb24gdGl0bGU9IlBheWxvYWQgaW50ZWdy aXR5Ij4NCgkJCQk8dD5UaGUgcG9ydGFibGUgc3ltbWV0cmljIGtleSBjb250YWluZXIgcHJvdmlk ZXMgYSBtZWFuIHRvIGd1YXJhbnRlZSB0aGUgaW50ZWdyaXR5IA0KCW9mIHRoZSBpbmZvcm1hdGlv biBpdCBjb250YWlucyB0aHJvdWdoIGRpZ2l0YWwgc2lnbmF0dXJlcy4gRm9yIGJlc3Qgc2VjdXJp dHkgcHJhY3RpY2VzLCANCgl0aGUgZGlnaXRhbCBzaWduYXR1cmUgb2YgdGhlIGNvbnRhaW5lciBz aG91bGQgZW5jb21wYXNzIHRoZSBlbnRpcmUgcGF5bG9hZC4gVGhpcyBwcm92aWRlcyANCglhc3N1 cmFuY2VzIGZvciB0aGUgaW50ZWdyaXR5IG9mIGFsbCBhdHRyaWJ1dGVzLiBJdCBhbHNvIGFsbG93 cyB2ZXJpZmljYXRpb24gb2YgdGhlIGludGVncml0eSANCglvZiBhIGdpdmVuIHBheWxvYWQgZXZl biBhZnRlciB0aGUgY29udGFpbmVyIGlzIGRlbGl2ZXJlZCB0aHJvdWdoIHRoZSBjb21tdW5pY2F0 aW9uIGNoYW5uZWwgDQoJdG8gdGhlIHRhcmdldCBwZXJpbWV0ZXIgYW5kIGNoYW5uZWwgbWVzc2Fn ZSBpbnRlZ3JpdHkgY2hlY2sgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlLiA8L3Q+DQoJCQk8L3NlY3Rp b24+DQoJCQk8c2VjdGlvbiB0aXRsZT0iUGF5bG9hZCBhdXRoZW50aWNpdHkiPg0KCQkJCTx0PlRo ZSBkaWdpdGFsIHNpZ25hdHVyZSBvZiB0aGUgcGF5bG9hZCBpcyB0aGUgcHJpbWFyeSB3YXkgb2Yg c2hvd2luZyBpdHMgYXV0aGVudGljaXR5LiANCglUaGUgcmVjaXBpZW50IG9mIHRoZSBjb250YWlu ZXIgbWF5IHVzZSB0aGUgcHVibGljIGtleSBhc3NvY2lhdGVkIHdpdGggdGhlIHNpZ25hdHVyZSB0 byBhc3NlcnQgCQ0KCXRoZSBhdXRoZW50aWNpdHkgb2YgdGhlIHNlbmRlciBieSB0cmFjaW5nIGl0 IGJhY2sgdG8gYSBwcmVsb2FkZWQgcHVibGljIGtleSBvciBjZXJ0aWZpY2F0ZS4gDQoJTm90ZSB0 aGF0IHRoZSBkaWdpdGFsIHNpZ25hdHVyZSBvZiB0aGUgcGF5bG9hZCBjYW4gYmUgY2hlY2tlZCBl dmVuIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIA0KCWJlZW4gZGVsaXZlcmVkIHRocm91Z2ggdGhl IHNlY3VyZSBjaGFubmVsIG9mIGNvbW11bmljYXRpb24uPC90Pg0KCQkJCTx0PkEgd2Vha2VyIHBh eWxvYWQgYXV0aGVudGljaXR5IGd1YXJhbnRlZSBtYXkgYmUgcHJvdmlkZWQgYnkgdGhlIHRyYW5z cG9ydCBsYXllciBpZiANCglpdCBpcyBjb25maWd1cmVkIHRvIGRpZ2VzdCBlYWNoIG1lc3NhZ2Ug aXQgdHJhbnNwb3J0cy4gSG93ZXZlciwgbm8gYXV0aGVudGljaXR5IHZlcmlmaWNhdGlvbiANCglp cyBwb3NzaWJsZSBvbmNlIHRoZSBjb250YWluZXIgaXMgZGVsaXZlcmVkIGF0IHRoZSByZWNpcGll bnQgZW5kLiBUaGlzIGFwcHJvYWNoIG1heSBiZSANCgl1c2VmdWwgaW4gY2FzZXMgd2hlcmUgdGhl IGRpZ2l0YWwgc2lnbmF0dXJlIG9mIHRoZSBjb250YWluZXIgZG9lcyBub3QgZW5jb21wYXNzIHRo ZSBlbnRpcmUgcGF5bG9hZC4gPC90Pg0KCQkJPC9zZWN0aW9uPg0KCQk8L3NlY3Rpb24+DQoJCTxz ZWN0aW9uIHRpdGxlPSJBY2tub3dsZWRnZW1lbnRzIj4NCgkJCTx0Pg0KCQlUaGUgYXV0aG9ycyBv ZiB0aGlzIGRyYWZ0IHdvdWxkIGxpa2UgdG8gdGhhbmsgdGhlIGZvbGxvd2luZyBwZW9wbGUgZm9y IHRoZWlyIGNvbnRyaWJ1dGlvbnMgYW5kIHN1cHBvcnQgDQoJCXRvIG1ha2UgdGhpcyBhIGJldHRl ciBzcGVjaWZpY2F0aW9uOiBBcG9zdG9sIFZhc3NpbGV2LCBTaHVoIENoYW5nLCBKb24gTWFydGlu c29uLCBTaWRkaGFydCBCYWphaiwgU3R1IFZlYXRoLA0KICAgICAgICAgICAgICAgIEtldmluIExl d2lzLCBQaGlsaXAgSGFsbGFtLUJha2VyLCBIYW5uZXMgVHNjaG9mZW5pZywgQW5kcmVhIERvaGVy dHksIE1hZ251cyBOeXN0cm9tLCBUaW0gTW9zZXMsIA0KICAgICAgICAgICAgICAgIGFuZCBBbmRl cnMgUnVuZGdyZW4uDQoJCTwvdD4NCgkJPC9zZWN0aW9uPg0KCQk8c2VjdGlvbiB0aXRsZT0iQXBw ZW5kaXggQSAtIEV4YW1wbGUgU3ltbWV0cmljIEtleSBDb250YWluZXJzIj4NCgkJCTx0Pg0KCQlB bGwgZXhhbXBsZXMgYXJlIHN5bnRhY3RpY2FsbHkgY29ycmVjdCBhbmQgY29tcGF0aWJsZSB3aXRo IHRoZSBYTUwgc2NoZW1hIGluIHNlY3Rpb24gNy4gDQoJCTwvdD4NCgkJCTxzZWN0aW9uIHRpdGxl PSJTeW1tZXRyaWMgS2V5IENvbnRhaW5lciB3aXRoIGEgc2luZ2xlIE5vbi1FbmNyeXB0ZWQgSE9U UCBTZWNyZXQgS2V5Ij4NCgkJCQk8dD4NCgkJCQkJPGZpZ3VyZT4NCgkJCQkJCTxwcmVhbWJsZS8+ DQoJCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9 IlVURi04Ij8+DQo8S2V5Q29udGFpbmVyIFZlcnNpb249IjEuMCIgDQogIHhtbG5zPSJ1cm46aWV0 ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCI+DQogICAgPERldmljZT4NCiAg ICAgICAgPERldmljZUlkPg0KICAgICAgICAgICAgPE1hbnVmYWN0dXJlcj5BQ01FPC9NYW51ZmFj dHVyZXI+DQogICAgICAgICAgICA8U2VyaWFsTm8+MDc1NTIyNTI2NjwvU2VyaWFsTm8+DQogICAg ICAgIDwvRGV2aWNlSWQ+DQogICAgICAgIDxLZXkgS2V5QWxnb3JpdGhtPSJodHRwOi8vd3d3Lmll dGYub3JnL2tleXByb3YvcHNrYyNob3RwIiANCiAgICAgICAgICBLZXlJZD0iMDc1NTIyNTI2NiI+ DQogICAgICAgICAgICA8SXNzdWVyPkFuSXNzdWVyPC9Jc3N1ZXI+DQogICAgICAgICAgICA8VXNh Z2UgT1RQPSJ0cnVlIj4NCiAgICAgICAgICAgICAgICA8UmVzcG9uc2VGb3JtYXQgTGVuZ3RoPSI2 IiBGb3JtYXQ9IkRFQ0lNQUwiLz4NCiAgICAgICAgICAgIDwvVXNhZ2U+DQogICAgICAgICAgICA8 RGF0YSBOYW1lPSJDT1VOVEVSIj4NCiAgICAgICAgICAgICAgICA8UGxhaW5WYWx1ZT5BcHJrdUE9 PTwvUGxhaW5WYWx1ZT4NCiAgICAgICAgICAgIDwvRGF0YT4NCiAgICAgICAgICAgIDxEYXRhIE5h bWU9IlNFQ1JFVCI+DQogICAgICAgICAgICAgICAgPFBsYWluVmFsdWU+LzRoM3JPVGVCZWdKd0dw bVRUcTRGK1JsTlIwPTwvUGxhaW5WYWx1ZT4NCiAgICAgICAgICAgIDwvRGF0YT4NCiAgICAgICAg ICAgIDxFeHBpcnlEYXRlPjIwMTItMTItMzFUMDA6MDA6MDA8L0V4cGlyeURhdGU+DQogICAgICAg IDwvS2V5Pg0KICAgIDwvRGV2aWNlPg0KPC9LZXlDb250YWluZXI+CQkJCQkNCgkJCQkJCQ0KXV0+ PC9hcnR3b3JrPg0KCQkJCQkJPHBvc3RhbWJsZS8+DQoJCQkJCTwvZmlndXJlPg0KCQkJCTwvdD4N CgkJCTwvc2VjdGlvbj4NCgkJCTxzZWN0aW9uIHRpdGxlPSJTeW1tZXRyaWMgS2V5IENvbnRhaW5l ciB3aXRoIGEgc2luZ2xlIFBJTiBwcm90ZWN0ZWQgTm9uLUVuY3J5cHRlZCBIT1RQIFNlY3JldCBL ZXkiPg0KCQkJCTx0Pg0KCQkJCQk8ZmlndXJlPg0KCQkJCQkJPHByZWFtYmxlLz4NCgkJCQkJCTxh cnR3b3JrPjwhW0NEQVRBWw0KPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4N CjxLZXlDb250YWluZXIgVmVyc2lvbj0iMS4wIiANCiAgeG1sbnM9InVybjppZXRmOnBhcmFtczp4 bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4wIj4NCiAgICA8RGV2aWNlPg0KICAgICAgICA8RGV2 aWNlSWQ+DQogICAgICAgICAgICA8TWFudWZhY3R1cmVyPkFDTUU8L01hbnVmYWN0dXJlcj4NCiAg ICAgICAgICAgIDxTZXJpYWxObz4wNzU1MjI1MjY2PC9TZXJpYWxObz4NCiAgICAgICAgPC9EZXZp Y2VJZD4NCiAgICAgICAgPEtleSBLZXlBbGdvcml0aG09Imh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5 cHJvdi9wc2tjI2hvdHAiIA0KICAgICAgICAgIEtleUlkPSIwNzU1MjI1MjY2Ij4NCiAgICAgICAg ICAgIDxJc3N1ZXI+QW5Jc3N1ZXI8L0lzc3Vlcj4NCiAgICAgICAgICAgIDxVc2FnZSBPVFA9InRy dWUiPg0KICAgICAgICAgICAgICAgIDxSZXNwb25zZUZvcm1hdCBMZW5ndGg9IjYiIEZvcm1hdD0i REVDSU1BTCIvPg0KICAgICAgICAgICAgPC9Vc2FnZT4NCiAgICAgICAgICAgIDxEYXRhIE5hbWU9 IkNPVU5URVIiPg0KICAgICAgICAgICAgICAgIDxQbGFpblZhbHVlPkFwcmt1QT09PC9QbGFpblZh bHVlPg0KICAgICAgICAgICAgPC9EYXRhPg0KICAgICAgICAgICAgPERhdGEgTmFtZT0iU0VDUkVU Ij4NCiAgICAgICAgICAgICAgICA8UGxhaW5WYWx1ZT4vNGgzck9UZUJlZ0p3R3BtVFRxNEYrUmxO UjA9PC9QbGFpblZhbHVlPg0KICAgICAgICAgICAgPC9EYXRhPg0KICAgICAgICAgICAgPFBJTlBv bGljeSBQSU5LZXlJZD0iMDc1NTIyNTI2NjEiPg0KICAgICAgICAgICAgICAgIDxQSU5Vc2FnZU1v ZGU+DQogICAgICAgICAgICAgICAgICAgIDxMb2NhbC8+DQogICAgICAgICAgICAgICAgPC9QSU5V c2FnZU1vZGU+DQogICAgICAgICAgICA8L1BJTlBvbGljeT4NCiAgICAgICAgPC9LZXk+DQogICAg ICAgIDxLZXkgS2V5SWQ9IjA3NTUyMjUyNjYxIiANCiAgICAgICAgICBLZXlBbGdvcml0aG09Imh0 dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI3BpbiI+DQogICAgICAgICAgICA8VXNhZ2U+ DQogICAgICAgICAgICAgICAgPFJlc3BvbnNlRm9ybWF0IExlbmd0aD0iNCIgRm9ybWF0PSJERUNJ TUFMIi8+DQogICAgICAgICAgICA8L1VzYWdlPg0KICAgICAgICAgICAgPERhdGEgTmFtZT0iU0VD UkVUIj4NCiAgICAgICAgICAgICAgICA8UGxhaW5WYWx1ZT5NVEl6TkE9PTwvUGxhaW5WYWx1ZT4N CiAgICAgICAgICAgIDwvRGF0YT4NCiAgICAgICAgPC9LZXk+DQogICAgPC9EZXZpY2U+DQo8L0tl eUNvbnRhaW5lcj4JCQkJCQkNCl1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJ CQk8L2ZpZ3VyZT4NCgkJCQk8L3Q+DQoJCQk8L3NlY3Rpb24+DQoJCQk8c2VjdGlvbiB0aXRsZT0i U3ltbWV0cmljIEtleSBDb250YWluZXIgd2l0aCBhIHNpbmdsZSBBRVMtMjU2LUNCQyBFbmNyeXB0 ZWQgSE9UUCBTZWNyZXQgS2V5Ij4NCgkJCQk8dD4NCgkJCQkJPGZpZ3VyZT4NCgkJCQkJCTxwcmVh bWJsZS8+DQoJCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjw/eG1sIHZlcnNpb249IjEuMCIgZW5j b2Rpbmc9IlVURi04Ij8+DQo8S2V5Q29udGFpbmVyIFZlcnNpb249IjEuMCIgDQogIHhtbG5zPSJ1 cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCIgDQogIHhtbG5zOmRz PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiANCiAgeG1sbnM6eGVuYz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjIj4NCiAgICA8RW5jcnlwdGlvbktleT4NCiAg ICAgICAgPGRzOktleU5hbWU+UFJFX1NIQVJFRF9LRVk8L2RzOktleU5hbWU+DQogICAgPC9FbmNy eXB0aW9uS2V5Pg0KICAgIDxNQUNBbGdvcml0aG0+aHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94 bWxkc2lnI2htYWMtc2hhMQ0KICAgIDwvTUFDQWxnb3JpdGhtPg0KICAgIDxEZXZpY2U+DQogICAg ICAgIDxEZXZpY2VJZD4NCiAgICAgICAgICAgIDxNYW51ZmFjdHVyZXI+QUNNRTwvTWFudWZhY3R1 cmVyPg0KICAgICAgICAgICAgPFNlcmlhbE5vPjA3NTUyMjUyNjY8L1NlcmlhbE5vPg0KICAgICAg ICA8L0RldmljZUlkPg0KICAgICAgICA8S2V5IEtleUFsZ29yaXRobT0iaHR0cDovL3d3dy5pZXRm Lm9yZy9rZXlwcm92L3Bza2MjaG90cCIgDQogICAgICAgICAgS2V5SWQ9IjA3NTUyMjUyNjYiPg0K ICAgICAgICAgICAgPElzc3Vlcj5Bbklzc3VlcjwvSXNzdWVyPg0KICAgICAgICAgICAgPFVzYWdl IE9UUD0idHJ1ZSI+DQogICAgICAgICAgICAgICAgPFJlc3BvbnNlRm9ybWF0IExlbmd0aD0iOCIg Rm9ybWF0PSJERUNJTUFMIi8+DQogICAgICAgICAgICA8L1VzYWdlPg0KICAgICAgICAgICAgPERh dGEgTmFtZT0iQ09VTlRFUiI+DQogICAgICAgICAgICAgICAgPFBsYWluVmFsdWU+QXBya3VBPT08 L1BsYWluVmFsdWU+DQogICAgICAgICAgICA8L0RhdGE+DQogICAgICAgICAgICA8RGF0YSBOYW1l PSJTRUNSRVQiPg0KICAgICAgICAgICAgICAgIDxFbmNyeXB0ZWRWYWx1ZT4NCiAgICAgICAgICAg ICAgICAgICAgPHhlbmM6RW5jcnlwdGlvbk1ldGhvZCANCiAgICAgICAgICAgICAgIEFsZ29yaXRo bT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjYWVzMjU2LWNiYyIvPg0KICAgICAg ICAgICAgICAgICAgICA8eGVuYzpDaXBoZXJEYXRhPg0KICAgICAgICAgICAgICAgICAgICAgIDx4 ZW5jOkNpcGhlclZhbHVlPg0KICAgICAgICAgICAgICAgICAgICAgICAga3l6cldUSnVoSktRSGha dGYyQ1diS0M1SDNMZGZBUHZLekhIUThTZHh5RT0NCiAgICAgICAgICAgICAgICAgICAgICA8L3hl bmM6Q2lwaGVyVmFsdWU+DQogICAgICAgICAgICAgICAgICAgIDwveGVuYzpDaXBoZXJEYXRhPg0K ICAgICAgICAgICAgICAgIDwvRW5jcnlwdGVkVmFsdWU+DQogICAgICAgICAgICAgICAgPFZhbHVl TUFDPmN3Skk4OThyUnBHQnl0VHFDQXNlZ2FRcVBaQT08L1ZhbHVlTUFDPg0KICAgICAgICAgICAg PC9EYXRhPg0KICAgICAgICA8L0tleT4NCiAgICA8L0RldmljZT4NCjwvS2V5Q29udGFpbmVyPgkJ CQkNCl1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCQk8L2ZpZ3VyZT4NCgkJ CQk8L3Q+DQoJCQk8L3NlY3Rpb24+DQoJCQk8c2VjdGlvbiB0aXRsZT0iU3ltbWV0cmljIEtleSBD b250YWluZXIgd2l0aCBzaWduYXR1cmUgYW5kIGEgc2luZ2xlIFBhc3N3b3JkLWJhc2VkIEVuY3J5 cHRlZCBIT1RQIFNlY3JldCBLZXkiPg0KCQkJCTx0Pg0KCQkJCQk8ZmlndXJlPg0KCQkJCQkJPHBy ZWFtYmxlLz4NCgkJCQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0KPD94bWwgdmVyc2lvbj0iMS4wIiBl bmNvZGluZz0iVVRGLTgiPz4NCjxwc2tjOktleUNvbnRhaW5lcg0KICB4bWxuczpwc2tjPSJ1cm46 aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCINCiAgeG1sbnM6cGtjcy01 PQ0KICAgICJodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJzL3BrY3Mvc2NoZW1hcy9w a2NzLTV2Mi0wIyINCiAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt YS1pbnN0YW5jZSINCiAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNp ZyMiDQogIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyINCiAg VmVyc2lvbj0iMS4wIj4NCiAgICA8cHNrYzpFbmNyeXB0aW9uS2V5Pg0KICAgICAgPHBza2M6RGVy aXZlZEtleSBJZD0iI1Bhc3NwaHJhc2UxIj4NCiAgICAgICAgPHBza2M6Q2FycmllZEtleU5hbWU+ UGFzc3BocmFzZTE8L3Bza2M6Q2FycmllZEtleU5hbWU+DQogICAgICAgIDxwc2tjOktleURlcml2 YXRpb25NZXRob2QNCiAgICAgICAgICBBbGdvcml0aG09DQogICAgICJodHRwOi8vd3d3LnJzYXNl Y3VyaXR5LmNvbS9yc2FsYWJzL3BrY3Mvc2NoZW1hcy9wa2NzLTUjcGJrZGYyIj4NCiAgICAgICAg ICA8cGtjcy01OlBhcmFtZXRlcnMgeHNpOnR5cGU9InBrY3MtNTpQQktERjJQYXJhbWV0ZXJUeXBl Ij4NCiAgICAgICAgICAgIDxTYWx0Pg0KICAgICAgICAgICAgICA8U3BlY2lmaWVkPkRmM2RSQWhq R2g4PTwvU3BlY2lmaWVkPg0KICAgICAgICAgICAgPC9TYWx0Pg0KICAgICAgICAgICAgPEl0ZXJh dGlvbkNvdW50PjIwMDA8L0l0ZXJhdGlvbkNvdW50Pg0KICAgICAgICAgICAgPEtleUxlbmd0aD4x NjwvS2V5TGVuZ3RoPg0KICAgICAgICAgICAgPFBSRi8+DQogICAgICAgICAgPC9wa2NzLTU6UGFy YW1ldGVycz4NCiAgICAgICAgPC9wc2tjOktleURlcml2YXRpb25NZXRob2Q+DQogICAgICAgIDx4 ZW5jOlJlZmVyZW5jZUxpc3Q+DQogICAgICAgICAgPHhlbmM6RGF0YVJlZmVyZW5jZSBVUkk9IiNF RCIvPg0KICAgICAgICA8L3hlbmM6UmVmZXJlbmNlTGlzdD4NCiAgICAgIDwvcHNrYzpEZXJpdmVk S2V5Pg0KICAgIDwvcHNrYzpFbmNyeXB0aW9uS2V5PiAgDQogIDxwc2tjOkRldmljZT4NCiAgICA8 cHNrYzpEZXZpY2VJZD4NCiAgICAgIDxwc2tjOk1hbnVmYWN0dXJlcj5BQ01FPC9wc2tjOk1hbnVm YWN0dXJlcj4NCiAgICAgIDxwc2tjOlNlcmlhbE5vPjA3NTUyMjUyNjY8L3Bza2M6U2VyaWFsTm8+ DQogICAgPC9wc2tjOkRldmljZUlkPg0KICAgICAgICA8cHNrYzpLZXkgS2V5QWxnb3JpdGhtPSJo dHRwOi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNrYyNob3RwIiANCiAgICAgICAgICBLZXlJZD0i MDc1NTIyNTI2NiI+DQogICAgICAgICAgICA8cHNrYzpJc3N1ZXI+QW5Jc3N1ZXI8L3Bza2M6SXNz dWVyPg0KICAgICAgICAgICAgPHBza2M6VXNhZ2UgT1RQPSJ0cnVlIj4NCiAgICAgICAgICAgICAg ICA8cHNrYzpSZXNwb25zZUZvcm1hdCBMZW5ndGg9IjYiIEZvcm1hdD0iREVDSU1BTCIvPg0KICAg ICAgICAgICAgPC9wc2tjOlVzYWdlPg0KICAgICAgICAgICAgPHBza2M6RGF0YSBOYW1lPSJDT1VO VEVSIj4NCiAgICAgICAgICAgICAgICA8cHNrYzpQbGFpblZhbHVlPkFwcmt1QT09PC9wc2tjOlBs YWluVmFsdWU+DQogICAgICAgICAgICA8L3Bza2M6RGF0YT4NCiAgICAgICAgICAgIDxwc2tjOkRh dGEgTmFtZT0iU0VDUkVUIj4NCgkJPHBza2M6RW5jcnlwdGVkVmFsdWUgSWQ9IkVEIj4NCgkJICA8 eGVuYzpFbmNyeXB0aW9uTWV0aG9kIEFsZ29yaXRobT0NCiAgICAgICAgICAgICAgICAgICJodHRw Oi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNrdy1hZXMxMjgiLz4NCgkJICA8eGVuYzpDaXBo ZXJEYXRhPg0KCQkgICAgPHhlbmM6Q2lwaGVyVmFsdWU+cmY0ZHgzcnZFUE8wdkt0S0wxNE5iZVZ1 OG5rPQ0KICAgICAgICAgICAgICAgICAgICA8L3hlbmM6Q2lwaGVyVmFsdWU+DQoJCSAgPC94ZW5j OkNpcGhlckRhdGE+DQoJCTwvcHNrYzpFbmNyeXB0ZWRWYWx1ZT4NCiAgICAgICAgICAgIDwvcHNr YzpEYXRhPg0KICAgICAgICA8L3Bza2M6S2V5Pg0KICA8L3Bza2M6RGV2aWNlPg0KICA8cHNrYzpT aWduYXR1cmU+DQogICAgPGRzOlNpZ25lZEluZm8+DQogICAgICA8ZHM6Q2Fub25pY2FsaXphdGlv bk1ldGhvZCANCiAgICAgICAgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3ht bC1leGMtYzE0biMiLz4NCiAgICAgIDxkczpTaWduYXR1cmVNZXRob2QgIA0KICAgICAgICBBbGdv cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hhMSIvPg0KICAg ICAgPGRzOlJlZmVyZW5jZSBVUkk9IiI+DQogICAgICAgIDxkczpEaWdlc3RNZXRob2QgQWxnb3Jp dGhtPQ0KICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIv Pg0KICAgICAgICA8ZHM6RGlnZXN0VmFsdWU+ajZsd3gzcnZFUE8wdkt0TXVwNE5iZVZ1OG5rPTwv ZHM6RGlnZXN0VmFsdWU+DQogICAgICA8L2RzOlJlZmVyZW5jZT4NCiAgICA8L2RzOlNpZ25lZElu Zm8+DQogICAgPGRzOlNpZ25hdHVyZVZhbHVlPmo2bHd4M3J2RVBPMHZLdE11cDROYmVWdThuaz08 L2RzOlNpZ25hdHVyZVZhbHVlPg0KICAgIDxkczpLZXlJbmZvPg0KICAgICAgPGRzOlg1MDlEYXRh Pg0KICAgICAgICA8ZHM6WDUwOUlzc3VlclNlcmlhbD4gDQogICAgICAgICAgPGRzOlg1MDlJc3N1 ZXJOYW1lPkNOPUtleVByb3Zpc2lvbmluZydSJ1VzLmNvbSxDPVVTDQogICAgICAgICAgPC9kczpY NTA5SXNzdWVyTmFtZT4NCiAgICAgICAgICA8ZHM6WDUwOVNlcmlhbE51bWJlcj4xMjM0NTY3ODwv ZHM6WDUwOVNlcmlhbE51bWJlcj4NCiAgICAgICAgPC9kczpYNTA5SXNzdWVyU2VyaWFsPg0KICAg ICAgPC9kczpYNTA5RGF0YT4NCiAgICA8L2RzOktleUluZm8+DQogIDwvcHNrYzpTaWduYXR1cmU+ ICANCjwvcHNrYzpLZXlDb250YWluZXI+DQoNCl1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1i bGUvPg0KCQkJCQk8L2ZpZ3VyZT4NCgkJCQk8L3Q+DQoJCQk8L3NlY3Rpb24+DQoJCQk8c2VjdGlv biB0aXRsZT0iU3ltbWV0cmljIEtleSBDb250YWluZXIgd2l0aCBhIHNpbmdsZSBSU0EgMS41IEVu Y3J5cHRlZCBIT1RQIFNlY3JldCBLZXkiPg0KCQkJCTx0Pg0KCQkJCQk8ZmlndXJlPg0KCQkJCQkJ PHByZWFtYmxlLz4NCgkJCQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0KPD94bWwgdmVyc2lvbj0iMS4w IiBlbmNvZGluZz0iVVRGLTgiPz4NCjxwc2tjOktleUNvbnRhaW5lciBWZXJzaW9uPSIxLjAiIA0K ICB4bWxuczpwc2tjPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEu MCIgDQogIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiANCiAg eG1sbnM6eGVuYz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjIj4NCiAgICA8cHNr YzpFbmNyeXB0aW9uS2V5PiAgICAgICAgICAgICAgICANCiAgICAgICAgPGRzOlg1MDlEYXRhPg0K ICAgICAgICAgICAgPGRzOlg1MDlDZXJ0aWZpY2F0ZT5taWliPC9kczpYNTA5Q2VydGlmaWNhdGU+ DQogICAgICAgIDwvZHM6WDUwOURhdGE+ICAgICAgICAgICANCiAgICA8L3Bza2M6RW5jcnlwdGlv bktleT4gIA0KICAgIDxwc2tjOkRldmljZT4NCiAgICAgICAgPHBza2M6RGV2aWNlSWQ+DQogICAg ICAgICAgICA8cHNrYzpNYW51ZmFjdHVyZXI+QUNNRTwvcHNrYzpNYW51ZmFjdHVyZXI+DQogICAg ICAgICAgICA8cHNrYzpTZXJpYWxObz4wNzU1MjI1MjY2PC9wc2tjOlNlcmlhbE5vPg0KICAgICAg ICA8L3Bza2M6RGV2aWNlSWQ+DQogICAgICAgIDxwc2tjOktleSBLZXlBbGdvcml0aG09Imh0dHA6 Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHAiIA0KICAgICAgICAgICAgICAgICAgS2V5 SWQ9IjA3NTUyMjUyNjYiPg0KICAgICAgICAgICAgPHBza2M6SXNzdWVyPkFuSXNzdWVyPC9wc2tj Oklzc3Vlcj4NCiAgICAgICAgICAgIDxwc2tjOlVzYWdlIE9UUD0idHJ1ZSI+DQogICAgICAgICAg ICAgICAgPHBza2M6UmVzcG9uc2VGb3JtYXQgTGVuZ3RoPSI4IiBGb3JtYXQ9IkRFQ0lNQUwiLz4N CiAgICAgICAgICAgIDwvcHNrYzpVc2FnZT4NCiAgICAgICAgICAgIDxwc2tjOkRhdGEgTmFtZT0i Q09VTlRFUiI+DQogICAgICAgICAgICAgICAgPHBza2M6UGxhaW5WYWx1ZT5BcHJrdUE9PTwvcHNr YzpQbGFpblZhbHVlPg0KICAgICAgICAgICAgPC9wc2tjOkRhdGE+DQogICAgICAgICAgICA8cHNr YzpEYXRhIE5hbWU9IlNFQ1JFVCI+DQogICAgICAgICAgICAgIDxwc2tjOkVuY3J5cHRlZFZhbHVl IElkPSJFRCI+DQogICAgICAgICAgICAgICAgPHhlbmM6RW5jcnlwdGlvbk1ldGhvZCANCiAgICAg ICAgICAgICAgICAgIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMj cnNhXzFfNSIvPg0KICAgICAgICAgICAgICAgIDx4ZW5jOkNpcGhlckRhdGE+DQogICAgICAgICAg ICAgICAgICA8eGVuYzpDaXBoZXJWYWx1ZT5yZjRkeDNydkVQTzB2S3RLTDE0TmJlVnU4bms9DQog ICAgICAgICAgICAgICAgICA8L3hlbmM6Q2lwaGVyVmFsdWU+DQogICAgICAgICAgICAgICAgPC94 ZW5jOkNpcGhlckRhdGE+DQogICAgICAgICAgICAgIDwvcHNrYzpFbmNyeXB0ZWRWYWx1ZT4NCiAg ICAgICAgICAgIDwvcHNrYzpEYXRhPg0KICAgICAgICA8L3Bza2M6S2V5Pg0KICAgIDwvcHNrYzpE ZXZpY2U+DQo8L3Bza2M6S2V5Q29udGFpbmVyPl1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1i bGUvPg0KCQkJCQk8L2ZpZ3VyZT4NCgkJCQk8L3Q+DQoJCQk8L3NlY3Rpb24+DQoJCTwvc2VjdGlv bj4NCgk8L21pZGRsZT4NCgk8YmFjaz4NCgkJPHJlZmVyZW5jZXMgdGl0bGU9Ik5vcm1hdGl2ZSBS ZWZlcmVuY2VzIj4NCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJQS0NTMSI+DQoJCQkJPGZyb250Pg0K CQkJCQk8dGl0bGU+UkZDIDI0Mzc6IFBLQ1MgIzE6IFJTQSBDcnlwdG9ncmFwaHkgU3BlY2lmaWNh dGlvbnMgVmVyc2lvbiAyLjAuPC90aXRsZT4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iQi4gS2Fs aXNraSBhbmQgSi4gU3RhZGRvbi4iIHN1cm5hbWU9IkthbGlza2kiIGZ1bGxuYW1lPSJCLiBLYWxp c2tpIGFuZCBKLiBTdGFkZG9uIj4NCgkJCQkJCTxvcmdhbml6YXRpb24+DQogICAgICAgICAgICAg ICAgPC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8ZGF0ZSBtb250aD0iT2N0 b2JlciIgeWVhcj0iMTk5OCIvPg0KCQkJCTwvZnJvbnQ+DQoJCQkJPHNlcmllc0luZm8gbmFtZT0i VVJMOiIgdmFsdWU9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzI0MzcudHh0Ii8+DQoJCQkJ PHNlcmllc0luZm8gbmFtZT0iVmVyc2lvbjoiIHZhbHVlPSIyLjAiLz4NCgkJCQk8Zm9ybWF0IHR5 cGU9IlRYVCIgb2N0ZXRzPSI5NDUwNiIgdGFyZ2V0PSJmdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rl cy9yZmMyMjAwLnR4dCIvPg0KCQkJPC9yZWZlcmVuY2U+ICAgICAgICAgDQoJCQk8cmVmZXJlbmNl IGFuY2hvcj0iUEtDUzUiPg0KCQkJCTxmcm9udD4NCgkJCQkJPHRpdGxlPlBLQ1MgIzU6IFBhc3N3 b3JkLUJhc2VkIENyeXB0b2dyYXBoeSBTdGFuZGFyZDwvdGl0bGU+DQoJCQkJCTxhdXRob3I+DQoJ CQkJCQk8b3JnYW5pemF0aW9uPg0KCQkJUlNBIExhYm9yYXRvcmllcw0KICAgICAgICAgICAgICAg IDwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGRhdGUgbW9udGg9Ik1hcmNo IiB5ZWFyPSIxOTk5Ii8+DQoJCQkJPC9mcm9udD4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJWZXJz aW9uIiB2YWx1ZT0iMi4wIi8+DQoJCQkJPHNlcmllc0luZm8gbmFtZT0iVVJMOiIgdmFsdWU9Imh0 dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy8iLz4NCgkJCQk8Zm9ybWF0IHR5 cGU9IlRYVCIgb2N0ZXRzPSI5NDUwNiIgdGFyZ2V0PSJmdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rl cy9yZmMyMjAwLnR4dCIvPg0KCQkJPC9yZWZlcmVuY2U+DQoJCQk8cmVmZXJlbmNlIGFuY2hvcj0i UkZDMjExOSIgdGFyZ2V0PSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMTE5LnR4dCI+DQoJ CQkJPGZyb250Pg0KCQkJCQk8dGl0bGU+S2V5IHdvcmRzIGZvciB1c2UgaW4gUkZDcyB0byBJbmRp Y2F0ZSBSZXF1aXJlbWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZXZlbHM8 L3RpdGxlPg0KCQkJCQk8YXV0aG9yIGZ1bGxuYW1lPSIiPg0KCQkJCQkJPG9yZ2FuaXphdGlvbi8+ DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8ZGF0ZSBtb250aD0iTWFyY2giIHllYXI9IjE5OTciLz4N CgkJCQk8L2Zyb250Pg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9IkJDUCIgdmFsdWU9IjE0Ii8+DQoJ CQkJPHNlcmllc0luZm8gbmFtZT0iUkZDIiB2YWx1ZT0iMjExOSIvPg0KCQkJPC9yZWZlcmVuY2U+ DQoJCQk8cmVmZXJlbmNlIGFuY2hvcj0iWE1MRFNJRyI+DQoJCQkJPGZyb250Pg0KCQkJCQk8dGl0 bGU+WE1MLVNpZ25hdHVyZSBTeW50YXggYW5kIFByb2Nlc3Npbmc8L3RpdGxlPg0KCQkJCQk8YXV0 aG9yIGluaXRpYWxzPSJELiwgYXQgYWwuIiBzdXJuYW1lPSJFYXN0bGFrZSIgZnVsbG5hbWU9IkRh dmlkIEVhc3RsYWtlLCBhdCBhbC4iPg0KCQkJCQkJPG9yZ2FuaXphdGlvbj4NCiAgICAgICAgICAg ICAgICA8L29yZ2FuaXphdGlvbj4NCgkJCQkJPC9hdXRob3I+DQoJCQkJCTxkYXRlIG1vbnRoPSJG ZWJydWFyeSIgeWVhcj0iMjAwMiIvPg0KCQkJCTwvZnJvbnQ+DQoJCQkJPHNlcmllc0luZm8gbmFt ZT0iVVJMOiIgdmFsdWU9Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDIvUkVDLXhtbGRzaWctY29y ZS0yMDAyMDIxMi8iLz4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJXM0MiIHZhbHVlPSJSZWNvbW1l bmRhdGlvbiIvPg0KCQkJCTxmb3JtYXQgdHlwZT0iVFhUIiBvY3RldHM9Ijk0NTA2IiB0YXJnZXQ9 ImZ0cDovL2Z0cC5pc2kuZWR1L2luLW5vdGVzL3JmYzIyMDAudHh0Ii8+DQoJCQk8L3JlZmVyZW5j ZT4NCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJYTUxFTkMiPg0KCQkJCTxmcm9udD4NCgkJCQkJPHRp dGxlPlhNTCBFbmNyeXB0aW9uIFN5bnRheCBhbmQgUHJvY2Vzc2luZy48L3RpdGxlPg0KCQkJCQk8 YXV0aG9yIGluaXRpYWxzPSJELiBFYXN0bGFrZSBhbmQgSi4gUmVhZ2xlLiIgc3VybmFtZT0iRWFz dGxha2UiIGZ1bGxuYW1lPSJELiBFYXN0bGFrZSBhbmQgSi4gUmVhZ2xlLiI+DQoJCQkJCQk8b3Jn YW5pemF0aW9uPg0KICAgICAgICAgICAgICAgIDwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhv cj4NCgkJCQkJPGRhdGUgbW9udGg9IkRlY2VtYmVyIiB5ZWFyPSIyMDAyIi8+DQoJCQkJPC9mcm9u dD4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJVUkw6IiB2YWx1ZT0iaHR0cDovL3d3dy53My5vcmcv VFIveG1sZW5jLWNvcmUvIi8+DQoJCQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iOTQ1MDYi IHRhcmdldD0iZnRwOi8vZnRwLmlzaS5lZHUvaW4tbm90ZXMvcmZjMjIwMC50eHQiLz4NCgkJCTwv cmVmZXJlbmNlPg0KCQkJDQoJCQk8cmVmZXJlbmNlIGFuY2hvcj0iUkZDNDI4OCI+DQoNCgkJCQk8 ZnJvbnQ+DQoJCQkJCTx0aXRsZT5NZWRpYSBUeXBlIFNwZWNpZmljYXRpb25zIGFuZCBSZWdpc3Ry YXRpb24gUHJvY2VkdXJlczwvdGl0bGU+DQoJCQkJCTxhdXRob3IgaW5pdGlhbHM9Ik4uIiBzdXJu YW1lPSJGcmVlZCIgZnVsbG5hbWU9Ik4uIEZyZWVkIj4NCgkJCQkJCTxvcmdhbml6YXRpb24vPg0K CQkJCQk8L2F1dGhvcj4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iSi4iIHN1cm5hbWU9IktsZW5z aW4iIGZ1bGxuYW1lPSJKLiBLbGVuc2luIj4NCgkJCQkJCTxvcmdhbml6YXRpb24vPg0KCQkJCQk8 L2F1dGhvcj4NCgkJCQkJPGRhdGUgeWVhcj0iMjAwNSIgbW9udGg9IkRlY2VtYmVyIi8+DQoJCQkJ CTxhYnN0cmFjdD4NCgkJCQkJCTx0PlRoaXMgZG9jdW1lbnQgZGVmaW5lcyBwcm9jZWR1cmVzIGZv ciB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgcmVnaXN0cmF0aW9uDQoJCQkJCQkJb2YgbWVkaWEgdHlw ZXMgZm9yIHVzZSBpbiBNSU1FIGFuZCBvdGhlciBJbnRlcm5ldCBwcm90b2NvbHMuIFRoaXMNCgkJ CQkJCQlkb2N1bWVudCBzcGVjaWZpZXMgYW4gSW50ZXJuZXQgQmVzdCBDdXJyZW50IFByYWN0aWNl cyBmb3IgdGhlIEludGVybmV0DQoJCQkJCQkJQ29tbXVuaXR5LCBhbmQgcmVxdWVzdHMgZGlzY3Vz c2lvbiBhbmQgc3VnZ2VzdGlvbnMgZm9yIGltcHJvdmVtZW50cy48L3Q+DQoJCQkJCTwvYWJzdHJh Y3Q+DQoJCQkJPC9mcm9udD4NCg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9IkJDUCIgdmFsdWU9IjEz Ii8+DQoJCQkJPHNlcmllc0luZm8gbmFtZT0iUkZDIiB2YWx1ZT0iNDI4OCIvPg0KCQkJCTxmb3Jt YXQgdHlwZT0iVFhUIiBvY3RldHM9IjUyNjY3IiB0YXJnZXQ9ImZ0cDovL2Z0cC5pc2kuZWR1L2lu LW5vdGVzL3JmYzQyODgudHh0Ii8+DQoJCQk8L3JlZmVyZW5jZT4NCgkJCQ0KCQkJPHJlZmVyZW5j ZSBhbmNob3I9IlJGQzMwMjMiPg0KDQoJCQkJPGZyb250Pg0KCQkJCQk8dGl0bGU+WE1MIE1lZGlh IFR5cGVzPC90aXRsZT4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iTS4iIHN1cm5hbWU9Ik11cmF0 YSIgZnVsbG5hbWU9Ik0uIE11cmF0YSI+DQoJCQkJCQk8b3JnYW5pemF0aW9uLz4NCgkJCQkJPC9h dXRob3I+DQoJCQkJCTxhdXRob3IgaW5pdGlhbHM9IlMuIiBzdXJuYW1lPSJTdC4gTGF1cmVudCIg ZnVsbG5hbWU9IlMuIFN0LiBMYXVyZW50Ij4NCgkJCQkJCTxvcmdhbml6YXRpb24vPg0KCQkJCQk8 L2F1dGhvcj4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iRC4iIHN1cm5hbWU9IktvaG4iIGZ1bGxu YW1lPSJELiBLb2huIj4NCgkJCQkJCTxvcmdhbml6YXRpb24vPg0KCQkJCQk8L2F1dGhvcj4NCgkJ CQkJPGRhdGUgeWVhcj0iMjAwMSIgbW9udGg9IkphbnVhcnkiLz4NCgkJCQk8L2Zyb250Pg0KDQoJ CQkJPHNlcmllc0luZm8gbmFtZT0iUkZDIiB2YWx1ZT0iMzAyMyIvPg0KCQkJCTxmb3JtYXQgdHlw ZT0iVFhUIiBvY3RldHM9Ijg2MDExIiB0YXJnZXQ9ImZ0cDovL2Z0cC5pc2kuZWR1L2luLW5vdGVz L3JmYzMwMjMudHh0Ii8+DQoJCQk8L3JlZmVyZW5jZT4NCg0KCQkJPHJlZmVyZW5jZSBhbmNob3I9 IlJGQzM2ODgiPg0KDQoJCQkJPGZyb250Pg0KCQkJCQk8dGl0bGU+VGhlIElFVEYgWE1MIFJlZ2lz dHJ5PC90aXRsZT4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iTS4iIHN1cm5hbWU9Ik1lYWxsaW5n IiBmdWxsbmFtZT0iTS4gTWVhbGxpbmciPg0KCQkJCQkJPG9yZ2FuaXphdGlvbi8+DQoJCQkJCTwv YXV0aG9yPg0KCQkJCQk8ZGF0ZSB5ZWFyPSIyMDA0IiBtb250aD0iSmFudWFyeSIvPg0KCQkJCQk8 YWJzdHJhY3Q+DQoJCQkJCQk8dD5UaGlzIGRvY3VtZW50IGRlc2NyaWJlcyBhbiBJQU5BIG1haW50 YWluZWQgcmVnaXN0cnkgZm9yIElFVEYgc3RhbmRhcmRzDQoJCQkJCQkJd2hpY2ggdXNlIEV4dGVu c2libGUgTWFya3VwIExhbmd1YWdlIChYTUwpIHJlbGF0ZWQgaXRlbXMgc3VjaCBhcw0KCQkJCQkJ CU5hbWVzcGFjZXMsIERvY3VtZW50IFR5cGUgRGVjbGFyYXRpb25zIChEVERzKSwgU2NoZW1hcywg YW5kIFJlc291cmNlDQoJCQkJCQkJRGVzY3JpcHRpb24gRnJhbWV3b3JrIChSREYpIFNjaGVtYXMu PC90Pg0KCQkJCQk8L2Fic3RyYWN0Pg0KCQkJCTwvZnJvbnQ+DQoNCgkJCQk8c2VyaWVzSW5mbyBu YW1lPSJCQ1AiIHZhbHVlPSI4MSIvPg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9IlJGQyIgdmFsdWU9 IjM2ODgiLz4NCgkJCQk8Zm9ybWF0IHR5cGU9IlRYVCIgb2N0ZXRzPSIxNzMyNSIgdGFyZ2V0PSJm dHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9yZmMzNjg4LnR4dCIvPg0KCQkJPC9yZWZlcmVuY2U+ DQoJCQkNCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJSRkM0NTE0Ij4NCg0KCQkJCTxmcm9udD4NCgkJ CQkJPHRpdGxlPkxpZ2h0d2VpZ2h0IERpcmVjdG9yeSBBY2Nlc3MgUHJvdG9jb2wgKExEQVApOiBT dHJpbmcgUmVwcmVzZW50YXRpb24gb2YgRGlzdGluZ3Vpc2hlZCBOYW1lczwvdGl0bGU+DQoJCQkJ CTxhdXRob3IgaW5pdGlhbHM9IksuIiBzdXJuYW1lPSJaZWlsZW5nYSIgZnVsbG5hbWU9IksuIFpl aWxlbmdhIj4NCgkJCQkJCTxvcmdhbml6YXRpb24vPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGRh dGUgeWVhcj0iMjAwNiIgbW9udGg9Ikp1bmUiLz4NCgkJCQkJPGFic3RyYWN0Pg0KCQkJCQkJPHQ+ VGhlIFguNTAwIERpcmVjdG9yeSB1c2VzIGRpc3Rpbmd1aXNoZWQgbmFtZXMgKEROcykgYXMgcHJp bWFyeSBrZXlzIHRvDQogICBlbnRyaWVzIGluIHRoZSBkaXJlY3RvcnkuICBUaGlzIGRvY3VtZW50 IGRlZmluZXMgdGhlIHN0cmluZw0KICAgcmVwcmVzZW50YXRpb24gdXNlZCBpbiB0aGUgTGlnaHR3 ZWlnaHQgRGlyZWN0b3J5IEFjY2VzcyBQcm90b2NvbA0KICAgKExEQVApIHRvIHRyYW5zZmVyIGRp c3Rpbmd1aXNoZWQgbmFtZXMuICBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGlzDQogICBkZXNp Z25lZCB0byBnaXZlIGEgY2xlYW4gcmVwcmVzZW50YXRpb24gb2YgY29tbW9ubHkgdXNlZA0KICAg ZGlzdGluZ3Vpc2hlZCBuYW1lcywgd2hpbGUgYmVpbmcgYWJsZSB0byByZXByZXNlbnQgYW55IGRp c3Rpbmd1aXNoZWQNCiAgIG5hbWUuPC90Pg0KCQkJCQk8L2Fic3RyYWN0Pg0KCQkJCTwvZnJvbnQ+ DQoNCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJSRkMiIHZhbHVlPSI0NTE0Ii8+DQoJCQkJPGZvcm1h dCB0eXBlPSJUWFQiIHRhcmdldD0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDUxNCIv Pg0KCQkJPC9yZWZlcmVuY2U+DQoJCQkNCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJSRkMzNTUzIj4N Cg0KCQkJCTxmcm9udD4NCgkJCQkJPHRpdGxlPkFuIElFVEYgVVJOIFN1Yi1uYW1lc3BhY2UgZm9y IFJlZ2lzdGVyZWQgUHJvdG9jb2wgUGFyYW1ldGVycw0KPC90aXRsZT4NCgkJCQkJPGF1dGhvciBp bml0aWFscz0iTS4iIHN1cm5hbWU9Ik1lYWxsaW5nIiBmdWxsbmFtZT0iTS4gTWVhbGxpbmciPg0K CQkJCQkJPG9yZ2FuaXphdGlvbi8+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8ZGF0ZSB5ZWFyPSIy MDAzIiBtb250aD0iSnVuZSIvPg0KCQkJCQk8YWJzdHJhY3Q+DQoJCQkJCQk8dD5UaGlzIGRvY3Vt ZW50IGRlc2NyaWJlcyBhIG5ldyBzdWItZGVsZWdhdGlvbiBmb3IgdGhlICdpZXRmJyBVUk4NCiAg IG5hbWVzcGFjZSBmb3IgcmVnaXN0ZXJlZCBwcm90b2NvbCBpdGVtcy4gIFRoZSAnaWV0ZicgVVJO IG5hbWVzcGFjZSBpcw0KICAgZGVmaW5lZCBpbiBSRkMgMjY0OCBhcyBhIHJvb3QgZm9yIHBlcnNp c3RlbnQgVVJJcyB0aGF0IHJlZmVyIHRvDQogICBJRVRGLWRlZmluZWQgcmVzb3VyY2VzLjwvdD4N CgkJCQkJPC9hYnN0cmFjdD4NCgkJCQk8L2Zyb250Pg0KDQoJCQkJPHNlcmllc0luZm8gbmFtZT0i UkZDIiB2YWx1ZT0iMzU1MyIvPg0KCQkJCTxmb3JtYXQgdHlwZT0iVFhUIiB0YXJnZXQ9Imh0dHA6 Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM1NTMiLz4NCgkJCTwvcmVmZXJlbmNlPg0KCQkJDQoJ CQk8cmVmZXJlbmNlIGFuY2hvcj0iUkZDMjQzNCI+DQoNCgkJCQk8ZnJvbnQ+DQoJCQkJCTx0aXRs ZT5HdWlkZWxpbmVzIGZvciBXcml0aW5nIGFuIElBTkEgQ29uc2lkZXJhdGlvbnMgU2VjdGlvbiBp biBSRkNzPC90aXRsZT4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iVC4iIHN1cm5hbWU9Ik5hcnRl biIgZnVsbG5hbWU9IlQuIE5hcnRlbiI+DQoJCQkJCQk8b3JnYW5pemF0aW9uLz4NCgkJCQkJPC9h dXRob3I+DQoJCQkJCTxkYXRlIHllYXI9IjE5OTgiIG1vbnRoPSJPY3RvYmVyIi8+DQoJCQkJCTxh YnN0cmFjdD4NCgkJCQkJCTx0PlRoaXMgZG9jdW1lbnQgc3BlY2lmaWVzIGFuIEludGVybmV0IEJl c3QgQ3VycmVudCBQcmFjdGljZXMgZm9yIHRoZQ0KICAgSW50ZXJuZXQgQ29tbXVuaXR5LCBhbmQg cmVxdWVzdHMgZGlzY3Vzc2lvbiBhbmQgc3VnZ2VzdGlvbnMgZm9yDQogICBpbXByb3ZlbWVudHMu ICBEaXN0cmlidXRpb24gb2YgdGhpcyBtZW1vIGlzIHVubGltaXRlZC48L3Q+DQoJCQkJCTwvYWJz dHJhY3Q+DQoJCQkJPC9mcm9udD4NCg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9IlJGQyIgdmFsdWU9 IjI0MzQiLz4NCgkJCQk8Zm9ybWF0IHR5cGU9IlRYVCIgdGFyZ2V0PSJodHRwOi8vdG9vbHMuaWV0 Zi5vcmcvaHRtbC9yZmMyNDM0Ii8+DQoJCQk8L3JlZmVyZW5jZT4NCgkJCQ0KCQkJDQoJCTwvcmVm ZXJlbmNlcz4NCiAgICAgICAgPHJlZmVyZW5jZXMgdGl0bGU9IkluZm9ybWF0aXZlIFJlZmVyZW5j ZXMiPg0KCQkJPHJlZmVyZW5jZSBhbmNob3I9IkNBUCI+DQoJCQkJPGZyb250Pg0KCQkJCQk8dGl0 bGU+Q2hpcCBBdXRoZW50aWNhdGlvbiBQcm9ncmFtIEZ1bmN0aW9uYWwgQXJjaGl0ZWN0dXJlPC90 aXRsZT4NCgkJCQkJPGF1dGhvcj4NCgkJCQkJCTxvcmdhbml6YXRpb24+DQoJCU1hc3RlckNhcmQg SW50ZXJuYXRpb25hbA0KICAgICAgICAgICAgICAgIDwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1 dGhvcj4NCgkJCQkJPGRhdGUgbW9udGg9IlNlcHRlbWJlciIgeWVhcj0iMjAwNCIvPg0KCQkJCTwv ZnJvbnQ+DQoJCQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iOTQ1MDYiIHRhcmdldD0iZnRw Oi8vZnRwLmlzaS5lZHUvaW4tbm90ZXMvcmZjMjIwMC50eHQiLz4NCgkJCTwvcmVmZXJlbmNlPg0K CQkJPHJlZmVyZW5jZSBhbmNob3I9IkRTS1BQIj4NCgkJCQk8ZnJvbnQ+DQoJCQkJCTx0aXRsZT5E eW5hbWljIFN5bW1ldHJpYyBLZXkgUHJvdmlzaW9uaW5nIFByb3RvY29sPC90aXRsZT4NCgkJCQkJ PGF1dGhvciBpbml0aWFscz0iQS4iIHN1cm5hbWU9IkRvaGVydHkiIGZ1bGxuYW1lPSJBbmRyZWEg RG9oZXJ0eSI+DQoJCQkJCQk8b3JnYW5pemF0aW9uPjwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1 dGhvcj4NCiAgICAgICAgICAgICAgICAgICAgPGF1dGhvciBpbml0aWFscz0iTS4iIHN1cm5hbWU9 IlBlaSIgZnVsbG5hbWU9Ik1pbmdsaWFuZyBQZWkiPg0KCQkJCQkJPG9yZ2FuaXphdGlvbj48L29y Z2FuaXphdGlvbj4NCgkJCQkJPC9hdXRob3I+DQogICAgICAgICAgICAgICAgICAgIDxhdXRob3Ig aW5pdGlhbHM9IlMuIiBzdXJuYW1lPSJNYWNoYW5pIiBmdWxsbmFtZT0iU2FsYWggTWFjaGFuaSI+ DQoJCQkJCQk8b3JnYW5pemF0aW9uPjwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCiAg ICAgICAgICAgICAgICAgICAgPGF1dGhvciBpbml0aWFscz0iTS4iIHN1cm5hbWU9Ik55c3Ryb20i IGZ1bGxuYW1lPSJNYWdudXMgTnlzdHJvbSI+DQoJCQkJCQk8b3JnYW5pemF0aW9uPjwvb3JnYW5p emF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGRhdGUgbW9udGg9IkZlYnJ1YXJ5IiB5ZWFy PSIyMDA4Ii8+DQoJCQkJPC9mcm9udD4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJJbnRlcm5ldCBE cmFmdCIgdmFsdWU9IkluZm9ybWF0aW9uYWwiLz4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJVUkw6 IiB2YWx1ZT0iaHR0cDovL3d3dy5pZXRmLm9yZy9pbnRlcm5ldC1kcmFmdHMvZHJhZnQtaWV0Zi1r ZXlwcm92LWRza3BwLTAzLnR4dCIvPg0KCQkJCTxmb3JtYXQgdHlwZT0iVFhUIiBvY3RldHM9Ijk0 NTA2IiB0YXJnZXQ9ImZ0cDovL2Z0cC5pc2kuZWR1L2luLW5vdGVzL3JmYzIyMDAudHh0Ii8+DQoJ CQk8L3JlZmVyZW5jZT4NCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJIT1RQIj4NCgkJCQk8ZnJvbnQ+ DQoJCQkJCTx0aXRsZT5IT1RQOiBBbiBITUFDLUJhc2VkIE9uZSBUaW1lIFBhc3N3b3JkIEFsZ29y aXRobTwvdGl0bGU+DQoJCQkJCTxhdXRob3IgaW5pdGlhbHM9IkQuIiBzdXJuYW1lPSJNUmFpaGki IGZ1bGxuYW1lPSJEYXZpZCBNUmFpaGkiPg0KCQkJCQkJPG9yZ2FuaXphdGlvbj48L29yZ2FuaXph dGlvbj4NCgkJCQkJPC9hdXRob3I+DQoJCQkJCTxhdXRob3IgaW5pdGlhbHM9Ik0uIiBzdXJuYW1l PSJCZWxsYXJlIiBmdWxsbmFtZT0iTS4gQmVsbGFyZSI+DQoJCQkJCQk8b3JnYW5pemF0aW9uPjwv b3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iRi4i IHN1cm5hbWU9Ikhvb3JuYWVydCIgZnVsbG5hbWU9IkYuIEhvb3JuYWVydCI+DQoJCQkJCQk8b3Jn YW5pemF0aW9uPjwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGF1dGhvciBp bml0aWFscz0iRC4iIHN1cm5hbWU9Ik5hY2NhY2hlIiBmdWxsbmFtZT0iRC4gTmFjY2FjaGUiPg0K CQkJCQkJPG9yZ2FuaXphdGlvbj48L29yZ2FuaXphdGlvbj4NCgkJCQkJPC9hdXRob3I+DQoJCQkJ CTxhdXRob3IgaW5pdGlhbHM9Ik8uIiBzdXJuYW1lPSJSYW5lbiIgZnVsbG5hbWU9Ik8uIFJhbmVu Ij4NCgkJCQkJCTxvcmdhbml6YXRpb24+PC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0K CQkJCQk8ZGF0ZSBtb250aD0iRGVjZW1iZXIiIHllYXI9IjIwMDUiLz4NCgkJCQk8L2Zyb250Pg0K CQkJCTxzZXJpZXNJbmZvIG5hbWU9IlJGQyIgdmFsdWU9IjQyMjYiLz4NCgkJCQk8c2VyaWVzSW5m byBuYW1lPSJVUkw6IiB2YWx1ZT0iaHR0cDovL3JmYy5zdW5zaXRlLmRrL3JmYy9yZmM0MjI2Lmh0 bWwiLz4NCgkJCQk8Zm9ybWF0IHR5cGU9IlRYVCIgb2N0ZXRzPSI5NDUwNiIgdGFyZ2V0PSJmdHA6 Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9yZmMyMjAwLnR4dCIvPg0KCQkJPC9yZWZlcmVuY2U+ICAg ICAgICAgICAgDQoJCQk8cmVmZXJlbmNlIGFuY2hvcj0iTklTVC1TUDgwMC01NyI+DQoJCQkJPGZy b250Pg0KCQkJCQk8dGl0bGU+UmVjb21tZW5kYXRpb24gZm9yIEtleSBNYW5hZ2VtZW50IC0gUGFy dCBJOiBHZW5lcmFsIChSZXZpc2VkKTwvdGl0bGU+DQoJCQkJCTxhdXRob3I+DQogICAgICAgICAg ICAgICAgICAgICAgPG9yZ2FuaXphdGlvbj5OYXRpb25hbCBJbnN0aXR1dGUgb2YgU3RhbmRhcmRz IGFuZCBUZWNobm9sb2d5PC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8ZGF0 ZSBtb250aD0iTWFyY2giIHllYXI9IjIwMDciLz4NCgkJCQk8L2Zyb250Pg0KICAgICAgICAgICAg ICAgIDxzZXJpZXNJbmZvIG5hbWU9Ik5JU1QiIHZhbHVlPSI4MDAtNTciLz4NCgkJCQk8c2VyaWVz SW5mbyBuYW1lPSJVUkw6IiB2YWx1ZT0iaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25z L25pc3RwdWJzLzgwMC01Ny9zcDgwMC01Ny1QYXJ0MS1yZXZpc2VkMl9NYXIwOC0yMDA3LnBkZiIv Pg0KCQkJCTxmb3JtYXQgdHlwZT0iVFhUIiBvY3RldHM9Ijk0NTA2IiB0YXJnZXQ9ImZ0cDovL2Z0 cC5pc2kuZWR1L2luLW5vdGVzL3JmYzIyMDAudHh0Ii8+DQoJCQk8L3JlZmVyZW5jZT4gICAgICAg ICAgICANCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJQS0NTMTIiPg0KCQkJCTxmcm9udD4NCgkJCQkJ PHRpdGxlPlBLQ1MgIzEyOiBQZXJzb25hbCBJbmZvcm1hdGlvbiBFeGNoYW5nZSBTeW50YXggU3Rh bmRhcmQ8L3RpdGxlPg0KCQkJCQk8YXV0aG9yPg0KCQkJCQkJPG9yZ2FuaXphdGlvbj4NCgkJCVJT QSBMYWJvcmF0b3JpZXMNCiAgICAgICAgICAgICAgICA8L29yZ2FuaXphdGlvbj4NCgkJCQkJPC9h dXRob3I+DQoJCQkJCTxkYXRlIHllYXI9IiIvPg0KCQkJCTwvZnJvbnQ+DQoJCQkJPHNlcmllc0lu Zm8gbmFtZT0iVmVyc2lvbiIgdmFsdWU9IjEuMCIvPg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9IlVS TDoiIHZhbHVlPSJodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJzL3BrY3MvIi8+DQoJ CQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iOTQ1MDYiIHRhcmdldD0iZnRwOi8vZnRwLmlz aS5lZHUvaW4tbm90ZXMvcmZjMjIwMC50eHQiLz4NCgkJCTwvcmVmZXJlbmNlPiAgICAgICAgICAg IA0KCQkJPHJlZmVyZW5jZSBhbmNob3I9Ik9BVEgiPg0KCQkJCTxmcm9udD4NCgkJCQkJPHRpdGxl PkluaXRpYXRpdmUgZm9yIE9wZW4gQXVUSGVudGljYXRpb248L3RpdGxlPg0KCQkJCQk8YXV0aG9y Pg0KCQkJCQkJPG9yZ2FuaXphdGlvbj4NCiAgICAgICAgICAgICAgICA8L29yZ2FuaXphdGlvbj4N CgkJCQkJPC9hdXRob3I+DQoJCQkJCTxkYXRlIHllYXI9IiIvPg0KCQkJCTwvZnJvbnQ+DQoJCQkJ PHNlcmllc0luZm8gbmFtZT0iVVJMOiIgdmFsdWU9Imh0dHA6Ly93d3cub3BlbmF1dGhlbnRpY2F0 aW9uLm9yZyIvPg0KCQkJCTxmb3JtYXQgdHlwZT0iVFhUIiBvY3RldHM9Ijk0NTA2IiB0YXJnZXQ9 ImZ0cDovL2Z0cC5pc2kuZWR1L2luLW5vdGVzL3JmYzIyMDAudHh0Ii8+DQoJCQk8L3JlZmVyZW5j ZT4NCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJPQ1JBIj4NCgkJCQk8ZnJvbnQ+DQoJCQkJCTx0aXRs ZT5PQ1JBOiBPQVRIIENoYWxsZW5nZSBSZXNwb25zZSBBbGdvcml0aG08L3RpdGxlPg0KCQkJCQk8 YXV0aG9yIGluaXRpYWxzPSJELiIgc3VybmFtZT0iTVJhaWhpIiBmdWxsbmFtZT0iRGF2aWQgTVJh aWhpIj4NCgkJCQkJCTxvcmdhbml6YXRpb24+PC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9y Pg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJKLiIgc3VybmFtZT0iUnlkZWxsIiBmdWxsbmFtZT0i Sm9oYW4gUnlkZWxsIj4NCgkJCQkJCTxvcmdhbml6YXRpb24+PC9vcmdhbml6YXRpb24+DQoJCQkJ CTwvYXV0aG9yPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJELiIgc3VybmFtZT0iTmFjY2FjaGUi IGZ1bGxuYW1lPSJEYXZpZCBOYWNjYWNoZSI+DQoJCQkJCQk8b3JnYW5pemF0aW9uPjwvb3JnYW5p emF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iUy4iIHN1cm5h bWU9Ik1hY2hhbmkiIGZ1bGxuYW1lPSJTYWxhaCBNYWNoYW5pIj4NCgkJCQkJCTxvcmdhbml6YXRp b24+PC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxz PSJTLiIgc3VybmFtZT0iQmFqYWoiIGZ1bGxuYW1lPSJTaWRkaGFydGggQmFqYWoiPg0KCQkJCQkJ PG9yZ2FuaXphdGlvbj48L29yZ2FuaXphdGlvbj4NCgkJCQkJPC9hdXRob3I+DQoJCQkJCTxkYXRl IG1vbnRoPSJEZWNlbWJlciIgeWVhcj0iMjAwNyIvPg0KCQkJCTwvZnJvbnQ+DQoJCQkJPHNlcmll c0luZm8gbmFtZT0iSW50ZXJuZXQgRHJhZnQiIHZhbHVlPSJJbmZvcm1hdGlvbmFsIi8+DQoJCQkJ PHNlcmllc0luZm8gbmFtZT0iVVJMOiIgdmFsdWU9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvaW50ZXJu ZXQtZHJhZnRzL2RyYWZ0LW1yYWloaS1tdXR1YWwtb2F0aC1ob3RwLXZhcmlhbnRzLTA2LnR4dCIv Pg0KCQkJCTxmb3JtYXQgdHlwZT0iVFhUIiBvY3RldHM9Ijk0NTA2IiB0YXJnZXQ9ImZ0cDovL2Z0 cC5pc2kuZWR1L2luLW5vdGVzL3JmYzIyMDAudHh0Ii8+DQoJCQk8L3JlZmVyZW5jZT4NCgkJCTxy ZWZlcmVuY2UgYW5jaG9yPSJTY2huZWllciI+DQoJCQkJPGZyb250Pg0KCQkJCQk8dGl0bGU+U2Vj cmV0cyBhbmQgTGllczogRGlnaXRpYWwgU2VjdXJpdHkgaW4gYSBOZXR3b3JrZWQgV29ybGQ8L3Rp dGxlPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJCLiIgc3VybmFtZT0iU2NobmVpZXIiIGZ1bGxu YW1lPSJCcnVjZSBTY2huZWllciI+DQoJCQkJCQk8b3JnYW5pemF0aW9uPg0KICAgICAgICAgICAg ICAgIDwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGRhdGUgeWVhcj0iMjAw MCIvPg0KCQkJCTwvZnJvbnQ+DQoJCQkJPHNlcmllc0luZm8gbmFtZT0iIiB2YWx1ZT0iV2lsZXkg Q29tcHV0ZXIgUHVibGlzaGluZyIvPg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9IklTQk4iIHZhbHVl PSIwLTg0OTMtODI1My03Ii8+DQoJCQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iOTQ1MDYi IHRhcmdldD0iZnRwOi8vZnRwLmlzaS5lZHUvaW4tbm90ZXMvcmZjMjIwMC50eHQiLz4NCgkJCTwv cmVmZXJlbmNlPg0KICAgICAgICAgIDwvcmVmZXJlbmNlcz4NCgkNCgk8L2JhY2s+DQo8L3JmYz4N Cg== ------_=_NextPart_001_01C8D163.79FB62FB Content-Type: text/plain; name="draft-ietf-keyprov-portable-symmetric-key-container-05_wip_180608.txt" Content-Transfer-Encoding: base64 Content-Description: draft-ietf-keyprov-portable-symmetric-key-container-05_wip_180608.txt Content-Disposition: attachment; filename="draft-ietf-keyprov-portable-symmetric-key-container-05_wip_180608.txt" DQoNCg0Ka2V5cHJvdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFAuIEhveWVyDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGl2SWRlbnRpdHkNCkludGVuZGVkIHN0YXR1czog U3RhbmRhcmRzIFRyYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0uIFBlaQ0K RXhwaXJlczogRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFZlcmlTaWduDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFMuIE1hY2hhbmkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGl2ZXJzaW5ldA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKdW5l IDE4LCAyMDA4DQoNCg0KICAgICAgICAgICAgICAgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5 IENvbnRhaW5lcg0KICAgICAgIGRyYWZ0LWlldGYta2V5cHJvdi1wb3J0YWJsZS1zeW1tZXRyaWMt a2V5LWNvbnRhaW5lci0wNS50eHQNCg0KU3RhdHVzIG9mIHRoaXMgTWVtbw0KDQogICBCeSBzdWJt aXR0aW5nIHRoaXMgSW50ZXJuZXQtRHJhZnQsIGVhY2ggYXV0aG9yIHJlcHJlc2VudHMgdGhhdCBh bnkNCiAgIGFwcGxpY2FibGUgcGF0ZW50IG9yIG90aGVyIElQUiBjbGFpbXMgb2Ygd2hpY2ggaGUg b3Igc2hlIGlzIGF3YXJlDQogICBoYXZlIGJlZW4gb3Igd2lsbCBiZSBkaXNjbG9zZWQsIGFuZCBh bnkgb2Ygd2hpY2ggaGUgb3Igc2hlIGJlY29tZXMNCiAgIGF3YXJlIHdpbGwgYmUgZGlzY2xvc2Vk LCBpbiBhY2NvcmRhbmNlIHdpdGggU2VjdGlvbiA2IG9mIEJDUCA3OS4NCg0KICAgSW50ZXJuZXQt RHJhZnRzIGFyZSB3b3JraW5nIGRvY3VtZW50cyBvZiB0aGUgSW50ZXJuZXQgRW5naW5lZXJpbmcN CiAgIFRhc2sgRm9yY2UgKElFVEYpLCBpdHMgYXJlYXMsIGFuZCBpdHMgd29ya2luZyBncm91cHMu ICBOb3RlIHRoYXQNCiAgIG90aGVyIGdyb3VwcyBtYXkgYWxzbyBkaXN0cmlidXRlIHdvcmtpbmcg ZG9jdW1lbnRzIGFzIEludGVybmV0LQ0KICAgRHJhZnRzLg0KDQogICBJbnRlcm5ldC1EcmFmdHMg YXJlIGRyYWZ0IGRvY3VtZW50cyB2YWxpZCBmb3IgYSBtYXhpbXVtIG9mIHNpeCBtb250aHMNCiAg IGFuZCBtYXkgYmUgdXBkYXRlZCwgcmVwbGFjZWQsIG9yIG9ic29sZXRlZCBieSBvdGhlciBkb2N1 bWVudHMgYXQgYW55DQogICB0aW1lLiAgSXQgaXMgaW5hcHByb3ByaWF0ZSB0byB1c2UgSW50ZXJu ZXQtRHJhZnRzIGFzIHJlZmVyZW5jZQ0KICAgbWF0ZXJpYWwgb3IgdG8gY2l0ZSB0aGVtIG90aGVy IHRoYW4gYXMgIndvcmsgaW4gcHJvZ3Jlc3MuIg0KDQogICBUaGUgbGlzdCBvZiBjdXJyZW50IElu dGVybmV0LURyYWZ0cyBjYW4gYmUgYWNjZXNzZWQgYXQNCiAgIGh0dHA6Ly93d3cuaWV0Zi5vcmcv aWV0Zi8xaWQtYWJzdHJhY3RzLnR4dC4NCg0KICAgVGhlIGxpc3Qgb2YgSW50ZXJuZXQtRHJhZnQg U2hhZG93IERpcmVjdG9yaWVzIGNhbiBiZSBhY2Nlc3NlZCBhdA0KICAgaHR0cDovL3d3dy5pZXRm Lm9yZy9zaGFkb3cuaHRtbC4NCg0KICAgVGhpcyBJbnRlcm5ldC1EcmFmdCB3aWxsIGV4cGlyZSBv biBEZWNlbWJlciAyMCwgMjAwOC4NCg0KQ29weXJpZ2h0IE5vdGljZQ0KDQogICBDb3B5cmlnaHQg KEMpIFRoZSBJRVRGIFRydXN0ICgyMDA4KS4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3llciwg ZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICAg W1BhZ2UgMV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBD b250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCkFic3RyYWN0DQoNCiAgIFRoaXMgZG9j dW1lbnQgc3BlY2lmaWVzIGEgc3ltbWV0cmljIGtleSBmb3JtYXQgZm9yIHRyYW5zcG9ydCBhbmQN CiAgIHByb3Zpc2lvbmluZyBvZiBzeW1tZXRyaWMga2V5cyAoZm9yIGV4YW1wbGUgT25lIFRpbWUg UGFzc3dvcmQgKE9UUCkNCiAgIHNoYXJlZCBzZWNyZXRzIG9yIHN5bW1ldHJpYyBjcnlwdG9ncmFw aGljIGtleXMpIHRvIGRpZmZlcmVudCB0eXBlcyBvZg0KICAgY3J5cHRvIG1vZHVsZXMgc3VjaCBh cyBhIHN0cm9uZyBhdXRoZW50aWNhdGlvbiBkZXZpY2UuICBUaGUgc3RhbmRhcmQNCiAgIGtleSB0 cmFuc3BvcnQgZm9ybWF0IGVuYWJsZXMgZW50ZXJwcmlzZXMgdG8gZGVwbG95IGJlc3Qtb2YtYnJl ZWQNCiAgIHNvbHV0aW9ucyBjb21iaW5pbmcgY29tcG9uZW50cyBmcm9tIGRpZmZlcmVudCB2ZW5k b3JzIGludG8gdGhlIHNhbWUNCiAgIGluZnJhc3RydWN0dXJlLg0KDQogICBUaGlzIHdvcmsgaXMg YSBqb2ludCBlZmZvcnQgYnkgdGhlIG1lbWJlcnMgb2YgT0FUSCAoSW5pdGlhdGl2ZSBmb3INCiAg IE9wZW4gQXVUSGVudGljYXRpb24pIHRvIHNwZWNpZnkgYSBmb3JtYXQgdGhhdCBjYW4gYmUgZnJl ZWx5DQogICBkaXN0cmlidXRlZCB0byB0aGUgdGVjaG5pY2FsIGNvbW11bml0eS4gIFRoZSBhdXRo b3JzIGJlbGlldmUgdGhhdCBhDQogICBjb21tb24gYW5kIHNoYXJlZCBzcGVjaWZpY2F0aW9uIHdp bGwgZmFjaWxpdGF0ZSBhZG9wdGlvbiBvZiB0d28tDQogICBmYWN0b3IgYXV0aGVudGljYXRpb24g b24gdGhlIEludGVybmV0IGJ5IGVuYWJsaW5nIGludGVyb3BlcmFiaWxpdHkNCiAgIGJldHdlZW4g Y29tbWVyY2lhbCBhbmQgb3Blbi1zb3VyY2UgaW1wbGVtZW50YXRpb25zLg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN CkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAg ICAgICAgICBbUGFnZSAyXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRy aWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KVGFibGUgb2YgQ29udGVu dHMNCg0KICAgMS4gIEludHJvZHVjdGlvbiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuICA1DQogICAyLiAgVGVybWlub2xvZ3kgIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDYNCiAgICAgMi4xLiAgS2V5IFdv cmRzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgNg0K ICAgICAyLjIuICBEZWZpbml0aW9ucyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuICA2DQogICAzLiAgVXNlIENhc2VzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDgNCiAgICAgMy4xLiAgT25saW5lIFVzZSBD YXNlcyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgOA0KICAgICAg IDMuMS4xLiAgVHJhbnNwb3J0IG9mIGtleXMgZnJvbSBTZXJ2ZXIgdG8gQ3J5cHRvIE1vZHVsZSAu IC4gLiAuICA4DQogICAgICAgMy4xLjIuICBUcmFuc3BvcnQgb2Yga2V5cyBmcm9tIENyeXB0byBN b2R1bGUgdG8gQ3J5cHRvDQogICAgICAgICAgICAgICBNb2R1bGUgLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDgNCiAgICAgICAzLjEuMy4gIFRyYW5zcG9y dCBvZiBrZXlzIGZyb20gQ3J5cHRvIE1vZHVsZSB0byBTZXJ2ZXIgLiAuIC4gLiAgOQ0KICAgICAg IDMuMS40LiAgU2VydmVyIHRvIHNlcnZlciBCdWxrIGltcG9ydC9leHBvcnQgb2Yga2V5cyAgLiAu IC4gLiAuICA5DQogICAgIDMuMi4gIE9mZmxpbmUgVXNlIENhc2VzICAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDkNCiAgICAgICAzLjIuMS4gIFNlcnZlciB0byBzZXJ2 ZXIgQnVsayBpbXBvcnQvZXhwb3J0IG9mIGtleXMgIC4gLiAuIC4gLiAgOQ0KICAgNC4gIFJlcXVp cmVtZW50cyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IDExDQogICA1LiAgUG9ydGFibGUgS2V5IGNvbnRhaW5lciBkZWZpbml0aW9uICAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gMTMNCiAgICAgNS4xLiAgS2V5Q29udGFpbmVyIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAxNA0KICAgICA1LjIuICBEZXZpY2Ug LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDE1DQog ICAgICAgNS4yLjEuICBEZXZpY2VJZCAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gMTYNCiAgICAgNS4zLiAgS2V5UHJvcGVydGllcyAgLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAxNw0KICAgICA1LjQuICBLZXkgIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDE4DQogICAgICAg NS40LjEuICBEYXRhIChPUFRJT05BTCkgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gMjENCiAgICAgICA1LjQuMi4gIFVzYWdlIChNQU5EQVRPUlkpICAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAyMg0KICAgICAgIDUuNC4zLiAgVmFsdWVGb3JtYXQgIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDI2DQogICAgICAgNS40LjQu ICBQSU5Qb2xpY3kgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g MjcNCiAgIDYuICBVc2FnZSBhbmQgcHJvZmlsZSBvZiBhbGdvcml0aG1zIGZvciB0aGUgcG9ydGFi bGUgc3ltbWV0cmljDQogICAgICAga2V5IGNvbnRhaW5lciAgLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gMjkNCiAgICAgNi4xLiAgVXNhZ2Ugb2YgRW5jcnlw dGlvbktleSB0byBwcm90ZWN0IGtleXMgaW4gdHJhbnNpdCAgLiAuIC4gLiAyOQ0KICAgICAgIDYu MS4xLiAgUHJvdGVjdGluZyBrZXlzIHVzaW5nIGEgcHJlLXNoYXJlZCBrZXkgdmlhDQogICAgICAg ICAgICAgICBzeW1tZXRyaWMgYWxnb3JpdGhtcyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gMjkNCiAgICAgICA2LjEuMi4gIFByb3RlY3Rpbmcga2V5cyB1c2luZyBwYXNzcGhyYXNl IGJhc2VkIGVuY3J5cHRpb24NCiAgICAgICAgICAgICAgIGtleXMgLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAzMA0KICAgICA2LjIuICBQcm90ZWN0aW5n IGtleXMgdXNpbmcgYXN5bW1ldHJpYyBhbGdvcml0aG1zICAuIC4gLiAuIC4gLiAuIDMyDQogICAg IDYuMy4gIFByb2ZpbGUgb2YgS2V5IEFsZ29yaXRobSAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gMzMNCiAgICAgICA2LjMuMS4gIE9UUCBLZXkgQWxnb3JpdGhtIElkZW50aWZpZXJz ICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAzNA0KICAgICAgIDYuMy4yLiAgUElOIGtleSB2YWx1 ZSBjb21wYXJlIGFsZ29yaXRobSBpZGVudGlmaWVyIC4gLiAuIC4gLiAuIDM0DQogICA3LiAgUmVz ZXJ2ZWQgZGF0YSBhdHRyaWJ1dGUgbmFtZXMgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gMzUNCiAgIDguICBGb3JtYWwgU3ludGF4ICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAzNg0KICAgOS4gIElBTkEgQ29uc2lkZXJhdGlvbnMgIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDQyDQogICAgIDkuMS4gIENvbnRl bnQtdHlwZSByZWdpc3RyYXRpb24gZm9yICdhcHBsaWNhdGlvbi9wc2tjK3htbCcgLiAuIC4gNDIN CiAgICAgOS4yLiAgWE1MIFNjaGVtYSBSZWdpc3RyYXRpb24gIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiA0Mw0KICAgICA5LjMuICBVUk4gU3ViLU5hbWVzcGFjZSBSZWdpc3RyYXRp b24gZm9yDQogICAgICAgICAgIHVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpjb250YWlu ZXI6MS4wIC4gLiAuIC4gLiAuIC4gNDMNCiAgICAgOS40LiAgU3ltbWV0cmljIEtleSBBbGdvcml0 aG0gSWRlbnRpZmllciBSZWdpc3RyeSAgLiAuIC4gLiAuIC4gLiA0NA0KICAgICAgIDkuNC4xLiAg QXBwbGljYWJpbGl0eSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDQ0 DQogICAgICAgOS40LjIuICBSZWdpc3RlcmFibGUgQWxnb3JpdGhtcyAgLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gNDUNCiAgICAgICA5LjQuMy4gIFJlZ2lzdHJhdGlvbiBQcm9jZWR1cmVz ICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA0Ng0KDQoNCg0KSG95ZXIsIGV0IGFsLiAg ICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgIFtQYWdlIDNd DQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVy ICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICAgICAgOS40LjQuICBJbml0aWFsIFZhbHVlcyAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gNDgNCiAgICAgOS41LiAgWE1M IERhdGEgVGFnIElkZW50aWZpZXIgUmVnaXN0cnkgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA1 MQ0KICAgICAgIDkuNS4xLiAgQXBwbGljYWJpbGl0eSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIDUxDQogICAgICAgOS41LjIuICBSZWdpc3RlcmFibGUgRGF0YSBUYWdz IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gNTINCiAgICAgICA5LjUuMy4gIFJlZ2lz dHJhdGlvbiBQcm9jZWR1cmVzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA1Mg0KICAg ICAgIDkuNS40LiAgSW5pdGlhbCBWYWx1ZXMgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIDUzDQogICAxMC4gU2VjdXJpdHkgQ29uc2lkZXJhdGlvbnMgIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gNTUNCiAgICAgMTAuMS4gUGF5bG9hZCBjb25maWRl bnRpYWxpdHkgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA1NQ0KICAgICAxMC4y LiBQYXlsb2FkIGludGVncml0eSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIDU2DQogICAgIDEwLjMuIFBheWxvYWQgYXV0aGVudGljaXR5IC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gNTYNCiAgIDExLiBBY2tub3dsZWRnZW1lbnRzIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA1Nw0KICAgMTIuIEFwcGVuZGl4 IEEgLSBFeGFtcGxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVycyAgLiAuIC4gLiAuIC4gLiAuIDU4 DQogICAgIDEyLjEuIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyIHdpdGggYSBzaW5nbGUgTm9uLUVu Y3J5cHRlZA0KICAgICAgICAgICBIT1RQIFNlY3JldCBLZXkgIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIDU4DQogICAgIDEyLjIuIFN5bW1ldHJpYyBLZXkgQ29udGFp bmVyIHdpdGggYSBzaW5nbGUgUElOIHByb3RlY3RlZA0KICAgICAgICAgICBOb24tRW5jcnlwdGVk IEhPVFAgU2VjcmV0IEtleSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDU4DQogICAgIDEy LjMuIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyIHdpdGggYSBzaW5nbGUgQUVTLTI1Ni1DQkMNCiAg ICAgICAgICAgRW5jcnlwdGVkIEhPVFAgU2VjcmV0IEtleSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiA1OQ0KICAgICAxMi40LiBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciB3aXRoIHNp Z25hdHVyZSBhbmQgYSBzaW5nbGUNCiAgICAgICAgICAgUGFzc3dvcmQtYmFzZWQgRW5jcnlwdGVk IEhPVFAgU2VjcmV0IEtleSAuIC4gLiAuIC4gLiAuIC4gLiA2MA0KICAgICAxMi41LiBTeW1tZXRy aWMgS2V5IENvbnRhaW5lciB3aXRoIGEgc2luZ2xlIFJTQSAxLjUNCiAgICAgICAgICAgRW5jcnlw dGVkIEhPVFAgU2VjcmV0IEtleSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA2Mg0K ICAgMTMuIFJlZmVyZW5jZXMgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIDY0DQogICAgIDEzLjEuIE5vcm1hdGl2ZSBSZWZlcmVuY2VzIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gNjQNCiAgICAgMTMuMi4gSW5mb3JtYXRpdmUg UmVmZXJlbmNlcyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA2NA0KICAgQXV0 aG9ycycgQWRkcmVzc2VzIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIDY2DQogICBJbnRlbGxlY3R1YWwgUHJvcGVydHkgYW5kIENvcHlyaWdodCBTdGF0ZW1l bnRzIC4gLiAuIC4gLiAuIC4gLiAuIC4gNjcNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1i ZXIgMjAsIDIwMDggICAgICAgICAgICAgICBbUGFnZSA0XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAg ICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoN Cg0KMS4gIEludHJvZHVjdGlvbg0KDQogICBXaXRoIGluY3JlYXNpbmcgdXNlIG9mIHN5bW1ldHJp YyBrZXkgYmFzZWQgYXV0aGVudGljYXRpb24gc3lzdGVtcw0KICAgc3VjaCBhcyBzeXN0ZW1zIGJh c2VkIG9uZSB0aW1lIHBhc3N3b3JkIChPVFApIGFuZCBjaGFsbGVuZ2UgcmVzcG9uc2UNCiAgIG1l Y2hhbmlzbXMsIHRoZXJlIGlzIGEgbmVlZCBmb3IgdmVuZG9yIGludGVyb3BlcmFiaWxpdHkgYW5k IGENCiAgIHN0YW5kYXJkIGZvcm1hdCBmb3IgaW1wb3J0aW5nLCBleHBvcnRpbmcgb3IgcHJvdmlz aW9uaW5nIHN5bW1ldHJpYw0KICAga2V5cyBmcm9tIG9uZSBzeXN0ZW0gdG8gYW5vdGhlci4gIFRy YWRpdGlvbmFsbHkgYXV0aGVudGljYXRpb24gc2VydmVyDQogICB2ZW5kb3JzIGFuZCBzZXJ2aWNl IHByb3ZpZGVycyBoYXZlIHVzZWQgcHJvcHJpZXRhcnkgZm9ybWF0cyBmb3INCiAgIGltcG9ydGlu ZywgZXhwb3J0aW5nIGFuZCBwcm92aXNpb25pbmcgdGhlc2Uga2V5cyBpbnRvIHRoZWlyIHN5c3Rl bXMNCiAgIG1ha2luZyBpdCBoYXJkIHRvIHVzZSB0b2tlbnMgZnJvbSB2ZW5kb3IgQSB3aXRoIGEg c2VydmVyIGZyb20gdmVuZG9yDQogICBCLg0KDQogICBUaGlzIEludGVybmV0IGRyYWZ0IGRlc2Ny aWJlcyBhIHN0YW5kYXJkIGZvcm1hdCBmb3Igc2VyaWFsaXppbmcNCiAgIHN5bW1ldHJpYyBrZXlz IHN1Y2ggYXMgT1RQIHNoYXJlZCBzZWNyZXRzIGZvciBzeXN0ZW0gaW1wb3J0LCBleHBvcnQNCiAg IG9yIG5ldHdvcmsvcHJvdG9jb2wgdHJhbnNwb3J0LiAgVGhlIGdvYWwgaXMgdGhhdCB0aGUgZm9y bWF0IHdpbGwNCiAgIGZhY2lsaXRhdGUgZHluYW1pYyBwcm92aXNpb25pbmcgYW5kIHRyYW5zZmVy IG9mIGEgc3ltbWV0cmljIGtleXMgc3VjaA0KICAgYXMgYW4gT1RQIHNoYXJlZCBzZWNyZXQgb3Ig YW4gZW5jcnlwdGlvbiBrZXkgb2YgZGlmZmVyZW50IHR5cGVzLiAgSW4NCiAgIHRoZSBjYXNlIG9m IE9UUCBzaGFyZWQgc2VjcmV0cywgdGhlIGZvcm1hdCB3aWxsIGZhY2lsaXRhdGUgZHluYW1pYw0K ICAgcHJvdmlzaW9uaW5nIHVzaW5nIGFuIG9ubGluZSBwcm92aXNpb25pbmcgcHJvdG9jb2wgdG8g ZGlmZmVyZW50DQogICBmbGF2b3JzIG9mIGVtYmVkZGVkIHRva2VucyBvciBhbGxvdyBjdXN0b21l cnMgdG8gaW1wb3J0IG5ldyBvcg0KICAgZXhpc3RpbmcgdG9rZW5zIGluIGJhdGNoIG9yIHNpbmds ZSBpbnN0YW5jZXMgaW50byBhIGNvbXBsaWFudCBzeXN0ZW0uDQoNCiAgIFRoaXMgZHJhZnQgYWxz byBzcGVjaWZpZXMgdGhlIGtleSBhdHRyaWJ1dGVzIHJlcXVpcmVkIGZvciBjb21wdXRhdGlvbg0K ICAgc3VjaCBhcyB0aGUgaW5pdGlhbCBldmVudCBjb3VudGVyIHVzZWQgaW4gdGhlIEhPVFAgYWxn b3JpdGhtIFtIT1RQXS4NCiAgIEl0IGlzIGFsc28gYXBwbGljYWJsZSBmb3Igb3RoZXIgdGltZS1i YXNlZCBvciBwcm9wcmlldGFyeSBhbGdvcml0aG1zLg0KDQogICBUbyBwcm92aWRlIGFuIGFuYWxv Z3ksIGluIHB1YmxpYyBrZXkgZW52aXJvbm1lbnRzIHRoZSBQS0NTIzEyIGZvcm1hdA0KICAgW1BL Q1MxMl0gaXMgY29tbW9ubHkgdXNlZCBmb3IgaW1wb3J0aW5nIGFuZCBleHBvcnRpbmcgcHJpdmF0 ZSBrZXlzDQogICBhbmQgY2VydGlmaWNhdGVzIGJldHdlZW4gc3lzdGVtcy4gIEluIHRoZSBlbnZp cm9ubWVudHMgb3V0bGluZWQgaW4NCiAgIHRoaXMgZG9jdW1lbnQgd2hlcmUgT1RQIGtleXMgbWF5 IGJlIHRyYW5zcG9ydGVkIGRpcmVjdGx5IGRvd24gdG8NCiAgIHNtYXJ0Y2FyZHMgb3IgZGV2aWNl cyB3aXRoIGxpbWl0ZWQgY29tcHV0aW5nIGNhcGFiaWxpdGllcywgYSBmb3JtYXQNCiAgIHdpdGgg c21hbGwgKHNpemUgaW4gYnl0ZXMpIGFuZCBleHBsaWNpdCBzaGFyZWQgc2VjcmV0IGNvbmZpZ3Vy YXRpb24NCiAgIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBpcyBkZXNpcmFibGUsIGF2b2lkaW5nIGNv bXBsZXhpdHkgb2YgUEtDUyMxMi4NCiAgIEZvciBleGFtcGxlLCBvbmUgd291bGQgaGF2ZSB0byB1 c2Ugb3BhcXVlIGRhdGEgd2l0aGluIFBLQ1MjMTIgdG8NCiAgIGNhcnJ5IHNoYXJlZCBzZWNyZXQg YXR0cmlidXRlcyB1c2VkIGZvciBPVFAgY2FsY3VsYXRpb25zLCB3aGVyZWFzIGENCiAgIG1vcmUg ZXhwbGljaXQgYXR0cmlidXRlIHNjaGVtYSBkZWZpbml0aW9uIGlzIGJldHRlciBmb3INCiAgIGlu dGVyb3BlcmFiaWxpdHkgYW5kIGVmZmljaWVuY3kuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAg ICAgICAgICAgIFtQYWdlIDVdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1l dHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQoyLiAgVGVybWlub2xv Z3kNCg0KMi4xLiAgS2V5IFdvcmRzDQoNCiAgIFRoZSBrZXkgd29yZHMgIk1VU1QiLCAiTVVTVCBO T1QiLCAiUkVRVUlSRUQiLCAiU0hBTEwiLCAiU0hBTEwgTk9UIiwNCiAgICJTSE9VTEQiLCAiU0hP VUxEIE5PVCIsICJSRUNPTU1FTkRFRCIsICJNQVkiLCBhbmQgIk9QVElPTkFMIiBpbiB0aGlzDQog ICBkb2N1bWVudCBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZGVzY3JpYmVkIGluIFtSRkMyMTE5 XS4NCg0KMi4yLiAgRGVmaW5pdGlvbnMNCg0KICAgVGhpcyBzZWN0aW9uIGRlZmluZXMgdGVybXMg dXNlZCBpbiB0aGlzIGRvY3VtZW50LiAgVGhlIHNhbWUgdGVybXMgbWF5DQogICBiZSBkZWZpbmVk IGRpZmZlcmVudGx5IGluIG90aGVyIGRvY3VtZW50cy4NCg0KICAgQXV0aGVudGljYXRpb24gVG9r ZW46ICBBIHBoeXNpY2FsIGRldmljZSB0aGF0IGFuIGF1dGhvcml6ZWQgdXNlciBvZg0KICAgICAg Y29tcHV0ZXIgc2VydmljZXMgaXMgZ2l2ZW4gdG8gYWlkIGluIGF1dGhlbnRpY2F0aW9uLiAgVGhl IHRlcm0gbWF5DQogICAgICBhbHNvIHJlZmVyIHRvIHNvZnR3YXJlIHRva2Vucy4NCg0KICAgQnVs ayBQcm92aXNpb25pbmc6ICBUcmFuc2ZlcnJpbmcgbXVsdGlwbGUga2V5cyBsaW5rZWQgdG8gbXVs dGlwbGUNCiAgICAgIGRldmljZXMgaW4gYSBzaW5nbGUgZXhlY3V0aW9uIHN0ZXAgd2l0aGluIG9u ZSBzaW5nbGUgUFNLQw0KICAgICAgS2V5Q29udGFpbmVyDQoNCiAgIENyeXB0b2dyYXBoaWMgTW9k dWxlOiAgQSBjb21wb25lbnQgb2YgYW4gYXBwbGljYXRpb24sIHdoaWNoIGVuYWJsZXMNCiAgICAg IHN5bW1ldHJpYyBrZXkgY3J5cHRvZ3JhcGhpYyBmdW5jdGlvbmFsaXR5DQoNCiAgIENyeXB0b2dy YXBoaWMgS2V5OiAgQSBwYXJhbWV0ZXIgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGENCiAgICAg IGNyeXB0b2dyYXBoaWMgYWxnb3JpdGhtIHRoYXQgZGV0ZXJtaW5lcyBpdHMgb3BlcmF0aW9uIGlu IHN1Y2ggYQ0KICAgICAgd2F5IHRoYXQgYW4gZW50aXR5IHdpdGgga25vd2xlZGdlIG9mIHRoZSBr ZXkgY2FuIHJlcHJvZHVjZSBvcg0KICAgICAgcmV2ZXJzZSB0aGUgb3BlcmF0aW9uLCB3aGlsZSBh biBlbnRpdHkgd2l0aG91dCBrbm93bGVkZ2Ugb2YgdGhlDQogICAgICBrZXkgY2Fubm90IChzZWUg W05JU1QtU1A4MDAtNTddKQ0KDQogICBDcnlwdG9ncmFwaGljIFRva2VuOiAgU2VlIEF1dGhlbnRp Y2F0aW9uIFRva2VuDQoNCiAgIERldmljZTogIEEgcGh5c2ljYWwgcGllY2Ugb2YgaGFyZHdhcmUs IG9yIGEgc29mdHdhcmUgZnJhbWV3b3JrLCB0aGF0DQogICAgICBob3N0cyBzeW1tZXRyaWMga2V5 cw0KDQogICBEZXZpY2UgSUQgKERldmljZUlkKTogIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRo ZSBkZXZpY2UsDQogICAgICByZXByZXNlbnRpbmcgdGhlIGlkZW50aWZ5aW5nIGNyaXRlcmlhIHRv IHVuaXF1ZWx5IGlkZW50aWZ5IGENCiAgICAgIGRldmljZQ0KDQogICBEeW5hbWljIFByb3Zpc2lv bmluZzogIFVzYWdlIG9mIGEgcHJvdG9jb2wsIHN1Y2ggYXMgRFNLUFAsIHRvIG1ha2UgYQ0KICAg ICAga2V5IGNvbnRhaW5lciBhdmFpbGFibGUgdG8gYSByZWNpcGllbnQNCg0KICAgRW5jcnlwdGlv biBLZXk6ICBBIGtleSB1c2VkIHRvIGVuY3J5cHQga2V5DQoNCiAgIEtleTogIFNlZSBDcnlwdG9n cmFwaGljIEtleQ0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBE ZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgIFtQYWdlIDZdDQoMDQpJbnRlcm5ldC1EcmFm dCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIw MDgNCg0KDQogICBIYXJkd2FyZSBUb2tlbjogIFNlZSBBdXRoZW50aWNhdGlvbiBUb2tlbg0KDQog ICBLZXkgQWxnb3JpdGhtOiAgQSB3ZWxsLWRlZmluZWQgY29tcHV0YXRpb25hbCBwcm9jZWR1cmUg dGhhdCB0YWtlcw0KICAgICAgdmFyaWFibGUgaW5wdXRzIGluY2x1ZGluZyBhIGNyeXB0b2dyYXBo aWMga2V5IGFuZCBwcm9kdWNlcyBhbg0KICAgICAgb3V0cHV0Lg0KDQogICBLZXkgQ29udGFpbmVy OiAgQW4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIHN5bW1ldHJpYyBrZXlzIGFuZCB0aGVpcg0K ICAgICAgYXR0cmlidXRlcyBmb3Igc2V0IG9mIGRldmljZXMNCg0KICAgS2V5IElEIChLZXlJRCk6 ICBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc3ltbWV0cmljIGtleQ0KDQogICBLZXkgSXNz dWVyOiAgQW4gb3JnYW5pemF0aW9uIHRoYXQgaXNzdWVzIHN5bW1ldHJpYyBrZXlzIHRvIGVuZC11 c2Vycw0KDQogICBLZXkgVHlwZTogIFRoZSB0eXBlIG9mIHN5bW1ldHJpYyBrZXkgY3J5cHRvZ3Jh cGhpYyBtZXRob2RzIGZvciB3aGljaA0KICAgICAgdGhlIGtleSB3aWxsIGJlIHVzZWQgKGUuZy4s IE9BVEggSE9UUCBvciBSU0EgU2VjdXJJRA0KICAgICAgYXV0aGVudGljYXRpb24sIEFFUyBlbmNy eXB0aW9uLCBldGMuKQ0KDQogICBTZWNyZXQgS2V5OiAgVGhlIHN5bW1ldHJpYyBrZXkgZGF0YQ0K DQogICBTb2Z0d2FyZSBUb2tlbjogIEEgdHlwZSBvZiBhdXRoZW50aWNhdGlvbiB0b2tlbiB0aGF0 IGlzIHN0b3JlZCBvbiBhDQogICAgICBnZW5lcmFsLXB1cnBvc2UgZWxlY3Ryb25pYyBkZXZpY2Ug c3VjaCBhcyBhIGRlc2t0b3AgY29tcHV0ZXIsDQogICAgICBsYXB0b3AsIFBEQSwgb3IgbW9iaWxl IHBob25lDQoNCiAgIFRva2VuOiAgU2VlIEF1dGhlbnRpY2F0aW9uIFRva2VuDQoNCiAgIFVzZXI6 ICBUaGUgcGVyc29uIG9yIGNsaWVudCB0byB3aG9tIGRldmljZXMgYXJlIGlzc3VlZA0KDQogICBV c2VyIElEOiAgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHVzZXIgb3IgY2xpZW50DQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAg ICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgIFtQYWdlIDdd DQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVy ICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQozLiAgVXNlIENhc2VzDQoNCiAgIFRoaXMgc2VjdGlv biBkZXNjcmliZXMgYSBjb21wcmVoZW5zaXZlIGxpc3Qgb2YgdXNlIGNhc2VzIHRoYXQNCiAgIGlu c3BpcmVkIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIHNwZWNpZmljYXRpb24uICBUaGVzZSByZXF1 aXJlbWVudHMNCiAgIHdlcmUgdXNlZCB0byBkZXJpdmUgdGhlIHByaW1hcnkgcmVxdWlyZW1lbnQg dGhhdCBkcm92ZSB0aGUgZGVzaWduLg0KICAgVGhlc2UgcmVxdWlyZW1lbnRzIGFyZSBjb3ZlcmVk IGluIHRoZSBuZXh0IHNlY3Rpb24uDQoNCiAgIFRoZXNlIHVzZSBjYXNlcyBhbHNvIGhlbHAgaW4g dW5kZXJzdGFuZGluZyB0aGUgYXBwbGljYWJpbGl0eSBvZiB0aGlzDQogICBzcGVjaWZpY2F0aW9u IHRvIHJlYWwgd29ybGQgc2l0dWF0aW9ucy4NCg0KMy4xLiAgT25saW5lIFVzZSBDYXNlcw0KDQog ICBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSB1c2UgY2FzZXMgcmVsYXRlZCB0byBwcm92aXNp b25pbmcgdGhlIGtleXMNCiAgIHVzaW5nIGFuIG9ubGluZSBwcm92aXNpb25pbmcgcHJvdG9jb2wg c3VjaCBhcyBbRFNLUFBdDQoNCjMuMS4xLiAgVHJhbnNwb3J0IG9mIGtleXMgZnJvbSBTZXJ2ZXIg dG8gQ3J5cHRvIE1vZHVsZQ0KDQogICBGb3IgZXhhbXBsZSwgYSBtb2JpbGUgZGV2aWNlIHVzZXIg d2FudHMgdG8gb2J0YWluIGEgc3ltbWV0cmljIGtleSBmb3INCiAgIHVzZSB3aXRoIGEgY3J5cHRv bW9kdWxlIG9uIHRoZSBkZXZpY2UuICBUaGUgY3J5cHRvbW9kdWxlIGNsaWVudCBmcm9tDQogICB2 ZW5kb3IgQSBpbml0aWF0ZXMgdGhlIHByb3Zpc2lvbmluZyBwcm9jZXNzIGFnYWluc3QgYSBwcm92 aXNpb25pbmcNCiAgIHN5c3RlbSBmcm9tIHZlbmRvciBCIHVzaW5nIGEgc3RhbmRhcmRzLWJhc2Vk IHByb3Zpc2lvbmluZyBwcm90b2NvbA0KICAgc3VjaCBhcyBbRFNLUFBdLiAgVGhlIHByb3Zpc2lv bmluZyBlbnRpdHkgZGVsaXZlcnMgb25lIG9yIG1vcmUga2V5cw0KICAgaW4gYSBzdGFuZGFyZCBm b3JtYXQgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IHRoZSBtb2JpbGUgZGV2aWNlLg0KDQogICBG b3IgZXhhbXBsZSwgaW4gYSB2YXJpYXRpb24gb2YgdGhlIGFib3ZlLCBpbnN0ZWFkIG9mIHRoZSB1 c2VyJ3MNCiAgIG1vYmlsZSBwaG9uZSwgYSBrZXkgaXMgcHJvdmlzaW9uZWQgaW4gdGhlIHVzZXIn cyBzb2Z0IHRva2VuDQogICBhcHBsaWNhdGlvbiBvbiBhIGxhcHRvcCB1c2luZyBhIG5ldHdvcmst YmFzZWQgb25saW5lIHByb3RvY29sLiAgQXMNCiAgIGJlZm9yZSwgdGhlIHByb3Zpc2lvbmluZyBz eXN0ZW0gZGVsaXZlcnMgYSBrZXkgaW4gYSBzdGFuZGFyZCBmb3JtYXQNCiAgIHRoYXQgY2FuIGJl IHByb2Nlc3NlZCBieSB0aGUgc29mdCB0b2tlbiBvbiB0aGUgUEMuDQoNCiAgIEZvciBleGFtcGxl LCB0aGUgZW5kLXVzZXIgb3IgdGhlIGtleSBpc3N1ZXIgd2FudHMgdG8gdXBkYXRlIG9yDQogICBj b25maWd1cmUgYW4gZXhpc3Rpbmcga2V5IGluIHRoZSBjcnlwdG9tb2R1bGUgYW5kIHJlcXVlc3Rz IGENCiAgIHJlcGxhY2VtZW50IGtleSBjb250YWluZXIuICBUaGUgY29udGFpbmVyIG1heSBvciBt YXkgbm90IGluY2x1ZGUgYQ0KICAgbmV3IGtleSBhbmQgbWF5IGluY2x1ZGUgbmV3IG9yIHVwZGF0 ZWQga2V5IGF0dHJpYnV0ZXMgc3VjaCBhcyBhIG5ldw0KICAgY291bnRlciB2YWx1ZSBpbiBIT1RQ IGtleSBjYXNlLCBhIG1vZGlmaWVkIHJlc3BvbnNlIGZvcm1hdCBvciBsZW5ndGgsDQogICBhIG5l dyBmcmllbmRseSBuYW1lLCBldGMuDQoNCjMuMS4yLiAgVHJhbnNwb3J0IG9mIGtleXMgZnJvbSBD cnlwdG8gTW9kdWxlIHRvIENyeXB0byBNb2R1bGUNCg0KICAgRm9yIGV4YW1wbGUsIGEgdXNlciB3 YW50cyB0byB0cmFuc3BvcnQgYSBrZXkgZnJvbSBvbmUgY3J5cHRvbW9kdWxlIHRvDQogICBhbm90 aGVyLiAgVGhlcmUgbWF5IGJlIHR3byBjcnlwdG9ncmFwaGljIG1vZHVsZXMsIG9uZSBvbiBhIGNv bXB1dGVyDQogICBvbmUgb24gYSBtb2JpbGUgcGhvbmUsIGFuZCB0aGUgdXNlciB3YW50cyB0byB0 cmFuc3BvcnQgYSBrZXkgZnJvbSB0aGUNCiAgIGNvbXB1dGVyIHRvIHRoZSBtb2JpbGUgcGhvbmUu ICBUaGUgdXNlciBjYW4gZXhwb3J0IHRoZSBrZXkgYW5kDQogICByZWxhdGVkIGRhdGEgaW4gYSBz dGFuZGFyZCBmb3JtYXQgZm9yIGlucHV0IGludG8gdGhlIG90aGVyDQogICBjcnlwdG9tb2R1bGUu DQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIw LCAyMDA4ICAgICAgICAgICAgICAgW1BhZ2UgOF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9y dGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjMu MS4zLiAgVHJhbnNwb3J0IG9mIGtleXMgZnJvbSBDcnlwdG8gTW9kdWxlIHRvIFNlcnZlcg0KDQog ICBGb3IgZXhhbXBsZSwgYSB1c2VyIHdhbnRzIHRvIGFjdGl2YXRlIGFuZCB1c2UgYSBuZXcga2V5 IGFuZCByZWxhdGVkDQogICBkYXRhIGFnYWluc3QgYSB2YWxpZGF0aW9uIHN5c3RlbSB0aGF0IGlz IG5vdCBhd2FyZSBvZiB0aGlzIGtleS4gIFRoaXMNCiAgIGtleSBtYXkgYmUgZW1iZWRkZWQgaW4g dGhlIGNyeXB0b21vZHVsZSAoZS5nLiAgU0QgY2FyZCwgVVNCIGRyaXZlKQ0KICAgdGhhdCB0aGUg dXNlciBoYXMgcHVyY2hhc2VkIGF0IHRoZSBsb2NhbCBlbGVjdHJvbmljcyByZXRhaWxlci4gIEFs b25nDQogICB3aXRoIHRoZSBjcnlwdG9tb2R1bGUsIHRoZSB1c2VyIG1heSBnZXQgdGhlIGtleSBv biBhIENEIG9yIGEgZmxvcHB5DQogICBpbiBhIHN0YW5kYXJkIGZvcm1hdC4gIFRoZSB1c2VyIGNh biBub3cgdXBsb2FkIHZpYSBhIHNlY3VyZSBvbmxpbmUNCiAgIGNoYW5uZWwgb3IgaW1wb3J0IHRo aXMga2V5IGFuZCByZWxhdGVkIGRhdGEgaW50byB0aGUgbmV3IHZhbGlkYXRpb24NCiAgIHN5c3Rl bSBhbmQgc3RhcnQgdXNpbmcgdGhlIGtleS4NCg0KMy4xLjQuICBTZXJ2ZXIgdG8gc2VydmVyIEJ1 bGsgaW1wb3J0L2V4cG9ydCBvZiBrZXlzDQoNCiAgIEZyb20gdGltZSB0byB0aW1lLCBhIGtleSBt YW5hZ2VtZW50IHN5c3RlbSBtYXkgYmUgcmVxdWlyZWQgdG8gaW1wb3J0DQogICBvciBleHBvcnQg a2V5cyBpbiBidWxrIGZyb20gb25lIGVudGl0eSB0byBhbm90aGVyLg0KDQogICBGb3IgZXhhbXBs ZSwgaW5zdGVhZCBvZiBpbXBvcnRpbmcga2V5cyBmcm9tIGEgbWFudWZhY3R1cmVyIHVzaW5nIGEN CiAgIGZpbGUsIGEgdmFsaWRhdGlvbiBzZXJ2ZXIgbWF5IGRvd25sb2FkIHRoZSBrZXlzIHVzaW5n IGFuIG9ubGluZQ0KICAgcHJvdG9jb2wuICBUaGUga2V5cyBjYW4gYmUgZG93bmxvYWRlZCBpbiBh IHN0YW5kYXJkIGZvcm1hdCB0aGF0IGNhbg0KICAgYmUgcHJvY2Vzc2VkIGJ5IGEgdmFsaWRhdGlv biBzeXN0ZW0uDQoNCiAgIEZvciBleGFtcGxlLCBpbiBhIHZhcmlhdGlvbiBvZiB0aGUgYWJvdmUs IGFuIE9UQSBrZXkgcHJvdmlzaW9uaW5nDQogICBnYXRld2F5IHRoYXQgcHJvdmlzaW9ucyBrZXlz IHRvIG1vYmlsZSBwaG9uZXMgbWF5IG9idGFpbiBrZXkgbWF0ZXJpYWwNCiAgIGZyb20gYSBrZXkg aXNzdWVyIHVzaW5nIGFuIG9ubGluZSBwcm90b2NvbC4gIFRoZSBrZXlzIGFyZSBkZWxpdmVyZWQN CiAgIGluIGEgc3RhbmRhcmQgZm9ybWF0IHRoYXQgY2FuIGJlIHByb2Nlc3NlZCBieSB0aGUga2V5 IHByb3Zpc2lvbmluZw0KICAgZ2F0ZXdheSBhbmQgc3Vic2VxdWVudGx5IHNlbnQgdG8gdGhlIGVu ZC11c2VyJ3MgbW9iaWxlIHBob25lLg0KDQozLjIuICBPZmZsaW5lIFVzZSBDYXNlcw0KDQogICBU aGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSB1c2UgY2FzZXMgcmVsYXRpbmcgdG8gb2ZmbGluZSB0 cmFuc3BvcnQgb2YNCiAgIGtleXMgZnJvbSBvbmUgc3lzdGVtIHRvIGFub3RoZXIsIHVzaW5nIHNv bWUgZm9ybSBvZiBleHBvcnQgYW5kIGltcG9ydA0KICAgbW9kZWwuDQoNCjMuMi4xLiAgU2VydmVy IHRvIHNlcnZlciBCdWxrIGltcG9ydC9leHBvcnQgb2Yga2V5cw0KDQogICBGb3IgZXhhbXBsZSwg Y3J5cHRvIG1vZHVsZXMgc3VjaCBhcyBPVFAgYXV0aGVudGljYXRpb24gdG9rZW5zLCBtYXkNCiAg IGhhdmUgdGhlaXIgc3ltbWV0cmljIGtleXMgaW5pdGlhbGl6ZWQgZHVyaW5nIHRoZSBtYW51ZmFj dHVyaW5nDQogICBwcm9jZXNzIGluIGJ1bGssIHJlcXVpcmluZyBjb3BpZXMgb2YgdGhlIGtleXMg YW5kIGFsZ29yaXRobSBkYXRhIHRvDQogICBiZSBsb2FkZWQgaW50byB0aGUgYXV0aGVudGljYXRp b24gc3lzdGVtIHRocm91Z2ggYSBmaWxlIG9uIHBvcnRhYmxlDQogICBtZWRpYS4gIFRoZSBtYW51 ZmFjdHVyZXIgcHJvdmlkZXMgdGhlIGtleXMgYW5kIHJlbGF0ZWQgZGF0YSBpbiB0aGUNCiAgIGZv cm0gb2YgYSBmaWxlIGNvbnRhaW5pbmcgcmVjb3JkcyBpbiBzdGFuZGFyZCBmb3JtYXQsIHR5cGlj YWxseSBvbiBhDQogICBDRC4gIE5vdGUgdGhhdCB0aGUgdG9rZW4gbWFudWZhY3R1cmVyIGFuZCB0 aGUgdmVuZG9yIGZvciB0aGUNCiAgIHZhbGlkYXRpb24gc3lzdGVtIG1heSBiZSB0aGUgc2FtZSBv ciBkaWZmZXJlbnQuICBTb21lIGNyeXB0byBtb2R1bGVzDQogICB3aWxsIGFsbG93IGxvY2FsIFBJ TiBtYW5hZ2VtZW50ICh0aGUgZGV2aWNlIHdpbGwgaGF2ZSBhIFBJTiBwYWQpDQogICBoZW5jZSBy YW5kb20gaW5pdGlhbCBQSU5zIHNldCBhdCBtYW51ZmFjdHVyaW5nIHNob3VsZCBiZSB0cmFuc21p dHRlZA0KICAgdG9nZXRoZXIgd2l0aCB0aGUgcmVzcGVjdGl2ZSBrZXlzIHRoZXkgcHJvdGVjdC4N Cg0KICAgRm9yIGV4YW1wbGUsIGFuIGVudGVycHJpc2Ugd2FudHMgdG8gcG9ydCBrZXlzIGFuZCBy ZWxhdGVkIGRhdGEgZnJvbQ0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBE ZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgIFtQYWdlIDldDQoMDQpJbnRlcm5ldC1EcmFm dCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIw MDgNCg0KDQogICBhbiBleGlzdGluZyB2YWxpZGF0aW9uIHN5c3RlbSBBIGludG8gYSBkaWZmZXJl bnQgdmFsaWRhdGlvbiBzeXN0ZW0gQi4NCiAgIFRoZSBleGlzdGluZyB2YWxpZGF0aW9uIHN5c3Rl bSBwcm92aWRlcyB0aGUgZW50ZXJwcmlzZSB3aXRoIGENCiAgIGZ1bmN0aW9uYWxpdHkgdGhhdCBl bmFibGVzIGV4cG9ydCBvZiBrZXlzIGFuZCByZWxhdGVkIGRhdGEgKGUuZy4gZm9yDQogICBPVFAg YXV0aGVudGljYXRpb24gdG9rZW5zKSBpbiBhIHN0YW5kYXJkIGZvcm1hdC4gIFNpbmNlIHRoZSBP VFANCiAgIHRva2VucyBhcmUgaW4gdGhlIHN0YW5kYXJkIGZvcm1hdCwgdGhlIGVudGVycHJpc2Ug Y2FuIGltcG9ydCB0aGUNCiAgIHRva2VuIHJlY29yZHMgaW50byB0aGUgbmV3IHZhbGlkYXRpb24g c3lzdGVtIEIgYW5kIHN0YXJ0IHVzaW5nIHRoZQ0KICAgZXhpc3RpbmcgdG9rZW5zLiAgTm90ZSB0 aGF0IHRoZSB2ZW5kb3JzIGZvciB0aGUgdHdvIHZhbGlkYXRpb24NCiAgIHN5c3RlbXMgbWF5IGJl IHRoZSBzYW1lIG9yIGRpZmZlcmVudC4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KSG95 ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAg ICAgW1BhZ2UgMTBdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBL ZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQo0LiAgUmVxdWlyZW1lbnRzDQoN CiAgIFRoaXMgc2VjdGlvbiBvdXRsaW5lcyB0aGUgbW9zdCByZWxldmFudCByZXF1aXJlbWVudHMg dGhhdCBhcmUgdGhlDQogICBiYXNpcyBvZiB0aGlzIHdvcmsuICBTZXZlcmFsIG9mIHRoZSByZXF1 aXJlbWVudHMgd2VyZSBkZXJpdmVkIGZyb20NCiAgIHVzZSBjYXNlcyBkZXNjcmliZWQgYWJvdmUu DQoNCiAgIFIxOiAgIFRoZSBmb3JtYXQgTVVTVCBzdXBwb3J0IHRyYW5zcG9ydCBvZiBtdWx0aXBs ZSB0eXBlcyBvZg0KICAgICAgICAgc3ltbWV0cmljIGtleXMgYW5kIHJlbGF0ZWQgYXR0cmlidXRl cyBmb3IgYWxnb3JpdGhtcyBpbmNsdWRpbmcNCiAgICAgICAgIEhPVFAsIG90aGVyIE9UUCwgY2hh bGxlbmdlLXJlc3BvbnNlLCBldGMuDQoNCiAgIFIyOiAgIFRoZSBmb3JtYXQgTVVTVCBoYW5kbGUg dGhlIHN5bW1ldHJpYyBrZXkgaXRzZWxmIGFzIHdlbGwgb2YNCiAgICAgICAgIGF0dHJpYnV0ZXMg dGhhdCBhcmUgdHlwaWNhbGx5IGFzc29jaWF0ZWQgd2l0aCBzeW1tZXRyaWMga2V5cy4NCiAgICAg ICAgIFNvbWUgb2YgdGhlc2UgYXR0cmlidXRlcyBtYXkgYmUNCg0KICAgICAgICAgKiAgVW5pcXVl IEtleSBJZGVudGlmaWVyDQoNCiAgICAgICAgICogIElzc3VlciBpbmZvcm1hdGlvbg0KDQogICAg ICAgICAqICBBbGdvcml0aG0gSUQNCg0KICAgICAgICAgKiAgQWxnb3JpdGhtIG1vZGUNCg0KICAg ICAgICAgKiAgSXNzdWVyIE5hbWUNCg0KICAgICAgICAgKiAgS2V5IGZyaWVuZGx5IG5hbWUNCg0K ICAgICAgICAgKiAgRXZlbnQgY291bnRlciB2YWx1ZSAobW92aW5nIGZhY3RvciBmb3IgT1RQIGFs Z29yaXRobXMpDQoNCiAgICAgICAgICogIFRpbWUgdmFsdWUNCg0KICAgUjM6ICAgVGhlIGZvcm1h dCBTSE9VTEQgc3VwcG9ydCBib3RoIG9mZmxpbmUgYW5kIG9ubGluZSBzY2VuYXJpb3MuDQogICAg ICAgICBUaGF0IGlzIGl0IHNob3VsZCBiZSBzZXJpYWxpemFibGUgdG8gYSBmaWxlIGFzIHdlbGwg YXMgaXQNCiAgICAgICAgIHNob3VsZCBiZSBwb3NzaWJsZSB0byB1c2UgdGhpcyBmb3JtYXQgaW4g b25saW5lIHByb3Zpc2lvbmluZw0KICAgICAgICAgcHJvdG9jb2xzIHN1Y2ggYXMgW0RTS1BQXQ0K DQogICBSNDogICBUaGUgZm9ybWF0IFNIT1VMRCBhbGxvdyBidWxrIHJlcHJlc2VudGF0aW9uIG9m IHN5bW1ldHJpYyBrZXlzDQoNCiAgIFI1OiAgIFRoZSBmb3JtYXQgU0hPVUxEIGFsbG93IGJ1bGsg cmVwcmVzZW50YXRpb24gb2YgUElOcyByZWxhdGVkIHRvDQogICAgICAgICBzcGVjaWZpYyBrZXlz DQoNCiAgIFI2OiAgIFRoZSBmb3JtYXQgU0hPVUxEIGJlIHBvcnRhYmxlIHRvIHZhcmlvdXMgcGxh dGZvcm1zLg0KICAgICAgICAgRnVydGhlcm1vcmUsIGl0IFNIT1VMRCBiZSBjb21wdXRhdGlvbmFs bHkgZWZmaWNpZW50IHRvIHByb2Nlc3MuDQoNCiAgIFI3OiAgIFRoZSBmb3JtYXQgTVVTVCBwcm92 aWRlIGFwcHJvcHJpYXRlIGxldmVsIG9mIHNlY3VyaXR5IGluIHRlcm1zDQogICAgICAgICBvZiBk YXRhIGVuY3J5cHRpb24gYW5kIGRhdGEgaW50ZWdyaXR5Lg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0 IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgW1Bh Z2UgMTFdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29u dGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICBSODogICBGb3Igb25saW5lIHNjZW5h cmlvcyB0aGUgZm9ybWF0IFNIT1VMRCBOT1QgcmVseSBvbiB0cmFuc3BvcnQNCiAgICAgICAgIGxl dmVsIHNlY3VyaXR5IChlLmcuLCBTU0wvVExTKSBmb3IgY29yZSBzZWN1cml0eSByZXF1aXJlbWVu dHMuDQoNCiAgIFI5OiAgIFRoZSBmb3JtYXQgU0hPVUxEIGJlIGV4dGVuc2libGUuICBJdCBTSE9V TEQgZW5hYmxlIGV4dGVuc2lvbg0KICAgICAgICAgcG9pbnRzIGFsbG93aW5nIHZlbmRvcnMgdG8g c3BlY2lmeSBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgaW4gdGhlDQogICAgICAgICBmdXR1cmUuDQoN CiAgIFIxMDogIFRoZSBmb3JtYXQgU0hPVUxEIGFsbG93IGZvciBkaXN0cmlidXRpb24gb2Yga2V5 IGRlcml2YXRpb24gZGF0YQ0KICAgICAgICAgd2l0aG91dCB0aGUgYWN0dWFsIHN5bW1ldHJpYyBr ZXkgaXRzZWxmLiAgVGhpcyBpcyB0byBzdXBwb3J0DQogICAgICAgICBzeW1tZXRyaWMga2V5IG1h bmFnZW1lbnQgc2NoZW1lcyB0aGF0IHJlbHkgb24ga2V5IGRlcml2YXRpb24NCiAgICAgICAgIGFs Z29yaXRobXMgYmFzZWQgb24gYSBwcmUtcGxhY2VkIG1hc3RlciBrZXkuICBUaGUga2V5DQogICAg ICAgICBkZXJpdmF0aW9uIGRhdGEgdHlwaWNhbGx5IGNvbnNpc3RzIG9mIGEgcmVmZXJlbmNlIHRv IHRoZSBrZXksDQogICAgICAgICByYXRoZXIgdGhhbiB0aGUga2V5IHZhbHVlIGl0c2VsZi4NCg0K ICAgUjExOiAgVGhlIGZvcm1hdCBTSE9VTEQgYWxsb3cgZm9yIGFkZGl0aW9uYWwgbGlmZWN5Y2xl IG1hbmFnZW1lbnQNCiAgICAgICAgIG9wZXJhdGlvbnMgc3VjaCBhcyBjb3VudGVyIHJlc3luY2hy b25pemF0aW9uLiAgU3VjaCBwcm9jZXNzZXMNCiAgICAgICAgIHJlcXVpcmUgY29uZmlkZW50aWFs aXR5IGJldHdlZW4gY2xpZW50IGFuZCBzZXJ2ZXIsIHRodXMgY291bGQNCiAgICAgICAgIHVzZSBh IGNvbW1vbiBzZWN1cmUgY29udGFpbmVyIGZvcm1hdCwgd2l0aG91dCB0aGUgdHJhbnNmZXIgb2YN CiAgICAgICAgIGtleSBtYXRlcmlhbC4NCg0KICAgUjEyOiAgVGhlIGZvcm1hdCBNVVNUIHN1cHBv cnQgdGhlIHVzZSBvZiBwcmUtc2hhcmVkIHN5bW1ldHJpYyBrZXlzIHRvDQogICAgICAgICBlbnN1 cmUgY29uZmlkZW50aWFsaXR5IG9mIHNlbnNpdGl2ZSBkYXRhIGVsZW1lbnRzLg0KDQogICBSMTM6 ICBUaGUgZm9ybWF0IE1VU1Qgc3VwcG9ydCBhIHBhc3N3b3JkLWJhc2VkIGVuY3J5cHRpb24gKFBC RSkNCiAgICAgICAgIFtQS0NTNV0gc2NoZW1lIHRvIGVuc3VyZSBzZWN1cml0eSBvZiBzZW5zaXRp dmUgZGF0YSBlbGVtZW50cy4NCiAgICAgICAgIFRoaXMgaXMgYSB3aWRlbHkgdXNlZCBtZXRob2Qg Zm9yIHZhcmlvdXMgcHJvdmlzaW9uaW5nDQogICAgICAgICBzY2VuYXJpb3MuDQoNCiAgIFIxNDog IFRoZSBmb3JtYXQgU0hPVUxEIHN1cHBvcnQgYXN5bW1ldHJpYyBlbmNyeXB0aW9uIGFsZ29yaXRo bXMgc3VjaA0KICAgICAgICAgYXMgUlNBIHRvIGVuc3VyZSBlbmQtdG8tZW5kIHNlY3VyaXR5IG9m IHNlbnNpdGl2ZSBkYXRhDQogICAgICAgICBlbGVtZW50cy4gIFRoaXMgaXMgdG8gc3VwcG9ydCBz Y2VuYXJpb3Mgd2hlcmUgYSBwcmUtc2V0IHNoYXJlZA0KICAgICAgICAgZW5jcnlwdGlvbiBrZXkg aXMgZGlmZmljdWx0IHRvIHVzZS4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAg ICAgICAgICAgW1BhZ2UgMTJdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1l dHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQo1LiAgUG9ydGFibGUg S2V5IGNvbnRhaW5lciBkZWZpbml0aW9uDQoNCiAgIFRoZSBwb3J0YWJsZSBrZXkgY29udGFpbmVy IGlzIGJhc2VkIG9uIGFuIFhNTCBzY2hlbWEgZGVmaW5pdGlvbiBhbmQNCiAgIGNvbnRhaW5zIHRo ZSBmb2xsb3dpbmcgbWFpbiBlbnRpdGllczoNCg0KICAgMS4gIEtleUNvbnRhaW5lciBlbnRpdHkg YXMgZGVmaW5lZCBpbiBTZWN0aW9uIDUuMQ0KDQogICAyLiAgRGV2aWNlIGVudGl0eSBhcyBkZWZp bmVkIGluIFNlY3Rpb24gNS4yDQoNCiAgIDMuICBLZXlQcm9wZXJ0aWVzIGVudGl0eSBhcyBkZWZp bmVkIGluIFNlY3Rpb24gNS4zDQoNCiAgIDQuICBLZXkgZW50aXR5IGFzIGRlZmluZWQgaW4gU2Vj dGlvbiA1LjQNCg0KICAgQWRkaXRpb25hbGx5IG90aGVyIFhNTCBzY2hlbWEgdHlwZXMgaGF2ZSBi ZWVuIGRlZmluZWQgYW5kIGFyZQ0KICAgZGV0YWlsZWQgaW4gdGhlIHJlbGV2YW50IHN1YnNlY3Rp b25zIG9mIHRoaXMgZG9jdW1lbnQNCg0KICAgQSBLZXlDb250YWluZXIgTUFZIGNvbnRhaW4gb25l IG9yIG1vcmUgRGV2aWNlIGVudGl0aWVzLiAgQSBEZXZpY2UgTUFZDQogICBjb250YWluIG9uZSBv ciBtb3JlIEtleSBlbnRpdGllcw0KDQogICBUaGUgZmlndXJlIGJlbG93IGluZGljYXRlcyBhIHBv c3NpYmxlIHJlbGF0aW9uc2hpcCBkaWFncmFtIG9mIGENCiAgIGNvbnRhaW5lci4NCg0KICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgIHwgS2V5Q29udGFp bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQogICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgfCAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAg ICAgICAgICAgICAgICAgIHwNCiAgIHwgIHwgIEtleXByb3BlcnRpZXMgMSB8ICAgICAgICAgICAg ICAgICAgICB8DQogICB8ICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg fA0KICAgfCAgLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgIHwNCiAgIHwg IC0tLS0tLS0tLS0tLS0tLS0tLSAgIC0tLS0tLS0tLS0tLS0tLS0tICB8DQogICB8ICB8IERldmlj ZSAxICAgICAgIHwgICB8IERldmljZSBuICAgICAgfCAgfA0KICAgfCAgfCAgICAgICAgICAgICAg ICB8ICAgfCAgICAgICAgICAgICAgIHwgIHwNCiAgIHwgIHwgIC0tLS0tLS0tLS0tLSAgfCAgIHwg LS0tLS0tLS0tLS0tICB8ICB8DQogICB8ICB8ICB8IEtleSAxICAgIHwgIHwgICB8IHwgS2V5IG4g ICAgfCAgfCAgfA0KICAgfCAgfCAgLS0tLS0tLS0tLS0tICB8ICAgfCAtLS0tLS0tLS0tLS0gIHwg IHwNCiAgIHwgIHwgICAgICAgICAgICAgICAgfCAgIHwgICAgICAgICAgICAgICB8ICB8DQogICB8 ICB8ICAgICAgICAgICAgICAgIHwgICB8ICAgICAgICAgICAgICAgfCAgfA0KICAgfCAgfCAgLS0t LS0tLS0tLS0tICB8ICAgfCAtLS0tLS0tLS0tLS0gIHwgIHwNCiAgIHwgIHwgIHwgS2V5IG0gICAg fCAgfCAgIHwgfCBLZXkgcCAgICB8ICB8ICB8DQogICB8ICB8ICAtLS0tLS0tLS0tLS0gIHwgICB8 IC0tLS0tLS0tLS0tLSAgfCAgfA0KICAgfCAgLS0tLS0tLS0tLS0tLS0tLS0tICAgLS0tLS0tLS0t LS0tLS0tLS0gIHwNCiAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8DQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQog ICBUaGUgZm9sbG93aW5nIHNlY3Rpb24gZGVzY3JpYmUgaW4gZGV0YWlsIGFsbCB0aGUgZW50aXRp ZXMgYW5kIHJlbGF0ZWQNCiAgIFhNTCBzY2hlbWEgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXM6DQoN Cg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAw OCAgICAgICAgICAgICAgW1BhZ2UgMTNdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxl IFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQo1LjEuICBL ZXlDb250YWluZXINCg0KICAgVGhlIEtleUNvbnRhaW5lciByZXByZXNlbnRzIHRoZSBrZXkgY29u dGFpbmVyIGVudGl0eS4gIEEgQ29udGFpbmVyDQogICBNQVkgY29udGFpbiBtb3JlIHRoYW4gb25l IERldmljZSBlbnRpdHk7IGVhY2ggRGV2aWNlIGVudGl0eSBNQVkNCiAgIGNvbnRhaW4gbW9yZSB0 aGFuIG9uZSBLZXkgZW50aXR5Lg0KDQogICBUaGUgS2V5Q29udGFpbmVyIGlzIGRlZmluZWQgYXMg Zm9sbG93czoNCg0KDQogICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iS2V5Q29udGFpbmVyVHlwZSI+ DQogICAgICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVu dCBuYW1lPSJFbmNyeXB0aW9uS2V5Ig0KICAgICAgICAgICAgICAgICAgIHR5cGU9ImRzOktleUlu Zm9UeXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJNQUNBbGdvcml0aG0iDQogICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpLZXlBbGdv cml0aG1UeXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVu dCBuYW1lPSJEZXZpY2UiDQogICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpEZXZpY2VUeXBl IiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50 IG5hbWU9IktleVByb3BlcnRpZXMiDQogICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpLZXlQ cm9wZXJ0aWVzVHlwZSIgbWluT2NjdXJzPSIwIg0KICAgICAgICAgICAgICAgICAgIG1heE9jY3Vy cz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2ln bmF0dXJlIg0KICAgICAgICAgICAgICAgICAgIHR5cGU9ImRzOlNpZ25hdHVyZVR5cGUiIG1pbk9j Y3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290aGVy Ig0KICAgICAgICAgICAgICAgICAgIHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1cnM9IjAi DQogICAgICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAg PC94czpzZXF1ZW5jZT4NCiAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJWZXJzaW9uIiB0 eXBlPSJwc2tjOlZlcnNpb25UeXBlIg0KICAgICAgICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAg ICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iS2V5Q29udGFpbmVySUQiIHR5cGU9InhzOklEIg0K ICAgICAgICAgICB1c2U9Im9wdGlvbmFsIi8+DQogICA8L3hzOmNvbXBsZXhUeXBlPg0KDQogICBU aGUgYXR0cmlidXRlcyBvZiB0aGUgS2V5Q29udGFpbmVyIGhhdmUgdGhlIGZvbGxvd2luZyBtZWFu aW5nczoNCg0KICAgbyAgPFZlcnNpb24gKE1BTkRBVE9SWSk+LCB0aGUgdmVyc2lvbiBudW1iZXIg Zm9yIHRoZSBwb3J0YWJsZSBrZXkNCiAgICAgIGNvbnRhaW5lciBmb3JtYXQgKHRoZSBYTUwgc2No ZW1hIGRlZmluZWQgaW4gdGhpcyBkb2N1bWVudCkuDQoNCiAgIG8gIDxLZXlDb250YWluZXJJRCAo T1BUSU9OQUwpPiwgdGhlIHVuaXF1ZSBJRCBmb3IgdGhpcyBjb250YWluZXIgaW4NCiAgICAgIGNh c2UgYW4gWE1MIGRvY3VtZW50IGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgY29udGFpbmVyIGFuZCB3 YW50cyB0bw0KICAgICAgcmVmZXIgdG8gdGhlbSB1bmlxdWVseS4NCg0KICAgVGhlIGVsZW1lbnRz IG9mIHRoZSBLZXlDb250YWluZXIgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOg0KDQogICBv ICA8RW5jcnlwdGlvbktleSAoT1BUSU9OQUwpPiwgSWRlbnRpZmllcyB0aGUgZW5jcnlwdGlvbiBr ZXksDQogICAgICBhbGdvcml0aG0gYW5kIHBvc3NpYmxlIHBhcmFtZXRlcnMgdXNlZCB0byBwcm90 ZWN0IHRoZSBTZWNyZXQgS2V5DQogICAgICBkYXRhIGluIHRoZSBjb250YWluZXIuICBQbGVhc2Ug c2VlIFNlY3Rpb24gNi4xIGZvciBkZXRhaWxlZA0KICAgICAgZGVzY3JpcHRpb24gb2YgaG93IHRv IHByb3RlY3Qga2V5IGRhdGEgaW4gdHJhbnNpdCBhbmQgdGhlIHVzYWdlIG9mDQogICAgICB0aGlz IGVsZW1lbnQuDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVy IDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSAxNF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAg UG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoN CiAgIG8gIDxNQUNBbGdvcml0aG0gKE9QVElPTkFMKT4sIElkZW50aWZpZXMgdGhlIGFsZ29yaXRo bSB1c2VkIHRvDQogICAgICBnZW5lcmF0ZSBhIGtleWVkIGRpZ2VzdCBvZiB0aGUgdGhlIFNlY3Jl dCBLZXkgZGF0YSB2YWx1ZXMgd2hlbg0KICAgICAgcHJvdGVjdGlvbiBhbGdvcml0aG1zIGFyZSB1 c2VkIHRoYXQgZG8gbm90IGhhdmUgaW50ZWdyaXR5IGNoZWNrcy4NCiAgICAgIFRoZSBkaWdlc3Qg Z3VhcmFudGVlcyB0aGUgaW50ZWdyaXR5IGFuZCB0aGUgYXV0aGVudGljaXR5IG9mIHRoZQ0KICAg ICAga2V5IGRhdGEuIGZvciBwcm9maWxlIGFuZCB1c2FnZSBwbGVhc2Ugc2VlIFNlY3Rpb24gNi4x LjENCg0KICAgbyAgPERldmljZT4sIHRoZSBob3N0IERldmljZSBmb3Igb25lIG9yIG1vcmUgS2V5 cyBhcyBkZWZpbmVkIGluDQogICAgICBTZWN0aW9uIDUuMiBUaGUgS2V5Q29udGFpbmVyIE1BWSBj b250YWluIG11bHRpcGxlIERldmljZSBkYXRhDQogICAgICBlbGVtZW50cywgYWxsb3dpbmcgZm9y IGJ1bGsgcHJvdmlzaW9uaW5nIG9mIG11bHRpcGxlIGRldmljZXMgZWFjaA0KICAgICAgY29udGFp bmluZyBtdWx0aXBsZSBrZXlzLg0KDQogICBvICA8S2V5UHJvcGVydGllcyAoT1BUSU9OQUwpPiwg b25lIG9yIG1vcmUga2V5IHByb3BlcnR5IGVudGl0aWVzDQogICAgICBjb250YWluaW5nIGtleSBy ZWxhdGVkIHByb3BlcnRpZXMgdGhhdCBhcmUgY29tbW9uIGZvciBrZXlzIHdpdGhpbg0KICAgICAg dGhpcyBjb250YWluZXIuICBQbGVhc2Ugc2VlIFNlY3Rpb24gNS4zIGZvciBkZXRhaWxlZCBkZXNj cmlwdGlvbg0KICAgICAgb2YgdGhpcyBlbGVtZW50Lg0KDQogICBvICA8U2lnbmF0dXJlIChPUFRJ T05BTCk+LCB0aGUgc2lnbmF0dXJlIHZhbHVlIG9mIHRoZSBDb250YWluZXIuDQogICAgICBXaGVu IHRoZSBzaWduYXR1cmUgaXMgYXBwbGllZCB0byB0aGUgZW50aXJlIGNvbnRhaW5lciwgaXQgTVVT VCB1c2UNCiAgICAgIFhNTCBTaWduYXR1cmUgbWV0aG9kcyBhcyBkZWZpbmVkIGluIFtYTUxEU0lH XS4gIEl0IE1BWSBiZSBvbWl0dGVkDQogICAgICB3aGVuIGFwcGxpY2F0aW9uIGxheWVyIHByb3Zp c2lvbmluZyBvciB0cmFuc3BvcnQgbGF5ZXINCiAgICAgIHByb3Zpc2lvbmluZyBwcm90b2NvbHMg cHJvdmlkZSB0aGUgaW50ZWdyaXR5IGFuZCBhdXRoZW50aWNpdHkgb2YNCiAgICAgIHRoZSBwYXls b2FkIGJldHdlZW4gdGhlIHNlbmRlciBhbmQgdGhlIHJlY2lwaWVudCBvZiB0aGUgY29udGFpbmVy Lg0KICAgICAgV2hlbiByZXF1aXJlZCwgdGhpcyBzcGVjaWZpY2F0aW9uIHJlY29tbWVuZHMgdXNp bmcgYSBzeW1tZXRyaWMga2V5DQogICAgICBiYXNlZCBzaWduYXR1cmUgd2l0aCB0aGUgc2FtZSBr ZXkgdXNlZCBpbiB0aGUgZW5jcnlwdGlvbiBvZiB0aGUNCiAgICAgIHNlY3JldCBrZXkgZGF0YS4g IFRoZSBzaWduYXR1cmUgaXMgZW52ZWxvcGVkLg0KDQo1LjIuICBEZXZpY2UNCg0KICAgVGhlIERl dmljZSByZXByZXNlbnRzIHRoZSBEZXZpY2UgZW50aXR5IGluIHRoZSBDb250YWluZXIuICBBIERl dmljZQ0KICAgTUFZIGJlIGJvdW5kIHRvIGEgdXNlciBhbmQgTUFZIGNvbnRhaW4gbW9yZSB0aGFu IG9uZSBrZXlzLiAgQSBrZXkNCiAgIFNIT1VMRCBiZSBib3VuZCB0byBvbmx5IG9uZSBEZXZpY2Uu DQoNCiAgIFRoZSBEZXZpY2UgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCjx4czpjb21wbGV4 VHlwZSBuYW1lPSJEZXZpY2VUeXBlIj4NCiAgPHhzOnNlcXVlbmNlPg0KICAgIDx4czplbGVtZW50 IG5hbWU9IkRldmljZUlkIiB0eXBlPSJwc2tjOkRldmljZUlkVHlwZSIgbWluT2NjdXJzPSIwIi8+ DQogICAgPHhzOmVsZW1lbnQgbmFtZT0iS2V5IiB0eXBlPSJwc2tjOktleVR5cGUiIG1heE9jY3Vy cz0idW5ib3VuZGVkIi8+DQogICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNlcklkIiB0eXBlPSJ4czpz dHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhl ciINCiAgICAgICAgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJz PSJ1bmJvdW5kZWQiLz4NCiAgPC94czpzZXF1ZW5jZT4NCjwveHM6Y29tcGxleFR5cGU+DQoNCiAg IFRoZSBlbGVtZW50cyBvZiB0aGUgRGV2aWNlIGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nczoN Cg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAy MDA4ICAgICAgICAgICAgICBbUGFnZSAxNV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFi bGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIG8g IDxEZXZpY2VJZD4sIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBkZXZpY2UsIGRlZmluZWQg aW4NCiAgICAgIFNlY3Rpb24gNS4yLjENCg0KICAgbyAgPEtleT4sIHJlcHJlc2VudHMgdGhlIGtl eSBlbnRpdHkgYXMgZGVmaW5lZCBpbiBTZWN0aW9uIDUuNA0KDQogICBvICA8VXNlcklkPiwgb3B0 aW9uYWxseSBpZGVudGlmaWVzIHRoZSBvd25lciBvciB0aGUgdXNlciBvZiB0aGUNCiAgICAgIERl dmljZSwgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBEaXN0aW5ndWlzaGVkIE5hbWUgYXMg ZGVmaW5lZA0KICAgICAgaW4gW1JGQzQ1MTRdLiAgRm9yIGV4YW1wbGUgVUlEPWpzbWl0aCxEQz1l eGFtcGxlLERDPW5ldC4gIEluDQogICAgICBzeXN0ZW1zIHdoZXJlIHVuaXF1ZSB1c2VyIElkcyBh cmUgdXNlZCB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uDQogICAgICAnVUlEPVt1bmlxdWVJZF0n IE1VU1QgYmUgdXNlZC4NCg0KNS4yLjEuICBEZXZpY2VJZA0KDQogICBUaGUgRGV2aWNlSWQgcmVw cmVzZW50cyB0aGUgaWRlbnRpZnlpbmcgY3JpdGVyaWEgdG8gdW5pcXVlbHkgaWRlbnRpZnkNCiAg IHRoZSBkZXZpY2UgdGhhdCBjb250YWlucyB0aGUgYXNzb2NpYXRlZCBrZXlzLiAgU2luY2UgZGV2 aWNlcyBjYW4gY29tZQ0KICAgaW4gZGlmZmVyZW50IGZvcm0gZmFjdG9ycyBzdWNoIGFzIGhhcmR3 YXJlIHRva2Vucywgc21hcnQtY2FyZHMsIHNvZnQNCiAgIHRva2VucyBpbiBhIG1vYmlsZSBwaG9u ZSBvciBQQyBldGMgdGhpcyBlbGVtZW50IGFsbG93cyBkaWZmZXJlbnQNCiAgIGNyaXRlcmlhIHRv IGJlIHVzZWQuICBDb21iaW5lZCB0aG91Z2ggdGhlIGNyaXRlcmlhIE1VU1QgdW5pcXVlbHkNCiAg IGlkZW50aWZ5IHRoZSBkZXZpY2UuICBGb3IgZXhhbXBsZSBmb3IgaGFyZHdhcmUgdG9rZW5zIHRo ZSBjb21iaW5hdGlvbg0KICAgb2YgU2VyaWFsTm8gYW5kIE1hbnVmYWN0dXJlciB3aWxsIHVuaXF1 ZWx5IGlkZW50aWZ5IGEgZGV2aWNlIGJ1dCBub3QNCiAgIFNlcmlhbE5vIGFsb25lIHNpbmNlIHR3 byBkaWZmZXJlbnQgdG9rZW4gbWFudWZhY3R1cmVycyBtaWdodCBpc3N1ZQ0KICAgZGV2aWNlcyB3 aXRoIHRoZSBzYW1lIHNlcmlhbCBudW1iZXIgKHNpbWlsYXIgdG8gdGhlIElzc3VlckROIGFuZA0K ICAgc2VyaWFsIG51bWJlciBvZiBhIGNlcnRpZmljYXRlKS4gIFN5bW1ldHJpYyBLZXlzIHVzZWQg aW4gdGhlIHBheW1lbnQNCiAgIGluZHVzdHJ5IGFyZSB1c3VhbGx5IHN0b3JlZCBvbiBJbnRlZ3Jh dGVkIENpcmN1aXQgU21hcnQgQ2FyZHMuICBUaGVzZQ0KICAgY2FyZHMgYXJlIHVuaXF1ZWx5IGlk ZW50aWZpZWQgdmlhIHRoZSBQcmltYXJ5IEFjY291bnQgTnVtYmVyIChQQU4sDQogICB0aGUgbG9u ZyBudW1iZXIgcHJpbnRlZCBvbiB0aGUgZnJvbnQgb2YgdGhlIGNhcmQpIGFuZCBhbiBleHBpcnkg ZGF0ZQ0KICAgb2YgdGhlIGNhcmQuICBEZXZpY2VJZCBpcyBhbiBleHRlbnNpYmxlIHR5cGUgdGhh dCBhbGxvd3MgYWxsIHRoZXNlDQogICBkaWZmZXJlbnQgd2F5cyB0byB1bmlxdWVseSBpZGVudGlm eSBhIHNwZWNpZmljIGtleSBjb250YWluaW5nIGRldmljZS4NCg0KICAgVGhlIERldmljZUlkIGlz IGRlZmluZWQgYXMgZm9sbG93czoNCg0KDQogICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGV2aWNl SWRUeXBlIj4NCiAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNYW51 ZmFjdHVyZXIiIHR5cGU9InhzOnN0cmluZyIvPg0KICAgICAgIDx4czplbGVtZW50IG5hbWU9IlNl cmlhbE5vIiB0eXBlPSJ4czpzdHJpbmciLz4NCiAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNb2Rl bCIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJJc3N1ZU5vIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgIDx4 czplbGVtZW50IG5hbWU9IkV4cGlyeURhdGUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9 IjAiLz4NCiAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGFydERhdGUiIHR5cGU9InhzOmRhdGVU aW1lIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3Ro ZXIiDQogICAgICAgICAgIHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1cnM9IjAiIG1heE9j Y3Vycz0idW5ib3VuZGVkIi8+DQogICA8L3hzOnNlcXVlbmNlPg0KICAgPC94czpjb21wbGV4VHlw ZT4NCg0KICAgVGhlIGVsZW1lbnRzIG9mIERldmljZUlkIGhhdmUgdGhlIGZvbGxvd2luZyBtZWFu aW5nczoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVy IDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSAxNl0NCgwNCkludGVybmV0LURyYWZ0ICAgICAg UG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoN CiAgIG8gIDxNYW51ZmFjdHVyZXI+LCB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBkZXZpY2UuDQoN CiAgIG8gIDxTZXJpYWxObz4sIHRoZSBzZXJpYWwgbnVtYmVyIG9mIHRoZSBkZXZpY2Ugb3IgdGhl IFBBTiAocHJpbWFyeQ0KICAgICAgYWNjb3VudCBudW1iZXIpIGluIGNhc2Ugb2YgcGF5bWVudCBz bWFydCBjYXJkcy4NCg0KICAgbyAgPE1vZGVsPiwgdGhlIG1vZGVsIG9mIHRoZSBkZXZpY2UgKGUu ZyBvbmUtYnV0dG9uLUhPVFAtdG9rZW4tVjEpDQoNCiAgIG8gIDxJc3N1ZU5vPiwgdGhlIGlzc3Vl IG51bWJlciBpbiBjYXNlIG9mIHNtYXJ0IGNhcmRzIHdpdGggdGhlIHNhbWUNCiAgICAgIFBBTiwg ZXF1aXZhbGVudCB0byBhIFBTTiAoUEFOIFNlcXVlbmNlIE51bWJlcikuDQoNCiAgIG8gIDxFeHBp cnlEYXRlPiwgdGhlIGV4cGlyeSBkYXRlIG9mIGEgZGV2aWNlIChzdWNoIGFzIHRoZSBvbmUgb24g YQ0KICAgICAgcGF5bWVudCBjYXJkLHVzZWQgd2hlbiBpc3N1ZSBudW1iZXJzIGFyZSBub3QgcHJp bnRlZCBvbiBjYXJkcykuDQoNCiAgIG8gIDxTdGFydERhdGU+LCB0aGUgc3RhcnQgZGF0ZSBvZiBh IGRldmljZSAoc3VjaCBhcyB0aGUgb25lIG9uIGENCiAgICAgIHBheW1lbnQgY2FyZCx1c2VkIHdo ZW4gaXNzdWUgbnVtYmVycyBhcmUgbm90IHByaW50ZWQgb24gY2FyZHMpLg0KDQo1LjMuICBLZXlQ cm9wZXJ0aWVzDQoNCiAgIFRoZSBLZXlQcm9wZXJ0aWVzIHJlcHJlc2VudHMgY29tbW9uIHByb3Bl cnRpZXMgc2hhcmVkIGJ5IG1vcmUgdGhhbg0KICAgb25lIGtleSBoZWxkIGluIHRoZSBjb250YWlu ZXIuICBJZiBhIHZhbHVlIGlzIHNldCBpbiB0aGUgcHJvcGVydGllcw0KICAgdGhlIEtleSBlbGVt ZW50IGNhbiByZWZlciB0byBpdCB2aWEgS2V5UHJvcGVydGllc0lkIGF0dHJpYnV0ZS4NCiAgIFZh bHVlcyB0aGF0IGFyZSBwcmVzZW50IGluIHRoZSBLZXkgZWxlbWVudCBpdHNlbGYgTVVTVCB0YWtl DQogICBwcmVjZW5kZW5jZSBvdmVyIHZhbHVlcyBzZXQgaW4gS2V5UHJvcGVydGllcy4gIFRoZSBL ZXlQcm9wZXJ0aWVzIGlzDQogICBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAg ICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSAxN10NCgwN CkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAg ICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJLZXlQcm9wZXJ0 aWVzVHlwZSI+DQogICAgICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgICAgICAgICA8 eHM6ZWxlbWVudCBuYW1lPSJJc3N1ZXIiIHR5cGU9InhzOnN0cmluZyINCiAgICAgICAgICAgICAg ICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1l PSJVc2FnZSIgdHlwZT0icHNrYzpVc2FnZVR5cGUiDQogICAgICAgICAgICAgICAgICAgbWluT2Nj dXJzPSIwIi8+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iS2V5UHJvZmls ZUlkIiB0eXBlPSJ4czpzdHJpbmciDQogICAgICAgICAgICAgICAgICAgbWluT2NjdXJzPSIwIi8+ DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTWFzdGVyS2V5SWQiIHR5cGU9 InhzOnN0cmluZyINCiAgICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAg ICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEYXRhIiB0eXBlPSJwc2tjOkRhdGFUeXBlIg0K ICAgICAgICAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4N CiAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQSU5Qb2xpY3kiDQogICAgICAg ICAgICAgICAgICAgdHlwZT0icHNrYzpQSU5Qb2xpY3lUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAg ICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFeHBpcnlEYXRlIg0KICAgICAgICAg ICAgICAgICAgIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAg ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGFydERhdGUiIHR5cGU9InhzOmRhdGVUaW1lIg0K ICAgICAgICAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4 czphbnkgbmFtZXNwYWNlPSIjI290aGVyIg0KICAgICAgICAgICAgICAgICAgIHByb2Nlc3NDb250 ZW50cz0ibGF4IiBtaW5PY2N1cnM9IjAiDQogICAgICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1 bmJvdW5kZWQiLz4NCiAgICAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgICAgPHhzOmF0 dHJpYnV0ZSBuYW1lPSJLZXlQcm9wZXJ0aWVzSWQiIHR5cGU9InhzOklEIg0KICAgICAgICAgICB1 c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iS2V5QWxnb3Jp dGhtIg0KICAgICAgICAgICB0eXBlPSJwc2tjOktleUFsZ29yaXRobVR5cGUiIHVzZT0ib3B0aW9u YWwiLz4NCiAgIDwveHM6Y29tcGxleFR5cGU+DQoNCiAgIFRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBL ZXlQcm9wZXJ0aWVzIGVudGl0eSBoYXZlIHRoZSBmb2xsb3dpbmcNCiAgIG1lYW5pbmdzOg0KDQog ICBvICBLZXlQcm9wZXJ0aWVzSWQgKE1BTkRBVE9SWSksIGEgdW5pcXVlIGFuZCBnbG9iYWwgaWRl bnRpZmllciBvZiBzZXQNCiAgICAgIG9mIEtleVByb3BlcnRpZXMuICBUaGUgaWRlbnRpZmllciBp cyBkZWZpbmVkIGFzIGEgc3RyaW5nIG9mDQogICAgICBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy4N Cg0KICAgbyAgPEtleUFsZ29yaXRobSAoT1BUSU9OQUwpPiwgdGhlIHVuaXF1ZSBVUkkgb2YgdGhl IHR5cGUgb2YgYWxnb3JpdGhtDQogICAgICB0byB1c2Ugd2l0aCB0aGUgc2VjcmV0IGtleSwgZm9y IHByb2ZpbGVzIGFyZSBkZXNjcmliZWQgaW4NCiAgICAgIFNlY3Rpb24gNi4zDQoNCiAgIFNpbmNl IEtleVByb3BlcnRpZXMgYXJlIGEgbWV0aG9kIHRvIGNvbW1vbmFsaXNlIHRoZSBlbGVtZW50cyBp biBLZXkNCiAgIHBsZWFzZSByZWZlciB0byBzZWN0aW9uIFNlY3Rpb24gNS40IGZvciBkZXRhaWxl ZCBkZXNjcmlwdGlvbiBvZiBhbGwNCiAgIGVsZW1lbnRzLg0KDQo1LjQuICBLZXkNCg0KICAgVGhl IEtleSByZXByZXNlbnRzIHRoZSBrZXkgZW50aXR5IGluIHRoZSBLZXlDb250YWluZXIuICBUaGUg S2V5IGlzDQogICBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAg ICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAgIFtQYWdlIDE4XQ0K DA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAg ICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IktleVR5cGUi Pg0KICAgICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1l bnQgbmFtZT0iSXNzdWVyIiB0eXBlPSJ4czpzdHJpbmciDQogICAgICAgICAgICAgICAgICAgbWlu T2NjdXJzPSIwIi8+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNhZ2Ui IHR5cGU9InBza2M6VXNhZ2VUeXBlIg0KICAgICAgICAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIv Pg0KICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IktleVByb2ZpbGVJZCIgdHlw ZT0ieHM6c3RyaW5nIg0KICAgICAgICAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAg ICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1hc3RlcktleUlkIiB0eXBlPSJ4czpzdHJp bmciDQogICAgICAgICAgICAgICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICAgICAg ICAgPHhzOmVsZW1lbnQgbmFtZT0iRnJpZW5kbHlOYW1lIiB0eXBlPSJ4czpzdHJpbmciDQogICAg ICAgICAgICAgICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICAgICAgICAgPHhzOmVs ZW1lbnQgbmFtZT0iRGF0YSIgdHlwZT0icHNrYzpEYXRhVHlwZSINCiAgICAgICAgICAgICAgICAg ICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICAgICAg ICAgPHhzOmVsZW1lbnQgbmFtZT0iUElOUG9saWN5Ig0KICAgICAgICAgICAgICAgICAgIHR5cGU9 InBza2M6UElOUG9saWN5VHlwZSIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICAgICAgICAg PHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiDQogICAgICAg ICAgICAgICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1l bnQgbmFtZT0iU3RhcnREYXRlIiB0eXBlPSJ4czpkYXRlVGltZSINCiAgICAgICAgICAgICAgICAg ICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0i IyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiDQogICAgICAgICAgICAgICAgICAgbWluT2Nj dXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICAgICA8L3hzOnNlcXVlbmNl Pg0KICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IktleUlkIiB0eXBlPSJ4czpzdHJpbmci DQogICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBu YW1lPSJLZXlBbGdvcml0aG0iDQogICAgICAgICAgIHR5cGU9InBza2M6S2V5QWxnb3JpdGhtVHlw ZSIgdXNlPSJvcHRpb25hbCIvPg0KICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IktleVBy b3BlcnRpZXNJZCIgdHlwZT0ieHM6SURSRUYiDQogICAgICAgICAgIHVzZT0ib3B0aW9uYWwiLz4N CiAgIDwveHM6Y29tcGxleFR5cGU+DQoNCg0KICAgVGhlIGF0dHJpYnV0ZXMgb2YgdGhlIEtleSBl bnRpdHkgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOg0KDQogICBvICBLZXlJZCAoTUFOREFU T1JZKSwgYSB1bmlxdWUgYW5kIGdsb2JhbCBpZGVudGlmaWVyIG9mIHRoZSBzeW1tZXRyaWMNCiAg ICAgIGtleS4gIFRoZSBpZGVudGlmaWVyIGlzIGRlZmluZWQgYXMgYSBzdHJpbmcgb2YgYWxwaGFu dW1lcmljDQogICAgICBjaGFyYWN0ZXJzLg0KDQogICBvICA8S2V5QWxnb3JpdGhtIChPUFRJT05B TCk+LCB0aGUgdW5pcXVlIFVSSSBvZiB0aGUgdHlwZSBvZiBhbGdvcml0aG0NCiAgICAgIHRvIHVz ZSB3aXRoIHRoZSBzZWNyZXQga2V5LCBmb3IgcHJvZmlsZXMgYXJlIGRlc2NyaWJlZCBpbg0KICAg ICAgU2VjdGlvbiA2LjMNCg0KICAgbyAgPEtleVByb3BlcnRpZXNJZCAoT1BUSU9OQUwpPiwgdGhl IHJlZmVyZW5jZXMgdG8gdGhlIHVuaXF1ZSBpZCBvZg0KICAgICAgdGhlIEtleVByb3BlcnRpZXMg d2hvc2UgdmFsdWUgdGhlIGluc3RhbmNlIG9mIHRoaXMga2V5IGluaGVyaXRzLg0KICAgICAgSWYg dGhpcyB2YWx1ZSBpcyBzZXQgaW1wbGVtZW50YXRpb24gTVVTVCBsb29rdXAgdGhlIEtleXByb3Bl cnRpZXMNCiAgICAgIGVsZW1lbnQgcmVmZXJyZWQgdG8gYnkgdGhpcyB1bmlxdWUgSWQgYW5kIHRo aXMgaW5zdGFuY2Ugb2Yga2V5DQogICAgICB3aWxsIGluaGVyaXQgYWxsIHZhbHVlcyBmcm9tIHRo ZSBLZXlQcm9wZXJ0aWVzLiAgVmFsdWVzIGhlbGQgaW4NCiAgICAgIHRoZSBrZXkgaW5zdGFuY2Ug aXQgTVVTVCB0YWtlIHByZWNlZGVuY2Ugb3ZlciB2YWx1ZXMgaW5oZXJpdGVkDQoNCg0KDQpIb3ll ciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAg ICBbUGFnZSAxOV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtl eSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgICAgIGZyb20gS2V5UHJvcGVy dGllcy4iLz4NCg0KICAgVGhlIGVsZW1lbnRzIG9mIHRoZSBLZXkgZW50aXR5IGhhdmUgdGhlIGZv bGxvd2luZyBtZWFuaW5nczoNCg0KICAgbyAgPElzc3VlciAoT1BUSU9OQUwpPiwgVGhlIGtleSBp c3N1ZXIgbmFtZSwgdGhpcyBpcyBub3JtYWxseSB0aGUNCiAgICAgIG5hbWUgb2YgdGhlIG9yZ2Fu aXphdGlvbiB0aGF0IGlzc3VlcyB0aGUga2V5IHRvIHRoZSBlbmQgdXNlciBvZg0KICAgICAgdGhl IGtleS4gIEZvciBleGFtcGxlIE15QmFuayBpc3N1aW5nIGhhcmR3YXJlIHRva2VucyB0byB0aGVp cg0KICAgICAgcmV0YWlsIGJhbmtpbmcgdXNlcnMgJ015QmFuaycgd291bGQgYmUgdGhlIGlzc3Vl ci4gIFRoZSBJc3N1ZXIgaXMNCiAgICAgIGRlZmluZWQgYXMgYSBTdHJpbmcuDQoNCiAgIG8gIDxV c2FnZSAoTUFOREFUT1JZKT4sIGRlZmluZXMgdGhlIGludGVuZGVkIHVzYWdlIG9mIHRoZSBrZXkg YW5kDQogICAgICByZWxhdGVkIG1ldGFkYXRhIGFzIGRlZmluZWQgaW4gU2VjdGlvbiA1LjQuMg0K DQogICBvICA8S2V5UHJvZmlsZUlkIChPUFRJT05BTCk+LCBBIHVuaXF1ZSBpZGVudGlmaWVyIHVz ZWQgYmV0d2VlbiB0aGUNCiAgICAgIHNlbmRpbmcgYW5kIHJlY2VpdmluZyBwYXJ0eSBvZiB0aGUg Y29udGFpbmVyIHRvIGVzdGFibGlzaCBhIHNldCBvZg0KICAgICAgY29uc3RhbnQgdmFsdWVzIHJl bGF0ZWQgdG8gYSBrZXkgdGhhdCBhcmUgbm90IHRyYW5zbWl0dGVkIHZpYSB0aGUNCiAgICAgIGNv bnRhaW5lci4gIEZvciBleGFtcGxlIGEgc21hcnQgY2FyZCBhcHBsaWNhdGlvbiBwZXJzb25hbGlz YXRpb24NCiAgICAgIHByb2ZpbGUgaWQgcmVsYXRlZCB0byBhdHRyaWJ1dGVzIHByZXNlbnQgb24g YSBzbWFydCBjYXJkDQogICAgICBhcHBsaWNhdGlvbiB0aGF0IGhhdmUgaW5mbHVlbmNlIHdoZW4g Y29tcHV0aW5nIGEgcmVzcG9uc2UuICBBbg0KICAgICAgZXhhbXBsZSBjb3VsZCBiZSBhbiBFTVYg TWFzdGVyQ2FyZCBDQVAgW0NBUF0gYXBwbGljYXRpb24gb24gYSBjYXJkDQogICAgICBwZXJzb25h bGlzZWQgd2l0aCBkYXRhIGZvciBhIHNwZWNpZmljIGJhdGNoIG9mIGNhcmRzIHN1Y2ggYXM6DQoN CiAgICAgICAgIElBRiBJbnRlcm5ldCBhdXRoZW50aWNhdGlvbiBmbGFnDQoNCiAgICAgICAgIENW TiBDcnlwdG9ncmFtIHZlcnNpb24gbnVtYmVyLCBmb3IgZXhhbXBsZSAoTUNISVAyLCBNQ0hJUDQs DQogICAgICAgICBWSVNBIDEzLCBWSVNBMTQpDQoNCiAgICAgICAgIEFJUCAoQXBwbGljYXRpb24g SW50ZXJjaGFuZ2UgUHJvZmlsZSksIDIgYnl0ZXMNCg0KICAgICAgICAgVFZSIFRlcm1pbmFsIFZl cmlmaWNhdGlvbiBSZXN1bHQsIDUgYnl0ZXMNCg0KICAgICAgICAgQ1ZSIFRoZSBjYXJkIHZlcmlm aWNhdGlvbiByZXN1bHQNCg0KICAgICAgICAgQW1vdW50T3RoZXINCg0KICAgICAgICAgVHJhbnNh Y3Rpb25EYXRlDQoNCiAgICAgICAgIFRlcm1pbmFsQ291bnRyeUNvZGUNCg0KICAgICAgICAgVHJh bnNhY3Rpb25DdXJyZW5jeUNvZGUNCg0KICAgICAgICAgQW1vdW50QXV0aG9yaXNlZA0KDQogICAg ICAgICBJSVBCDQoNCiAgICAgIFRoZXNlIHZhbHVlcyBhcmUgbm90IGNvbnRhaW5lZCB3aXRoaW4g YXR0cmlidXRlcyBpbiB0aGUgY29udGFpbmVyDQogICAgICBidXQgYXJlIHNoYXJlZCBiZXR3ZWVu IHRoZSBtYW51ZmFjdHVyaW5nIGFuZCB0aGUgdmFsaWRhdGlvbg0KICAgICAgc2VydmljZSB0aHJv dWdoIHRoaXMgdW5pcXVlIEtleVByb2ZpbGVJZC4gIFRoZSBLZXlQcm9maWxlSWQgaXMNCg0KDQoN CkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAg ICAgICAgIFtQYWdlIDIwXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRy aWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgICAgZGVmaW5lZCBh cyBhIFN0cmluZy4NCg0KICAgbyAgPE1hc3RlcktleUlkIChPUFRJT05BTCk+LCBUaGUgdW5pcXVl IHJlZmVyZW5jZSB0byBhIG1hc3RlciBrZXkNCiAgICAgIHdoZW4ga2V5IGRlcml2YXRpb24gc2No ZW1lcyBhcmUgdXNlZCBhbmQgbm8gc3BlY2lmaWMga2V5IGlzDQogICAgICB0cmFuc3BvcnRlZCBi dXQgb25seSB0aGUgcmVmZXJlbmNlIHRvIHRoZSBtYXN0ZXIga2V5IHVzZWQgdG8NCiAgICAgIGRl cml2ZSBhIHNwZWNpZmljIGtleSBhbmQgc29tZSBkZXJpdmF0aW9uIGRhdGEuDQoNCiAgIG8gIDxG cmllbmRseU5hbWUgKE9QVElPTkFMKT4sIFRoZSB1c2VyIGZyaWVuZGx5IG5hbWUgdGhhdCBpcyBh c3NpZ25lZA0KICAgICAgdG8gdGhlIHNlY3JldCBrZXkgZm9yIGVhc3kgcmVmZXJlbmNlLiAgVGhl IEZyaWVuZGx5TmFtZSBpcyBkZWZpbmVkDQogICAgICBhcyBhIFN0cmluZy4NCg0KICAgbyAgPERh dGEgKE9QVElPTkFMKT4sIHRoZSBlbGVtZW50IGNhcnJ5aW5nIHRoZSBkYXRhIHJlbGF0ZWQgdG8g dGhlDQogICAgICBrZXkgYXMgZGVmaW5lZCBpbiBTZWN0aW9uIDUuNC4xDQoNCiAgIG8gIDxQSU5Q b2xpY3kgKE9QVElPTkFMKT4sIHRoZSBwb2xpY3kgb2YgdGhlIFBJTiByZWxhdGluZyB0byB0aGUN CiAgICAgIHVzYWdlIG9mIHRoaXMga2V5IGFzIGRlZmluZWQgaW4gU2VjdGlvbiA1LjQuNA0KDQog ICBvICA8RXhwaXJ5RGF0ZSAoT1BUSU9OQUwpPiwgdGhlIGV4cGlyeSBkYXRlIG9mIHRoZSBrZXks IGl0IE1VU1Qgbm90DQogICAgICBiZSBwb3NzaWJsZSB0byB1c2UgdGhpcyBrZXkgYWZ0ZXIgdGhp cyBkYXRlDQoNCiAgIG8gIDxTdGFydERhdGUgKE9QVElPTkFMKT4sIHRoZSBzdGFydCBkYXRlIG9m IHRoZSBrZXksIGl0IE1VU1Qgbm90IGJlDQogICAgICBwb3NzaWJsZSB0byB1c2UgdGhpcyBrZXkg YmVmb3JlIHRoaXMgZGF0ZQ0KDQo1LjQuMS4gIERhdGEgKE9QVElPTkFMKQ0KDQogICBEZWZpbmVz IHRoZSBkYXRhIGF0dHJpYnV0ZXMgb2YgdGhlIHN5bW1ldHJpYyBrZXkuICBFYWNoIGlzIGEgbmFt ZQ0KICAgdmFsdWUgcGFpciB3aGljaCBoYXMgZWl0aGVyIGEgcGxhaW4gdmFsdWUgKGluIGNhc2Ug b2Ygbm8gZW5jcnlwdGlvbikNCiAgIG9yIGEgZW5jcnlwdGVkIHZhbHVlIGFzIGRlZmluZWQgaW4g RW5jcnlwdGVkRGF0YVR5cGUgaW4gWE1MDQogICBFbmNyeXB0aW9uLg0KDQogICBUaGlzIGlzIGFs c28gd2hlcmUgdGhlIGtleSB2YWx1ZSBpcyB0cmFuc3BvcnRlZCwgU2VjdGlvbiA3IGRlZmluZXMg YQ0KICAgbGlzdCBvZiByZXNlcnZlZCBhdHRyaWJ1dGUgbmFtZXMuDQoNCiAgIERhdGEgZWxlbWVu dCBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAg ICAgICAgICAgW1BhZ2UgMjFdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1l dHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQo8eHM6Y29tcGxleFR5 cGUgbmFtZT0iRGF0YVR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICA8eHM6Y2hvaWNlPg0K ICAgICAgIDx4czplbGVtZW50IG5hbWU9IlBsYWluVmFsdWUiIHR5cGU9InhzOmJhc2U2NEJpbmFy eSIvPg0KICAgICAgIDx4czplbGVtZW50IG5hbWU9IkVuY3J5cHRlZFZhbHVlIiB0eXBlPSJ4ZW5j OkVuY3J5cHRlZERhdGFUeXBlIi8+DQogICAgPC94czpjaG9pY2U+DQogICAgPHhzOmVsZW1lbnQg bmFtZT0iVmFsdWVNQUMiIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIi8+DQog ICAgPC94czpzZXF1ZW5jZT4NCiAgICA8eHM6YXR0cmlidXRlIG5hbWU9Ik5hbWUiIHR5cGU9Inhz OnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPg0KPC94czpjb21wbGV4VHlwZT4NCg0KICAgVGhlIGF0 dHJpYnV0ZXMgb2YgdGhlIERhdGEgZWxlbWVudCBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6 DQoNCiAgIG8gIE5hbWUsIGRlZmluZXMgdGhlIG5hbWUgb2YgdGhlIG5hbWUtdmFsdWUgcGFpciwg U2VjdGlvbiA3IGRlZmluZXMgYQ0KICAgICAgbGlzdCBvZiByZXNlcnZlZCBhdHRyaWJ1dGUgbmFt ZXMNCg0KICAgVGhlIGVsZW1lbnRzIG9mIHRoZSBEYXRhIGVsZW1lbnQgaGF2ZSB0aGUgZm9sbG93 aW5nIG1lYW5pbmdzOg0KDQogICBvICBUaGUgPFBsYWluVmFsdWU+IGNvbnZleXMgYW4gdW5lbmNy eXB0ZWQgdmFsdWUgb2YgdGhlIG5hbWUtdmFsdWUNCiAgICAgIHBhaXIgaW4gYmFzZSA2NCBlbmNv ZGluZy4NCg0KICAgbyAgVGhlIDxFbmNyeXB0ZWRWYWx1ZT4gZWxlbWVudCBpbiB0aGUgRGF0YVR5 cGUgY29udmV5cyBhbiBlbmNyeXB0ZWQNCiAgICAgIHZhbHVlIG9mIHRoZSBuYW1lLXZhbHVlIHBh aXIgaW5zaWRlIGFuIEVuY3J5cHRlZERhdGFUeXBlIGFzDQogICAgICBkZWZpbmVkIGluIFhNTCBF bmNyeXB0aW9uLg0KDQogICBvICBUaGUgPFZhbHVlTUFDIChPUFRJT05BTCk+IGVsZW1lbnQgaW4g dGhlIERhdGFUeXBlIGNvbnZleXMgYSBrZXllZA0KICAgICAgTUFDIHZhbHVlIG9mIHRoZSB1bmVu Y3J5cHRlZCBkYXRhIGZvciB0aGUgY2FzZXMgd2hlcmUgdGhlDQogICAgICBhbGdvcml0aG0gdG8g cHJvdGVjdCBrZXkgZGF0YSBpbiB0cmFuc2l0LCBhcyBkZXNjcmliZWQgaW4gc2VjdGlvbg0KICAg ICAgU2VjdGlvbiA2LjEuMSAsZG9lcyBub3Qgc3VwcG9ydCBpbnRlZ3JpdHkgY2hlY2tzLg0KDQo1 LjQuMi4gIFVzYWdlIChNQU5EQVRPUlkpDQoNCiAgIFRoZSBVc2FnZSBlbGVtZW50IGRlZmluZXMg dGhlIHVzYWdlIGF0dHJpYnV0ZShzKSBvZiB0aGUga2V5IGVudGl0eS4NCiAgIFVzYWdlIGlzIGRl ZmluZWQgYXMgZm9sbG93czoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3ll ciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAg ICBbUGFnZSAyMl0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtl eSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIDx4czpjb21wbGV4VHlwZSBu YW1lPSJVc2FnZVR5cGUiPg0KICAgICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICAg ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ2hhbGxlbmdlRm9ybWF0IiBtaW5PY2N1cnM9IjAiPg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkZvcm1hdCINCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpWYWx1ZUZvcm1hdFR5cGUiDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJNaW4iDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHR5cGU9InhzOnVuc2lnbmVkSW50IiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iTWF4Ig0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0eXBlPSJ4czp1bnNpZ25lZEludCIgdXNlPSJyZXF1aXJlZCIvPg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkNoZWNrRGln aXRzIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ4czpib29sZWFuIiBkZWZh dWx0PSJmYWxzZSIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC94czpjb21wbGV4VHlw ZT4NCiAgICAgICAgICAgICAgICAgICA8L3hzOmVsZW1lbnQ+DQogICAgICAgICAgICAgICAgICAg PHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VGb3JtYXQiPg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHM6 YXR0cmlidXRlIG5hbWU9IkZvcm1hdCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlw ZT0icHNrYzpWYWx1ZUZvcm1hdFR5cGUiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVz ZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0 ZSBuYW1lPSJMZW5ndGgiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InhzOnVu c2lnbmVkSW50IiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg IDx4czphdHRyaWJ1dGUgbmFtZT0iQ2hlY2tEaWdpdHMiDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHR5cGU9InhzOmJvb2xlYW4iIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAgICAgICAgICAg ICAgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgICAgICAgICAgICAgICAgIDwveHM6 ZWxlbWVudD4NCiAgICAgICAgICAgICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIg cHJvY2Vzc0NvbnRlbnRzPSJsYXgiDQogICAgICAgICAgICAgICAgICAgbWluT2NjdXJzPSIwIiBt YXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAg ICAgICA8eHM6YXR0cmlidXRlIG5hbWU9Ik9UUCIgdHlwZT0ieHM6Ym9vbGVhbiINCiAgICAgICAg ICAgZGVmYXVsdD0iZmFsc2UiLz4NCiAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJDUiIg dHlwZT0ieHM6Ym9vbGVhbiINCiAgICAgICAgICAgZGVmYXVsdD0iZmFsc2UiLz4NCiAgICAgICAg ICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJJbnRlZ3JpdHkiIHR5cGU9InhzOmJvb2xlYW4iDQogICAg ICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0i RW5jcnlwdCIgdHlwZT0ieHM6Ym9vbGVhbiINCiAgICAgICAgICAgZGVmYXVsdD0iZmFsc2UiLz4N CiAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJVbmxvY2siIHR5cGU9InhzOmJvb2xlYW4i DQogICAgICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAgICAgICAgIDx4czphbnlBdHRyaWJ1 dGUgbmFtZXNwYWNlPSIjI290aGVyIi8+DQogICA8L3hzOmNvbXBsZXhUeXBlPg0KDQogICBUaGUg YXR0cmlidXRlcyBvZiB0aGUgVXNhZ2UgZWxlbWVudCBkZWZpbmUgdGhlIGludGVuZGVkIHVzYWdl IG9mIHRoZQ0KICAga2V5IGFuZCBhcmUgYSBjb21iaW5hdGlvbiBvZiBvbmUgb3IgbW9yZSBvZiB0 aGUgZm9sbG93aW5nIChzZXQgdG8NCiAgIHRydWUpOg0KDQogICBvICBPVFAsIHRoZSBrZXkgd2ls bCBiZSB1c2VkIGZvciBPVFAgZ2VuZXJhdGlvbg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAg ICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSAyM10NCgwN CkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAg ICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIG8gIENSLCB0aGUga2V5IHdpbGwgYmUgdXNlZCBmb3Ig Q2hhbGxlbmdlL1Jlc3BvbnNlIHB1cnBvc2VzDQoNCiAgIG8gIEVuY3J5cHQsIHRoZSBrZXkgd2ls bCBiZSB1c2VkIGZvciBkYXRhIGVuY3J5cHRpb24gcHVycG9zZXMNCg0KICAgbyAgSW50ZWdyaXR5 LCB0aGUga2V5IHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSBhIGtleWVkIG1lc3NhZ2UgZGlnZXN0 DQogICAgICBmb3IgZGF0YSBpbnRlZ3JpdHkgb3IgYXV0aGVudGljYXRpb24gcHVycG9zZXMuDQoN CiAgIG8gIFVubG9jaywgdGhlIGtleSB3aWxsIGJlIHVzZWQgZm9yIGFuIGludmVyc2UgY2hhbGxl bmdlIHJlc3BvbnNlIGluDQogICAgICB0aGUgY2FzZSBhIHVzZXIgaGFzIGxvY2tlZCB0aGUgZGV2 aWNlIGJ5IGVudGVyaW5nIGEgd3JvbmcgUElOIHRvbw0KICAgICAgbWFueSB0aW1lcyAoZm9yIGRl dmljZXMgd2l0aCBQSU4taW5wdXQgY2FwYWJpbGl0eSkNCg0KNS40LjIuMS4gIE9UUCBhbmQgQ1Ig c3BlY2lmaWMgVXNhZ2UgZWxlbWVudHMgKE9QVElPTkFMKQ0KDQogICBXaGVuIHRoZSBpbnRlbmRl ZCB1c2FnZSBvZiBhIGtleSB1c2FnZSBpcyBPVFAgYW5kL29yIENSLCB0aGUNCiAgIGZvbGxvd2lu ZyBhZGRpdGlvbmFsIGVsZW1lbnRzIE1VU1QgYmUgcHJvdmlkZWQgd2l0aGluIHRoZSBVc2FnZQ0K ICAgZWxlbWVudCB0byBzdXBwb3J0IHRoZSBPVFAgYW5kL29yIHRoZSByZXNwb25zZSBjb21wdXRh dGlvbiBhcw0KICAgcmVxdWlyZWQgYnkgdGhlIHVuZGVybHlpbmcgYWxnb3JpdGhtLiAgVGhlc2Ug ZWxlbWVudHMgYWxzbyBhbGxvdyB0bw0KICAgY3VzdG9taXplIG9yIGNvbmZpZ3VyZSB0aGUgcmVz dWx0IG9mIHRoZSBjb21wdXRhdGlvbiAoZS5nLiBmb3JtYXQsDQogICBsZW5ndGgpLg0KDQo1LjQu Mi4xLjEuICBDaGFsbGVuZ2VGb3JtYXQgZWxlbWVudCAoTUFOREFUT1JZKQ0KDQogICBUaGUgQ2hh bGxlbmdlRm9ybWF0IGVsZW1lbnQgZGVmaW5lcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZQ0K ICAgY2hhbGxlbmdlIGluIGEgQ1IgdXNhZ2Ugc2NlbmFyaW8uICBUaGUgQ2hhbGxlbmdlIGVsZW1l bnQgaXMgZGVmaW5lZA0KICAgYnkgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOg0KDQogICBvICBG b3JtYXQgKE1BTkRBVE9SWSkNCg0KICAgICAgICAgRGVmaW5lcyB0aGUgZm9ybWF0IG9mIHRoZSBj aGFsbGVuZ2UgYWNjZXB0ZWQgYnkgdGhlIGRldmljZSBhbmQNCiAgICAgICAgIE1VU1QgYmUgb25l IG9mIHRoZSB2YWx1ZXMgZGVmaW5lZCBpbiBTZWN0aW9uIDUuNC4zDQoNCiAgIG8gIENoZWNrRGln aXQgKE9QVElPTkFMKQ0KDQogICAgICAgICBEZWZpbmVzIGlmIHRoZSBkZXZpY2UgbmVlZHMgdG8g Y2hlY2sgdGhlIGFwcGVuZGVkIEx1aG4gY2hlY2sNCiAgICAgICAgIGRpZ2l0IGNvbnRhaW5lZCBp biBhIHByb3ZpZGVkIGNoYWxsZW5nZS4gIFRoaXMgaXMgb25seSB2YWxpZCBpZg0KICAgICAgICAg dGhlIEZvcm1hdCBhdHRyaWJ1dGUgaXMgJ0RFQ0lNQUwnLiAgVmFsdWUgTVVTVCBiZToNCg0KICAg ICAgICAgICAgVFJVRSBkZXZpY2Ugd2lsbCBjaGVjayB0aGUgYXBwZW5kZWQgTHVobiBjaGVjayBk aWdpdCBpbiBhDQogICAgICAgICAgICBwcm92aWRlZCBjaGFsbGVuZ2UNCg0KICAgICAgICAgICAg RkFMU0UgZGV2aWNlIHdpbGwgbm90IGNoZWNrIGFwcGVuZGVkIEx1aG4gY2hlY2sgZGlnaXQgaW4N CiAgICAgICAgICAgIGNoYWxsZW5nZQ0KDQogICBvICBNaW4gKE1BTkRBVE9SWSkNCg0KDQoNCg0K DQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAg ICAgICAgICAgICAgW1BhZ2UgMjRdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5 bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICAgICAgICBE ZWZpbmVzIHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIGNoYWxsZW5nZSBhY2NlcHRlZCBieSB0aGUN CiAgICAgICAgIGRldmljZSBmb3IgQ1IgbW9kZS4NCg0KICAgICAgICAgSWYgdGhlIEZvcm1hdCBh dHRyaWJ1dGUgaXMgJ0RFQ0lNQUwnLCAnSEVYQURFQ0lNQUwnIG9yDQogICAgICAgICAnQUxQSEFO VU1FUklDJyB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgbWluaW11bSBudW1iZXIgb2YNCiAgICAg ICAgIGRpZ2l0cy9jaGFyYWN0ZXJzLg0KDQogICAgICAgICBJZiB0aGUgRm9ybWF0IGF0dHJpYnV0 ZSBpcyAnQkFTRTY0JyBvciAnQklOQVJZJywgdGhpcyB2YWx1ZQ0KICAgICAgICAgaW5kaWNhdGVz IHRoZSBtaW5pbXVtIG51bWJlciBvZiBieXRlcyBvZiB0aGUgdW5lbmNvZGVkIHZhbHVlLg0KDQog ICAgICAgICBWYWx1ZSBNVVNUIGJlOg0KDQoNCg0KICAgICAgICAgICAgVW5zaWduZWQgaW50ZWdl ci4NCg0KICAgbyAgTWF4IChNQU5EQVRPUlkpDQoNCiAgICAgICAgIERlZmluZXMgdGhlIG1heGlt dW0gc2l6ZSBvZiB0aGUgY2hhbGxlbmdlIGFjY2VwdGVkIGJ5IHRoZQ0KICAgICAgICAgZGV2aWNl IGZvciBDUiBtb2RlLg0KDQogICAgICAgICBJZiB0aGUgRm9ybWF0IGF0dHJpYnV0ZSBpcyAnREVD SU1BTCcsICdIRVhBREVDSU1BTCcgb3INCiAgICAgICAgICdBTFBIQU5VTUVSSUMnIHRoaXMgdmFs dWUgaW5kaWNhdGVzIHRoZSBtYXhpbXVtIG51bWJlciBvZg0KICAgICAgICAgZGlnaXRzL2NoYXJh Y3RlcnMuDQoNCiAgICAgICAgIElmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdCQVNFNjQnIG9y ICdCSU5BUlknLCB0aGlzIHZhbHVlDQogICAgICAgICBpbmRpY2F0ZXMgdGhlIG1heGltdW0gbnVt YmVyIG9mIGJ5dGVzIG9mIHRoZSB1bmVuY29kZWQgdmFsdWUuDQoNCiAgICAgICAgIFZhbHVlIE1V U1QgYmU6DQoNCg0KDQogICAgICAgICAgICBVbnNpZ25lZCBpbnRlZ2VyLg0KDQo1LjQuMi4xLjIu ICBSZXNwb25zZUZvcm1hdCBlbGVtZW50IChNQU5EQVRPUlkpDQoNCiAgIFRoZSBSZXNwb25zZUZv cm1hdCBlbGVtZW50IGRlZmluZXMgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgcmVzdWx0DQog ICBvZiBhIGNvbXB1dGF0aW9uLiAgVGhpcyBkZWZpbmVzIHRoZSBmb3JtYXQgb2YgdGhlIE9UUCBv ciBvZiB0aGUNCiAgIHJlc3BvbnNlIHRvIGEgY2hhbGxlbmdlLiAgRm9yIGNhc2VzIHdoZXJlIHRo ZSBrZXkgaXMgYSBQSU4gdmFsdWUgdGhpcw0KICAgZWxlbWVudCBjb250YWlucyB0aGUgZm9ybWF0 IG9mIHRoZSBQSU4gaXRzZWxmLiAgVGhlIFJlc3BvbnNlDQogICBhdHRyaWJ1dGUgaXMgZGVmaW5l ZCBieSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6DQoNCiAgIG8gIEZvcm1hdCAoTUFOREFUT1JZ KQ0KDQogICAgICAgICBEZWZpbmVzIHRoZSBmb3JtYXQgb2YgdGhlIHJlc3BvbnNlIGdlbmVyYXRl ZCBieSB0aGUgZGV2aWNlIGFuZA0KICAgICAgICAgTVVTVCBiZSBvbmUgb2YgdGhlIHZhbHVlcyBk ZWZpbmVkIGluIFNlY3Rpb24gNS40LjMNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAg ICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSAyNV0NCgwNCklu dGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAg ICAgIEp1bmUgMjAwOA0KDQoNCiAgIG8gIENoZWNrRGlnaXQgKE9QVElPTkFMKQ0KDQogICAgICAg ICBEZWZpbmVzIGlmIHRoZSBkZXZpY2UgbmVlZHMgdG8gYXBwZW5kIGEgTHVobiBjaGVjayBkaWdp dCB0byB0aGUNCiAgICAgICAgIHJlc3BvbnNlLiAgVGhpcyBpcyBvbmx5IHZhbGlkIGlmIHRoZSBG b3JtYXQgYXR0cmlidXRlIGlzDQogICAgICAgICAnREVDSU1BTCcuICBWYWx1ZSBNVVNUIGJlOg0K DQogICAgICAgICAgICBUUlVFIGRldmljZSB3aWxsIGFwcGVuZCBhIEx1aG4gY2hlY2sgZGlnaXQg dG8gdGhlIHJlc3BvbnNlLg0KDQogICAgICAgICAgICBGQUxTRSBkZXZpY2Ugd2lsbCBub3QgYXBw ZW5kIGEgTHVobiBjaGVjayBkaWdpdCB0byB0aGUNCiAgICAgICAgICAgIHJlc3BvbnNlLg0KDQog ICBvICBMZW5ndGggKE1BTkRBVE9SWSkNCg0KICAgICAgICAgRGVmaW5lcyB0aGUgbGVuZ3RoIG9m IHRoZSByZXNwb25zZSBnZW5lcmF0ZWQgYnkgdGhlIGRldmljZS4NCg0KICAgICAgICAgSWYgdGhl IEZvcm1hdCBhdHRyaWJ1dGUgaXMgJ0RFQ0lNQUwnLCAnSEVYQURFQ0lNQUwnIG9yDQogICAgICAg ICAnQUxQSEFOVU1FUklDJyB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgbnVtYmVyIG9mIGRpZ2l0 cy8NCiAgICAgICAgIGNoYXJhY3RlcnMuDQoNCiAgICAgICAgIElmIHRoZSBGb3JtYXQgYXR0cmli dXRlIGlzICdCQVNFNjQnIG9yICdCSU5BUlknLCB0aGlzIHZhbHVlDQogICAgICAgICBpbmRpY2F0 ZXMgdGhlIG51bWJlciBvZiBieXRlcyBvZiB0aGUgdW5lbmNvZGVkIHZhbHVlLg0KDQogICAgICAg ICBWYWx1ZSBNVVNUIGJlOg0KDQoNCg0KICAgICAgICAgICAgVW5zaWduZWQgaW50ZWdlci4NCg0K NS40LjMuICBWYWx1ZUZvcm1hdA0KDQogICBUaGUgVmFsdWVGb3JtYXQgZWxlbWVudCBkZWZpbmVz IGFsbG93ZWQgZm9ybWF0cyBmb3IgY2hhbGxlbmdlcyBvcg0KICAgcmVzcG9uc2VzIGluIE9UUCBh bGdvcml0aG1zLg0KDQogICBWYWx1ZUZvcm1hdCBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0K ICAgPHNpbXBsZVR5cGUgbmFtZT0iVmFsdWVGb3JtYXQiPg0KICAgICA8cmVzdHJpY3Rpb24gYmFz ZT0ic3RyaW5nIj4NCiAgICAgICA8ZW51bWVyYXRpb24gdmFsdWU9IkRFQ0lNQUwiLz4NCiAgICAg ICA8ZW51bWVyYXRpb24gdmFsdWU9IkhFWEFERUNJTUFMIi8+DQogICAgICAgPGVudW1lcmF0aW9u IHZhbHVlPSJBTFBIQU5VTUVSSUMiLz4NCiAgICAgICA8ZW51bWVyYXRpb24gdmFsdWU9IkJBU0U2 NCIvPg0KICAgICAgIDxlbnVtZXJhdGlvbiB2YWx1ZT0iQklOQVJZIi8+DQogICAgIDwvcmVzdHJp Y3Rpb24+DQogICA8L3NpbXBsZVR5cGU+DQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAg ICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSAyNl0NCgwN CkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAg ICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgICAgIERFQ0lNQUwgT25seSBudW1lcmljYWwgZGlnaXRz DQoNCiAgICAgIEhFWEFERUNJTUFMIEhleGFkZWNpbWFsIHJlc3BvbnNlDQoNCiAgICAgIEFMUEhB TlVNRVJJQyBBbGwgbGV0dGVycyBhbmQgbnVtYmVycyAoY2FzZSBzZW5zaXRpdmUpDQoNCiAgICAg IEJBU0U2NCBCYXNlIDY0IGVuY29kZWQNCg0KICAgICAgQklOQVJZIEJpbmFyeSBkYXRhLCB0aGlz IGlzIG1haW5seSB1c2VkIGluIGNhc2Ugb2YgY29ubmVjdGVkDQogICAgICBkZXZpY2VzDQoNCjUu NC40LiAgUElOUG9saWN5DQoNCiAgIFRoZSBQSU5Qb2xpY3kgZWxlbWVudCBwcm92aWRlcyBhIG1l YW4gdG8gZGVmaW5lIGhvdyB0aGUgdXNhZ2Ugb2YgYQ0KICAgc3BlY2lmaWMga2V5IGlzIHByb3Rl Y3RlZCBieSBhIFBJTi4gIFRoZSBQSU4gaXRzZWxmIGNhbiBiZQ0KICAgdHJhbnNtaXR0ZWQgYXMg YSBrZXkgdXNpbmcgdGhlIGNvbnRhaW5lci4NCg0KICAgSWYgdGhlIFBJTlBvbGljeSBlbGVtZW50 IGlzIHByZXNlbnQgaW4gdGhlIEtleSBlbGVtZW50IHRoZW4gdGhlIGtleQ0KICAgaXMgcHJvdGVj dGVkIHdpdGggYSBQSU4gYXMgZGVmaW5lZCB3aXRoaW4gdGhlIFBJTlBvbGljeSBlbGVtZW50Lg0K DQogICBQSU5Qb2xpY3kgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCiAgPHhzOmNvbXBsZXhU eXBlIG5hbWU9IlBJTlBvbGljeVR5cGUiPg0KICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAg IDx4czplbGVtZW50IG5hbWU9IlBJTlVzYWdlTW9kZSIgdHlwZT0icHNrYzpQSU5Vc2FnZU1vZGVU eXBlIi8+DQogICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iV3JvbmdQSU5UcnkiIHR5cGU9Inhz OnVuc2lnbmVkSW50Ig0KICAgICAgICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICAg ICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiDQog ICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQog ICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iUElOUG9s aWN5SWQiIHR5cGU9InhzOklEIiB1c2U9Im9wdGlvbmFsIi8+DQogICAgICA8eHM6YXR0cmlidXRl IG5hbWU9IlBJTktleUlkIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4NCiAgPC94 czpjb21wbGV4VHlwZT4NCg0KICAgVGhlIGF0dHJpYnV0ZXMgb2YgUElOUG9saWN5IGhhdmUgdGhl IGZvbGxvd2luZyBtZWFuaW5nDQoNCiAgIG8gIFBJTlBvbGljeUlkIChPUFRJT05BTCksIHRoZSB1 bmlxdWUgSWQgb2YgdGhpcyBQSU5Qb2xpY3kgd2l0aGluDQogICAgICB0aGlzIGNvbnRhaW5lcg0K DQogICBvICBQSU5LZXlJZCAoT1BUSU9OQUwpLCB0aGUgdW5pcXVlIGtleSBJZCB3aXRoaW4gdGhp cyBjb250YWluZXIgdGhhdA0KICAgICAgY29udGFpbnMgdGhlIHZhbHVlIG9mIHRoZSBQSU4gdGhh dCBwcm90ZWN0cyB0aGUga2V5DQoNCiAgIFRoZSBlbGVtZW50cyBvZiBQSU5Qb2xpY3kgaGF2ZSB0 aGUgZm9sbG93aW5nIG1lYW5pbmcNCg0KICAgbyAgPFBJTlVzYWdlTW9kZSAoTUFOREFUT1JZKT4g LCB0aGUgd2F5IHRoZSBQSU4gaXMgdXNlZCBkdXJpbmcgdGhlDQogICAgICB1c2FnZSBvZiB0aGUg a2V5IGFzIGRlZmluZWQgaW4gU2VjdGlvbiA1LjQuNC4xDQoNCg0KDQoNCkhveWVyLCBldCBhbC4g ICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAgIFtQYWdlIDI3 XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5l ciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgbyAgPFdyb25nUElOVHJ5IChPUFRJT05BTCk+ LCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBQSU4gY2FuIGJlDQogICAgICBlbnRlcmVkIHdyb25n bHkgYmVmb3JlIGl0IE1VU1Qgbm90IGJlIHBvc3NpYmxlIHRvIHVzZSB0aGUga2V5DQogICAgICBh bnltb3JlDQoNCjUuNC40LjEuICBQSU5Vc2FnZU1vZGUNCg0KICAgVGhlIFBJTlVzYWdlTW9kZSBl bGVtZW50IGRlZmluZXMgaG93IHRoZSBQSU4gaXMgdXNlZCB3aXRoIGEgc3BlY2lmaWMNCiAgIGtl eQ0KDQogICBQSU5Vc2FnZU1vZGUgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCiAgIDx4czpj b21wbGV4VHlwZSBuYW1lPSJQSU5Vc2FnZU1vZGVUeXBlIj4NCiAgICAgICA8eHM6Y2hvaWNlIG1h eE9jY3Vycz0idW5ib3VuZGVkIj4NCiAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iTG9jYWwi Lz4NCiAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUHJlcGVuZCIvPg0KICAgICAgICAgICA8 eHM6ZWxlbWVudCBuYW1lPSJJbkFsZ28iLz4NCiAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9 IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICAgICBtaW5PY2N1cnM9IjAi IG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgPC94czpjaG9pY2U+DQogICA8L3hzOmNv bXBsZXhUeXBlPg0KDQogICBUaGUgZWxlbWVudHMgb2YgUElOUG9saWN5IGhhdmUgdGhlIGZvbGxv d2luZyBtZWFuaW5nDQoNCiAgIG8gIDxMb2NhbD4sIHRoZSBQSU4gaXMgY2hlY2tlZCBsb2NhbGx5 IG9uIHRoZSBkZXZpY2UgYmVmb3JlIGFsbG93aW5nDQogICAgICB0aGUga2V5IHRvIGJlIHVzZWQg aW4gZXhlY3V0aW5nIHRoZSBhbGdvcml0aG0NCg0KICAgbyAgPFByZXBlbmQ+LCB0aGUgUElOIGlz IHByZXBlbmRlZCB0byB0aGUgT1RQIG9yIHJlc3BvbnNlIGhhbmNlIGl0DQogICAgICBNVVNUIGJl IGNoYWNrZWQgYnkgdGhlIHZhbGlkYXRpb24gc2VydmVyDQoNCiAgIG8gIDxJbkFsZ28+LCB0aGUg UElOIGlzIHVzZWQgYXMgcGFydCBvZiB0aGUgYWxnb3JpdGhtIGNvbXB1dGF0aW9uDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAg RXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgMjhdDQoMDQpJbnRl cm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAg ICBKdW5lIDIwMDgNCg0KDQo2LiAgVXNhZ2UgYW5kIHByb2ZpbGUgb2YgYWxnb3JpdGhtcyBmb3Ig dGhlIHBvcnRhYmxlIHN5bW1ldHJpYyBrZXkNCiAgICBjb250YWluZXINCg0KICAgVGhpcyBzZWN0 aW9uIGRldGFpbHMgdGhlIHVzZSBvZiB0aGUgWE1MIGVuY3J5cHRpb24gYW5kIFhNTCBzaWduYXR1 cmUNCiAgIGVsZW1lbnRzIHRvIHByb3RlY3QgdGhlIGtleXMgdHJhbnNwb3J0ZWQgaW4gdGhlIGNv dGFpbmVyLiAgSXQgYWxzbw0KICAgcHJvZmlsZXMgdGhlIG51bWJlciBvZiBhbGdvcml0aG1zIHN1 cHBvcnRlZCBieSBYTUwgZW5jcnlwdGlvbiBhbmQgWE1MDQogICBzaWduYXR1cmUgdG8gYSBtYW5k YXRvcnkgc3Vic2V0IGZvciBpbnRlcm9wZXJhYmlsaXR5Lg0KDQogICBXaGVuIG5vIGFsZ29yaXRo bSBpcyBwcm92aWRlZCB0aGUgdmFsdWVzIHdpdGhpbiB0aGUgY29udGFpbmVyIGFyZQ0KICAgdW5l bmNyeXB0ZWQsIGltcGxlbWVudGF0aW9ucyBTSEFMTCBlbnN1cmUgdGhlIHByaXZhY3kgb2YgdGhl IGtleSBkYXRhDQogICB0aHJvdWdoIG90aGVyIHN0YW5kYXJkIG1lY2hhbmlzbXMgZS5nLiB0cmFu c3BvcnQgbGV2ZWwgZW5jcnlwdGlvbi4NCg0KNi4xLiAgVXNhZ2Ugb2YgRW5jcnlwdGlvbktleSB0 byBwcm90ZWN0IGtleXMgaW4gdHJhbnNpdA0KDQogICBUaGUgRW5jcnlwdGlvbktleSBlbGVtZW50 IGluIHRoZSBLZXlDb250YWluZXIgZGVmaW5lcyB0aGUga2V5LA0KICAgYWxnb3JpdGhtIGFuZCBw YXJhbWV0ZXJzIHVzZWQgdG8gZW5jcnlwdCB0aGUgU2VjcmV0IEtleSBkYXRhDQogICBhdHRyaWJ1 dGVzIGluIHRoZSBDb250YWluZXIuICBUaGUgc3RhbmRhcmQgc2NoZW1hIFtYTUxFTkNdIGlzIGFk b3B0ZWQNCiAgIGluIGNhcnJ5IHN1Y2ggaW5mb3JtYXRpb24gYW5kIGFuIGVuY3J5cHRlZCB2YWx1 ZS4gIFRoZSBlbmNyeXB0aW9uIGlzDQogICBhcHBsaWVkIG9uIGVhY2ggaW5kaXZpZHVhbCBTZWNy ZXQgS2V5IGRhdGEgaW4gdGhlIENvbnRhaW5lci4gIFRoZQ0KICAgZW5jcnlwdGlvbiBtZXRob2Qg TVVTVCBiZSB0aGUgc2FtZSBmb3IgYWxsIFNlY3JldCBLZXkgZGF0YSBpbiB0aGUNCiAgIGNvbnRh aW5lci4NCg0KICAgVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBkZWZpbmUgc3BlY2lmaWNhbGx5IHRo ZSBkaWZmZXJlbnQgc3VwcG9ydGVkDQogICBtZWFucyB0byBwcm90ZWN0IHRoZSBrZXlzOg0KDQo2 LjEuMS4gIFByb3RlY3Rpbmcga2V5cyB1c2luZyBhIHByZS1zaGFyZWQga2V5IHZpYSBzeW1tZXRy aWMgYWxnb3JpdGhtcw0KDQogICBXaGVuIHByb3RlY3RpbmcgdGhlIHBheWxvYWQgd2l0aCBwcmUt c2hhcmVkIGtleXMgaW1wbGVtZW50YXRpb25zDQogICBTSE9VTEQgc2V0IHRoZSBuYW1lIG9mIHRo ZSBzcGVjaWZpYyBwcmUtc2hhcmVkIGtleSBpbiB0aGUgS2V5TmFtZQ0KICAgZWxlbWVudCBvZiB0 aGUgRW5jcnlwdGlvbktleSBvZiB0aGUgS2V5Q29udGFpbmVyLiAgRm9yIGV4YW1wbGU6DQoNCg0K ICAgPEtleUNvbnRhaW5lciBWZXJzaW9uPSIxLjAiDQogICAgIHhtbG5zPSJ1cm46aWV0ZjpwYXJh bXM6eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCINCiAgICAgeG1sbnM6ZHM9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiDQogICAgIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDEvMDQveG1sZW5jIyI+DQogICAgICAgPEVuY3J5cHRpb25LZXk+DQogICAgICAg ICAgIDxkczpLZXlOYW1lPlBSRV9TSEFSRURfS0VZPC9kczpLZXlOYW1lPg0KICAgICAgIDwvRW5j cnlwdGlvbktleT4NCiAgICAgICAuLi4uDQoNCiAgIFRoZSBmb2xsb3dpbmcgaXMgdGhlIGxpc3Qg b2Ygc3ltbWV0cmljIGtleSBlbmNyeXB0aW9uIGFsZ29yaXRobSBhbmQNCiAgIHBvc3NpYmxlIHBh cmFtZXRlcnMgdXNlZCB0byBwcm90ZWN0IHRoZSBTZWNyZXQgS2V5IGRhdGEgaW4gdGhlDQogICBj b250YWluZXIuICBTeXN0ZW1zIGltcGxlbWVudGluZyBQU0tDIE1VU1Qgc3VwcG9ydCB0aGUgTUFO REFUT1JZDQogICBhbGdvcml0aG1zIGRldGFpbGVkIGJlbG93Lg0KDQogICBUaGUgZW5jcnlwdGlv biBhbGdvcml0aG0gVVJJIGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZy4NCg0KDQoNCg0KSG95 ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAg ICAgW1BhZ2UgMjldDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBL ZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICBvICBodHRwOi8vd3d3Lncz Lm9yZy8yMDAxLzA0L3htbGVuYyN0cmlwbGVkZXMtY2JjIC0gTUFOREFUT1JZDQoNCiAgIG8gIGh0 dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2FlczEyOC1jYmMgLSBNQU5EQVRPUlkNCg0K ICAgbyAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjYWVzMTkyLWNiYyAtIE9QVElP TkFMDQoNCiAgIG8gIGh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2FlczI1Ni1jYmMg LSBNQU5EQVRPUlkNCg0KICAgbyAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMja3ct dHJpcGxlZGVzIC0gTUFOREFUT1JZDQoNCiAgIG8gIGh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQv eG1sZW5jI2t3LWFlczEyOCAtIE1BTkRBVE9SWQ0KDQogICBvICBodHRwOi8vd3d3LnczLm9yZy8y MDAxLzA0L3htbGVuYyNrdy1hZXMyNTYgLSBNQU5EQVRPUlkNCg0KICAgbyAgaHR0cDovL3d3dy53 My5vcmcvMjAwMS8wNC94bWxlbmMja3ctYWVzNTEyIC0gT1BUSU9OQUwNCg0KICAgV2hlbiBhbGdv cml0aG1zIHdpdGhvdXQgaW50ZWdyaXR5IGNoZWNrcyBhcmUgdXNlZCAoZS5nLg0KICAgaHR0cDov L3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjYWVzMjU2LWNiYykgYSBrZXllZCBNQUMgdmFsdWUg dXNpbmcNCiAgIHRoZSBzYW1lIGtleSBhcyB0aGUgZW5jcnlwdGlvbiBrZXkgU0hPVUxEIGJlIHBs YWNlZCBpbiB0aGUgVmFsdWVNQUMNCiAgIGVsZW1lbnQgb2YgdGhlIERhdGEgZWxlbWVudC4gIElu IHRoaXMgY2FzZSB0aGUgTUFDIGFsZ29yaXRobSB0eXBlDQogICBNVVNUIGJlIHNldCBpbiB0aGUg TUFDQWxnb3JpdGhtIGVsZW1lbnQgaW4gdGhlIGtleSBjb250YWluZXIgZW50aXR5DQogICBhcyBk ZWZpbmVkIGluIFNlY3Rpb24gNS4xLiAgSW1wbGVtZW50YXRpb25zIG9mIFBTS0MgTVVTVCBzdXBw b3J0IHRoZQ0KICAgTUFOREFUT1JZIE1BQyBhbGdvcml0aG1zIGRldGFpbGVkIGJlbG93LiAgVGhl IE1BQ0FsZ29yaXRobSBVUkkgY2FuIGJlDQogICBvbmUgb2YgdGhlIGZvbGxvd2luZzoNCg0KICAg byAgaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2htYWMtc2hhMSAtIE1BTkRBVE9S WQ0KDQogICBGb3IgZXhhbXBsZToNCg0KDQogICA8S2V5Q29udGFpbmVyIFZlcnNpb249IjEuMCIN CiAgICAgeG1sbnM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4w Ig0KICAgICB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyINCiAg ICAgeG1sbnM6eGVuYz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjIj4NCiAgICAg ICA8RW5jcnlwdGlvbktleT4NCiAgICAgICAgICAgPGRzOktleU5hbWU+UFJFX1NIQVJFRF9LRVk8 L2RzOktleU5hbWU+DQogICAgICAgPC9FbmNyeXB0aW9uS2V5Pg0KICAgICAgIDxNQUNBbGdvcml0 aG0+aHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2htYWMtc2hhMQ0KICAgICAgIDwv TUFDQWxnb3JpdGhtPg0KICAgICAgIC4uLi4uDQoNCjYuMS4yLiAgUHJvdGVjdGluZyBrZXlzIHVz aW5nIHBhc3NwaHJhc2UgYmFzZWQgZW5jcnlwdGlvbiBrZXlzDQoNCiAgIFRvIGJlIGFibGUgdG8g c3VwcG9ydCBwYXNzcGhyYXNlIGJhc2VkIGVuY3J5cHRpb24ga2V5cyBhcyBkZWZpbmVkIGluDQog ICBQS0NTIzUgdGhlIGZvbGxvd2luZyBYTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIFBCRSByZWxh dGVzIHBhcmFtZXRlcnMNCiAgIGhhdmUgYmVlbiBpbnRyb2R1Y2VkIGluIHRoZSBzY2hlbWEuICBB bHRob3VnaCB0aGUgYXBwcm9hY2ggaXMNCiAgIGV4dGVuc2libGUgaW1wbGVtZW50YXRpb25zIG9m IFBTS0MgTVVTVCBzdXBwb3J0IHRoZQ0KICAgS2V5RGVyaXZhdGlvbk1ldGhvZCBhbGdvcml0aG0g VVJJIG9mDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIw LCAyMDA4ICAgICAgICAgICAgICBbUGFnZSAzMF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9y dGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAg IGh0dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy9zY2hlbWFzL3BrY3MtNSNw YmtkZjIuDQoNCg0KICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRlcml2ZWRLZXlUeXBlIj4NCiAg ICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IktleURlcml2 YXRpb25NZXRob2QiDQogICAgICAgICAgICAgdHlwZT0icHNrYzpLZXlEZXJpdmF0aW9uTWV0aG9k VHlwZSIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgIDx4czplbGVtZW50IHJlZj0ieGVuYzpS ZWZlcmVuY2VMaXN0IiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFt ZT0iQ2FycmllZEtleU5hbWUiIHR5cGU9InhzOnN0cmluZyINCiAgICAgICAgICAgICBtaW5PY2N1 cnM9IjAiLz4NCiAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgIDx4czphdHRyaWJ1dGUgbmFt ZT0iSWQiIHR5cGU9InhzOklEIiB1c2U9Im9wdGlvbmFsIi8+DQogICAgICAgPHhzOmF0dHJpYnV0 ZSBuYW1lPSJUeXBlIiB0eXBlPSJ4czphbnlVUkkiIHVzZT0ib3B0aW9uYWwiLz4NCiAgICAgICA8 L3hzOmNvbXBsZXhUeXBlPg0KICAgICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJLZXlEZXJpdmF0 aW9uTWV0aG9kVHlwZSI+DQogICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgICAgPHhz OmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIG1pbk9jY3Vycz0iMCINCiAgICAgICAgICAgICAgICAg bWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgIDx4 czphdHRyaWJ1dGUgbmFtZT0iQWxnb3JpdGhtIiB0eXBlPSJ4czphbnlVUkkiDQogICAgICAgdXNl PSJyZXF1aXJlZCIvPg0KICAgPC94czpjb21wbGV4VHlwZT4NCg0KICAgVGhlIGF0dHJpYnV0ZXMg b2YgdGhlIERlcml2ZWRLZXkgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOg0KDQogICBvICBJ RCAoT1BUSU9OQUwpLCB0aGUgdW5pcXVlIElEIGZvciB0aGlzIGtleQ0KDQogICBvICBUeXBlIChP UFRJT05BTCksIFRoaXMgYXR0cmlidXRlIHdhcyBpbmNsdWRlZCBmb3IgY29uZm9ybWFuY2Ugd2l0 aA0KICAgICAgeG1sIGVuY3J5cHRpb24sIGl0IGlzIGFuIG9wdGlvbmFsIGF0dHJpYnV0ZSBpZGVu dGlmeWluZyB0eXBlDQogICAgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGxhaW50ZXh0IGZvcm0g b2YgdGhlIGVuY3J5cHRlZCBjb250ZW50Lg0KICAgICAgUGxlYXNlIHNlZSBbWE1MRU5DXSBzZWN0 aW9uIDMuMSBUeXBlIGZvciBtb3JlIGRldGFpbHMuDQoNCiAgIFRoZSBlbGVtZW50cyBvZiB0aGUg RGVyaXZlZEtleSBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6DQoNCiAgIG8gIDxLZXlEZXJp dmF0aW9uTWV0aG9kPjogVVJJIG9mIHRoZSBhbGdvcml0aG1zIHVzZWQgdG8gZGVyaXZlIHRoZQ0K ICAgICAga2V5IGUuZy4NCiAgICAgIChodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJz L3BrY3Mvc2NoZW1hcy9wa2NzLTUjcGJrZGYyKQ0KDQogICBvICA8UmVmZXJlbmNlTGlzdCAoT1BU SU9OQUwpPjogYSBsaXN0IG9mIElEcyBvZiB0aGUgZWxlbWVudHMgdGhhdA0KICAgICAgaGF2ZSBi ZWVuIGVuY3J5cHRlZCBieSB0aGlzIGtleQ0KDQogICBvICA8Q2FycmllZEtleU5hbWUgKE9QVElP TkFMKT46IGZyaWVuZGx5IG5hbWUgb2YgdGhlIGtleQ0KDQogICBXaGVuIHVzaW5nIHRoZSBQS0NT NSBQQkUgYWxnb3JpdGhtDQogICAoVVJJPWh0dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxh YnMvcGtjcy9zY2hlbWFzL3BrY3MtNSNwYmVzMikNCiAgIGFuZCByZWxhdGVkIHBhcmFtZXRlcnMs IHRoZSBEZXJpdmVkS2V5IGVsZW1lbnQgTVVTVCBiZSB1c2VkIHdpdGhpbg0KICAgdGhlIEVuY3J5 cHRpb25LZXkgZWxlbWVudCBvZiB0aGUgS2V5Q29udGFpbmVyIGluIGV4YWN0bHkgdGhlIGZvcm0g YXMNCiAgIHNob3duIGJlbG93Og0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJl cyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgMzFdDQoMDQpJbnRlcm5ldC1E cmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5l IDIwMDgNCg0KDQogICA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KICAg PEtleUNvbnRhaW5lcg0KICAgICB4bWxucz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92 OmNvbnRhaW5lcjoxLjAiDQogICAgIHhtbG5zOnBrY3MtNT0NCiAgICAgICAiaHR0cDovL3d3dy5y c2FzZWN1cml0eS5jb20vcnNhbGFicy9wa2NzL3NjaGVtYXMvcGtjcy01djItMCMiDQogICAgIHht bG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiDQogICAg IHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIg0KICAgICB4bWxu czp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiDQogICAgIFZlcnNpb249 IjEuMCI+DQogICAgICAgPEVuY3J5cHRpb25LZXk+DQogICAgICAgICA8RGVyaXZlZEtleSBJZD0i I1Bhc3NwaHJhc2UxIj4NCiAgICAgICAgICAgPENhcnJpZWRLZXlOYW1lPlBhc3NwaHJhc2UxPC9D YXJyaWVkS2V5TmFtZT4NCiAgICAgICAgICAgPEtleURlcml2YXRpb25NZXRob2QNCiAgICAgICAg ICAgICBBbGdvcml0aG09DQogICAgICAgICJodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2Fs YWJzL3BrY3Mvc2NoZW1hcy9wa2NzLTUjcGJrZGYyIj4NCiAgICAgICAgICAgICA8UGFyYW1ldGVy cyB4c2k6dHlwZT0icGtjcy01OlBCS0RGMlBhcmFtZXRlclR5cGUiPg0KICAgICAgICAgICAgICAg PFNhbHQ+DQogICAgICAgICAgICAgICAgIDxTcGVjaWZpZWQ+RGYzZFJBaGpHaDg9PC9TcGVjaWZp ZWQ+DQogICAgICAgICAgICAgICA8L1NhbHQ+DQogICAgICAgICAgICAgICA8SXRlcmF0aW9uQ291 bnQ+MjAwMDwvSXRlcmF0aW9uQ291bnQ+DQogICAgICAgICAgICAgICA8S2V5TGVuZ3RoPjE2PC9L ZXlMZW5ndGg+DQogICAgICAgICAgICAgICA8UFJGLz4NCiAgICAgICAgICAgICA8L1BhcmFtZXRl cnM+DQogICAgICAgICAgIDwvS2V5RGVyaXZhdGlvbk1ldGhvZD4NCiAgICAgICAgIDwvRGVyaXZl ZEtleT4NCiAgICAgICA8L0VuY3J5cHRpb25LZXk+DQogICAuLi4uDQoNCjYuMi4gIFByb3RlY3Rp bmcga2V5cyB1c2luZyBhc3ltbWV0cmljIGFsZ29yaXRobXMNCg0KICAgVGhlIGZvbGxvd2luZyBp cyB0aGUgbGlzdCBvZiBhc3ltbWV0cmljIGtleSBlbmNyeXB0aW9uIGFsZ29yaXRobSBhbmQNCiAg IHBvc3NpYmxlIHBhcmFtZXRlcnMgdXNlZCB0byBwcm90ZWN0IHRoZSBTZWNyZXQgS2V5IGRhdGEg aW4gdGhlDQogICBjb250YWluZXIuICBTeXN0ZW1zIGltcGxlbWVudGluZyBQU0tDIE1VU1Qgc3Vw cG9ydCB0aGUgTUFOREFUT1JZDQogICBhbGdvcml0aG1zIGRldGFpbGVkIGJlbG93LiAgVGhlIGVu Y3J5cHRpb24gYWxnb3JpdGhtIFVSSSBjYW4gYmUgb25lDQogICBvZiB0aGUgZm9sbG93aW5nLg0K DQogICBvICBodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNyc2EtMV81IC0gTUFOREFU T1JZDQoNCiAgIG8gIGh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYS1vYWVwLW1n ZjFwIC0gT1BUSU9OQUwNCg0KICAgRm9yIGV4YW1wbGU6DQoNCg0KDQoNCg0KDQoNCg0KDQoNCkhv eWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAg ICAgIFtQYWdlIDMyXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMg S2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgPD94bWwgdmVyc2lvbj0i MS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCg0KICAgPHBza2M6S2V5Q29udGFpbmVyIFZlcnNpb249 IjEuMCINCiAgICAgeG1sbnM6cHNrYz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OmNv bnRhaW5lcjoxLjAiDQogICAgIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3ht bGRzaWcjIg0KICAgICB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVu YyMiPg0KICAgICAgIDxwc2tjOkVuY3J5cHRpb25LZXk+DQogICAgICAgICAgIDxkczpYNTA5RGF0 YT4NCiAgICAgICAgICAgICAgIDxkczpYNTA5Q2VydGlmaWNhdGU+bWlpYjwvZHM6WDUwOUNlcnRp ZmljYXRlPg0KICAgICAgICAgICA8L2RzOlg1MDlEYXRhPg0KICAgICAgIDwvcHNrYzpFbmNyeXB0 aW9uS2V5Pg0KICAgICAgIDxwc2tjOkRldmljZT4NCiAgICAgICAgICAgPHBza2M6RGV2aWNlSWQ+ DQogICAgICAgICAgICAgICA8cHNrYzpNYW51ZmFjdHVyZXI+QUNNRTwvcHNrYzpNYW51ZmFjdHVy ZXI+DQogICAgICAgICAgICAgICA8cHNrYzpTZXJpYWxObz4wNzU1MjI1MjY2PC9wc2tjOlNlcmlh bE5vPg0KICAgICAgICAgICA8L3Bza2M6RGV2aWNlSWQ+DQogICAgICAgICAgIDxwc2tjOktleSBL ZXlBbGdvcml0aG09DQogICAgICAgICAgICAiaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92L3Bz a2MjaG90cCINCiAgICAgICAgICAgIEtleUlkPSIwNzU1MjI1MjY2Ij4NCiAgICAgICAgICAgICAg IDxwc2tjOklzc3Vlcj5Bbklzc3VlcjwvcHNrYzpJc3N1ZXI+DQogICAgICAgICAgICAgICA8cHNr YzpVc2FnZSBPVFA9InRydWUiPg0KICAgICAgICAgICAgICAgICAgIDxwc2tjOlJlc3BvbnNlRm9y bWF0IExlbmd0aD0iOCINCiAgICAgICAgICAgICAgICAgICBGb3JtYXQ9IkRFQ0lNQUwiLz4NCiAg ICAgICAgICAgICAgIDwvcHNrYzpVc2FnZT4NCiAgICAgICAgICAgICAgIDxwc2tjOkRhdGEgTmFt ZT0iQ09VTlRFUiI+DQogICAgICAgICAgICAgICAgICAgPHBza2M6UGxhaW5WYWx1ZT5BcHJrdUE9 PTwvcHNrYzpQbGFpblZhbHVlPg0KICAgICAgICAgICAgICAgPC9wc2tjOkRhdGE+DQogICAgICAg ICAgICAgICA8cHNrYzpEYXRhIE5hbWU9IlNFQ1JFVCI+DQogICAgICAgICAgICAgICAgIDxwc2tj OkVuY3J5cHRlZFZhbHVlIElkPSJFRCI+DQogICAgICAgICAgICAgICAgICAgPHhlbmM6RW5jcnlw dGlvbk1ldGhvZA0KICAgICAgICAgICAgICAgICAgICAgQWxnb3JpdGhtPQ0KICAgICAgICAgICAg ICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYV8xXzUiLz4NCiAg ICAgICAgICAgICAgICAgICA8eGVuYzpDaXBoZXJEYXRhPg0KICAgICAgICAgICAgICAgICAgICAg PHhlbmM6Q2lwaGVyVmFsdWU+cmY0ZHgzcnZFUE8wdkt0S0wxNE5iZVZ1OG5rPQ0KICAgICAgICAg ICAgICAgICAgICAgPC94ZW5jOkNpcGhlclZhbHVlPg0KICAgICAgICAgICAgICAgICAgIDwveGVu YzpDaXBoZXJEYXRhPg0KICAgICAgICAgICAgICAgICA8L3Bza2M6RW5jcnlwdGVkVmFsdWU+DQog ICAgICAgICAgICAgICA8L3Bza2M6RGF0YT4NCiAgICAgICAgICAgPC9wc2tjOktleT4NCiAgICAg ICA8L3Bza2M6RGV2aWNlPg0KICAgPC9wc2tjOktleUNvbnRhaW5lcj4NCg0KNi4zLiAgUHJvZmls ZSBvZiBLZXkgQWxnb3JpdGhtDQoNCiAgIFRoaXMgc2VjdGlvbiBwcm9maWxlcyB0aGUgdHlwZShz KSBvZiBhbGdvcml0aG0gb2YgdGhhdCBjYW4gYmUgdXNlZCBieQ0KICAgdGhlIGtleShzKSB0cmFu c3BvcnRlZCBpbiB0aGUgY29udGFpbmVyLiAgVGhlIGZvbGxvd2luZyBhbGdvcml0aG0NCiAgIFVS SXMgYXJlIGFtb25nIHRoZSBkZWZhdWx0IHN1cHBvcnQgbGlzdC4NCg0KDQoNCg0KSG95ZXIsIGV0 IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgW1Bh Z2UgMzNdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29u dGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICBvICBodHRwOi8vd3d3LnczLm9yZy8y MDAxLzA0L3htbGVuYyN0cmlwbGVkZXMtY2JjDQoNCiAgIG8gIGh0dHA6Ly93d3cudzMub3JnLzIw MDEvMDQveG1sZW5jI2FlczEyOC1jYmMNCg0KICAgbyAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8w NC94bWxlbmMjYWVzMTkyLWNiYw0KDQogICBvICBodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3ht bGVuYyNhZXMyNTYtY2JjDQoNCiAgIG8gIGh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tj I2hvdHANCg0KICAgbyAgaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92L3Bza2MjcGluDQoNCjYu My4xLiAgT1RQIEtleSBBbGdvcml0aG0gSWRlbnRpZmllcnMNCg0KICAgT1RQIGtleSBhbGdvcml0 aG0gVVJJcyBoYXZlIG5vdCBiZWVuIGRlZmluZWQgaW4gYSBjb21tb25seSBhdmFpbGFibGUNCiAg IHN0YW5kYXJkIHNwZWNpZmljYXRpb24uICBUaGlzIGRvY3VtZW50IGRlZmluZXMgdGhlIGZvbGxv d2luZyBVUklzIGZvcg0KICAgdGhlIHN0YW5kYXJkIE9UUCBhbGdvcml0aG1zIGRlZmluZWQgaW4g W0hPVFBdLg0KDQo2LjMuMS4xLiAgSE9UUA0KDQogICBTdGFuZGFyZCBkb2N1bWVudDogUkZDNDIy Ng0KDQogICBJZGVudGlmaWVyOiBodHRwOi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNrYyNob3Rw DQoNCiAgIE5vdGUgdGhhdCB0aGUgYWN0dWFsIFVSTCB3aWxsIGJlIGZpbmFsaXplZCBvbmNlIGEg VVJMIGZvciB0aGlzDQogICBkb2N1bWVudCBpcyBkZXRlcm1pbmVkLg0KDQo2LjMuMS4yLiAgT3Ro ZXIgT1RQIEFsZ29yaXRobXMNCg0KICAgQW4gaW1wbGVtZW50YXRpb24gc2hvdWxkIHJlZmVyIHRv IHZlbmRvciByZWdpc3RlcmVkIE9UUCBrZXkgYWxnb3JpdGhtDQogICBVUklzIGZvciBvdGhlciBl eGlzdGluZyBPVFAgYWxnb3JpdGhtcywgZm9yIGV4YW1wbGUsIHRoZSBSU0EgU2VjdXJJRA0KICAg T1RQIGFsZ29yaXRobSBhcyBmb2xsb3dzLg0KDQogICBvICBodHRwOi8vd3d3LnJzYS5jb20vcnNh bGFicy9vdHBzL3NjaGVtYXMvMjAwNS8wOS8NCiAgICAgIG90cHMtd3N0I1NlY3VySUQtQUVTDQoN CjYuMy4yLiAgUElOIGtleSB2YWx1ZSBjb21wYXJlIGFsZ29yaXRobSBpZGVudGlmaWVyDQoNCiAg IFBJTiBrZXkgYWxnb3JpdGhtIFVSSXMgaGF2ZSBub3QgYmVlbiBkZWZpbmVkIGluIGEgY29tbW9u bHkgYXZhaWxhYmxlDQogICBzdGFuZGFyZCBzcGVjaWZpY2F0aW9uLiAgVGhpcyBkb2N1bWVudCBk ZWZpbmVzIHRoZSBmb2xsb3dpbmcgVVJJcyBmb3INCiAgIGEgc3RyYWlnaHQgdmFsdWUgY29tYXBy aXNvbiBvZiB0aGUgdHJhbnNwb3J0ZWQgc2VjcmV0IGtleSBkYXRhIGFzDQogICB3aGVuIHJlcXVp cmVkIHRvIGNvbXBhcmUgYSBQSU4uDQoNCiAgIElkZW50aWZpZXI6IGh0dHA6Ly93d3cuaWV0Zi5v cmcva2V5cHJvdi9wc2tjI3Bpbg0KDQogICBOb3RlIHRoYXQgdGhlIGFjdHVhbCBVUkwgd2lsbCBi ZSBmaW5hbGl6ZWQgb25jZSBhIFVSTCBmb3IgdGhpcw0KICAgZG9jdW1lbnQgaXMgZGV0ZXJtaW5l ZC4NCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwg MjAwOCAgICAgICAgICAgICAgW1BhZ2UgMzRdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRh YmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQo3LiAg UmVzZXJ2ZWQgZGF0YSBhdHRyaWJ1dGUgbmFtZXMNCg0KICAgVGhlIGZvbGxvd2luZyBrZXkgZGF0 YSBhdHRyaWJ1dGUgbmFtZXMgaGF2ZSBiZWVuIHJlc2VydmVkOg0KDQogICAgICBTRUNSRVQ6IHRo ZSBzaGFyZWQgc2VjcmV0IGtleSB2YWx1ZSBpbiBiaW5hcnksIGJhc2U2NCBlbmNvZGVkDQoNCiAg ICAgIENPVU5URVI6IHRoZSBldmVudCBjb3VudGVyIGZvciBldmVudCBiYXNlZCBPVFAgYWxnb3Jp dGhtcy4gOCBieXRlcw0KICAgICAgdW5zaWduZWQgaW50ZWdlciBpbiBiaWcgZW5kaWFuIChpLmUu IG5ldHdvcmsgYnl0ZSBvcmRlcikgZm9ybQ0KICAgICAgYmFzZTY0IGVuY29kZWQNCg0KICAgICAg VElNRTogdGhlIHRpbWUgZm9yIHRpbWUgYmFzZWQgT1RQIGFsZ29yaXRobXMuIDggYnl0ZXMgdW5z aWduZWQNCiAgICAgIGludGVnZXIgaW4gYmlnIGVuZGlhbiAoaS5lLiBuZXR3b3JrIGJ5dGUgb3Jk ZXIpIGZvcm0gYmFzZTY0DQogICAgICBlbmNvZGVkIChOdW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAx OTcwKQ0KDQogICAgICBUSU1FX0lOVEVSVkFMOiB0aGUgdGltZSBpbnRlcnZhbCB2YWx1ZSBmb3Ig dGltZSBiYXNlZCBPVFANCiAgICAgIGFsZ29yaXRobXMuIDggYnl0ZXMgdW5zaWduZWQgaW50ZWdl ciBpbiBiaWcgZW5kaWFuIChpLmUuIG5ldHdvcmsNCiAgICAgIGJ5dGUgb3JkZXIpIGZvcm0gYmFz ZTY0IGVuY29kZWQuDQoNCiAgICAgIFRJTUVfRFJJRlQ6IHRoZSBkZXZpY2UgY2xvY2sgZHJpZnQg dmFsdWUgZm9yIHRpbWUgYmFzZWQgT1RQDQogICAgICBhbGdvcml0aG1zLiAgVGhlIHZhbHVlIGlu ZGljYXRlcyBudW1iZXIgb2Ygc2Vjb25kcyB0aGF0IHRoZSBkZXZpY2UNCiAgICAgIGNsb2NrIG1h eSBkcmlmdCBlYWNoIGRheS4gMiBieXRlcyB1bnNpZ25lZCBpbnRlZ2VyIGluIGJpZyBlbmRpYW4N CiAgICAgIChpLmUuIG5ldHdvcmsgYnl0ZSBvcmRlcikgZm9ybSBiYXNlNjQgZW5jb2RlZC4NCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpI b3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAg ICAgICBbUGFnZSAzNV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmlj IEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjguICBGb3JtYWwgU3ludGF4 DQoNCiAgIFRoZSBmb2xsb3dpbmcgc3ludGF4IHNwZWNpZmljYXRpb24gdXNlcyB0aGUgd2lkZWx5 IGFkb3B0ZWQgWE1MIHNjaGVtYQ0KICAgZm9ybWF0IGFzIGRlZmluZWQgYnkgYSBXM0MgcmVjb21t ZW5kYXRpb24NCiAgIChodHRwOi8vd3d3LnczLm9yZy9UUi94bWxzY2hlbWEtMC8pLiAgSXQgaXMg YSBjb21wbGV0ZSBzeW50YXgNCiAgIGRlZmluaXRpb24gaW4gdGhlIFhNTCBTY2hlbWEgRGVmaW5p dGlvbiBmb3JtYXQgKFhTRCkNCg0KICAgQWxsIGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIHN0YW5k YXJkIG11c3QgY29tcGx5IHdpdGggdGhlIHNjaGVtYQ0KICAgYmVsb3cuDQoNCg0KPD94bWwgdmVy c2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjx4czpzY2hlbWEgeG1sbnM6eHM9Imh0dHA6 Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIg0KICB4bWxuczpwc2tjPSJ1cm46aWV0ZjpwYXJh bXM6eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCINCiAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDAvMDkveG1sZHNpZyMiDQogIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3Jn LzIwMDEvMDQveG1sZW5jIyINCiAgdGFyZ2V0TmFtZXNwYWNlPSJ1cm46aWV0ZjpwYXJhbXM6eG1s Om5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCINCiAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZp ZWQiIGF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCINCiAgdmVyc2lvbj0iMS4wIj4N CiAgICA8eHM6aW1wb3J0IG5hbWVzcGFjZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxk c2lnIyINCiAgICAgIHNjaGVtYUxvY2F0aW9uPQ0KICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RS LzIwMDIvUkVDLXhtbGRzaWctY29yZS0yMDAyMDIxMi8NCiAgICAgIHhtbGRzaWctY29yZS1zY2hl bWEueHNkIi8+DQogICAgPHhzOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly93d3cudzMub3JnLzIw MDEvMDQveG1sZW5jIyINCiAgICAgIHNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy9U Ui8NCiAgICAgIHhtbGVuYy1jb3JlL3hlbmMtc2NoZW1hLnhzZCIvPg0KDQogICAgPHhzOmNvbXBs ZXhUeXBlIG5hbWU9IktleUNvbnRhaW5lclR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg ICAgPHhzOmVsZW1lbnQgbmFtZT0iRW5jcnlwdGlvbktleSIgdHlwZT0iZHM6S2V5SW5mb1R5cGUi DQogICAgICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1B Q0FsZ29yaXRobSIgdHlwZT0icHNrYzpLZXlBbGdvcml0aG1UeXBlIg0KICAgICAgICAgIG1pbk9j Y3Vycz0iMCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJEZXZpY2UiIHR5cGU9InBza2M6 RGV2aWNlVHlwZSINCiAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8 eHM6ZWxlbWVudCBuYW1lPSJLZXlQcm9wZXJ0aWVzIg0KICAgICAgICB0eXBlPSJwc2tjOktleVBy b3BlcnRpZXNUeXBlIiBtaW5PY2N1cnM9IjAiDQogICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVk Ii8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IlNpZ25hdHVyZSIgdHlwZT0iZHM6U2lnbmF0 dXJlVHlwZSINCiAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPHhzOmFueSBuYW1l c3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICBtaW5PY2N1cnM9 IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgICA8eHM6 YXR0cmlidXRlIG5hbWU9IlZlcnNpb24iIHR5cGU9InBza2M6VmVyc2lvblR5cGUiDQogICAgICB1 c2U9InJlcXVpcmVkIi8+DQogICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlDb250YWluZXJJRCIN CiAgICB0eXBlPSJ4czpJRCIgdXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+ DQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4 ICAgICAgICAgICAgICBbUGFnZSAzNl0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUg U3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgICA8eHM6 c2ltcGxlVHlwZSBuYW1lPSJWZXJzaW9uVHlwZSIgZmluYWw9InJlc3RyaWN0aW9uIj4NCiAgICAg ICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KICAgICAgICAgICAgICAg ICAgICA8eHM6cGF0dGVybiB2YWx1ZT0iXGR7MSwyfVwuXGR7MSwzfSIvPg0KICAgICAgICAgICAg PC94czpyZXN0cmljdGlvbj4NCiAgICA8L3hzOnNpbXBsZVR5cGU+DQogICAgICAgIDx4czpjb21w bGV4VHlwZSBuYW1lPSJLZXlQcm9wZXJ0aWVzVHlwZSI+DQogICAgICAgICAgICAgICAgPHhzOnNl cXVlbmNlPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSXNzdWVy Ig0KICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAi Lz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlVzYWdlIg0KICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpVc2FnZVR5cGUiIG1pbk9jY3Vycz0iMCIv Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iS2V5UHJvZmlsZUlk Ig0KICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAi Lz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1hc3RlcktleUlk Ig0KICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAi Lz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGEiIHR5cGU9 InBza2M6RGF0YVR5cGUiDQogICAgICAgICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1h eE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVu dCBuYW1lPSJQSU5Qb2xpY3kiDQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJwc2tjOlBJ TlBvbGljeVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHhz OmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSINCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9 InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx4 czplbGVtZW50IG5hbWU9IlN0YXJ0RGF0ZSINCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9 InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgIDx4czphbnkgbmFtZXNw YWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCINCiAgICAgICAgICAgIG1pbk9jY3Vy cz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgICAgICA8L3hzOnNlcXVl bmNlPg0KICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iS2V5UHJvcGVydGllc0lk Ig0KICAgICAgICAgICAgICAgIHR5cGU9InhzOklEIiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAg ICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlBbGdvcml0aG0iDQogICAgICAgICAgICAg ICAgdHlwZT0icHNrYzpLZXlBbGdvcml0aG1UeXBlIg0KICAgICAgICAgICAgICAgIHVzZT0ib3B0 aW9uYWwiLz4NCiAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUg bmFtZT0iS2V5VHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czpl bGVtZW50IG5hbWU9Iklzc3VlciINCiAgICAgICAgICAgIHR5cGU9InhzOnN0cmluZyIgbWluT2Nj dXJzPSIwIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJVc2FnZSINCiAgICAgICAg ICAgIHR5cGU9InBza2M6VXNhZ2VUeXBlIi8+DQogICAgICAgICAgICAgICAgICAgICAgICA8eHM6 ZWxlbWVudCBuYW1lPSJLZXlQcm9maWxlSWQiDQogICAgICAgICAgICAgICAgICAgICAgICB0eXBl PSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHhz OmVsZW1lbnQgbmFtZT0iTWFzdGVyS2V5SWQiDQogICAgICAgICAgICAgICAgICAgICAgICB0eXBl PSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFt ZT0iRnJpZW5kbHlOYW1lIg0KICAgICAgICAgICAgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9 IjAiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGEiIHR5cGU9InBza2M6RGF0 YVR5cGUiDQogICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+ DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQSU5Qb2xpY3kiDQogICAgICAgICAgICB0 eXBlPSJwc2tjOlBJTlBvbGljeVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KDQoNCg0KSG95ZXIsIGV0 IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgW1Bh Z2UgMzddDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29u dGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICAgICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJFeHBpcnlEYXRlIg0KICAgICAgICAgICAgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vy cz0iMCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RhcnREYXRlIg0KICAgICAg ICAgICAgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhz OmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICAg ICAgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNl cXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IktleUlkIg0KICAgICAgICB0eXBl PSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1l PSJLZXlBbGdvcml0aG0iDQogICAgICAgIHR5cGU9InBza2M6S2V5QWxnb3JpdGhtVHlwZSINCiAg ICAgICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iS2V5 UHJvcGVydGllc0lkIg0KICAgICAgICB0eXBlPSJ4czpJRFJFRiIgdXNlPSJvcHRpb25hbCIvPg0K ICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRlcml2ZWRL ZXlUeXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQg bmFtZT0iS2V5RGVyaXZhdGlvbk1ldGhvZCINCiAgICAgICAgICAgICAgdHlwZT0icHNrYzpLZXlE ZXJpdmF0aW9uTWV0aG9kVHlwZSIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICA8eHM6ZWxl bWVudCByZWY9InhlbmM6UmVmZXJlbmNlTGlzdCIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAg ICA8eHM6ZWxlbWVudCBuYW1lPSJDYXJyaWVkS2V5TmFtZSIgdHlwZT0ieHM6c3RyaW5nIg0KICAg ICAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAg ICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJJZCIgdHlwZT0ieHM6SUQiIHVzZT0ib3B0aW9uYWwiLz4N CiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJUeXBlIiB0eXBlPSJ4czphbnlVUkkiIHVzZT0i b3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBu YW1lPSJLZXlEZXJpdmF0aW9uTWV0aG9kVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAg ICAgICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBtaW5PY2N1cnM9IjAiDQogICAg ICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0K ICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkFsZ29yaXRobSIgdHlwZT0ieHM6YW55VVJJIg0K ICAgICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6 Y29tcGxleFR5cGUgbmFtZT0iUElOUG9saWN5VHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4N CiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlBJTlVzYWdlTW9kZSINCiAgICAgICAgICAg ICAgdHlwZT0icHNrYzpQSU5Vc2FnZU1vZGVUeXBlIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVu dCBuYW1lPSJXcm9uZ1BJTlRyeSIgdHlwZT0ieHM6dW5zaWduZWRJbnQiDQogICAgICAgICAgICAg IG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIi IHByb2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICAgICAgbWluT2NjdXJzPSIwIiBtYXhPY2N1 cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0 cmlidXRlIG5hbWU9IlBJTlBvbGljeUlkIiB0eXBlPSJ4czpJRCINCiAgICAgICAgdXNlPSJvcHRp b25hbCIvPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IlBJTktleUlkIiB0eXBlPSJ4czpz dHJpbmciDQogICAgICAgICAgdXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+ DQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4 ICAgICAgICAgICAgICBbUGFnZSAzOF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUg U3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgICA8eHM6 Y29tcGxleFR5cGUgbmFtZT0iUElOVXNhZ2VNb2RlVHlwZSI+DQogICAgICAgICAgICA8eHM6Y2hv aWNlIG1heE9jY3Vycz0idW5ib3VuZGVkIj4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1l bnQgbmFtZT0iTG9jYWwiLz4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i UHJlcGVuZCIvPg0KICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJFbWJlZCIv Pg0KICAgICAgICAgICAgICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciINCiAgICAg ICAgICAgICAgICAgICAgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0iMCINCiAgICAg ICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgIDwveHM6 Y2hvaWNlPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9 IkRldmljZUlkVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgPHhzOmVsZW1l bnQgbmFtZT0iTWFudWZhY3R1cmVyIiB0eXBlPSJ4czpzdHJpbmciLz4NCiAgICAgICAgPHhzOmVs ZW1lbnQgbmFtZT0iU2VyaWFsTm8iIHR5cGU9InhzOnN0cmluZyIvPg0KICAgICAgICA8eHM6ZWxl bWVudCBuYW1lPSJNb2RlbCIgdHlwZT0ieHM6c3RyaW5nIg0KICAgICAgICBtaW5PY2N1cnM9IjAi Lz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSXNzdWVObyIgdHlwZT0ieHM6c3RyaW5nIg0K ICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5 RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiDQogICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAg ICA8eHM6ZWxlbWVudCBuYW1lPSJTdGFydERhdGUiIHR5cGU9InhzOmRhdGVUaW1lIg0KICAgICAg ICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHBy b2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5i b3VuZGVkIi8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgPC94czpjb21wbGV4VHlwZT4N CiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGV2aWNlVHlwZSI+DQogICAgICA8eHM6c2VxdWVu Y2U+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRldmljZUlkIiB0eXBlPSJwc2tjOkRldmlj ZUlkVHlwZSINCiAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPHhzOmVsZW1lbnQg bmFtZT0iS2V5IiB0eXBlPSJwc2tjOktleVR5cGUiDQogICAgICAgICAgbWF4T2NjdXJzPSJ1bmJv dW5kZWQiLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNlcklkIiB0eXBlPSJ4czpzdHJp bmciDQogICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0i IyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiDQogICAgICAgIG1pbk9jY3Vycz0iMCIgbWF4 T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgPC94czpjb21w bGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iVXNhZ2VUeXBlIj4NCiAgICAgICAg PHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ2hhbGxlbmdlRm9y bWF0IiBtaW5PY2N1cnM9IjAiPg0KICAgICAgICAgICAgICAgIDx4czpjb21wbGV4VHlwZT4NCiAg ICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJGb3JtYXQiDQogICAgICAgICAg ICAgICAgICAgICAgdHlwZT0icHNrYzpWYWx1ZUZvcm1hdFR5cGUiIHVzZT0icmVxdWlyZWQiLz4N CiAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJNaW4iIHR5cGU9InhzOnVu c2lnbmVkSW50Ig0KICAgICAgICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgICAg ICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJNYXgiIHR5cGU9InhzOnVuc2lnbmVk SW50Ig0KICAgICAgICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCg0KDQoNCkhveWVy LCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAg IFtQYWdlIDM5XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5 IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgICAgICAgICAgICAgICAgICA8 eHM6YXR0cmlidXRlIG5hbWU9IkNoZWNrRGlnaXRzIiB0eXBlPSJ4czpib29sZWFuIg0KICAgICAg ICAgICAgICAgICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAgICAgICAgICAgICAgPC94czpj b21wbGV4VHlwZT4NCiAgICAgICAgICAgIDwveHM6ZWxlbWVudD4NCiAgICAgICAgICAgIDx4czpl bGVtZW50IG5hbWU9IlJlc3BvbnNlRm9ybWF0Ij4NCiAgICAgICAgICAgICAgICA8eHM6Y29tcGxl eFR5cGU+DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iRm9ybWF0Ig0K ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InBza2M6VmFsdWVGb3JtYXRUeXBlIiB1c2U9InJl cXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iTGVuZ3Ro IiB0eXBlPSJ4czp1bnNpZ25lZEludCINCiAgICAgICAgICAgICAgICAgICAgICB1c2U9InJlcXVp cmVkIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iQ2hlY2tEaWdp dHMiIHR5cGU9InhzOmJvb2xlYW4iDQogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0iZmFs c2UiLz4NCiAgICAgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgICAgICAgICAgPC94 czplbGVtZW50Pg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nl c3NDb250ZW50cz0ibGF4Ig0KICAgICAgICAgICAgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVu Ym91bmRlZCIvPg0KICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czph dHRyaWJ1dGUgbmFtZT0iT1RQIiB0eXBlPSJ4czpib29sZWFuIiBkZWZhdWx0PSJmYWxzZSIvPg0K ICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJDUiIgdHlwZT0ieHM6Ym9vbGVhbiIgZGVm YXVsdD0iZmFsc2UiLz4NCiAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iSW50ZWdyaXR5 IiB0eXBlPSJ4czpib29sZWFuIg0KICAgICAgICAgICAgICBkZWZhdWx0PSJmYWxzZSIvPg0KICAg ICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJFbmNyeXB0IiB0eXBlPSJ4czpib29sZWFuIg0K ICAgICAgICAgICAgICBkZWZhdWx0PSJmYWxzZSIvPg0KICAgICAgICAgICAgPHhzOmF0dHJpYnV0 ZSBuYW1lPSJVbmxvY2siIHR5cGU9InhzOmJvb2xlYW4iDQogICAgICAgICAgICAgIGRlZmF1bHQ9 ImZhbHNlIi8+DQogICAgICAgICAgICAgPHhzOmFueUF0dHJpYnV0ZSBuYW1lc3BhY2U9IiMjb3Ro ZXIiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJE YXRhVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czpjaG9pY2U+ DQogICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUGxhaW5WYWx1ZSIgdHlwZT0ieHM6 YmFzZTY0QmluYXJ5Ii8+DQogICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRW5jcnlw dGVkVmFsdWUiDQogICAgICAgICAgICAgICAgICB0eXBlPSJ4ZW5jOkVuY3J5cHRlZERhdGFUeXBl Ii8+DQogICAgICAgICAgICA8L3hzOmNob2ljZT4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5h bWU9IlZhbHVlTUFDIiB0eXBlPSJ4czpiYXNlNjRCaW5hcnkiDQogICAgICAgICAgICAgIG1pbk9j Y3Vycz0iMCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRl IG5hbWU9Ik5hbWUiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPg0KICAgIDwveHM6 Y29tcGxleFR5cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iS2V5QWxnb3JpdGhtVHlwZSI+ DQogICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czphbnlVUkkiLz4NCiAgICA8L3hzOnNp bXBsZVR5cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iVmFsdWVGb3JtYXRUeXBlIj4NCiAg ICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICAgICAgICA8eHM6 ZW51bWVyYXRpb24gdmFsdWU9IkRFQ0lNQUwiLz4NCiAgICAgICAgICAgIDx4czplbnVtZXJhdGlv biB2YWx1ZT0iSEVYQURFQ0lNQUwiLz4NCiAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1 ZT0iQUxQSEFOVU1FUklDIi8+DQogICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkJB U0U2NCIvPg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAy MCwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNDBdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBv cnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQog ICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkJJTkFSWSIvPg0KICAgICAgICA8L3hz OnJlc3RyaWN0aW9uPg0KICAgIDwveHM6c2ltcGxlVHlwZT4NCiAgICA8eHM6ZWxlbWVudCBuYW1l PSJLZXlDb250YWluZXIiIHR5cGU9InBza2M6S2V5Q29udGFpbmVyVHlwZSIvPg0KPC94czpzY2hl bWE+DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAg ICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAgIFtQYWdlIDQxXQ0K DA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAg ICAgICAgICAgSnVuZSAyMDA4DQoNCg0KOS4gIElBTkEgQ29uc2lkZXJhdGlvbnMNCg0KOS4xLiAg Q29udGVudC10eXBlIHJlZ2lzdHJhdGlvbiBmb3IgJ2FwcGxpY2F0aW9uL3Bza2MreG1sJw0KDQog ICBUaGlzIHNwZWNpZmljYXRpb24gcmVxdWVzdHMgdGhlIHJlZ2lzdHJhdGlvbiBvZiBhIG5ldyBN SU1FIHR5cGUNCiAgIGFjY29yZGluZyB0byB0aGUgcHJvY2VkdXJlcyBvZiBSRkMgNDI4OCBbUkZD NDI4OF0gYW5kIGd1aWRlbGluZXMgaW4NCiAgIFJGQyAzMDIzIFtSRkMzMDIzXS4NCg0KICAgTUlN RSBtZWRpYSB0eXBlIG5hbWU6ICBhcHBsaWNhdGlvbg0KDQogICBNSU1FIHN1YnR5cGUgbmFtZTog IHBza2MreG1sDQoNCiAgIE1hbmRhdG9yeSBwYXJhbWV0ZXJzOiAgbm9uZQ0KDQogICBPcHRpb25h bCBwYXJhbWV0ZXJzOiAgY2hhcnNldA0KDQogICAgICBJbmRpY2F0ZXMgdGhlIGNoYXJhY3RlciBl bmNvZGluZyBvZiBlbmNsb3NlZCBYTUwuDQoNCiAgIEVuY29kaW5nIGNvbnNpZGVyYXRpb25zOiAg VXNlcyBYTUwsIHdoaWNoIGNhbiBlbXBsb3kgOC1iaXQNCiAgICAgIGNoYXJhY3RlcnMsIGRlcGVu ZGluZyBvbiB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQuICBTZWUgUkZDDQogICAgICAzMDIz IFtSRkMzMDIzXSwgU2VjdGlvbiAzLjIuDQoNCiAgIFNlY3VyaXR5IGNvbnNpZGVyYXRpb25zOiAg VGhpcyBjb250ZW50IHR5cGUgaXMgZGVzaWduZWQgdG8gY2FycnkgUFNLQw0KICAgICAgcHJvdG9j b2wgcGF5bG9hZHMuDQoNCiAgIEludGVyb3BlcmFiaWxpdHkgY29uc2lkZXJhdGlvbnM6ICBOb25l DQoNCiAgIFB1Ymxpc2hlZCBzcGVjaWZpY2F0aW9uOiAgUkZDWFhYWCBbTk9URSBUTyBJQU5BL1JG Qy1FRElUT1I6IFBsZWFzZQ0KICAgICAgcmVwbGFjZSBYWFhYIHdpdGggdGhlIFJGQyBudW1iZXIg b2YgdGhpcyBzcGVjaWZpY2F0aW9uLl0NCg0KICAgQXBwbGljYXRpb25zIHdoaWNoIHVzZSB0aGlz IG1lZGlhIHR5cGU6ICBUaGlzIE1JTUUgdHlwZSBpcyBiZWluZyB1c2VkDQogICAgICBhcyBhIHN5 bW1ldHJpYyBrZXkgY29udGFpbmVyIGZvcm1hdCBmb3IgdHJhbnNwb3J0IGFuZCBwcm92aXNpb25p bmcNCiAgICAgIG9mIHN5bW1ldHJpYyBrZXlzIChPbmUgVGltZSBQYXNzd29yZCAoT1RQKSBzaGFy ZWQgc2VjcmV0cyBvcg0KICAgICAgc3ltbWV0cmljIGNyeXB0b2dyYXBoaWMga2V5cykgdG8gZGlm ZmVyZW50IHR5cGVzIG9mIHN0cm9uZw0KICAgICAgYXV0aGVudGljYXRpb24gZGV2aWNlcy4gIEFz IHN1Y2gsIGl0IGlzIHVzZWQgZm9yIGtleSBwcm92aXNpb25pbmcNCiAgICAgIHN5c3RlbXMuDQoN CiAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb246DQoNCiAgICAgIE1hZ2ljIE51bWJlcjogIE5vbmUN Cg0KICAgICAgRmlsZSBFeHRlbnNpb246ICAucHNrY3htbA0KDQogICAgICBNYWNpbnRvc2ggZmls ZSB0eXBlIGNvZGU6ICAnVEVYVCcNCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAg ICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNDJdDQoMDQpJ bnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAg ICAgICBKdW5lIDIwMDgNCg0KDQogICBQZXJzb25hbCBhbmQgZW1haWwgYWRkcmVzcyBmb3IgZnVy dGhlciBpbmZvcm1hdGlvbjogIFBoaWxpcCBIb3llciwNCiAgICAgIFBoaWxpcC5Ib3llckBhY3Rp dmlkZW50aXR5LmNvbQ0KDQogICBJbnRlbmRlZCB1c2FnZTogIExJTUlURUQgVVNFDQoNCiAgIEF1 dGhvcjogIFRoaXMgc3BlY2lmaWNhdGlvbiBpcyBhIHdvcmsgaXRlbSBvZiB0aGUgSUVURiBLRVlQ Uk9WDQogICAgICB3b3JraW5nIGdyb3VwLCB3aXRoIG1haWxpbmcgbGlzdCBhZGRyZXNzIDxrZXlw cm92QGlldGYub3JnPi4NCg0KICAgQ2hhbmdlIGNvbnRyb2xsZXI6ICBUaGUgSUVTRyA8aWVzZ0Bp ZXRmLm9yZz4NCg0KOS4yLiAgWE1MIFNjaGVtYSBSZWdpc3RyYXRpb24NCg0KICAgVGhpcyBzZWN0 aW9uIHJlZ2lzdGVycyBhbiBYTUwgc2NoZW1hIGFzIHBlciB0aGUgZ3VpZGVsaW5lcyBpbg0KICAg W1JGQzM2ODhdLg0KDQogICBVUkk6ICB1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6Y29u dGFpbmVyOjEuMA0KDQogICBSZWdpc3RyYW50IENvbnRhY3Q6ICBJRVRGIEtFWVBST1YgV29ya2lu ZyBHcm91cCwgUGhpbGlwIEhveWVyDQogICAgICAoUGhpbGlwLkhveWVyQGFjdGl2aWRlbnRpdHku Y29tKS4NCg0KICAgWE1MIFNjaGVtYTogIFRoZSBYTUwgc2NoZW1hIHRvIGJlIHJlZ2lzdGVyZWQg aXMgY29udGFpbmVkIGluDQogICAgICBTZWN0aW9uIDguICBJdHMgZmlyc3QgbGluZSBpcw0KDQog ICA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KDQogICAgICBhbmQgaXRz IGxhc3QgbGluZSBpcw0KDQogICA8L3hzOnNjaGVtYT4NCg0KOS4zLiAgVVJOIFN1Yi1OYW1lc3Bh Y2UgUmVnaXN0cmF0aW9uIGZvcg0KICAgICAgdXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92 OmNvbnRhaW5lcjoxLjANCg0KICAgVGhpcyBzZWN0aW9uIHJlZ2lzdGVycyBhIG5ldyBYTUwgbmFt ZXNwYWNlLA0KICAgInVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4w IiwgcGVyIHRoZSBndWlkZWxpbmVzIGluDQogICBbUkZDMzY4OF0uDQoNCiAgIFVSSTogIHVybjpp ZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4wDQoNCiAgIFJlZ2lzdHJhbnQg Q29udGFjdDogIElFVEYgS0VZUFJPViBXb3JraW5nIEdyb3VwLCBQaGlsaXAgSG95ZXINCiAgICAg IChQaGlsaXAuSG95ZXJAYWN0aXZpZGVudGl0eS5jb20pLg0KDQogICBYTUw6DQoNCg0KDQoNCg0K DQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4 ICAgICAgICAgICAgICBbUGFnZSA0M10NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUg U3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIEJFR0lO DQogICA8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCiAgIDwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8v VzNDLy9EVEQgWEhUTUwgQmFzaWMgMS4wLy9FTiINCiAgICAgImh0dHA6Ly93d3cudzMub3JnL1RS L3hodG1sLWJhc2ljL3hodG1sLWJhc2ljMTAuZHRkIj4NCiAgIDxodG1sIHhtbG5zPSJodHRwOi8v d3d3LnczLm9yZy8xOTk5L3hodG1sIj4NCiAgIDxoZWFkPg0KICAgICA8bWV0YSBodHRwLWVxdWl2 PSJjb250ZW50LXR5cGUiDQogICAgICAgICAgIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PWlz by04ODU5LTEiLz4NCiAgICAgPHRpdGxlPlBTS0MgTmFtZXNwYWNlPC90aXRsZT4NCiAgIDwvaGVh ZD4NCiAgIDxib2R5Pg0KICAgICA8aDE+TmFtZXNwYWNlIGZvciBQU0tDPC9oMT4NCiAgICAgPGgy PnVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4wPC9oMj4NCiAgIDxw PlNlZSA8YSBocmVmPSJbVVJMIG9mIHB1Ymxpc2hlZCBSRkNdIj5SRkNYWFhYDQogICAgICAgW05P VEUgVE8gSUFOQS9SRkMtRURJVE9SOg0KICAgICAgICBQbGVhc2UgcmVwbGFjZSBYWFhYIHdpdGgg dGhlIFJGQyBudW1iZXIgb2YgdGhpcw0KICAgICAgIHNwZWNpZmljYXRpb24uXTwvYT4uPC9wPg0K ICAgPC9ib2R5Pg0KICAgPC9odG1sPg0KICAgRU5EDQoNCjkuNC4gIFN5bW1ldHJpYyBLZXkgQWxn b3JpdGhtIElkZW50aWZpZXIgUmVnaXN0cnkNCg0KICAgVGhpcyBzcGVjaWZpY2F0aW9uIHJlcXVl c3RzIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBJQU5BIHJlZ2lzdHJ5IGZvcg0KICAgc3ltbWV0cmlj IGtleSBjcnlwdG9ncmFwaGljIGFsZ29yaXRobSBpZGVudGlmaWVycyBpbiBhY2NvcmRhbmNlIHdp dGgNCiAgIHRoZSBwcmluY2lwbGVzIHNldCBvdXQgaW4gUkZDIDI0MzQgW1JGQzI0MzRdYXMgZm9s bG93czoNCg0KOS40LjEuICBBcHBsaWNhYmlsaXR5DQoNCiAgIFRoZSB1c2Ugb2YgVVJJcyBhcyBh bGdvcml0aG0gaWRlbnRpZmllcnMgcHJvdmlkZXMgYW4gZWZmZWN0aXZlbHkNCiAgIHVubGltaXRl ZCBuYW1lc3BhY2UuICBXaGlsZSB0aGlzIGVsaW1pbmF0ZXMgdGhlIHBvc3NpYmlsaXR5IG9mDQog ICBuYW1lc3BhY2UgZXhoYXVzdGlvbiBpdCBjcmVhdGVzIGEgbmV3IGNvbmNlcm4sIHRoYXQgZGl2 ZXJnZW50DQogICBpZGVudGlmaWVycyB3aWxsIGJlIGVtcGxveWVkIGZvciB0aGUgc2FtZSBwdXJw b3NlIGluIGRpZmZlcmVudA0KICAgY29udGV4dHMuDQoNCiAgIFRoZSBrZXkgYWxnb3JpdGhtIHJl Z2lzdHJ5IGlzIGludGVuZGVkIHRvIHByb3ZpZGUgYSBtZWFucyBvZg0KICAgc3BlY2lmeWluZyB0 aGUgY2Fub25pY2FsIGlkZW50aWZpZXIgdG8gYmUgdXNlZCBmb3IgYSBnaXZlbiBhbGdvcml0aG0u DQogICBJZiBhbiBhbGdvcml0aG0gaGFzIGFuIGlkZW50aWZpZXIgc3BlY2lmaWVkIGluIHRoZSBy ZWdpc3RyeSBhDQogICBhcHBsaWNhdGlvbiB0aGF0IGlzIGNvbmZvcm1hbnQgdG8gYSBwcm90b2Nv bCBzcGVjaWZpY2F0aW9uIHRoYXQNCiAgIHNwZWNpZmllcyB1c2Ugb2YgdGhhdCByZWdpc3RyeSB0 byBkZWZpbmUgaWRlbnRpZmllcnMgU0hPVUxEIGFsd2F5cw0KICAgdXNlIHRoYXQgcGFydGljdWxh ciBmb3JtIG9mIHRoZSBpZGVudGlmaWVyIHdoZW4gb3JpZ2luYXRpbmcgZGF0YS4gIEENCiAgIGNv bmZvcm1hbnQgYXBwbGljYXRpb24gTUFZIGFjY2VwdCBvdGhlciBpZGVudGlmaWVycyBpbiBkYXRh IHRoYXQgaXMNCiAgIHJlY2VpdmVkLg0KDQogICBGb3IgdGhlIHNha2Ugb2YgZXhwZWRpZW5jeSwg dGhlIGluaXRpYWwgcmVnaXN0cnkgb25seSBkZWZpbmVzDQogICBhbGdvcml0aG0gY2xhc3NlcyBm b3Igc3ltbWV0cmljIGFsZ29yaXRobXMgcGx1cyBjcnlwdG9ncmFwaGljIG1lc3NhZ2UNCiAgIGRp Z2VzdCBmdW5jdGlvbnMgKG9uZS13YXkgaGFzaCkuICBXaGlsZSB0aGUgc2FtZSBwcmluY2lwbGVz IG1heSBiZQ0KICAgZXh0ZW5kZWQgdG8gYXN5bW1ldHJpYyBhbGdvcml0aG1zLCBkb2luZyBzbyB3 b3VsZCByZXF1aXJlIG11Y2gNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMg RGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAgIFtQYWdlIDQ0XQ0KDA0KSW50ZXJuZXQtRHJh ZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAy MDA4DQoNCg0KICAgZ3JlYXRlciBjb25zaWRlcmF0aW9uIG9mIGlzc3VlcyBzdWNoIGFzIGtleSBs ZW5ndGggYW5kIHRyZWF0bWVudCBvZg0KICAgcGFyYW1ldGVycywgcGFydGljdWxhcmx5IHdoZXJl IGVsaXB0aWMgY3VydmUgY3J5cHRvZ3JhcGh5IGFsZ29yaXRobXMNCiAgIGFyZSBjb25jZXJuZWQu DQoNCiAgIEFzIHBhcnQgb2YgdGhpcyByZWdpc3RyeSB0aGUgSUFOQSB3aWxsIG1haW50YWluIHRo ZSBmb2xsb3dpbmcNCiAgIGluZm9ybWF0aW9uOg0KDQogICBDb21tb24gTmFtZSAgVGhlIG5hbWUg Ynkgd2hpY2ggdGhlIGFsZ29yaXRobSBpcyBnZW5lcmFsbHkgcmVmZXJyZWQuDQoNCiAgIENsYXNz ICBUaGUgdHlwZSBvZiBhbGdvcml0aG0sIGVuY3J5cHRpb24sIE1lc3NhZ2UgQXV0aGVudGljYXRp b24gQ29kZQ0KICAgICAgKE1BQyksIE9uZSBUaW1lIFBhd3dvcmQgKE9UUCksIERpZ2VzdCwgZXRj Lg0KDQogICBDYW5ub25pY2FsIFVSSSAgVGhlIGNhbm5vbmljYWwgVVJJIHRvIGJlIHVzZWQgdG8g aWRlbnRpZnkgdGhlDQogICAgICBhbGdvcml0aG0uDQoNCiAgIEFsZ29yaXRobSBEZWZpbml0aW9u ICBBIHJlZmVyZW5jZSB0byB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlDQogICAgICBhbGdvcml0 aG0gZGVzY3JpYmVkIGJ5IHRoZSBpZGVudGlmaWVyIGlzIGRlZmluZWQuDQoNCiAgIElkZW50aWZp ZXIgRGVmaW5pdGlvbiAgQSByZWZlcmVuY2UgdG8gdGhlIGRvY3VtZW50IGluIHdoaWNoIHRoZSB1 c2UNCiAgICAgIG9mIHRoZSBpZGVudGlmaWVyIHRvIHJlZmVyIHRvIHRoZSBhbGdvcml0aG0gaXMg ZGVzY3JpYmVkLiAgVGhpcw0KICAgICAgd291bGQgaWRlYWxseSBiZSB0aGUgZG9jdW1lbnQgaW4g d2hpY2ggdGhlIGFsZ29yaXRobSBpcyBkZWZpbmVkLg0KDQogICAgICBJbiB0aGUgY2FzZSB3aGVy ZSB0aGUgcmVnaXN0cmFudCBkb2VzIG5vdCByZXF1ZXN0IGEgcGFydGljdWxhcg0KICAgICAgVVJJ LCB0aGUgSUFOQSB3aWxsIGFzc2lnbiBpdCBhIFVuaWZvcm0gUmVzb3VyY2UgTmFtZSAoVVJOKSB0 aGF0DQogICAgICBmb2xsb3dzIFJGQyAzNTUzIFtSRkMzNTUzXS4NCg0KICAgTm90ZSB0aGF0IHdo ZXJlIGEgc2luZ2xlIGFsZ29yaXRobSBoYXMgZGlmZmVyZW50IGZvcm1zIGRpc3Rpbmd1aXNoZWQN CiAgIGJ5IHBhcmVtZXRlcnMgc3VjaCBhcyBrZXkgbGVuZ3RoLCB0aGUgYWxnb3JpdGhtIGNsYXNz IGFuZCBlYWNoDQogICBjb21iaW5hdGlvbiBvZiBhbGdvcml0aG0gcGFyYW1ldGVycyBtYXkgYmUg Y29uc2lkZXJlZCBhIGRpc3RpbmN0DQogICBhbGdvcml0aG0gZm9yIHRoZSBwdXJwb3NlIG9mIGFz c2lnbmluZyBpZGVudGlmaWVycy4NCg0KOS40LjIuICBSZWdpc3RlcmFibGUgQWxnb3JpdGhtcw0K DQo5LjQuMi4xLiAgQXNzaWduZWQgVVJJcw0KDQogICBJZiB0aGUgcmVnaXN0cmFudCB3aXNoZXMg dG8gaGF2ZSBhIFVSSSBhc3NpZ25lZCwgdGhlbiBhIFVSTiBvZiB0aGUNCiAgIGZvcm0NCg0KICAg dXJuOmlldGY6cGFyYW1zOnhtbDo8Y2xhc3M+OjxpZD4NCg0KICAgd2lsbCBiZSBhc3NpZ25lZCB3 aGVyZSA8Y2xhc3M+IGlzIHRoZSB0eXBlIG9mIHRoZSBhbGdvcml0aG0gYmVpbmcNCiAgIGlkZW50 aWZpZWQgKHNlZSBiZWxvdykuIDxpZD4gaXMgYSB1bmlxdWUgaWQgc3BlY2lmaWVkIGJ5IHRoZSBw YXJ0eQ0KICAgbWFraW5nIHRoZSByZXF1ZXN0IGFuZCB3aWxsIG5vcm1hbGx5IGJlIGVpdGhlciB0 aGUgY29tbW9uIG5hbWUgb2YgdGhlDQogICBhbGdvcml0aG0gb3IgYW4gYWJicmV2aWF0aW9uIHRo ZXJlb2YuDQoNCiAgIE5PVEU6IGluIG9yZGVyIGZvciBhIFVSTiBvZiB0aGlzIHR5cGUgdG8gYmUg YXNzaWduZWQsIHRoZSBpdGVtIGJlaW5nDQogICByZWdpc3RlcmVkIE1VU1QgaGF2ZSBiZWVuIHRo cm91Z2ggdGhlIElFVEYgY29uc2Vuc3VzIHByb2Nlc3MuDQogICBCYXNpY2FsbHksIHRoaXMgbWVh bnMgdGhhdCBpdCBtdXN0IGJlIGRvY3VtZW50ZWQgaW4gYSBSRkMuDQoNCg0KDQpIb3llciwgZXQg YWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFn ZSA0NV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250 YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIE5PVEU6IEV4cGVydCBSZXZpZXcgaXMg c3VmZmljaWVudCBpbiBjYXNlcyB3aGVyZSB0aGUgcmVxdWVzdCBkb2VzIG5vdA0KICAgcmVxdWly ZSBhIFVSTiBhc3NpZ25tZW50IGludGhlIElFVEYgbmFtZXNwYWNlLiAgSUVURiBjb25zZW5zdXMg aXMgbm90DQogICByZXF1aXJlZC4NCg0KOS40LjIuMi4gIEFzc2lnbmVkIENsYXNzZXMNCg0KICAg RWFjaCBhbGdvcml0aG0gTVVTVCBiZWxvbmcgdG8gYW4gYXNzaWduZWQgYWxnb3JpdGhtIGNsYXNz LiAgSW4gdGhlDQogICBjYXNlIHRoYXQgYWRkaXRpb25hbCBjbGFzc2VzIGFyZSByZXF1aXJlZCB0 aGVzZSBhcmUgdG8gYmUgc3BlY2lmaWVkDQogICBieSBJRVRGIENvbnNlbnN1cyBhY3Rpb24uDQoN CiAgIFRoZSBpbml0aWFsIGFzc2lnbmVkIGNsYXNzZXMgYXJlOg0KDQogICBEaWdlc3QgIEEgY3J5 cHRvZ3JhcGhpYyBEaWdlc3QgYWxnb3JpdGhtLg0KDQogICBNQUMgIEEgTWVzc2FnZSBBdXRoZW50 aWNhdGlvbiBDb2RlIGFsZ29yaXRobS4NCg0KICAgU3ltbWV0cmljICBBIHN5bW1ldHJpYyBlbmNy eXB0aW9uIGFsZ29yaXRobS4NCg0KICAgT1RQICBBIG9uZSB0aW1lIHBhc3N3b3JkIChPVFApIGFs Z29yaXRobS4NCg0KOS40LjMuICBSZWdpc3RyYXRpb24gUHJvY2VkdXJlcw0KDQo5LjQuMy4xLiAg UmV2aWV3DQoNCiAgIEFsZ29yaXRobSBpZGVudGlmaWVyIHJlZ2lzdHJhdGlvbnMgYXJlIHRvIGJl IHN1YmplY3QgdG8gRXhwZXJ0IFJldmlldw0KICAgYXMgcGVyIFJGQyAyNDM0IFtSRkMyNDM0XS4N Cg0KICAgVGhlIG5lZWQgZm9yIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHJlZ2lz dHJhdGlvbiBkZXBlbmRzIG9uDQogICB0aGUgbmF0dXJlIG9mIHRoZSByZXF1ZXN0LiAgSW4gdGhl IGNhc2Ugb2YgYSBjcnlwdG9ncmFwaGljIGFsZ29yaXRobQ0KICAgdGhhdCBpcyBiZWluZyBkZXNj cmliZWQgZm9yIHB1YmxpY2F0aW9uIGFzIGFuIFJGQywgdGhlIHJlcXVlc3QgZm9yIGENCiAgIFVS SSBhbGxvY2F0aW9uIHdvdWxkIG5vcm1hbGx5IGFwcGVhciB3aXRoaW4gdGhlIFJGQyBpdHNlbGYu ICBJbiB0aGUNCiAgIGNhc2Ugb2YgYSBjcnlwdG9ncmFwaGljIGFsZ29yaXRobSB0aGF0IGlzIGZ1 bGx5IGFuZCBjb21wcmVoZW5zaXZlbHkNCiAgIGRlZmluZWQgaW4gYW5vdGhlciBmb3JtLCBpdCB3 b3VsZCBub3QgYmUgbmVjZXNzYXJ5IHRvIGR1cGxpY2F0ZSB0aGUNCiAgIGluZm9ybWF0aW9uIGZv ciB0aGUgc2FrZSBvZiBpc3N1aW5nIHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgUkZDDQogICBzZXJp ZXMuICBJbiBvdGhlciBjYXNlcyBhbiBSRkMgbWF5IGJlIHJlcXVpcmVkIGluIG9yZGVyIHRvIGVu c3VyZQ0KICAgdGhhdCBjZXJ0YWluIGFsZ29yaXRobSBwYXJhbWV0ZXJzIGFyZSBzdWZmaWNpZW50 bHkgYW5kIHVuYW1iaWd1b3VzbHkNCiAgIGRlZmluZWQuDQoNCiAgIFRoZSBzY29wZSBvZiBzdWNo IGV4cGVydCByZXZpZXcgaXMgdG8gYmUgc3RyaWN0bHkgbGltaXRlZCB0bw0KICAgaWRlbnRpZnlp bmcgcG9zc2libGUgYW1iaWd1aXR5IGFuZC9vciBkdXBsaWNhdGlvbiBvZiBleGlzdGluZw0KICAg aWRlbnRpZmllcnMuICBUaGUgZXhwZXJ0IHJldmlldyBNVVNUIE5PVCBjb25zaWRlciB0aGUgY3J5 cHRvZ3JhcGhpYw0KICAgcHJvcGVydGllcywgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGNvbnNpZGVy YXRpb25zIG9yIGFueSBvdGhlciBmYWN0b3INCiAgIG5vdCByZWxhdGVkIHRvIHRoZSB1c2Ugb2Yg dGhlIGlkZW50aWZpZXIuDQoNCiAgIEluIHJldmlld2luZyBhIHJlcXVlc3QsIHRoZSBleHBlcnQg c2hvdWxkIGNvbnNpZGVyIHdoZXRoZXIgb3RoZXIgVVJJDQogICBpZGVudGlmaWVycyBhcmUgYWxy ZWFkeSBkZWZpbmVkIGZvciBhIGdpdmVuIGFsZ29yaXRobS4gIEluIHN1Y2ggY2FzZXMNCiAgIGl0 IGlzIHRoZSBkdXR5IG9mIHRoZSBleHBlcnQgdG8gYnJpbmcgdGhlIHBvdGVudGlhbCBkdXBsaWNh dGlvbiB0bw0KICAgdGhlIG5vdGljZSBvZiB0aGUgcHJvcG9zZXJzIG9mIHRoZSByZWdpc3RyYXRp b24gYW5kIHRoZSBTZWN1cml0eSBBcmVhDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBF eHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSA0Nl0NCgwNCkludGVy bmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAg IEp1bmUgMjAwOA0KDQoNCiAgIERpcmVjdG9ycy4gIElmIHRoZSBwcm9wb3NlcnMgYXJlIG5vdCB3 aWxsaW5nIHRvIGFjY2VwdCByZWdpc3RyYXRpb24NCiAgIG9mIHRoZSBleGlzdGluZyBpZGVudGlm aWVyIHRoZSBJRVRGIENvbnNlbnN1cyBwb2xpY3kgaXMgdG8gYXBwbHkuDQoNCiAgIEluIHJldmll d2luZyBhIHJlcXVlc3QsIHRoZSBleHBlcnQgc2hvdWxkIGNvbnNpZGVyIHdoZXRoZXIgdGhlDQog ICBhbGdvcml0aG0gaXMgc3VmZmljaWVudGx5IGRlZmluZWQgdG8gYWxsb3cgc3VjY2Vzc2Z1bCBp bnRlcm9wZXJhdGlvbi4NCiAgIEluIHBhcnRpY3VsYXIgdGhlIGV4cGVydCBzaG91bGQgY29uc2lk ZXIgd2hldGhlciBpc3N1ZXMgc3VjaCBhcyBrZXkNCiAgIHNpemVzIGFuZCBieXRlIG9yZGVyIGFy ZSBzdWZmaWNpZW50bHkgZGVmaW5lZCB0byBhbGxvdyBmb3INCiAgIGludGVyb3BlcmF0aW9uLg0K DQogICBXaGlsZSB0aGUgZGVmaW50aW9uIHJlcXVpcmVtZW50IE1BWSBiZSBzYXRpc2lmZWQgYnkg YSBjb21wcmVoZW5zaXZlDQogICBzcGVjaWZpY2F0aW9uIG9mIHRoZSBhbGdvcml0aG0sIGRpc2Ns b3N1cmUgb2YgdGhlIGFsZ29yaXRobSBpcyBub3QNCiAgIG1hbmRhdG9yeS4NCg0KOS40LjMuMi4g IENhbm9uaWNhbCBVUkkNCg0KICAgVW50aWwgdGhlIElBTkEgcmVxdWVzdHMgb3IgaW1wbGVtZW50 cyBhbiBhdXRvbWF0ZWQgcHJvY2VzcyBmb3IgdGhlDQogICByZWdpc3RyYXRpb24gb2YgdGhlc2Ug ZWxlbWVudHMsIGFueSBzcGVjaWZpY2F0aW9ucyBtdXN0IG1ha2UgdGhhdA0KICAgcmVxdWVzdCBw YXJ0IG9mIHRoZSBJQU5BIGNvbnNpZGVyYXRpb25zIHNlY3Rpb24gb2YgdGhlaXIgcmVzcGVjdGl2 ZQ0KICAgZG9jdW1lbnRzLiAgVGhhdCByZXF1ZXN0IG11c3QgYmUgaW4gdGhlIGZvcm0gb2YgdGhl IGZvbGxvd2luZw0KICAgdGVtcGxhdGU6DQoNCiAgIENvbW1vbiBOYW1lICBUaGUgbmFtZSBieSB3 aGljaCB0aGUgYWxnb3JpdGhtIGlzIGdlbmVyYWxseSByZWZlcnJlZC4NCg0KICAgQ2xhc3MgIFRo ZSB0eXBlIG9mIGFsZ29yaXRobSwgZW5jcnlwdGlvbiwgTWVzc2FnZSBBdXRoZW50aWNhdGlvbiBD b2RlDQogICAgICAoTUFDKSwgT25lIFRpbWUgUGF3d29yZCAoT1RQKSwgRGlnZXN0LCBldGMuICBB cyBzcGVjaWZpZWQgYnkgYQ0KICAgICAgZGVmaW5lZCBhbGdvcml0aG0gY2xhc3MuDQoNCiAgIFVS SSAgVGhlIGNhbm5vbmljYWwgVVJJIHRvIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFsZ29yaXRo bS4NCg0KICAgQWxnb3JpdGhtIERlZmluaXRpb24gIEEgcmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVu dCBpbiB3aGljaCB0aGUNCiAgICAgIGFsZ29yaXRobSBkZXNjcmliZWQgYnkgdGhlIGlkZW50aWZp ZXIgaXMgZGVmaW5lZC4NCg0KICAgSWRlbnRpZmllciBEZWZpbml0aW9uICBBIHJlZmVyZW5jZSB0 byB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlIHVzZQ0KICAgICAgb2YgdGhlIGlkZW50aWZpZXIg dG8gcmVmZXIgdG8gdGhlIGFsZ29yaXRobSBpcyBkZXNjcmliZWQuICBUaGlzDQogICAgICB3b3Vs ZCBpZGVhbGx5IGJlIHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgYWxnb3JpdGhtIGlzIGRlZmlu ZWQuDQoNCiAgIFJlZ2lzdHJhbnQgQ29udGFjdCAgQSByZWZlcmVuY2UgdG8gdGhlIGRvY3VtZW50 IGluIHdoaWNoIHRoZSB1c2Ugb2YNCiAgICAgIHRoZSBpZGVudGlmaWVyIHRvIHJlZmVyIHRvIHRo ZSBhbGdvcml0aG0gaXMgZGVzY3JpYmVkLiAgVGhpcyB3b3VsZA0KICAgICAgaWRlYWxseSBiZSB0 aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlIGFsZ29yaXRobSBpcyBkZWZpbmVkLg0KDQo5LjQuMy4z LiAgQWxpYXMgVVJJDQoNCiAgIEluIHRoZSBjYXNlIHRoYXQgbXVsdGlwbGUgaWRlbnRpZmllcnMg aGF2ZSBiZWVuIGFzc2lnbmVkIHRvIHRoZSBzYW1lDQogICBpZGVudGlmaWVycywgYWRkaXRpb25h bCBpZGVudGlmaWVycyBNQVkgYmUgcmVnaXN0ZXJlZCBhcyBhbGlhc2VzLiAgQW4NCiAgIGVudHJ5 IGZvciBhbiBhbGlhcyBjb250YWlucyBhbGwgdGhlIGVudHJpZXMgZm9yIGEgY2Fub25pY2FsIFVS SSB3aXRoDQogICB0aGUgYWRkaXRpb24gb2YgYSByZWZlcmVuY2UgdG8gdGhlIGNhbm9uaWNhbCBV UkkgdG8gYmUgdXNlZDoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVz IERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSA0N10NCgwNCkludGVybmV0LURy YWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUg MjAwOA0KDQoNCiAgIEFsaWFzIGZvciBVUkkgIFRoZSBjYW5ub25pY2FsIFVSSSB0aGF0IGlkZW50 aWZpZXMgdGhlIGFsZ29yaXRobS4gIFRoZQ0KICAgICAgVVJJIHJlZmVyZW5jZWQgTVVTVCBiZSBh IGNhbm9uaWNhbCBVUkkuDQoNCiAgIEluIHRoZSBjYXNlIG9mIGRpc3B1dGUgYXMgdG8gd2hpY2gg VVJJIGlzIHRvIGJlIGNvbnNpZGVyZWQgY2Fub25pY2FsDQogICB0aGUgbWF0dGVyIGlzIHRvIGJl IHNldHRsZWQgYnkgSUVTRyBhY3Rpb24uDQoNCjkuNC40LiAgSW5pdGlhbCBWYWx1ZXMNCg0KICAg VGhlIGZvbGxvd2luZyBpbml0aWFsIHZhbHVlcyBhcmUgZGVmaW5lZC4gIE5vdGUgdGhhdCB0aGVz ZSB2YWx1ZXMgYXJlDQogICBsaW1pdGVkIHRvIGlkZW50aWZpZXJzIHRoYXQgYXJlIHJlcXVpcmVk IGJ5IEtFWVBST1YgYnV0IG5vdCBzcGVjaWZpZWQNCiAgIGVsc2V3aGVyZToNCg0KOS40LjQuMS4g IEhPVFANCg0KICAgQ29tbW9uIE5hbWU6ICBIT1RQDQoNCiAgIENsYXNzOiAgT1RQDQoNCiAgIFVS STogIGh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHANCg0KICAgQWxnb3JpdGht IERlZmluaXRpb246ICBodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmM0MjI2LnR4dA0KDQogICBJ ZGVudGlmaWVyIERlZmluaXRpb24gICh0aGlzIFJGQykNCg0KICAgUmVnaXN0cmFudCBDb250YWN0 OiAgSUVTRw0KDQo5LjQuNC4yLiAgSE9UUC1ITUFDLVNIQS0xDQoNCiAgIENvbW1vbiBOYW1lOiAg SE9UUC1ITUFDLVNIQS0xDQoNCiAgIENsYXNzOiAgT1RQDQoNCiAgIFVSSTogIGh0dHA6Ly93d3cu aWV0Zi5vcmcvcmZjL3JmYzQyMjYudHh0I0hPVFAtSE1BQy1TSEEtMQ0KDQogICBBbGdvcml0aG0g RGVmaW5pdGlvbjogIGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzQyMjYudHh0DQoNCiAgIElk ZW50aWZpZXIgRGVmaW5pdGlvbiAgKHRoaXMgUkZDKQ0KDQogICBSZWdpc3RyYW50IENvbnRhY3Q6 ICBJRVNHDQoNCjkuNC40LjMuICBLRVlQUk9WLVBJTg0KDQogICBDb21tb24gTmFtZTogIEtFWVBS T1YtUElODQoNCiAgIENsYXNzOiAgU3ltbWV0cmljIHN0YXRpYyBjcmVkZW50aWFsIGNvbXBhcmlz b24NCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIg MjAsIDIwMDggICAgICAgICAgICAgIFtQYWdlIDQ4XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQ b3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0K ICAgVVJJOiAgaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92L3Bza2MjcGluDQoNCiAgIEFsZ29y aXRobSBEZWZpbml0aW9uOiAgKHRoaXMgZG9jdW1lbnQpDQoNCiAgIElkZW50aWZpZXIgRGVmaW5p dGlvbiAgKHRoaXMgZG9jdW1lbnQpDQoNCiAgIFJlZ2lzdHJhbnQgQ29udGFjdDogIElFU0cNCg0K OS40LjQuNC4gIFNlY3VySUQtQUVTDQoNCiAgIENvbW1vbiBOYW1lOiAgU2VjdXJJRC1BRVMNCg0K ICAgQ2xhc3M6ICBPVFANCg0KICAgVVJJOiAgaHR0cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcnNh bGFicy9vdHBzL3NjaGVtYXMvMjAwNS8wOS8NCiAgICAgIG90cHMtd3N0I1NlY3VySUQtQUVTDQoN CiAgIEFsZ29yaXRobSBEZWZpbml0aW9uOiAgaHR0cDovL3d3dy5yc2EuY29tL3JzYWxhYnMvbm9k ZS5hc3A/aWQ9MjgyMQ0KDQogICBJZGVudGlmaWVyIERlZmluaXRpb24gIGh0dHA6Ly93d3cucnNh LmNvbS9yc2FsYWJzL25vZGUuYXNwP2lkPTI4MjENCg0KICAgUmVnaXN0cmFudCBDb250YWN0OiAg QW5kcmVhIERvaGVydHksIFJTQSB0aGUgU2VjdXJpdHkgRGl2aXNpb24gb2YNCiAgICAgIEVNQywg PGFuZHJlYS5kb2hlcnR5QHJzYS5jb20+DQoNCjkuNC40LjUuICBTZWN1cklELUFMR09SDQoNCiAg IENvbW1vbiBOYW1lOiAgU2VjdXJJRC1BTEdPUg0KDQogICBDbGFzczogIE9UUA0KDQogICBVUkk6 ICBodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJzL290cHMvc2NoZW1hcy8yMDA1LzA5 Lw0KICAgICAgb3Rwcy13c3QjU2VjdXJJRC1BTEdPUg0KDQogICBBbGdvcml0aG0gRGVmaW5pdGlv bjogIGh0dHA6Ly93d3cucnNhLmNvbS9yc2FsYWJzL25vZGUuYXNwP2lkPTI4MjENCg0KICAgSWRl bnRpZmllciBEZWZpbml0aW9uICBodHRwOi8vd3d3LnJzYS5jb20vcnNhbGFicy9ub2RlLmFzcD9p ZD0yODIxDQoNCiAgIFJlZ2lzdHJhbnQgQ29udGFjdDogIEFuZHJlYSBEb2hlcnR5LCBSU0EgdGhl IFNlY3VyaXR5IERpdmlzaW9uIG9mDQogICAgICBFTUMsIDxhbmRyZWEuZG9oZXJ0eUByc2EuY29t Pg0KDQo5LjQuNC42LiAgQWN0aXZJZGVudGl0eS0zREVTDQoNCiAgIENvbW1vbiBOYW1lOiAgQWN0 aXZJZGVudGl0eS0zREVTDQoNCiAgIENsYXNzOiAgT1RQDQoNCg0KDQoNCg0KDQpIb3llciwgZXQg YWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFn ZSA0OV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250 YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIFVSSTogIGh0dHA6Ly93d3cuYWN0aXZp ZGVudGl0eS5jb20vMjAwOC8wNC9hbGdvcml0aG1zLw0KICAgICAgYWxnb3JpdGhtcyNBY3Rpdklk ZW50aXR5LTNERVMNCg0KICAgQWxnb3JpdGhtIERlZmluaXRpb246ICBodHRwOi8vd3d3LmFjdGl2 aWRlbnRpdHkuY29tLzIwMDgvMDQvDQogICAgICBhbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJ ZGVudGl0eS0zREVTDQoNCiAgIElkZW50aWZpZXIgRGVmaW5pdGlvbiAgaHR0cDovL3d3dy5hY3Rp dmlkZW50aXR5LmNvbS8yMDA4LzA0Lw0KICAgICAgYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2 SWRlbnRpdHktM0RFUw0KDQogICBSZWdpc3RyYW50IENvbnRhY3Q6ICBQaGlsaXAgSG95ZXIsIEFj dGl2SWRlbnRpdHkgSW5jLA0KICAgICAgPHBoaWxpcC5ob3llckBhY3RpdmlkZW50aXR5LmNvbT4N Cg0KOS40LjQuNy4gIEFjdGl2SWRlbnRpdHktQUVTDQoNCiAgIENvbW1vbiBOYW1lOiAgQWN0aXZJ ZGVudGl0eS1BRVMNCg0KICAgQ2xhc3M6ICBPVFANCg0KICAgVVJJOiAgaHR0cDovL3d3dy5hY3Rp dmlkZW50aXR5LmNvbS8yMDA4LzA0L2FsZ29yaXRobXMvDQogICAgICBhbGdvcml0aG1zI0FjdGl2 SWRlbnRpdHktQUVTDQoNCiAgIEFsZ29yaXRobSBEZWZpbml0aW9uOiAgaHR0cDovL3d3dy5hY3Rp dmlkZW50aXR5LmNvbS8yMDA4LzA0Lw0KICAgICAgYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2 SWRlbnRpdHktQUVTDQoNCiAgIElkZW50aWZpZXIgRGVmaW5pdGlvbiAgaHR0cDovL3d3dy5hY3Rp dmlkZW50aXR5LmNvbS8yMDA4LzA0Lw0KICAgICAgYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2 SWRlbnRpdHktQUVTDQoNCiAgIFJlZ2lzdHJhbnQgQ29udGFjdDogIFBoaWxpcCBIb3llciwgQWN0 aXZJZGVudGl0eSBJbmMsDQogICAgICA8cGhpbGlwLmhveWVyQGFjdGl2aWRlbnRpdHkuY29tPg0K DQo5LjQuNC44LiAgQWN0aXZJZGVudGl0eS1ERVMNCg0KICAgQ29tbW9uIE5hbWU6ICBBY3Rpdklk ZW50aXR5LURFUw0KDQogICBDbGFzczogIE9UUA0KDQogICBVUkk6ICBodHRwOi8vd3d3LmFjdGl2 aWRlbnRpdHkuY29tLzIwMDgvMDQvYWxnb3JpdGhtcy8NCiAgICAgIGFsZ29yaXRobXMjQWN0aXZJ ZGVudGl0eS1ERVMNCg0KICAgQWxnb3JpdGhtIERlZmluaXRpb246ICBodHRwOi8vd3d3LmFjdGl2 aWRlbnRpdHkuY29tLzIwMDgvMDQvDQogICAgICBhbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJ ZGVudGl0eS1ERVMNCg0KICAgSWRlbnRpZmllciBEZWZpbml0aW9uICBodHRwOi8vd3d3LmFjdGl2 aWRlbnRpdHkuY29tLzIwMDgvMDQvDQogICAgICBhbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJ ZGVudGl0eS1ERVMNCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJl cyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNTBdDQoMDQpJbnRlcm5ldC1E cmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5l IDIwMDgNCg0KDQogICBSZWdpc3RyYW50IENvbnRhY3Q6ICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRl bnRpdHkgSW5jLA0KICAgICAgPHBoaWxpcC5ob3llckBhY3RpdmlkZW50aXR5LmNvbT4NCg0KOS40 LjQuOS4gIEFjdGl2SWRlbnRpdHktRVZFTlQNCg0KICAgQ29tbW9uIE5hbWU6ICBBY3RpdklkZW50 aXR5LUVWRU5UDQoNCiAgIENsYXNzOiAgT1RQDQoNCiAgIFVSSTogIGh0dHA6Ly93d3cuYWN0aXZp ZGVudGl0eS5jb20vMjAwOC8wNC9hbGdvcml0aG1zLw0KICAgICAgYWxnb3JpdGhtcyNBY3Rpdklk ZW50aXR5LUVWRU5UDQoNCiAgIEFsZ29yaXRobSBEZWZpbml0aW9uOiAgaHR0cDovL3d3dy5hY3Rp dmlkZW50aXR5LmNvbS8yMDA4LzA0Lw0KICAgICAgYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2 SWRlbnRpdHktRVZFTlQNCg0KICAgSWRlbnRpZmllciBEZWZpbml0aW9uICBodHRwOi8vd3d3LmFj dGl2aWRlbnRpdHkuY29tLzIwMDgvMDQvDQogICAgICBhbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0 aXZJZGVudGl0eS1FVkVOVA0KDQogICBSZWdpc3RyYW50IENvbnRhY3Q6ICBQaGlsaXAgSG95ZXIs IEFjdGl2SWRlbnRpdHkgSW5jLA0KICAgICAgPHBoaWxpcC5ob3llckBhY3RpdmlkZW50aXR5LmNv bT4NCg0KOS41LiAgWE1MIERhdGEgVGFnIElkZW50aWZpZXIgUmVnaXN0cnkNCg0KICAgVGhpcyBz cGVjaWZpY2F0aW9uIHJlcXVlc3RzIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBJQU5BIHJlZ2lzdHJ5 IGZvcg0KICAgWE1MIERhdGEgVGFnIGlkZW50aWZpZXJzIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUg cHJpbmNpcGxlcyBzZXQgb3V0IGluDQogICBSRkMgMjQzNCBbUkZDMjQzNF1hcyBmb2xsb3dzOg0K DQogICBbTW9yZSBleHBsYW5hdGlvbiBvZiB3aHkgYW4gZXNjYXBlIHRvIHRhZyB2YWx1ZSBsaXN0 cyBpcyBkZXNpcmFibGUNCiAgIHdoZW4gaW5zZXJ0aW5nIHVuc3RydWN0dXJlZCBkYXRhIGludG8g YW4gWE1MIHNjaGVtYV0NCg0KOS41LjEuICBBcHBsaWNhYmlsaXR5DQoNCiAgIEFzIHBhcnQgb2Yg dGhpcyByZWdpc3RyeSB0aGUgSUFOQSB3aWxsIG1haW50YWluIHRoZSBmb2xsb3dpbmcNCiAgIGlu Zm9ybWF0aW9uOg0KDQogICBDb21tb24gTmFtZSAgQ29tbW9uIG5hbWUgZm9yIGJ5IHdoaWNoIHRo ZSB0YWcgaXMgcmVmZXJyZWQgdG8NCg0KICAgQ2Fubm9uaWNhbCBVUkkgIFRoZSBjYW5ub25pY2Fs IFVSSSB0byBiZSBlbXBsb3llZCB3aGVuIGNpdGluZyB0aGUNCiAgICAgIHRhZy4NCg0KICAgRGF0 YSBUeXBlICBUaGUgZGF0YSB0eXBlIG9mIHRoZSBkYXRhIHRoYXQgaXMgYm91bmQgdG8gdGhlIHRh Zy4NCg0KICAgIERlZmluaXRpb24gIEEgcmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVudCBpbiB3aGlj aCB0aGUgZGF0YSB0YWcNCiAgICAgIGRlZmluZWQgYnkgdGhlIGlkZW50aWZpZXIgaXMgZGVmaW5l ZC4NCg0KICAgSW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHJlZ2lzdHJhbnQgZG9lcyBub3QgcmVxdWVz dCBhIHBhcnRpY3VsYXIgVVJJLA0KICAgdGhlIElBTkEgd2lsbCBhc3NpZ24gaXQgYSBVbmlmb3Jt IFJlc291cmNlIE5hbWUgKFVSTikgdGhhdCBmb2xsb3dzDQogICBSRkMgMzU1MyBbUkZDMzU1M10u DQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4 ICAgICAgICAgICAgICBbUGFnZSA1MV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUg U3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjkuNS4yLiAg UmVnaXN0ZXJhYmxlIERhdGEgVGFncw0KDQo5LjUuMi4xLiAgQXNzaWduZWQgVVJJcw0KDQogICBJ ZiB0aGUgcmVnaXN0cmFudCB3aXNoZXMgdG8gaGF2ZSBhIFVSSSBhc3NpZ25lZCwgdGhlbiBhIFVS TiBvZiB0aGUNCiAgIGZvcm0NCg0KICAgdXJuOmlldGY6cGFyYW1zOnhtbDpkYXRhdGFnOjx0YWc+ DQoNCiAgIHdpbGwgYmUgYXNzaWduZWQgd2hlcmUgPHRhZz4gaXMgYSB1bmlxdWUgaWQgc3BlY2lm aWVkIGJ5IHRoZSBwYXJ0eQ0KICAgbWFraW5nIHRoZSByZXF1ZXN0IGFuZCB3aWxsIG5vcm1hbGx5 IGJlIGVpdGhlciB0aGUgY29tbW9uIG5hbWUgb2YgdGhlDQogICB0YWcgb3IgYW4gYWJicmV2aWF0 aW9uIHRoZXJlb2YuDQoNCiAgIE5PVEU6IGluIG9yZGVyIGZvciBhIFVSTiBvZiB0aGlzIHR5cGUg dG8gYmUgYXNzaWduZWQsIHRoZSBpdGVtIGJlaW5nDQogICByZWdpc3RlcmVkIE1VU1QgaGF2ZSBi ZWVuIHRocm91Z2ggdGhlIElFVEYgY29uc2Vuc3VzIHByb2Nlc3MuDQogICBCYXNpY2FsbHksIHRo aXMgbWVhbnMgdGhhdCBpdCBtdXN0IGJlIGRvY3VtZW50ZWQgaW4gYSBSRkMuDQoNCiAgIE5PVEU6 IEV4cGVydCBSZXZpZXcgaXMgc3VmZmljaWVudCBpbiBjYXNlcyB3aGVyZSB0aGUgcmVxdWVzdCBk b2VzIG5vdA0KICAgcmVxdWlyZSBhIFVSTiBhc3NpZ25tZW50IGludGhlIElFVEYgbmFtZXNwYWNl LiAgSUVURiBjb25zZW5zdXMgaXMgbm90DQogICByZXF1aXJlZC4NCg0KOS41LjMuICBSZWdpc3Ry YXRpb24gUHJvY2VkdXJlcw0KDQo5LjUuMy4xLiAgUmV2aWV3DQoNCiAgIERhdGEgdGFnIHJlZ2lz dHJhdGlvbnMgYXJlIHRvIGJlIHN1YmplY3QgdG8gRXhwZXJ0IFJldmlldyBhcyBwZXIgUkZDDQog ICAyNDM0IFtSRkMyNDM0XS4NCg0KOS41LjMuMi4gIERhdGEgVGFnIEVudHJ5DQoNCiAgIFVudGls IHRoZSBJQU5BIHJlcXVlc3RzIG9yIGltcGxlbWVudHMgYW4gYXV0b21hdGVkIHByb2Nlc3MgZm9y IHRoZQ0KICAgcmVnaXN0cmF0aW9uIG9mIHRoZXNlIGVsZW1lbnRzLCBhbnkgc3BlY2lmaWNhdGlv bnMgbXVzdCBtYWtlIHRoYXQNCiAgIHJlcXVlc3QgcGFydCBvZiB0aGUgSUFOQSBjb25zaWRlcmF0 aW9ucyBzZWN0aW9uIG9mIHRoZWlyIHJlc3BlY3RpdmUNCiAgIGRvY3VtZW50cy4gIFRoYXQgcmVx dWVzdCBtdXN0IGJlIGluIHRoZSBmb3JtIG9mIHRoZSBmb2xsb3dpbmcNCiAgIHRlbXBsYXRlOg0K DQogICBDb21tb24gTmFtZSAgQ29tbW9uIG5hbWUgZm9yIGJ5IHdoaWNoIHRoZSB0YWcgaXMgcmVm ZXJyZWQgdG8NCg0KICAgQ2Fubm9uaWNhbCBVUkkgIFRoZSBjYW5ub25pY2FsIFVSSSB0byBiZSBl bXBsb3llZCB3aGVuIGNpdGluZyB0aGUNCiAgICAgIHRhZy4NCg0KICAgRGF0YSBUeXBlICBUaGUg ZGF0YSB0eXBlIG9mIHRoZSBkYXRhIHRoYXQgaXMgYm91bmQgdG8gdGhlIHRhZy4NCg0KICAgIERl ZmluaXRpb24gIEEgcmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgZGF0YSB0 YWcNCiAgICAgIGRlZmluZWQgYnkgdGhlIGlkZW50aWZpZXIgaXMgZGVmaW5lZC4NCg0KDQoNCg0K DQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAg ICAgICAgICAgIFtQYWdlIDUyXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1t ZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KOS41LjQuICBJbml0 aWFsIFZhbHVlcw0KDQogICBUaGUgZm9sbG93aW5nIGluaXRpYWwgdmFsdWVzIGFyZSBkZWZpbmVk LiAgTm90ZSB0aGF0IHRoZXNlIHZhbHVlcyBhcmUNCiAgIGxpbWl0ZWQgdG8gaWRlbnRpZmllcnMg dGhhdCBhcmUgcmVxdWlyZWQgYnkgS0VZUFJPViBidXQgbm90IHNwZWNpZmllZA0KICAgZWxzZXdo ZXJlOg0KDQo5LjUuNC4xLiAgU2VjcmV0DQoNCiAgIENvbW1vbiBOYW1lICBTZWNyZXQNCg0KICAg Q2Fubm9uaWNhbCBVUkkgIHVybjppZXRmOnBhcmFtczp4bWw6ZGF0YXRhZzpzZWNyZXQNCg0KICAg RGF0YSBUeXBlICBiaW5hcnksIGJhc2U2NCBlbmNvZGVkDQoNCiAgIERlZmluZWQgaW4gICh0aGlz IGRvY3VtZW50KQ0KDQo5LjUuNC4yLiAgQ291bnRlcg0KDQogICBDb21tb24gTmFtZSAgQ291bnRl cg0KDQogICBDYW5ub25pY2FsIFVSSSAgdXJuOmlldGY6cGFyYW1zOnhtbDpkYXRhdGFnOmNvdW50 ZXINCg0KICAgRGF0YSBUeXBlICA4IGJ5dGVzIHVuc2lnbmVkIGludGVnZXIgaW4gYmlnIGVuZGlh biAoaS5lLiBuZXR3b3JrIGJ5dGUNCiAgICAgIG9yZGVyKSBmb3JtIGJhc2U2NCBlbmNvZGVkDQoN CiAgIERlZmluZWQgaW4gICh0aGlzIGRvY3VtZW50KQ0KDQo5LjUuNC4zLiAgVGltZQ0KDQogICBD b21tb24gTmFtZSAgVGltZQ0KDQogICBDYW5ub25pY2FsIFVSSSAgdXJuOmlldGY6cGFyYW1zOnht bDpkYXRhdGFnOnRpbWUNCg0KICAgRGF0YSBUeXBlICA4IGJ5dGVzIHVuc2lnbmVkIGludGVnZXIg aW4gYmlnIGVuZGlhbiAoaS5lLiBuZXR3b3JrIGJ5dGUNCiAgICAgIG9yZGVyKSBmb3JtIGJhc2U2 NCBlbmNvZGVkIChOdW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSAxOTcwKQ0KDQogICBEZWZpbmVkIGlu ICAodGhpcyBkb2N1bWVudCkNCg0KOS41LjQuNC4gIFRpbWUgSW50ZXJ2YWwNCg0KICAgQ29tbW9u IE5hbWUgIFRpbWUgSW50ZXJ2YWwNCg0KICAgQ2Fubm9uaWNhbCBVUkkgIHVybjppZXRmOnBhcmFt czp4bWw6ZGF0YXRhZzp0aW1lX2ludGVydmFsDQoNCiAgIERhdGEgVHlwZSAgOCBieXRlcyB1bnNp Z25lZCBpbnRlZ2VyIGluIGJpZyBlbmRpYW4gKGkuZS4gbmV0d29yayBieXRlDQogICAgICBvcmRl cikgZm9ybSBiYXNlNjQgZW5jb2RlZC4NCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAg ICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSA1M10NCgwNCklu dGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAg ICAgIEp1bmUgMjAwOA0KDQoNCiAgIERlZmluZWQgaW4gICh0aGlzIGRvY3VtZW50KQ0KDQo5LjUu NC41LiAgVGltZSBEcmlmdA0KDQogICBDb21tb24gTmFtZSAgdXJuOmlldGY6cGFyYW1zOnhtbDpk YXRhdGFnOnRpbWVfZHJpZnQNCg0KICAgQ2Fubm9uaWNhbCBVUkkgIFRpbWUgRHJpZnQNCg0KICAg RGF0YSBUeXBlICAyIGJ5dGVzIHVuc2lnbmVkIGludGVnZXIgaW4gYmlnIGVuZGlhbiAoaS5lLiBu ZXR3b3JrIGJ5dGUNCiAgICAgIG9yZGVyKSBmb3JtIGJhc2U2NCBlbmNvZGVkLg0KDQogICBEZWZp bmVkIGluICAodGhpcyBkb2N1bWVudCkNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBh bC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAgIFtQYWdl IDU0XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRh aW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KMTAuICBTZWN1cml0eSBDb25zaWRlcmF0aW9u cw0KDQogICBUaGUgcG9ydGFibGUga2V5IGNvbnRhaW5lciBjYXJyaWVzIHNlbnNpdGl2ZSBpbmZv cm1hdGlvbiAoZS5nLiwNCiAgIGNyeXB0b2dyYXBoaWMga2V5cykgYW5kIG1heSBiZSB0cmFuc3Bv cnRlZCBhY3Jvc3MgdGhlIGJvdW5kYXJpZXMgb2YNCiAgIG9uZSBzZWN1cmUgcGVyaW1ldGVyIHRv IGFub3RoZXIuICBGb3IgZXhhbXBsZSwgYSBjb250YWluZXIgcmVzaWRpbmcNCiAgIHdpdGhpbiB0 aGUgc2VjdXJlIHBlcmltZXRlciBvZiBhIGJhY2stZW5kIHByb3Zpc2lvbmluZyBzZXJ2ZXIgaW4g YQ0KICAgc2VjdXJlIHJvb20gbWF5IGJlIHRyYW5zcG9ydGVkIGFjcm9zcyB0aGUgaW50ZXJuZXQg dG8gYW4gZW5kLXVzZXINCiAgIGRldmljZSBhdHRhY2hlZCB0byBhIHBlcnNvbmFsIGNvbXB1dGVy LiAgVGhpcyBtZWFucyB0aGF0IHNwZWNpYWwgY2FyZQ0KICAgbXVzdCBiZSB0YWtlbiB0byBlbnN1 cmUgdGhlIGNvbmZpZGVudGlhbGl0eSwgaW50ZWdyaXR5LCBhbmQNCiAgIGF1dGhlbnRpY2l0eSBv ZiB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIHdpdGhpbi4NCg0KMTAuMS4gIFBheWxvYWQgY29u ZmlkZW50aWFsaXR5DQoNCiAgIEJ5IGRlc2lnbiwgdGhlIGNvbnRhaW5lciBhbGxvd3MgdHdvIG1h aW4gYXBwcm9hY2hlcyB0byBndWFyYW50ZWVpbmcNCiAgIHRoZSBjb25maWRlbnRpYWxpdHkgb2Yg dGhlIGluZm9ybWF0aW9uIGl0IGNvbnRhaW5zIHdoaWxlIHRyYW5zcG9ydGVkLg0KDQogICBGaXJz dCwgdGhlIGNvbnRhaW5lciBrZXkgZGF0YSBwYXlsb2FkIG1heSBiZSBlbmNyeXB0ZWQuDQoNCiAg IEluIHRoaXMgY2FzZSBubyB0cmFuc3BvcnQgbGF5ZXIgc2VjdXJpdHkgaXMgcmVxdWlyZWQuICBI b3dldmVyLA0KICAgc3RhbmRhcmQgc2VjdXJpdHkgYmVzdCBwcmFjdGljZXMgYXBwbHkgd2hlbiBz ZWxlY3RpbmcgdGhlIHN0cmVuZ3RoIG9mDQogICB0aGUgY3J5cHRvZ3JhcGhpYyBhbGdvcml0aG0g Zm9yIHBheWxvYWQgZW5jcnlwdGlvbi4gIFN5bW1ldHJpYw0KICAgY3J5cHRvZ3JhcGhpYyBjaXBo ZXIgc2hvdWxkIGJlIHVzZWQgLSB0aGUgbG9uZ2VyIHRoZSBjcnlwdG9ncmFwaGljDQogICBrZXks IHRoZSBzdHJvbmdlciB0aGUgcHJvdGVjdGlvbi4gIEF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGlu ZyBib3RoDQogICAzREVTIGFuZCBBRVMgYXJlIG1hbmRhdG9yeSBhbGdvcml0aG1zIGJ1dCAzREVT IG1heSBiZSBkcm9wcGVkIGluIHRoZQ0KICAgcmVsYXRpdmVseSBuZWFyIGZ1dHVyZS4gIEFwcGxp Y2F0aW9ucyBjb25jZXJuZWQgd2l0aCBhbGdvcml0aG0NCiAgIGxvbmdldml0eSBhcmUgYWR2aXNl ZCB0byB1c2UgQUVTLTI1Ni1DQkMuICBJbiBjYXNlcyB3aGVyZSB0aGUNCiAgIGV4Y2hhbmdlIG9m IGVuY3J5cHRpb24ga2V5cyBiZXR3ZWVuIHRoZSBzZW5kZXIgYW5kIHRoZSByZWNlaXZlciBpcw0K ICAgbm90IHBvc3NpYmxlLCBhc3ltbWV0cmljIGVuY3J5cHRpb24gb2YgdGhlIHNlY3JldCBrZXkg cGF5bG9hZCBtYXkgYmUNCiAgIGVtcGxveWVkLiAgU2ltaWxhcmx5IHRvIHN5bW1ldHJpYyBrZXkg Y3J5cHRvZ3JhcGh5LCB0aGUgc3Ryb25nZXIgdGhlDQogICBhc3ltbWV0cmljIGtleSwgdGhlIG1v cmUgc2VjdXJlIHRoZSBwcm90ZWN0aW9uIGlzLg0KDQogICBJZiB0aGUgcGF5bG9hZCBpcyBlbmNy eXB0ZWQgd2l0aCBhIG1ldGhvZCB0aGF0IHVzZXMgb25lIG9mIHRoZQ0KICAgcGFzc3dvcmQtYmFz ZWQgZW5jcnlwdGlvbiBtZXRob2RzIHByb3ZpZGVkIGFib3ZlLCB0aGUgcGF5bG9hZCBtYXkgYmUN CiAgIHN1YmplY3RlZCB0byBwYXNzd29yZCBkaWN0aW9uYXJ5IGF0dGFja3MgdG8gYnJlYWsgdGhl IGVuY3J5cHRpb24NCiAgIHBhc3N3b3JkIGFuZCByZWNvdmVyIHRoZSBpbmZvcm1hdGlvbi4gIFN0 YW5kYXJkIHNlY3VyaXR5IGJlc3QNCiAgIHByYWN0aWNlcyBmb3Igc2VsZWN0aW9uIG9mIHN0cm9u ZyBlbmNyeXB0aW9uIHBhc3N3b3JkcyBhcHBseQ0KICAgW1NjaG5laWVyXS4NCg0KICAgUHJhY3Rp Y2FsIGltcGxlbWVudGF0aW9ucyBzaG91bGQgdXNlIFBCRVNhbHQgYW5kIFBCRUl0ZXJhdGlvbkNv dW50DQogICB3aGVuIFBCRSBlbmNyeXB0aW9uIGlzIHVzZWQuICBEaWZmZXJlbnQgUEJFU2FsdCB2 YWx1ZSBwZXIga2V5DQogICBjb250YWluZXIgc2hvdWxkIGJlIHVzZWQgZm9yIGJlc3QgcHJvdGVj dGlvbi4NCg0KICAgVGhlIHNlY29uZCBhcHByb2FjaCB0byBwcm90ZWN0aW5nIHRoZSBjb25maWRl bnRpYWxpdHkgb2YgdGhlIHBheWxvYWQNCiAgIGlzIGJhc2VkIG9uIHVzaW5nIHRyYW5zcG9ydCBs YXllciBzZWN1cml0eS4gIFRoZSBzZWN1cmUgY2hhbm5lbA0KICAgZXN0YWJsaXNoZWQgYmV0d2Vl biB0aGUgc291cmNlIHNlY3VyZSBwZXJpbWV0ZXIgKHRoZSBwcm92aXNpb25pbmcNCiAgIHNlcnZl ciBmcm9tIHRoZSBleGFtcGxlIGFib3ZlKSBhbmQgdGhlIHRhcmdldCBwZXJpbWV0ZXIgKHRoZSBk ZXZpY2UNCiAgIGF0dGFjaGVkIHRvIHRoZSBlbmQtdXNlciBjb21wdXRlcikgdXRpbGl6ZXMgZW5j cnlwdGlvbiB0byB0cmFuc3BvcnQNCiAgIHRoZSBtZXNzYWdlcyB0aGF0IHRyYXZlbCBhY3Jvc3Mu ICBObyBwYXlsb2FkIGVuY3J5cHRpb24gaXMgcmVxdWlyZWQNCg0KDQoNCkhveWVyLCBldCBhbC4g ICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAgIFtQYWdlIDU1 XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5l ciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgaW4gdGhpcyBtb2RlLiAgU2VjdXJlIGNoYW5u ZWxzIHRoYXQgZW5jcnlwdCBhbmQgZGlnZXN0IGVhY2ggbWVzc2FnZQ0KICAgcHJvdmlkZSBhbiBl eHRyYSBtZWFzdXJlIG9mIHNlY3VyaXR5LCBlc3BlY2lhbGx5IHdoZW4gdGhlIHNpZ25hdHVyZQ0K ICAgb2YgdGhlIHBheWxvYWQgZG9lcyBub3QgZW5jb21wYXNzIHRoZSBlbnRpcmUgcGF5bG9hZC4N Cg0KICAgQmVjYXVzZSBvZiB0aGUgZmFjdCB0aGF0IHRoZSBwbGFpbiB0ZXh0IHBheWxvYWQgaXMg cHJvdGVjdGVkIG9ubHkgYnkNCiAgIHRoZSB0cmFuc3BvcnQgbGF5ZXIgc2VjdXJpdHksIHByYWN0 aWNhbCBpbXBsZW1lbnRhdGlvbiBtdXN0IGVuc3VyZQ0KICAgcHJvdGVjdGlvbiBhZ2FpbnN0IG1h bi1pbi10aGUtbWlkZGxlIGF0dGFja3MgW1NjaG5laWVyXS4gIFZhbGlkYXRpbmcNCiAgIHRoZSBz ZWN1cmUgY2hhbm5lbCBlbmQtcG9pbnRzIGlzIGNyaXRpY2FsbHkgaW1wb3J0YW50IGZvciBlbGlt aW5hdGluZw0KICAgaW50cnVkZXJzIHRoYXQgbWF5IGNvbXByb21pc2UgdGhlIGNvbmZpZGVudGlh bGl0eSBvZiB0aGUgcGF5bG9hZC4NCg0KMTAuMi4gIFBheWxvYWQgaW50ZWdyaXR5DQoNCiAgIFRo ZSBwb3J0YWJsZSBzeW1tZXRyaWMga2V5IGNvbnRhaW5lciBwcm92aWRlcyBhIG1lYW4gdG8gZ3Vh cmFudGVlIHRoZQ0KICAgaW50ZWdyaXR5IG9mIHRoZSBpbmZvcm1hdGlvbiBpdCBjb250YWlucyB0 aHJvdWdoIGRpZ2l0YWwgc2lnbmF0dXJlcy4NCiAgIEZvciBiZXN0IHNlY3VyaXR5IHByYWN0aWNl cywgdGhlIGRpZ2l0YWwgc2lnbmF0dXJlIG9mIHRoZSBjb250YWluZXINCiAgIHNob3VsZCBlbmNv bXBhc3MgdGhlIGVudGlyZSBwYXlsb2FkLiAgVGhpcyBwcm92aWRlcyBhc3N1cmFuY2VzIGZvcg0K ICAgdGhlIGludGVncml0eSBvZiBhbGwgYXR0cmlidXRlcy4gIEl0IGFsc28gYWxsb3dzIHZlcmlm aWNhdGlvbiBvZiB0aGUNCiAgIGludGVncml0eSBvZiBhIGdpdmVuIHBheWxvYWQgZXZlbiBhZnRl ciB0aGUgY29udGFpbmVyIGlzIGRlbGl2ZXJlZA0KICAgdGhyb3VnaCB0aGUgY29tbXVuaWNhdGlv biBjaGFubmVsIHRvIHRoZSB0YXJnZXQgcGVyaW1ldGVyIGFuZCBjaGFubmVsDQogICBtZXNzYWdl IGludGVncml0eSBjaGVjayBpcyBubyBsb25nZXIgcG9zc2libGUuDQoNCjEwLjMuICBQYXlsb2Fk IGF1dGhlbnRpY2l0eQ0KDQogICBUaGUgZGlnaXRhbCBzaWduYXR1cmUgb2YgdGhlIHBheWxvYWQg aXMgdGhlIHByaW1hcnkgd2F5IG9mIHNob3dpbmcNCiAgIGl0cyBhdXRoZW50aWNpdHkuICBUaGUg cmVjaXBpZW50IG9mIHRoZSBjb250YWluZXIgbWF5IHVzZSB0aGUgcHVibGljDQogICBrZXkgYXNz b2NpYXRlZCB3aXRoIHRoZSBzaWduYXR1cmUgdG8gYXNzZXJ0IHRoZSBhdXRoZW50aWNpdHkgb2Yg dGhlDQogICBzZW5kZXIgYnkgdHJhY2luZyBpdCBiYWNrIHRvIGEgcHJlbG9hZGVkIHB1YmxpYyBr ZXkgb3IgY2VydGlmaWNhdGUuDQogICBOb3RlIHRoYXQgdGhlIGRpZ2l0YWwgc2lnbmF0dXJlIG9m IHRoZSBwYXlsb2FkIGNhbiBiZSBjaGVja2VkIGV2ZW4NCiAgIGFmdGVyIHRoZSBjb250YWluZXIg aGFzIGJlZW4gZGVsaXZlcmVkIHRocm91Z2ggdGhlIHNlY3VyZSBjaGFubmVsIG9mDQogICBjb21t dW5pY2F0aW9uLg0KDQogICBBIHdlYWtlciBwYXlsb2FkIGF1dGhlbnRpY2l0eSBndWFyYW50ZWUg bWF5IGJlIHByb3ZpZGVkIGJ5IHRoZQ0KICAgdHJhbnNwb3J0IGxheWVyIGlmIGl0IGlzIGNvbmZp Z3VyZWQgdG8gZGlnZXN0IGVhY2ggbWVzc2FnZSBpdA0KICAgdHJhbnNwb3J0cy4gIEhvd2V2ZXIs IG5vIGF1dGhlbnRpY2l0eSB2ZXJpZmljYXRpb24gaXMgcG9zc2libGUgb25jZQ0KICAgdGhlIGNv bnRhaW5lciBpcyBkZWxpdmVyZWQgYXQgdGhlIHJlY2lwaWVudCBlbmQuICBUaGlzIGFwcHJvYWNo IG1heQ0KICAgYmUgdXNlZnVsIGluIGNhc2VzIHdoZXJlIHRoZSBkaWdpdGFsIHNpZ25hdHVyZSBv ZiB0aGUgY29udGFpbmVyIGRvZXMNCiAgIG5vdCBlbmNvbXBhc3MgdGhlIGVudGlyZSBwYXlsb2Fk Lg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4 cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAgIFtQYWdlIDU2XQ0KDA0KSW50ZXJu ZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAg SnVuZSAyMDA4DQoNCg0KMTEuICBBY2tub3dsZWRnZW1lbnRzDQoNCiAgIFRoZSBhdXRob3JzIG9m IHRoaXMgZHJhZnQgd291bGQgbGlrZSB0byB0aGFuayB0aGUgZm9sbG93aW5nIHBlb3BsZQ0KICAg Zm9yIHRoZWlyIGNvbnRyaWJ1dGlvbnMgYW5kIHN1cHBvcnQgdG8gbWFrZSB0aGlzIGEgYmV0dGVy DQogICBzcGVjaWZpY2F0aW9uOiBBcG9zdG9sIFZhc3NpbGV2LCBTaHVoIENoYW5nLCBKb24gTWFy dGluc29uLCBTaWRkaGFydA0KICAgQmFqYWosIFN0dSBWZWF0aCwgS2V2aW4gTGV3aXMsIFBoaWxp cCBIYWxsYW0tQmFrZXIsIEhhbm5lcw0KICAgVHNjaG9mZW5pZywgQW5kcmVhIERvaGVydHksIE1h Z251cyBOeXN0cm9tLCBUaW0gTW9zZXMsIGFuZCBBbmRlcnMNCiAgIFJ1bmRncmVuLg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERl Y2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSA1N10NCgwNCkludGVybmV0LURyYWZ0 ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAw OA0KDQoNCjEyLiAgQXBwZW5kaXggQSAtIEV4YW1wbGUgU3ltbWV0cmljIEtleSBDb250YWluZXJz DQoNCiAgIEFsbCBleGFtcGxlcyBhcmUgc3ludGFjdGljYWxseSBjb3JyZWN0IGFuZCBjb21wYXRp YmxlIHdpdGggdGhlIFhNTA0KICAgc2NoZW1hIGluIHNlY3Rpb24gNy4NCg0KMTIuMS4gIFN5bW1l dHJpYyBLZXkgQ29udGFpbmVyIHdpdGggYSBzaW5nbGUgTm9uLUVuY3J5cHRlZCBIT1RQIFNlY3Jl dA0KICAgICAgIEtleQ0KDQoNCiAgIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04 Ij8+DQogICA8S2V5Q29udGFpbmVyIFZlcnNpb249IjEuMCINCiAgICAgeG1sbnM9InVybjppZXRm OnBhcmFtczp4bWw6bnM6a2V5cHJvdjpjb250YWluZXI6MS4wIj4NCiAgICAgICA8RGV2aWNlPg0K ICAgICAgICAgICA8RGV2aWNlSWQ+DQogICAgICAgICAgICAgICA8TWFudWZhY3R1cmVyPkFDTUU8 L01hbnVmYWN0dXJlcj4NCiAgICAgICAgICAgICAgIDxTZXJpYWxObz4wNzU1MjI1MjY2PC9TZXJp YWxObz4NCiAgICAgICAgICAgPC9EZXZpY2VJZD4NCiAgICAgICAgICAgPEtleSBLZXlBbGdvcml0 aG09Imh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHAiDQogICAgICAgICAgICAg S2V5SWQ9IjA3NTUyMjUyNjYiPg0KICAgICAgICAgICAgICAgPElzc3Vlcj5Bbklzc3VlcjwvSXNz dWVyPg0KICAgICAgICAgICAgICAgPFVzYWdlIE9UUD0idHJ1ZSI+DQogICAgICAgICAgICAgICAg ICAgPFJlc3BvbnNlRm9ybWF0IExlbmd0aD0iNiIgRm9ybWF0PSJERUNJTUFMIi8+DQogICAgICAg ICAgICAgICA8L1VzYWdlPg0KICAgICAgICAgICAgICAgPERhdGEgTmFtZT0iQ09VTlRFUiI+DQog ICAgICAgICAgICAgICAgICAgPFBsYWluVmFsdWU+QXBya3VBPT08L1BsYWluVmFsdWU+DQogICAg ICAgICAgICAgICA8L0RhdGE+DQogICAgICAgICAgICAgICA8RGF0YSBOYW1lPSJTRUNSRVQiPg0K ICAgICAgICAgICAgICAgICAgIDxQbGFpblZhbHVlPi80aDNyT1RlQmVnSndHcG1UVHE0RitSbE5S MD08L1BsYWluVmFsdWU+DQogICAgICAgICAgICAgICA8L0RhdGE+DQogICAgICAgICAgICAgICA8 RXhwaXJ5RGF0ZT4yMDEyLTEyLTMxVDAwOjAwOjAwPC9FeHBpcnlEYXRlPg0KICAgICAgICAgICA8 L0tleT4NCiAgICAgICA8L0RldmljZT4NCiAgIDwvS2V5Q29udGFpbmVyPg0KDQoNCjEyLjIuICBT eW1tZXRyaWMgS2V5IENvbnRhaW5lciB3aXRoIGEgc2luZ2xlIFBJTiBwcm90ZWN0ZWQgTm9uLUVu Y3J5cHRlZA0KICAgICAgIEhPVFAgU2VjcmV0IEtleQ0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAg ICAgICAgICAgIFtQYWdlIDU4XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1t ZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgPD94bWwgdmVy c2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCiAgIDxLZXlDb250YWluZXIgVmVyc2lvbj0i MS4wIg0KICAgICB4bWxucz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OmNvbnRhaW5l cjoxLjAiPg0KICAgICAgIDxEZXZpY2U+DQogICAgICAgICAgIDxEZXZpY2VJZD4NCiAgICAgICAg ICAgICAgIDxNYW51ZmFjdHVyZXI+QUNNRTwvTWFudWZhY3R1cmVyPg0KICAgICAgICAgICAgICAg PFNlcmlhbE5vPjA3NTUyMjUyNjY8L1NlcmlhbE5vPg0KICAgICAgICAgICA8L0RldmljZUlkPg0K ICAgICAgICAgICA8S2V5IEtleUFsZ29yaXRobT0iaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92 L3Bza2MjaG90cCINCiAgICAgICAgICAgICBLZXlJZD0iMDc1NTIyNTI2NiI+DQogICAgICAgICAg ICAgICA8SXNzdWVyPkFuSXNzdWVyPC9Jc3N1ZXI+DQogICAgICAgICAgICAgICA8VXNhZ2UgT1RQ PSJ0cnVlIj4NCiAgICAgICAgICAgICAgICAgICA8UmVzcG9uc2VGb3JtYXQgTGVuZ3RoPSI2IiBG b3JtYXQ9IkRFQ0lNQUwiLz4NCiAgICAgICAgICAgICAgIDwvVXNhZ2U+DQogICAgICAgICAgICAg ICA8RGF0YSBOYW1lPSJDT1VOVEVSIj4NCiAgICAgICAgICAgICAgICAgICA8UGxhaW5WYWx1ZT5B cHJrdUE9PTwvUGxhaW5WYWx1ZT4NCiAgICAgICAgICAgICAgIDwvRGF0YT4NCiAgICAgICAgICAg ICAgIDxEYXRhIE5hbWU9IlNFQ1JFVCI+DQogICAgICAgICAgICAgICAgICAgPFBsYWluVmFsdWU+ LzRoM3JPVGVCZWdKd0dwbVRUcTRGK1JsTlIwPTwvUGxhaW5WYWx1ZT4NCiAgICAgICAgICAgICAg IDwvRGF0YT4NCiAgICAgICAgICAgICAgIDxQSU5Qb2xpY3kgUElOS2V5SWQ9IjA3NTUyMjUyNjYx Ij4NCiAgICAgICAgICAgICAgICAgICA8UElOVXNhZ2VNb2RlPg0KICAgICAgICAgICAgICAgICAg ICAgICA8TG9jYWwvPg0KICAgICAgICAgICAgICAgICAgIDwvUElOVXNhZ2VNb2RlPg0KICAgICAg ICAgICAgICAgPC9QSU5Qb2xpY3k+DQogICAgICAgICAgIDwvS2V5Pg0KICAgICAgICAgICA8S2V5 IEtleUlkPSIwNzU1MjI1MjY2MSINCiAgICAgICAgICAgICBLZXlBbGdvcml0aG09Imh0dHA6Ly93 d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI3BpbiI+DQogICAgICAgICAgICAgICA8VXNhZ2U+DQog ICAgICAgICAgICAgICAgICAgPFJlc3BvbnNlRm9ybWF0IExlbmd0aD0iNCIgRm9ybWF0PSJERUNJ TUFMIi8+DQogICAgICAgICAgICAgICA8L1VzYWdlPg0KICAgICAgICAgICAgICAgPERhdGEgTmFt ZT0iU0VDUkVUIj4NCiAgICAgICAgICAgICAgICAgICA8UGxhaW5WYWx1ZT5NVEl6TkE9PTwvUGxh aW5WYWx1ZT4NCiAgICAgICAgICAgICAgIDwvRGF0YT4NCiAgICAgICAgICAgPC9LZXk+DQogICAg ICAgPC9EZXZpY2U+DQogICA8L0tleUNvbnRhaW5lcj4NCg0KMTIuMy4gIFN5bW1ldHJpYyBLZXkg Q29udGFpbmVyIHdpdGggYSBzaW5nbGUgQUVTLTI1Ni1DQkMgRW5jcnlwdGVkIEhPVFANCiAgICAg ICBTZWNyZXQgS2V5DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAg ICAgRXhwaXJlcyBEZWNlbWJlciAyMCwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNTldDQoMDQpJ bnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAg ICAgICBKdW5lIDIwMDgNCg0KDQo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/ Pg0KPEtleUNvbnRhaW5lciBWZXJzaW9uPSIxLjAiDQogIHhtbG5zPSJ1cm46aWV0ZjpwYXJhbXM6 eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCINCiAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMu b3JnLzIwMDAvMDkveG1sZHNpZyMiDQogIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIw MDEvMDQveG1sZW5jIyI+DQogICAgPEVuY3J5cHRpb25LZXk+DQogICAgICAgIDxkczpLZXlOYW1l PlBSRV9TSEFSRURfS0VZPC9kczpLZXlOYW1lPg0KICAgIDwvRW5jcnlwdGlvbktleT4NCiAgICA8 TUFDQWxnb3JpdGhtPmh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNobWFjLXNoYTEN CiAgICA8L01BQ0FsZ29yaXRobT4NCiAgICA8RGV2aWNlPg0KICAgICAgICA8RGV2aWNlSWQ+DQog ICAgICAgICAgICA8TWFudWZhY3R1cmVyPkFDTUU8L01hbnVmYWN0dXJlcj4NCiAgICAgICAgICAg IDxTZXJpYWxObz4wNzU1MjI1MjY2PC9TZXJpYWxObz4NCiAgICAgICAgPC9EZXZpY2VJZD4NCiAg ICAgICAgPEtleSBLZXlBbGdvcml0aG09Imh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tj I2hvdHAiDQogICAgICAgICAgS2V5SWQ9IjA3NTUyMjUyNjYiPg0KICAgICAgICAgICAgPElzc3Vl cj5Bbklzc3VlcjwvSXNzdWVyPg0KICAgICAgICAgICAgPFVzYWdlIE9UUD0idHJ1ZSI+DQogICAg ICAgICAgICAgICAgPFJlc3BvbnNlRm9ybWF0IExlbmd0aD0iOCIgRm9ybWF0PSJERUNJTUFMIi8+ DQogICAgICAgICAgICA8L1VzYWdlPg0KICAgICAgICAgICAgPERhdGEgTmFtZT0iQ09VTlRFUiI+ DQogICAgICAgICAgICAgICAgPFBsYWluVmFsdWU+QXBya3VBPT08L1BsYWluVmFsdWU+DQogICAg ICAgICAgICA8L0RhdGE+DQogICAgICAgICAgICA8RGF0YSBOYW1lPSJTRUNSRVQiPg0KICAgICAg ICAgICAgICAgIDxFbmNyeXB0ZWRWYWx1ZT4NCiAgICAgICAgICAgICAgICAgICAgPHhlbmM6RW5j cnlwdGlvbk1ldGhvZA0KICAgICAgICAgICAgICAgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9y Zy8yMDAxLzA0L3htbGVuYyNhZXMyNTYtY2JjIi8+DQogICAgICAgICAgICAgICAgICAgIDx4ZW5j OkNpcGhlckRhdGE+DQogICAgICAgICAgICAgICAgICAgICAgPHhlbmM6Q2lwaGVyVmFsdWU+DQog ICAgICAgICAgICAgICAgICAgICAgICBreXpyV1RKdWhKS1FIaFp0ZjJDV2JLQzVIM0xkZkFQdkt6 SEhROFNkeHlFPQ0KICAgICAgICAgICAgICAgICAgICAgIDwveGVuYzpDaXBoZXJWYWx1ZT4NCiAg ICAgICAgICAgICAgICAgICAgPC94ZW5jOkNpcGhlckRhdGE+DQogICAgICAgICAgICAgICAgPC9F bmNyeXB0ZWRWYWx1ZT4NCiAgICAgICAgICAgICAgICA8VmFsdWVNQUM+Y3dKSTg5OHJScEdCeXRU cUNBc2VnYVFxUFpBPTwvVmFsdWVNQUM+DQogICAgICAgICAgICA8L0RhdGE+DQogICAgICAgIDwv S2V5Pg0KICAgIDwvRGV2aWNlPg0KPC9LZXlDb250YWluZXI+DQoNCjEyLjQuICBTeW1tZXRyaWMg S2V5IENvbnRhaW5lciB3aXRoIHNpZ25hdHVyZSBhbmQgYSBzaW5nbGUgUGFzc3dvcmQtDQogICAg ICAgYmFzZWQgRW5jcnlwdGVkIEhPVFAgU2VjcmV0IEtleQ0KDQoNCiA8P3htbCB2ZXJzaW9uPSIx LjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KIDxwc2tjOktleUNvbnRhaW5lcg0KICAgeG1sbnM6cHNr Yz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OmNvbnRhaW5lcjoxLjAiDQogICB4bWxu czpwa2NzLTU9DQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVy IDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSA2MF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAg UG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoN CiAgICAgImh0dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy9zY2hlbWFzL3Br Y3MtNXYyLTAjIg0KICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt YS1pbnN0YW5jZSINCiAgIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRz aWcjIg0KICAgeG1sbnM6eGVuYz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjIg0K ICAgVmVyc2lvbj0iMS4wIj4NCiAgICAgPHBza2M6RW5jcnlwdGlvbktleT4NCiAgICAgICA8cHNr YzpEZXJpdmVkS2V5IElkPSIjUGFzc3BocmFzZTEiPg0KICAgICAgICAgPHBza2M6Q2FycmllZEtl eU5hbWU+UGFzc3BocmFzZTE8L3Bza2M6Q2FycmllZEtleU5hbWU+DQogICAgICAgICA8cHNrYzpL ZXlEZXJpdmF0aW9uTWV0aG9kDQogICAgICAgICAgIEFsZ29yaXRobT0NCiAgICAgICJodHRwOi8v d3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJzL3BrY3Mvc2NoZW1hcy9wa2NzLTUjcGJrZGYyIj4N CiAgICAgICAgICAgPHBrY3MtNTpQYXJhbWV0ZXJzIHhzaTp0eXBlPSJwa2NzLTU6UEJLREYyUGFy YW1ldGVyVHlwZSI+DQogICAgICAgICAgICAgPFNhbHQ+DQogICAgICAgICAgICAgICA8U3BlY2lm aWVkPkRmM2RSQWhqR2g4PTwvU3BlY2lmaWVkPg0KICAgICAgICAgICAgIDwvU2FsdD4NCiAgICAg ICAgICAgICA8SXRlcmF0aW9uQ291bnQ+MjAwMDwvSXRlcmF0aW9uQ291bnQ+DQogICAgICAgICAg ICAgPEtleUxlbmd0aD4xNjwvS2V5TGVuZ3RoPg0KICAgICAgICAgICAgIDxQUkYvPg0KICAgICAg ICAgICA8L3BrY3MtNTpQYXJhbWV0ZXJzPg0KICAgICAgICAgPC9wc2tjOktleURlcml2YXRpb25N ZXRob2Q+DQogICAgICAgICA8eGVuYzpSZWZlcmVuY2VMaXN0Pg0KICAgICAgICAgICA8eGVuYzpE YXRhUmVmZXJlbmNlIFVSST0iI0VEIi8+DQogICAgICAgICA8L3hlbmM6UmVmZXJlbmNlTGlzdD4N CiAgICAgICA8L3Bza2M6RGVyaXZlZEtleT4NCiAgICAgPC9wc2tjOkVuY3J5cHRpb25LZXk+DQog ICA8cHNrYzpEZXZpY2U+DQogICAgIDxwc2tjOkRldmljZUlkPg0KICAgICAgIDxwc2tjOk1hbnVm YWN0dXJlcj5BQ01FPC9wc2tjOk1hbnVmYWN0dXJlcj4NCiAgICAgICA8cHNrYzpTZXJpYWxObz4w NzU1MjI1MjY2PC9wc2tjOlNlcmlhbE5vPg0KICAgICA8L3Bza2M6RGV2aWNlSWQ+DQogICAgICAg ICA8cHNrYzpLZXkgS2V5QWxnb3JpdGhtPSJodHRwOi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNr YyNob3RwIg0KICAgICAgICAgICBLZXlJZD0iMDc1NTIyNTI2NiI+DQogICAgICAgICAgICAgPHBz a2M6SXNzdWVyPkFuSXNzdWVyPC9wc2tjOklzc3Vlcj4NCiAgICAgICAgICAgICA8cHNrYzpVc2Fn ZSBPVFA9InRydWUiPg0KICAgICAgICAgICAgICAgICA8cHNrYzpSZXNwb25zZUZvcm1hdCBMZW5n dGg9IjYiIEZvcm1hdD0iREVDSU1BTCIvPg0KICAgICAgICAgICAgIDwvcHNrYzpVc2FnZT4NCiAg ICAgICAgICAgICA8cHNrYzpEYXRhIE5hbWU9IkNPVU5URVIiPg0KICAgICAgICAgICAgICAgICA8 cHNrYzpQbGFpblZhbHVlPkFwcmt1QT09PC9wc2tjOlBsYWluVmFsdWU+DQogICAgICAgICAgICAg PC9wc2tjOkRhdGE+DQogICAgICAgICAgICAgPHBza2M6RGF0YSBOYW1lPSJTRUNSRVQiPg0KICAg ICAgICAgICAgICAgICA8cHNrYzpFbmNyeXB0ZWRWYWx1ZSBJZD0iRUQiPg0KICAgICAgICAgICAg ICAgICAgIDx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPQ0KICAgICAgICAgICAgICAg ICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNrdy1hZXMxMjgiLz4NCiAgICAg ICAgICAgICAgICAgICA8eGVuYzpDaXBoZXJEYXRhPg0KICAgICAgICAgICAgICAgICAgICAgPHhl bmM6Q2lwaGVyVmFsdWU+cmY0ZHgzcnZFUE8wdkt0S0wxNE5iZVZ1OG5rPQ0KICAgICAgICAgICAg ICAgICAgICAgPC94ZW5jOkNpcGhlclZhbHVlPg0KICAgICAgICAgICAgICAgICAgIDwveGVuYzpD aXBoZXJEYXRhPg0KICAgICAgICAgICAgICAgICA8L3Bza2M6RW5jcnlwdGVkVmFsdWU+DQoNCg0K DQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAg ICAgICAgICBbUGFnZSA2MV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0 cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgICAgICAgICAgICA8 L3Bza2M6RGF0YT4NCiAgICAgICAgIDwvcHNrYzpLZXk+DQogICA8L3Bza2M6RGV2aWNlPg0KICAg PHBza2M6U2lnbmF0dXJlPg0KICAgICA8ZHM6U2lnbmVkSW5mbz4NCiAgICAgICA8ZHM6Q2Fub25p Y2FsaXphdGlvbk1ldGhvZA0KICAgICAgICAgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8y MDAxLzEwL3htbC1leGMtYzE0biMiLz4NCiAgICAgICA8ZHM6U2lnbmF0dXJlTWV0aG9kDQogICAg ICAgICBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hh MSIvPg0KICAgICAgIDxkczpSZWZlcmVuY2UgVVJJPSIiPg0KICAgICAgICAgPGRzOkRpZ2VzdE1l dGhvZCBBbGdvcml0aG09DQogICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3ht bGRzaWcjc2hhMSIvPg0KICAgICAgICAgPGRzOkRpZ2VzdFZhbHVlPmo2bHd4M3J2RVBPMHZLdE11 cDROYmVWdThuaz08L2RzOkRpZ2VzdFZhbHVlPg0KICAgICAgIDwvZHM6UmVmZXJlbmNlPg0KICAg ICA8L2RzOlNpZ25lZEluZm8+DQogICAgIDxkczpTaWduYXR1cmVWYWx1ZT5qNmx3eDNydkVQTzB2 S3RNdXA0TmJlVnU4bms9PC9kczpTaWduYXR1cmVWYWx1ZT4NCiAgICAgPGRzOktleUluZm8+DQog ICAgICAgPGRzOlg1MDlEYXRhPg0KICAgICAgICAgPGRzOlg1MDlJc3N1ZXJTZXJpYWw+DQogICAg ICAgICAgIDxkczpYNTA5SXNzdWVyTmFtZT5DTj1LZXlQcm92aXNpb25pbmcnUidVcy5jb20sQz1V Uw0KICAgICAgICAgICA8L2RzOlg1MDlJc3N1ZXJOYW1lPg0KICAgICAgICAgICA8ZHM6WDUwOVNl cmlhbE51bWJlcj4xMjM0NTY3ODwvZHM6WDUwOVNlcmlhbE51bWJlcj4NCiAgICAgICAgIDwvZHM6 WDUwOUlzc3VlclNlcmlhbD4NCiAgICAgICA8L2RzOlg1MDlEYXRhPg0KICAgICA8L2RzOktleUlu Zm8+DQogICA8L3Bza2M6U2lnbmF0dXJlPg0KIDwvcHNrYzpLZXlDb250YWluZXI+DQoNCg0KMTIu NS4gIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyIHdpdGggYSBzaW5nbGUgUlNBIDEuNSBFbmNyeXB0 ZWQgSE9UUA0KICAgICAgIFNlY3JldCBLZXkNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAy MDA4ICAgICAgICAgICAgICBbUGFnZSA2Ml0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFi bGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjw/eG1s IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQo8cHNrYzpLZXlDb250YWluZXIgVmVy c2lvbj0iMS4wIg0KICB4bWxuczpwc2tjPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6 Y29udGFpbmVyOjEuMCINCiAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1s ZHNpZyMiDQogIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI+ DQogICAgPHBza2M6RW5jcnlwdGlvbktleT4NCiAgICAgICAgPGRzOlg1MDlEYXRhPg0KICAgICAg ICAgICAgPGRzOlg1MDlDZXJ0aWZpY2F0ZT5taWliPC9kczpYNTA5Q2VydGlmaWNhdGU+DQogICAg ICAgIDwvZHM6WDUwOURhdGE+DQogICAgPC9wc2tjOkVuY3J5cHRpb25LZXk+DQogICAgPHBza2M6 RGV2aWNlPg0KICAgICAgICA8cHNrYzpEZXZpY2VJZD4NCiAgICAgICAgICAgIDxwc2tjOk1hbnVm YWN0dXJlcj5BQ01FPC9wc2tjOk1hbnVmYWN0dXJlcj4NCiAgICAgICAgICAgIDxwc2tjOlNlcmlh bE5vPjA3NTUyMjUyNjY8L3Bza2M6U2VyaWFsTm8+DQogICAgICAgIDwvcHNrYzpEZXZpY2VJZD4N CiAgICAgICAgPHBza2M6S2V5IEtleUFsZ29yaXRobT0iaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlw cm92L3Bza2MjaG90cCINCiAgICAgICAgICAgICAgICAgIEtleUlkPSIwNzU1MjI1MjY2Ij4NCiAg ICAgICAgICAgIDxwc2tjOklzc3Vlcj5Bbklzc3VlcjwvcHNrYzpJc3N1ZXI+DQogICAgICAgICAg ICA8cHNrYzpVc2FnZSBPVFA9InRydWUiPg0KICAgICAgICAgICAgICAgIDxwc2tjOlJlc3BvbnNl Rm9ybWF0IExlbmd0aD0iOCIgRm9ybWF0PSJERUNJTUFMIi8+DQogICAgICAgICAgICA8L3Bza2M6 VXNhZ2U+DQogICAgICAgICAgICA8cHNrYzpEYXRhIE5hbWU9IkNPVU5URVIiPg0KICAgICAgICAg ICAgICAgIDxwc2tjOlBsYWluVmFsdWU+QXBya3VBPT08L3Bza2M6UGxhaW5WYWx1ZT4NCiAgICAg ICAgICAgIDwvcHNrYzpEYXRhPg0KICAgICAgICAgICAgPHBza2M6RGF0YSBOYW1lPSJTRUNSRVQi Pg0KICAgICAgICAgICAgICA8cHNrYzpFbmNyeXB0ZWRWYWx1ZSBJZD0iRUQiPg0KICAgICAgICAg ICAgICAgIDx4ZW5jOkVuY3J5cHRpb25NZXRob2QNCiAgICAgICAgICAgICAgICAgIEFsZ29yaXRo bT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjcnNhXzFfNSIvPg0KICAgICAgICAg ICAgICAgIDx4ZW5jOkNpcGhlckRhdGE+DQogICAgICAgICAgICAgICAgICA8eGVuYzpDaXBoZXJW YWx1ZT5yZjRkeDNydkVQTzB2S3RLTDE0TmJlVnU4bms9DQogICAgICAgICAgICAgICAgICA8L3hl bmM6Q2lwaGVyVmFsdWU+DQogICAgICAgICAgICAgICAgPC94ZW5jOkNpcGhlckRhdGE+DQogICAg ICAgICAgICAgIDwvcHNrYzpFbmNyeXB0ZWRWYWx1ZT4NCiAgICAgICAgICAgIDwvcHNrYzpEYXRh Pg0KICAgICAgICA8L3Bza2M6S2V5Pg0KICAgIDwvcHNrYzpEZXZpY2U+DQo8L3Bza2M6S2V5Q29u dGFpbmVyPg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAg ICAgIEV4cGlyZXMgRGVjZW1iZXIgMjAsIDIwMDggICAgICAgICAgICAgIFtQYWdlIDYzXQ0KDA0K SW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAg ICAgICAgSnVuZSAyMDA4DQoNCg0KMTMuICBSZWZlcmVuY2VzDQoNCjEzLjEuICBOb3JtYXRpdmUg UmVmZXJlbmNlcw0KDQogICBbUEtDUzFdICAgIEthbGlza2ksIEIuLCAiUkZDIDI0Mzc6IFBLQ1Mg IzE6IFJTQSBDcnlwdG9ncmFwaHkNCiAgICAgICAgICAgICAgU3BlY2lmaWNhdGlvbnMgVmVyc2lv biAyLjAuIiwNCiAgICAgICAgICAgICAgVVJMOiBodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMy NDM3LnR4dCwgVmVyc2lvbjogMi4wLA0KICAgICAgICAgICAgICBPY3RvYmVyIDE5OTguDQoNCiAg IFtQS0NTNV0gICAgUlNBIExhYm9yYXRvcmllcywgIlBLQ1MgIzU6IFBhc3N3b3JkLUJhc2VkIENy eXB0b2dyYXBoeQ0KICAgICAgICAgICAgICBTdGFuZGFyZCIsIFZlcnNpb24gMi4wLA0KICAgICAg ICAgICAgICBVUkw6IGh0dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy8sIE1h cmNoIDE5OTkuDQoNCiAgIFtSRkMyMTE5XSAgIktleSB3b3JkcyBmb3IgdXNlIGluIFJGQ3MgdG8g SW5kaWNhdGUgUmVxdWlyZW1lbnQNCiAgICAgICAgICAgICAgTGV2ZWxzIiwgQkNQIDE0LCBSRkMg MjExOSwgTWFyY2ggMTk5NywNCiAgICAgICAgICAgICAgPGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZj L3JmYzIxMTkudHh0Pi4NCg0KICAgW1JGQzI0MzRdICBOYXJ0ZW4sIFQuLCAiR3VpZGVsaW5lcyBm b3IgV3JpdGluZyBhbiBJQU5BIENvbnNpZGVyYXRpb25zDQogICAgICAgICAgICAgIFNlY3Rpb24g aW4gUkZDcyIsIFJGQyAyNDM0LCBPY3RvYmVyIDE5OTguDQoNCiAgIFtSRkMzMDIzXSAgTXVyYXRh LCBNLiwgU3QuIExhdXJlbnQsIFMuLCBhbmQgRC4gS29obiwgIlhNTCBNZWRpYQ0KICAgICAgICAg ICAgICBUeXBlcyIsIFJGQyAzMDIzLCBKYW51YXJ5IDIwMDEuDQoNCiAgIFtSRkMzNTUzXSAgTWVh bGxpbmcsIE0uLCAiQW4gSUVURiBVUk4gU3ViLW5hbWVzcGFjZSBmb3IgUmVnaXN0ZXJlZA0KICAg ICAgICAgICAgICBQcm90b2NvbCBQYXJhbWV0ZXJzIiwgUkZDIDM1NTMsIEp1bmUgMjAwMy4NCg0K ICAgW1JGQzM2ODhdICBNZWFsbGluZywgTS4sICJUaGUgSUVURiBYTUwgUmVnaXN0cnkiLCBCQ1Ag ODEsIFJGQyAzNjg4LA0KICAgICAgICAgICAgICBKYW51YXJ5IDIwMDQuDQoNCiAgIFtSRkM0Mjg4 XSAgRnJlZWQsIE4uIGFuZCBKLiBLbGVuc2luLCAiTWVkaWEgVHlwZSBTcGVjaWZpY2F0aW9ucyBh bmQNCiAgICAgICAgICAgICAgUmVnaXN0cmF0aW9uIFByb2NlZHVyZXMiLCBCQ1AgMTMsIFJGQyA0 Mjg4LCBEZWNlbWJlciAyMDA1Lg0KDQogICBbUkZDNDUxNF0gIFplaWxlbmdhLCBLLiwgIkxpZ2h0 d2VpZ2h0IERpcmVjdG9yeSBBY2Nlc3MgUHJvdG9jb2wNCiAgICAgICAgICAgICAgKExEQVApOiBT dHJpbmcgUmVwcmVzZW50YXRpb24gb2YgRGlzdGluZ3Vpc2hlZCBOYW1lcyIsDQogICAgICAgICAg ICAgIFJGQyA0NTE0LCBKdW5lIDIwMDYuDQoNCiAgIFtYTUxEU0lHXSAgRWFzdGxha2UsIEQuLCAi WE1MLVNpZ25hdHVyZSBTeW50YXggYW5kIFByb2Nlc3NpbmciLA0KICAgICAgICAgICAgICBVUkw6 IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDIvUkVDLXhtbGRzaWctY29yZS0yMDAyMDIxMi8sDQog ICAgICAgICAgICAgIFczQyBSZWNvbW1lbmRhdGlvbiwgRmVicnVhcnkgMjAwMi4NCg0KICAgW1hN TEVOQ10gICBFYXN0bGFrZSwgRC4sICJYTUwgRW5jcnlwdGlvbiBTeW50YXggYW5kIFByb2Nlc3Np bmcuIiwNCiAgICAgICAgICAgICAgVVJMOiBodHRwOi8vd3d3LnczLm9yZy9UUi94bWxlbmMtY29y ZS8sIERlY2VtYmVyIDIwMDIuDQoNCjEzLjIuICBJbmZvcm1hdGl2ZSBSZWZlcmVuY2VzDQoNCiAg IFtDQVBdICAgICAgTWFzdGVyQ2FyZCBJbnRlcm5hdGlvbmFsLCAiQ2hpcCBBdXRoZW50aWNhdGlv biBQcm9ncmFtDQogICAgICAgICAgICAgIEZ1bmN0aW9uYWwgQXJjaGl0ZWN0dXJlIiwgU2VwdGVt YmVyIDIwMDQuDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1i ZXIgMjAsIDIwMDggICAgICAgICAgICAgIFtQYWdlIDY0XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAg ICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoN Cg0KICAgW0RTS1BQXSAgICBEb2hlcnR5LCBBLiwgUGVpLCBNLiwgTWFjaGFuaSwgUy4sIGFuZCBN LiBOeXN0cm9tLA0KICAgICAgICAgICAgICAiRHluYW1pYyBTeW1tZXRyaWMgS2V5IFByb3Zpc2lv bmluZyBQcm90b2NvbCIsIEludGVybmV0DQogICAgICAgICAgICAgIERyYWZ0IEluZm9ybWF0aW9u YWwsIFVSTDogaHR0cDovL3d3dy5pZXRmLm9yZy8NCiAgICAgICAgICAgICAgaW50ZXJuZXQtZHJh ZnRzL2RyYWZ0LWlldGYta2V5cHJvdi1kc2twcC0wMy50eHQsDQogICAgICAgICAgICAgIEZlYnJ1 YXJ5IDIwMDguDQoNCiAgIFtIT1RQXSAgICAgTVJhaWhpLCBELiwgQmVsbGFyZSwgTS4sIEhvb3Ju YWVydCwgRi4sIE5hY2NhY2hlLCBELiwgYW5kDQogICAgICAgICAgICAgIE8uIFJhbmVuLCAiSE9U UDogQW4gSE1BQy1CYXNlZCBPbmUgVGltZSBQYXNzd29yZA0KICAgICAgICAgICAgICBBbGdvcml0 aG0iLCBSRkMgNDIyNiwNCiAgICAgICAgICAgICAgVVJMOiBodHRwOi8vcmZjLnN1bnNpdGUuZGsv cmZjL3JmYzQyMjYuaHRtbCwNCiAgICAgICAgICAgICAgRGVjZW1iZXIgMjAwNS4NCg0KICAgW05J U1QtU1A4MDAtNTddDQogICAgICAgICAgICAgIE5hdGlvbmFsIEluc3RpdHV0ZSBvZiBTdGFuZGFy ZHMgYW5kIFRlY2hub2xvZ3ksDQogICAgICAgICAgICAgICJSZWNvbW1lbmRhdGlvbiBmb3IgS2V5 IE1hbmFnZW1lbnQgLSBQYXJ0IEk6IEdlbmVyYWwNCiAgICAgICAgICAgICAgKFJldmlzZWQpIiwg TklTVCA4MDAtNTcsIFVSTDogaHR0cDovL2NzcmMubmlzdC5nb3YvDQogICAgICAgICAgICAgIHB1 YmxpY2F0aW9ucy9uaXN0cHVicy84MDAtNTcvDQogICAgICAgICAgICAgIHNwODAwLTU3LVBhcnQx LXJldmlzZWQyX01hcjA4LTIwMDcucGRmLCBNYXJjaCAyMDA3Lg0KDQogICBbT0FUSF0gICAgICJJ bml0aWF0aXZlIGZvciBPcGVuIEF1VEhlbnRpY2F0aW9uIiwNCiAgICAgICAgICAgICAgVVJMOiBo dHRwOi8vd3d3Lm9wZW5hdXRoZW50aWNhdGlvbi5vcmcuDQoNCiAgIFtPQ1JBXSAgICAgTVJhaWhp LCBELiwgUnlkZWxsLCBKLiwgTmFjY2FjaGUsIEQuLCBNYWNoYW5pLCBTLiwgYW5kIFMuDQogICAg ICAgICAgICAgIEJhamFqLCAiT0NSQTogT0FUSCBDaGFsbGVuZ2UgUmVzcG9uc2UgQWxnb3JpdGht IiwgSW50ZXJuZXQNCiAgICAgICAgICAgICAgRHJhZnQgSW5mb3JtYXRpb25hbCwgVVJMOiBodHRw Oi8vd3d3LmlldGYub3JnLw0KICAgICAgICAgICAgICBpbnRlcm5ldC1kcmFmdHMvDQogICAgICAg ICAgICAgIGRyYWZ0LW1yYWloaS1tdXR1YWwtb2F0aC1ob3RwLXZhcmlhbnRzLTA2LnR4dCwNCiAg ICAgICAgICAgICAgRGVjZW1iZXIgMjAwNy4NCg0KICAgW1BLQ1MxMl0gICBSU0EgTGFib3JhdG9y aWVzLCAiUEtDUyAjMTI6IFBlcnNvbmFsIEluZm9ybWF0aW9uIEV4Y2hhbmdlDQogICAgICAgICAg ICAgIFN5bnRheCBTdGFuZGFyZCIsIFZlcnNpb24gMS4wLA0KICAgICAgICAgICAgICBVUkw6IGh0 dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy8uDQoNCiAgIFtTY2huZWllcl0N CiAgICAgICAgICAgICAgU2NobmVpZXIsIEIuLCAiU2VjcmV0cyBhbmQgTGllczogRGlnaXRpYWwg U2VjdXJpdHkgaW4gYQ0KICAgICAgICAgICAgICBOZXR3b3JrZWQgV29ybGQiLCAgV2lsZXkgQ29t cHV0ZXIgUHVibGlzaGluZywgSVNCTiAwLTg0OTMtDQogICAgICAgICAgICAgIDgyNTMtNywgMjAw MC4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBF eHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFnZSA2NV0NCgwNCkludGVy bmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAg IEp1bmUgMjAwOA0KDQoNCkF1dGhvcnMnIEFkZHJlc3Nlcw0KDQogICBQaGlsaXAgSG95ZXINCiAg IEFjdGl2SWRlbnRpdHksIEluYy4NCiAgIDEwOSBCb3JvdWdoIEhpZ2ggU3RyZWV0DQogICBMb25k b24sIFNFMSAgMU5MDQogICBVSw0KDQogICBQaG9uZTogKzQ0ICgwKSAyMCA3NzQ0IDY0NTUNCiAg IEVtYWlsOiBQaGlsaXAuSG95ZXJAYWN0aXZpZGVudGl0eS5jb20NCg0KDQogICBNaW5nbGlhbmcg UGVpDQogICBWZXJpU2lnbiwgSW5jLg0KICAgNDg3IEUuIE1pZGRsZWZpZWxkIFJvYWQNCiAgIE1v dW50YWluIFZpZXcsIENBICA5NDA0Mw0KICAgVVNBDQoNCiAgIFBob25lOiArMSA2NTAgNDI2IDUx NzMNCiAgIEVtYWlsOiBtcGVpQHZlcmlzaWduLmNvbQ0KDQoNCiAgIFNhbGFoIE1hY2hhbmkNCiAg IERpdmVyc2luZXQsIEluYy4NCiAgIDIyMjUgU2hlcHBhcmQgQXZlbnVlIEVhc3QNCiAgIFN1aXRl IDE4MDENCiAgIFRvcm9udG8sIE9udGFyaW8gIE0ySiA1QzINCiAgIENhbmFkYQ0KDQogICBQaG9u ZTogKzEgNDE2IDc1NiAyMzI0IEV4dC4gMzIxDQogICBFbWFpbDogc21hY2hhbmlAZGl2ZXJzaW5l dC5jb20NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3llciwgZXQg YWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAgICAgICBbUGFn ZSA2Nl0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250 YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCkZ1bGwgQ29weXJpZ2h0IFN0YXRlbWVudA0K DQogICBDb3B5cmlnaHQgKEMpIFRoZSBJRVRGIFRydXN0ICgyMDA4KS4NCg0KICAgVGhpcyBkb2N1 bWVudCBpcyBzdWJqZWN0IHRvIHRoZSByaWdodHMsIGxpY2Vuc2VzIGFuZCByZXN0cmljdGlvbnMN CiAgIGNvbnRhaW5lZCBpbiBCQ1AgNzgsIGFuZCBleGNlcHQgYXMgc2V0IGZvcnRoIHRoZXJlaW4s IHRoZSBhdXRob3JzDQogICByZXRhaW4gYWxsIHRoZWlyIHJpZ2h0cy4NCg0KICAgVGhpcyBkb2N1 bWVudCBhbmQgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBoZXJlaW4gYXJlIHByb3ZpZGVkIG9u IGFuDQogICAiQVMgSVMiIGJhc2lzIGFuZCBUSEUgQ09OVFJJQlVUT1IsIFRIRSBPUkdBTklaQVRJ T04gSEUvU0hFIFJFUFJFU0VOVFMNCiAgIE9SIElTIFNQT05TT1JFRCBCWSAoSUYgQU5ZKSwgVEhF IElOVEVSTkVUIFNPQ0lFVFksIFRIRSBJRVRGIFRSVVNUIEFORA0KICAgVEhFIElOVEVSTkVUIEVO R0lORUVSSU5HIFRBU0sgRk9SQ0UgRElTQ0xBSU0gQUxMIFdBUlJBTlRJRVMsIEVYUFJFU1MNCiAg IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gQU5ZIFdBUlJBTlRZIFRI QVQgVEhFIFVTRSBPRg0KICAgVEhFIElORk9STUFUSU9OIEhFUkVJTiBXSUxMIE5PVCBJTkZSSU5H RSBBTlkgUklHSFRTIE9SIEFOWSBJTVBMSUVEDQogICBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4NCg0KDQpJbnRlbGxlY3R1 YWwgUHJvcGVydHkNCg0KICAgVGhlIElFVEYgdGFrZXMgbm8gcG9zaXRpb24gcmVnYXJkaW5nIHRo ZSB2YWxpZGl0eSBvciBzY29wZSBvZiBhbnkNCiAgIEludGVsbGVjdHVhbCBQcm9wZXJ0eSBSaWdo dHMgb3Igb3RoZXIgcmlnaHRzIHRoYXQgbWlnaHQgYmUgY2xhaW1lZCB0bw0KICAgcGVydGFpbiB0 byB0aGUgaW1wbGVtZW50YXRpb24gb3IgdXNlIG9mIHRoZSB0ZWNobm9sb2d5IGRlc2NyaWJlZCBp bg0KICAgdGhpcyBkb2N1bWVudCBvciB0aGUgZXh0ZW50IHRvIHdoaWNoIGFueSBsaWNlbnNlIHVu ZGVyIHN1Y2ggcmlnaHRzDQogICBtaWdodCBvciBtaWdodCBub3QgYmUgYXZhaWxhYmxlOyBub3Ig ZG9lcyBpdCByZXByZXNlbnQgdGhhdCBpdCBoYXMNCiAgIG1hZGUgYW55IGluZGVwZW5kZW50IGVm Zm9ydCB0byBpZGVudGlmeSBhbnkgc3VjaCByaWdodHMuICBJbmZvcm1hdGlvbg0KICAgb24gdGhl IHByb2NlZHVyZXMgd2l0aCByZXNwZWN0IHRvIHJpZ2h0cyBpbiBSRkMgZG9jdW1lbnRzIGNhbiBi ZQ0KICAgZm91bmQgaW4gQkNQIDc4IGFuZCBCQ1AgNzkuDQoNCiAgIENvcGllcyBvZiBJUFIgZGlz Y2xvc3VyZXMgbWFkZSB0byB0aGUgSUVURiBTZWNyZXRhcmlhdCBhbmQgYW55DQogICBhc3N1cmFu Y2VzIG9mIGxpY2Vuc2VzIHRvIGJlIG1hZGUgYXZhaWxhYmxlLCBvciB0aGUgcmVzdWx0IG9mIGFu DQogICBhdHRlbXB0IG1hZGUgdG8gb2J0YWluIGEgZ2VuZXJhbCBsaWNlbnNlIG9yIHBlcm1pc3Np b24gZm9yIHRoZSB1c2Ugb2YNCiAgIHN1Y2ggcHJvcHJpZXRhcnkgcmlnaHRzIGJ5IGltcGxlbWVu dGVycyBvciB1c2VycyBvZiB0aGlzDQogICBzcGVjaWZpY2F0aW9uIGNhbiBiZSBvYnRhaW5lZCBm cm9tIHRoZSBJRVRGIG9uLWxpbmUgSVBSIHJlcG9zaXRvcnkgYXQNCiAgIGh0dHA6Ly93d3cuaWV0 Zi5vcmcvaXByLg0KDQogICBUaGUgSUVURiBpbnZpdGVzIGFueSBpbnRlcmVzdGVkIHBhcnR5IHRv IGJyaW5nIHRvIGl0cyBhdHRlbnRpb24gYW55DQogICBjb3B5cmlnaHRzLCBwYXRlbnRzIG9yIHBh dGVudCBhcHBsaWNhdGlvbnMsIG9yIG90aGVyIHByb3ByaWV0YXJ5DQogICByaWdodHMgdGhhdCBt YXkgY292ZXIgdGVjaG5vbG9neSB0aGF0IG1heSBiZSByZXF1aXJlZCB0byBpbXBsZW1lbnQNCiAg IHRoaXMgc3RhbmRhcmQuICBQbGVhc2UgYWRkcmVzcyB0aGUgaW5mb3JtYXRpb24gdG8gdGhlIElF VEYgYXQNCiAgIGlldGYtaXByQGlldGYub3JnLg0KDQoNCkFja25vd2xlZGdtZW50DQoNCiAgIEZ1 bmRpbmcgZm9yIHRoZSBSRkMgRWRpdG9yIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGJ5IHRoZSBJRVRG DQogICBBZG1pbmlzdHJhdGl2ZSBTdXBwb3J0IEFjdGl2aXR5IChJQVNBKS4NCg0KDQoNCg0KDQpI b3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDIwLCAyMDA4ICAgICAgICAg ICAgICBbUGFnZSA2N10NCgwNCg== ------_=_NextPart_001_01C8D163.79FB62FB Content-Type: application/octet-stream; name="keyprov-pskc-1.0_draft-05_wip_PH_180608.xsd" Content-Transfer-Encoding: base64 Content-Description: keyprov-pskc-1.0_draft-05_wip_PH_180608.xsd Content-Disposition: attachment; filename="keyprov-pskc-1.0_draft-05_wip_PH_180608.xsd" PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjx4czpzY2hlbWEgeG1sbnM6 eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpwc2tjPSJ1cm46aWV0 ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6Y29udGFpbmVyOjEuMCIgeG1sbnM6ZHM9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3Jn LzIwMDEvMDQveG1sZW5jIyIgdGFyZ2V0TmFtZXNwYWNlPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5z OmtleXByb3Y6Y29udGFpbmVyOjEuMCIgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiIGF0 dHJpYnV0ZUZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCIgdmVyc2lvbj0iMS4wIj4NCgk8eHM6aW1w b3J0IG5hbWVzcGFjZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgc2NoZW1h TG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDIvUkVDLXhtbGRzaWctY29yZS0yMDAy MDIxMi94bWxkc2lnLWNvcmUtc2NoZW1hLnhzZCIvPg0KCTx4czppbXBvcnQgbmFtZXNwYWNlPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiIHNjaGVtYUxvY2F0aW9uPSJodHRwOi8v d3d3LnczLm9yZy9UUi94bWxlbmMtY29yZS94ZW5jLXNjaGVtYS54c2QiLz4NCgk8eHM6Y29tcGxl eFR5cGUgbmFtZT0iS2V5Q29udGFpbmVyVHlwZSI+DQoJCTx4czpzZXF1ZW5jZT4NCgkJCTx4czpl bGVtZW50IG5hbWU9IkVuY3J5cHRpb25LZXkiIHR5cGU9ImRzOktleUluZm9UeXBlIiBtaW5PY2N1 cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9Ik1BQ0FsZ29yaXRobSIgdHlwZT0icHNrYzpL ZXlBbGdvcml0aG1UeXBlIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IkRl dmljZSIgdHlwZT0icHNrYzpEZXZpY2VUeXBlIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQkJ PHhzOmVsZW1lbnQgbmFtZT0iS2V5UHJvcGVydGllcyIgdHlwZT0icHNrYzpLZXlQcm9wZXJ0aWVz VHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQkJPHhzOmVsZW1l bnQgbmFtZT0iU2lnbmF0dXJlIiB0eXBlPSJkczpTaWduYXR1cmVUeXBlIiBtaW5PY2N1cnM9IjAi Lz4NCgkJCTx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIg bWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQk8L3hzOnNlcXVlbmNlPg0K CQk8eHM6YXR0cmlidXRlIG5hbWU9IlZlcnNpb24iIHR5cGU9InBza2M6VmVyc2lvblR5cGUiIHVz ZT0icmVxdWlyZWQiLz4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlDb250YWluZXJJRCIgdHlw ZT0ieHM6SUQiIHVzZT0ib3B0aW9uYWwiLz4NCgk8L3hzOmNvbXBsZXhUeXBlPg0KCTx4czpzaW1w bGVUeXBlIG5hbWU9IlZlcnNpb25UeXBlIiBmaW5hbD0icmVzdHJpY3Rpb24iPg0KCQk8eHM6cmVz dHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCTx4czpwYXR0ZXJuIHZhbHVlPSJcZHsxLDJ9 XC5cZHsxLDN9Ii8+DQoJCTwveHM6cmVzdHJpY3Rpb24+DQoJPC94czpzaW1wbGVUeXBlPg0KCTx4 czpjb21wbGV4VHlwZSBuYW1lPSJLZXlQcm9wZXJ0aWVzVHlwZSI+DQoJCTx4czpzZXF1ZW5jZT4N CgkJCTx4czplbGVtZW50IG5hbWU9Iklzc3VlciIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9 IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IlVzYWdlIiB0eXBlPSJwc2tjOlVzYWdlVHlwZSIg bWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJLZXlQcm9maWxlSWQiIHR5cGU9 InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJNYXN0ZXJL ZXlJZCIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5h bWU9IkRhdGEiIHR5cGU9InBza2M6RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1 bmJvdW5kZWQiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IlBJTlBvbGljeSIgdHlwZT0icHNrYzpQ SU5Qb2xpY3lUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IkV4cGly eURhdGUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50 IG5hbWU9IlN0YXJ0RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJ PHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1 cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJCTwveHM6c2VxdWVuY2U+DQoJCTx4czph dHRyaWJ1dGUgbmFtZT0iS2V5UHJvcGVydGllc0lkIiB0eXBlPSJ4czpJRCIgdXNlPSJyZXF1aXJl ZCIvPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IktleUFsZ29yaXRobSIgdHlwZT0icHNrYzpLZXlB bGdvcml0aG1UeXBlIiB1c2U9Im9wdGlvbmFsIi8+DQoJPC94czpjb21wbGV4VHlwZT4NCgk8eHM6 Y29tcGxleFR5cGUgbmFtZT0iS2V5VHlwZSI+DQoJCTx4czpzZXF1ZW5jZT4NCgkJCTx4czplbGVt ZW50IG5hbWU9Iklzc3VlciIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4 czplbGVtZW50IG5hbWU9IlVzYWdlIiB0eXBlPSJwc2tjOlVzYWdlVHlwZSIgbWluT2NjdXJzPSIw Ii8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJLZXlQcm9maWxlSWQiIHR5cGU9InhzOnN0cmluZyIg bWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJNYXN0ZXJLZXlJZCIgdHlwZT0i eHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IkZyaWVuZGx5 TmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5h bWU9IkRhdGEiIHR5cGU9InBza2M6RGF0YVR5cGUiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1 bmJvdW5kZWQiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IlBJTlBvbGljeSIgdHlwZT0icHNrYzpQ SU5Qb2xpY3lUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IkV4cGly eURhdGUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50 IG5hbWU9IlN0YXJ0RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJ PHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1 cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJCTwveHM6c2VxdWVuY2U+DQoJCTx4czph dHRyaWJ1dGUgbmFtZT0iS2V5SWQiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPg0K CQk8eHM6YXR0cmlidXRlIG5hbWU9IktleUFsZ29yaXRobSIgdHlwZT0icHNrYzpLZXlBbGdvcml0 aG1UeXBlIiB1c2U9Im9wdGlvbmFsIi8+DQoJCTx4czphdHRyaWJ1dGUgbmFtZT0iS2V5UHJvcGVy dGllc0lkIiB0eXBlPSJ4czpJRFJFRiIgdXNlPSJvcHRpb25hbCIvPg0KCTwveHM6Y29tcGxleFR5 cGU+DQoJPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRlcml2ZWRLZXlUeXBlIj4NCgkJPHhzOnNlcXVl bmNlPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iS2V5RGVyaXZhdGlvbk1ldGhvZCIgdHlwZT0icHNr YzpLZXlEZXJpdmF0aW9uTWV0aG9kVHlwZSIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVu dCByZWY9InhlbmM6UmVmZXJlbmNlTGlzdCIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVu dCBuYW1lPSJDYXJyaWVkS2V5TmFtZSIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4N CgkJPC94czpzZXF1ZW5jZT4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJJZCIgdHlwZT0ieHM6SUQi IHVzZT0ib3B0aW9uYWwiLz4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJUeXBlIiB0eXBlPSJ4czph bnlVUkkiIHVzZT0ib3B0aW9uYWwiLz4NCgk8L3hzOmNvbXBsZXhUeXBlPg0KCTx4czpjb21wbGV4 VHlwZSBuYW1lPSJLZXlEZXJpdmF0aW9uTWV0aG9kVHlwZSI+DQoJCTx4czpzZXF1ZW5jZT4NCgkJ CTx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5i b3VuZGVkIi8+DQoJCTwveHM6c2VxdWVuY2U+DQoJCTx4czphdHRyaWJ1dGUgbmFtZT0iQWxnb3Jp dGhtIiB0eXBlPSJ4czphbnlVUkkiIHVzZT0icmVxdWlyZWQiLz4NCgk8L3hzOmNvbXBsZXhUeXBl Pg0KCTx4czpjb21wbGV4VHlwZSBuYW1lPSJQSU5Qb2xpY3lUeXBlIj4NCgkJPHhzOnNlcXVlbmNl Pg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iUElOVXNhZ2VNb2RlIiB0eXBlPSJwc2tjOlBJTlVzYWdl TW9kZVR5cGUiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9Ildyb25nUElOVHJ5IiB0eXBlPSJ4czp1 bnNpZ25lZEludCIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhl ciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5k ZWQiLz4NCgkJPC94czpzZXF1ZW5jZT4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJQSU5Qb2xpY3lJ ZCIgdHlwZT0ieHM6SUQiIHVzZT0ib3B0aW9uYWwiLz4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJQ SU5LZXlJZCIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9Im9wdGlvbmFsIi8+DQoJPC94czpjb21wbGV4 VHlwZT4NCgk8eHM6Y29tcGxleFR5cGUgbmFtZT0iUElOVXNhZ2VNb2RlVHlwZSI+DQoJCTx4czpj aG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iTG9jYWwi Lz4NCgkJCTx4czplbGVtZW50IG5hbWU9IlByZXBlbmQiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9 IkVtYmVkIi8+DQoJCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRz PSJsYXgiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCgkJPC94czpjaG9p Y2U+DQoJPC94czpjb21wbGV4VHlwZT4NCgk8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGV2aWNlSWRU eXBlIj4NCgkJPHhzOnNlcXVlbmNlPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iTWFudWZhY3R1cmVy IiB0eXBlPSJ4czpzdHJpbmciLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IlNlcmlhbE5vIiB0eXBl PSJ4czpzdHJpbmciLz4NCgkJCTx4czplbGVtZW50IG5hbWU9Ik1vZGVsIiB0eXBlPSJ4czpzdHJp bmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iSXNzdWVObyIgdHlwZT0i eHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IkV4cGlyeURh dGUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5h bWU9IlN0YXJ0RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhz OmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1cnM9 IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJCTwveHM6c2VxdWVuY2U+DQoJPC94czpjb21w bGV4VHlwZT4NCgk8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGV2aWNlVHlwZSI+DQoJCTx4czpzZXF1 ZW5jZT4NCgkJCTx4czplbGVtZW50IG5hbWU9IkRldmljZUlkIiB0eXBlPSJwc2tjOkRldmljZUlk VHlwZSIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJLZXkiIHR5cGU9InBz a2M6S2V5VHlwZSIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9 IlVzZXJJZCIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czphbnkgbmFt ZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIgbWluT2NjdXJzPSIwIiBtYXhP Y2N1cnM9InVuYm91bmRlZCIvPg0KCQk8L3hzOnNlcXVlbmNlPg0KCTwveHM6Y29tcGxleFR5cGU+ DQoJPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlVzYWdlVHlwZSI+DQoJCTx4czpzZXF1ZW5jZT4NCgkJ CTx4czplbGVtZW50IG5hbWU9IkNoYWxsZW5nZUZvcm1hdCIgbWluT2NjdXJzPSIwIj4NCgkJCQk8 eHM6Y29tcGxleFR5cGU+DQoJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iRm9ybWF0IiB0eXBlPSJw c2tjOlZhbHVlRm9ybWF0VHlwZSIgdXNlPSJyZXF1aXJlZCIvPg0KCQkJCQk8eHM6YXR0cmlidXRl IG5hbWU9Ik1pbiIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIHVzZT0icmVxdWlyZWQiLz4NCgkJCQkJ PHhzOmF0dHJpYnV0ZSBuYW1lPSJNYXgiIHR5cGU9InhzOnVuc2lnbmVkSW50IiB1c2U9InJlcXVp cmVkIi8+DQoJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iQ2hlY2tEaWdpdHMiIHR5cGU9InhzOmJv b2xlYW4iIGRlZmF1bHQ9ImZhbHNlIi8+DQoJCQkJPC94czpjb21wbGV4VHlwZT4NCgkJCTwveHM6 ZWxlbWVudD4NCgkJCTx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNlRm9ybWF0Ij4NCgkJCQk8eHM6 Y29tcGxleFR5cGU+DQoJCQkJCTx4czphdHRyaWJ1dGUgbmFtZT0iRm9ybWF0IiB0eXBlPSJwc2tj OlZhbHVlRm9ybWF0VHlwZSIgdXNlPSJyZXF1aXJlZCIvPg0KCQkJCQk8eHM6YXR0cmlidXRlIG5h bWU9Ikxlbmd0aCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIHVzZT0icmVxdWlyZWQiLz4NCgkJCQkJ PHhzOmF0dHJpYnV0ZSBuYW1lPSJDaGVja0RpZ2l0cyIgdHlwZT0ieHM6Ym9vbGVhbiIgZGVmYXVs dD0iZmFsc2UiLz4NCgkJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQkJPC94czplbGVtZW50Pg0KCQkJ PHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1 cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJCTwveHM6c2VxdWVuY2U+DQoJCTx4czph dHRyaWJ1dGUgbmFtZT0iT1RQIiB0eXBlPSJ4czpib29sZWFuIiBkZWZhdWx0PSJmYWxzZSIvPg0K CQk8eHM6YXR0cmlidXRlIG5hbWU9IkNSIiB0eXBlPSJ4czpib29sZWFuIiBkZWZhdWx0PSJmYWxz ZSIvPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IkludGVncml0eSIgdHlwZT0ieHM6Ym9vbGVhbiIg ZGVmYXVsdD0iZmFsc2UiLz4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJFbmNyeXB0IiB0eXBlPSJ4 czpib29sZWFuIiBkZWZhdWx0PSJmYWxzZSIvPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IlVubG9j ayIgdHlwZT0ieHM6Ym9vbGVhbiIgZGVmYXVsdD0iZmFsc2UiLz4NCgkJPHhzOmFueUF0dHJpYnV0 ZSBuYW1lc3BhY2U9IiMjb3RoZXIiLz4NCgk8L3hzOmNvbXBsZXhUeXBlPg0KCTx4czpjb21wbGV4 VHlwZSBuYW1lPSJEYXRhVHlwZSI+DQoJCTx4czpzZXF1ZW5jZT4NCgkJCTx4czpjaG9pY2U+DQoJ CQkJPHhzOmVsZW1lbnQgbmFtZT0iUGxhaW5WYWx1ZSIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5Ii8+ DQoJCQkJPHhzOmVsZW1lbnQgbmFtZT0iRW5jcnlwdGVkVmFsdWUiIHR5cGU9InhlbmM6RW5jcnlw dGVkRGF0YVR5cGUiLz4NCgkJCTwveHM6Y2hvaWNlPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iVmFs dWVNQUMiIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgbWluT2NjdXJzPSIwIi8+DQoJCTwveHM6c2Vx dWVuY2U+DQoJCTx4czphdHRyaWJ1dGUgbmFtZT0iTmFtZSIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9 InJlcXVpcmVkIi8+DQoJPC94czpjb21wbGV4VHlwZT4NCgk8eHM6c2ltcGxlVHlwZSBuYW1lPSJL ZXlBbGdvcml0aG1UeXBlIj4NCgkJPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOmFueVVSSSIvPg0K CTwveHM6c2ltcGxlVHlwZT4NCgk8eHM6c2ltcGxlVHlwZSBuYW1lPSJWYWx1ZUZvcm1hdFR5cGUi Pg0KCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCgkJCTx4czplbnVtZXJhdGlv biB2YWx1ZT0iREVDSU1BTCIvPg0KCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJIRVhBREVDSU1B TCIvPg0KCQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJBTFBIQU5VTUVSSUMiLz4NCgkJCTx4czpl bnVtZXJhdGlvbiB2YWx1ZT0iQkFTRTY0Ii8+DQoJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkJJ TkFSWSIvPg0KCQk8L3hzOnJlc3RyaWN0aW9uPg0KCTwveHM6c2ltcGxlVHlwZT4NCgk8eHM6ZWxl bWVudCBuYW1lPSJLZXlDb250YWluZXIiIHR5cGU9InBza2M6S2V5Q29udGFpbmVyVHlwZSIvPg0K PC94czpzY2hlbWE+DQo= ------_=_NextPart_001_01C8D163.79FB62FB Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov ------_=_NextPart_001_01C8D163.79FB62FB-- From keyprov-bounces@ietf.org Sun Jun 22 16:12:13 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C64183A687A; Sun, 22 Jun 2008 16:12:13 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id AE4573A681A for ; Sun, 22 Jun 2008 16:12:12 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -0.398 X-Spam-Level: X-Spam-Status: No, score=-0.398 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_22=0.6, J_CHICKENPOX_23=0.6, J_CHICKENPOX_25=0.6, J_CHICKENPOX_26=0.6, J_CHICKENPOX_27=0.6, J_CHICKENPOX_75=0.6, RCVD_IN_DNSWL_MED=-4] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hIjBaaC-zy8L for ; Sun, 22 Jun 2008 16:11:49 -0700 (PDT) Received: from colibri.verisign.com (colibri.verisign.com [65.205.251.74]) by core3.amsl.com (Postfix) with ESMTP id 3ADCD3A687A for ; Sun, 22 Jun 2008 16:11:49 -0700 (PDT) Received: from mou1wnexcn01.vcorp.ad.vrsn.com (mailer1.verisign.com [65.205.251.34]) by colibri.verisign.com (8.13.6/8.13.4) with ESMTP id m5MMvi0t023221; Sun, 22 Jun 2008 15:57:44 -0700 Received: from MOU1WNEXMB10.vcorp.ad.vrsn.com ([10.25.13.204]) by mou1wnexcn01.vcorp.ad.vrsn.com with Microsoft SMTPSVC(6.0.3790.3959); Sun, 22 Jun 2008 16:11:46 -0700 Content-class: urn:content-classes:message MIME-Version: 1.0 x-mimeole: Produced By Microsoft Exchange V6.5 Date: Sun, 22 Jun 2008 16:11:10 -0700 Message-ID: <3E5A2F1AD44F5E49A74F79AB47C0C0C9DF40B3@mou1wnexmb10.vcorp.ad.vrsn.com> In-Reply-To: <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0D3@sur-corp-ex-02.corp.ad.activcard.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [KEYPROV] [pskc] Latest draft of PSKC Thread-Index: Acihb52vIXPZfM+dQBGaWxrT4r5ocAAVy7xQAHs9/BAAB0GJoAAC0jWgARViyUAASBMeYAFfxKKAAAGFK/UAAAvvgANQaPGwAZRV6yADujT6IADYIH1w References: <9ED76AB595E4944BB33D8998DE448D110160C92D@CORPUSMX10B.corp.emc.com> <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0D3@sur-corp-ex-02.corp.ad.activcard.com> From: "Pei, Mingliang" To: "Philip Hoyer" , , "Hannes Tschofenig" , "Hallam-Baker, Phillip" X-OriginalArrivalTime: 22 Jun 2008 23:11:46.0868 (UTC) FILETIME=[57E65740:01C8D4BD] Cc: keyprov@ietf.org Subject: Re: [KEYPROV] [pskc] Latest draft of PSKC X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============0564030737==" Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org This is a multi-part message in MIME format. --===============0564030737== Content-class: urn:content-classes:message Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C8D4BD.5790281D" This is a multi-part message in MIME format. ------_=_NextPart_001_01C8D4BD.5790281D Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Philip, =20 Thank you for the updates. I went through the revised documents, and verified the examples against the schema with my schema tool. The changes mostly look good to me. Here are a few more minor changes needed. =20 - There is one inconsistency in defining PINUsageModeType "InAlgo". The schema section and schema file used "Embed" but the section 5.4.4.1 used "InAlgo". - For your change 3, I think that it would be better to place KeyProperties element in KeyContainer in front of Device instead of being after. Logically we should define common key headers (KeyProperties) before a key is defined in a Device element and refer to the key properties. - The element name "WrongPINTry" doesn't sound natural as an element name. Maybe it is due to some inconsistence with our other naming conventions - we try to use an noun for an name elsewhere. How about an alternative name such as "MaxBadAttempts" or "BadTryThreshold" etc.? =20 Please see my other comments inline for the discussion points. =20 One more discussion issue is about Hannes's suggestion: "For the PSKC document I also suggest to use "urn:ietf:params:xml:ns:keyprov:pskc:1.0" instead of "urn:ietf:params:xml:ns:keyprov:container:1.0" I am fine with the namespace change. - Ming ________________________________ From: Philip Hoyer [mailto:philip.hoyer@actividentity.com]=20 Sent: Wednesday, June 18, 2008 9:51 AM To: Pei, Mingliang; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip Cc: andrea.doherty@rsa.com; keyprov@ietf.org Subject: RE: [KEYPROV] [pskc] Latest draft of PSKC Please find attached the latest work in progress draft and related schema, =20 Changes made from version 4 are: =20 1. Added optional Id element to the container in case another document includes more than one container and wants to reference it uniquely, this is of type xs:Id=20 2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became mandatory)=20 3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to xs:ID=20 4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF as it refers to the ID of the element of (3) see directly above =20 5. Added optional PINPolicyId attribute of type xs:ID to PINPolicyType=20 6. Added the KeyContainer:KeyProperties element that was missing from version -04 (oversight).This is where the common properties for a key are actually held within a container=20 7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case=20 =20 Extension points: =20 Added a '' to=20 1. KeyContainerType=20 2. KeyPropertiesType=20 3. KeyType=20 4. PINPolicy=20 5. DeviceIDType=20 6. DeviceType=20 7. UsageType=20 =20 Added a '' to: 1. UsageType (since it contains the attributes of ' So I thought it would be wise to be able to extend this =20 =20 =20 Outstanding issues that need to be discussed: 1. Should we make KeyType:KeyId of type xs:ID instead of xs:string =20 MP : Prefer to keep it as xs:string. DSKPP will have the same concept. Using it as both an element ID reference and actual key identifier would be more confusing just for the case where PINKeyID refers to KeyID from another element. =20 1. Should we make KeyType:KeyProfileId and KeyProperties:KeyProfileId of type xs:ID instead of xs:string =20 =20 MP: I don't think so. According to its current usage, it is almost a proprietory value between a sending and a receiving party to consume. Unless I miss something, xs:ID is mainly used for reference purpose within an instance document of schema. But the KeyProfileId may have actual meaning given by the key issuer. =20 1. For all the uses of xs:ID should we add facets of minlength, maxlength and whitespace? Or do we just have standard =20 =20 MP: Not sure we always need to define minlength and maxlength for all IDs. =20 1. Should we go for xs:string for unencrypted data elements - Rob Philpott and others seem strongly for it but Sean Turner was against it at the last IETF in Philadelphia =20 =20 MP: My preference was "string" type with an encoding attribute. The meeting minutes of IETF indicates that a change isn't a must as people won't care its type and it doesn't really matter in the final spec. In other words, it seemed to be considered a low priority to change rather than being against it or not. =20 1. Where else do we need '' as extension points =20 =20 MP: Your addition seems to be complete. I cannot think of others for now. =20 1. For the added '' do we need a description = within the spec or do we just leave them in the parts of the schema fragments throughout the spec as obvious extension points? =20 =20 MP: I think that we should add a description for each "any" we added even if they are obvious. =20 1. Address other issues raised by Rob Philpott: Here below with my comments and numbered Rob Philpott Comment plus number (RPC1, RPC2, ... etc)=20 RPC1. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device. Also since there are already implementations out there changing this would make it incompatible.=20 MP: Note that DSKPP uses "DeviceIdentifierDataType" for the device identity information. How about "DeviceIdDataType" instead of "DeviceIdType" here? RPC2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. MP: Agree to not reopen this discussion. The added "any" in KeyType allows other extensions. RPC3. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc RPC4. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. RPC5 In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote MP: "Algorithmic" is fine. =20 Philip =20 =20 =20 ________________________________ From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]=20 Sent: Friday, May 30, 2008 4:36 PM To: keyprov@ietf.org Cc: Philip Hoyer Subject: FW: [KEYPROV] [pskc] Latest draft of PSKC =20 Here is Philip Hoyer's response to Rob's comments (see below), which we initially handled offline, and then we decided it would be better to further the discussion on the mailing list. =20 -- Andrea 1. Use of xs:ID attributes: a. The xs:ID datatype is only used in the DerivedKeyType complexType. xs:ID is the preferred mechanism for referring to other XML elements in an instance document. So why are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the "KeyPropertiesId" attribute) and KeyType ("KeyId")? Why don't these use xs:ID attributes? [PH] good point I was thinking that xs:Id for KeyPropertiesId could be a good choice The KeyId on the other hand is not really used to be referred to. Do you think it would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?=20 b. Why doesn't a KeyContainer have an (optional) ID that could be used to reference it in an instance document? [PH] valid comment and I will think we should add this=20 c. Same question for PINPolicy? [PH] agreed d. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device e. Section 5.2.1 says that the DeviceIdType is an extensible type, but there are no extension points in it. [PH] agreed I think we should add an xs:any 2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. a. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc b. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. c. It is also a pain for implementers to deal with the limitation of the data typing available for unencrypted elements. For example, for a SecurID token with a display interval of 60 seconds, I cannot simply use an xml schema-defined datatype of xs:integer with a value of "60". I have to Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the receiving end). Why is this necessary? I could define such an item with a single XML element, but here I need 3 or 4. [PH] using xs:string for plainvalue was discussed during the last IETF meeting (I personally am in favor of it) but Sean Turner and the rest of the people did not see much value in it. If we use string we will need to deice for specific data elements what the encoding rules are. For example do we say for 8 byte unsigned int to encode just string e.g. '60' or leading 0 examples '00000060'. I would appreciate your thoughts on this. Also how would we encode binary data in string form base64 encoded? d. This approach does not produce "readable" XML since the data values are always Base64-encoded. That is just crazy when the data is not sensitive in nature. Please do not underestimate the value of being able to look at data in an instance document and know what it is without having to run it through a Base64 decoder! This is a major drawback. [PH] agreed and see answer above 3. RE: PINPolicy: a. If I specify a PINPolicy, I am forced to specify a PINKeyID, which forces me to create another Key element (even if I don't have any additional PIN policy info that I need to pass along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more complex than it needs to be.=20 [PH] if you are referring to the fact that '' is set to = required I agree with you. We should set this to 'optional'. I do not agree with your 90% use case analysis since the main use cases I have come across where to transmit the initial random pin for PINPads tokens within the same PSKC document from manufacturing to the validation server. b. The PINPolicy element only contains "policy" attributes for "WrongPINtry" and "PINUsageMode" and the element is not directly extensible. Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references. IMO, PIN policy info should be in the PINPolicy element, not in a separate "Key" element! The only thing that should go in the Key element is a PIN value that is being expressly communicated with the instance document. That is, a PIN value IS a key; PIN policy information IS NOT a key. [PH] I agree we need to make PINPolicy extensible and not put stuff into the Data elements of the PINKey. Are there any other elements that you know of we should include now and not just as an xs:any extension? c. It seems to us that there are additional universally-known PIN policy attributes that should be included in the schema. Things such as the PIN's maximum and minimum length and it's data type (integer, alphanumeric). Unless these are part of the spec, we currently are forced to create custom Data elements for them (and put them in a referenced Key element). BTW - Just to be clear, I am talking about the POLICY information associated with whatever PIN a user uses with their token. I'm not talking about the attributes of a specific PIN value that can be expressed in a Key element. As an example, to express a min and max PIN length policy, we have to create custom Data elements in a separate Key element (and also Base64 encode the values). I'm sorry, but this is getting ridiculous.=20 NA=3D=3D OA=3D=3D [PH] no the format and length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 of the spec) would make that clear here is the XML fragment: MTIzNA=3D=3D Notes: a. If I had an xs:any extension point, I could express this in 2 lines of XML in the PinPolicy element. b. This example doesn't include the PIN format, which would require me to either: i. Use another custom Data element=20 ii. Include a ResponseFormat element that then requires inclusion of a "Length" attribute. But what would the Length attribute really mean in this case? d. Why isn't a PINPolicy reusable across multiple tokens (it has no ID that can be used in a reference from a token definition). If I want to define a PINPolicy that applies to multiple tokens, the PINPolicy element needs its own ID. [PH] I see your point. If we make PINKeyId optional as in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your purpose. e. The "WrongPINtry" element name (in PINPolicyType) is not consistent with the other camel-case names ("try" should be "Try"). [PH] agreed, will change f. In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote 4. The use of "ResponseFormat" for describing a PIN is very confusing. The spec defines ResponseFormat as follows "The ResponseFormat element defines the characteristics of the result of a computation. This defines the format of the OTP or of the response to a challenge." A PIN is not the result of a "computation", nor is it a response to a challenge. It seems quite odd to use this Key construct for a PIN. I think that either another usage type should be defined or the ResponseFormat definition should be changed to also reflect its use for describing a PIN. [PH] Yes I think we need to change the description. I am getting a lot of push back to include PIN requirements in the spec so I tried to convince people that tit was a good idea without having to introduce to many new schema types. Here you say it is odd to use the Key element for the PIN value but above you agree that a PIN IS a Key. So I would keep it in the Key element buy change description. =20 ------_=_NextPart_001_01C8D4BD.5790281D Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Re: [KEYPROV] = [pskc] Latest draft of PSKC
Hi Philip,
 
Thank you for the updates. I went through the = revised=20 documents, and verified the examples against the schema with my schema = tool. The=20 changes mostly look good to me. Here are a few more minor changes=20 needed.
 
- There is one inconsistency in defining = PINUsageModeType=20 "InAlgo". The schema section and schema file used "Embed" but the = section=20 5.4.4.1 used "InAlgo".
- For your change 3, I think that it would be = better to=20 place KeyProperties element in KeyContainer in front of Device instead = of being=20 after. Logically we should define common key headers (KeyProperties) = before a=20 key is defined in a Device element and refer to the key=20 properties.
- The element name "WrongPINTry" doesn't sound = natural as=20 an element name. Maybe it is due to some inconsistence with our other = naming=20 conventions - we try to use an noun for an name elsewhere. How = about an=20 alternative name such as "MaxBadAttempts" or "BadTryThreshold"=20 etc.?
 
Please see my other comments inline for the = discussion=20 points.
 
One more discussion issue is about Hannes's=20 suggestion:

"For the PSKC document I also = suggest=20 to use "urn:ietf:params:xml:ns:keyprov:pskc:1.0" instead of=20 "urn:ietf:params:xml:ns:keyprov:container:1.0"

I am=20 fine with the namespace change.

- = Ming



From: Philip Hoyer=20 [mailto:philip.hoyer@actividentity.com]
Sent: Wednesday, June = 18,=20 2008 9:51 AM
To: Pei, Mingliang; SMachani@diversinet.com; = Hannes=20 Tschofenig; Hallam-Baker, Phillip
Cc: andrea.doherty@rsa.com;=20 keyprov@ietf.org
Subject: RE: [KEYPROV] [pskc] Latest draft of = PSKC

Please find = attached=20 the latest work in progress draft and related=20 schema,

 

Changes=20 made from version 4 are:

 

  1. Added optional Id = element to the=20 container in case another document includes more than one container = and wants=20 to reference it uniquely, this is of type = xs:Id=20
  2. Made PINKeyId of = PINPolicy=20 optional (in version 4 it wrongly became mandatory) =
  3. Changed=20 KeyPropertiesType:KeyPropertiesId from type xs:String to=20 xs:ID=20
  4. Changed = KeyType:KeyPropertiesId=20 from type xs:string to be of type xs:IDREF as it refers to the ID of = the=20 element of (3) see directly above  =20
  5. Added optional = PINPolicyId=20 attribute of type xs:ID to PINPolicyType=20
  6. Added the=20 KeyContainer:KeyProperties element that was missing from version -04=20 (oversight).This is where the common properties for a key are actually = held=20 within a container=20
  7. Changed=20 PINPolicyType:=20 WrongPINtry into = WrongPINTry so that it is proper = camel-case=20

 

Extension=20 points:

 

Added a = ‘<xs:any=20 namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0"=20 maxOccurs=3D"unbounded"/>’ to

  1. KeyContainerType=20
  2. KeyPropertiesType=20
  3. KeyType=20
  4. PINPolicy=20
  5. DeviceIDType=20
  6. DeviceType=20
  7. UsageType=20

 

Added a=20 ‘<xs:anyAttribute namespace=3D"##other"/>’ = to:

  1. UsageType (since it = contains the=20 attributes of=20 = ‘           =      =20

<xs:attribute=20 name=3D"OTP" type=3D"xs:boolean" = default=3D"false"/>

           =              = <xs:attribute name=3D"CR" type=3D"xs:boolean"=20 default=3D"false"/>

           =              = <xs:attribute name=3D"Integrity" type=3D"xs:boolean"=20 default=3D"false"/>

           =              = <xs:attribute name=3D"Encrypt" type=3D"xs:boolean"=20 default=3D"false"/>

           =              = <xs:attribute name=3D"Unlock" type=3D"xs:boolean"=20 default=3D"false"/>

           = =20 So I thought it would be wise to be able to extend=20 this

 

 

 

Outstanding=20 issues that need to be discussed:

  1. Should we make = KeyType:KeyId of=20 type xs:ID instead of xs:string  
 
M   : Prefer to keep it as = xs:string.=20 DSKPP will have the same concept. Using it as both an element ID = reference and=20 actual key identifier would be more confusing just for the case where = PINKeyID=20 refers to KeyID from another = element.
 
  1. Should we make=20 KeyType:KeyProfileId and KeyProperties:KeyProfileId of type xs:ID = instead of=20 xs:string  
 
MP: I don't=20 think so. According to its current usage, it is almost a proprietory = value=20 between a sending and a receiving party to consume. Unless I miss = something,=20 xs:ID is mainly used for reference purpose within an instance document = of=20 schema. But the KeyProfileId may have actual meaning given by the = key=20 issuer.
 
  1. For all the uses of = xs:ID should=20 we add facets of minlength, maxlength and whitespace? Or do we just = have=20 standard  
 
MP: Not sure we=20 always need to define minlength and maxlength for all = IDs.
 
  1. Should we go for = xs:string for=20 unencrypted data elements – Rob Philpott and others seem = strongly for it but=20 Sean Turner was against it at the last IETF in Philadelphia&= nbsp; 
 
MP: My preference=20 was "string" type with an encoding attribute. The meeting minutes of = IETF=20 indicates that a change isn't a must as people won't care its type and = it=20 doesn't really matter in the final spec. In other words, it seemed to be = considered a low priority to change rather than being against it or = not.
 
  1. Where else do we need=20 ‘<anyAttribute namespace=3D"##other" = processContents=3D"lax"/>’ as extension=20 points  
 
MP: Your=20 addition seems to be complete. I cannot think of others for=20 now.
 
  1. For the added = ‘<xs:any=20 namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0"=20 maxOccurs=3D"unbounded"/>’ do we need a description within = the spec or do we=20 just leave them in the parts of the schema fragments throughout the = spec as=20 obvious extension points?  
 
MP: I think that=20 we should add a description for each "any" we added even if they are=20 obvious.
 
  1. Address other issues = raised by Rob=20 Philpott: Here below with my comments and numbered Rob Philpott = Comment plus=20 number (RPC1, RPC2, … etc)

RPC1.      The use of = the=20 DeviceIdType is inconsistent with other “ID”’s (that = are used for referential=20 information).  The elements in the DeviceIDType seem more = appropriate for=20 the DeviceType or KeyType elements.  At a minimum, I would not call = this a=20 “DeviceIdType” (perhaps “DeviceInfoType”?) but = really, I would just put its=20 elements directly in the DeviceType complexType).  I would also = give=20 <Device> elements an optional referential ID via xs:ID.

[PH] so basically you are saying = that any=20 high level entity (Key, Device, KeyContainer etc) should have an ID that = is=20 xs:ID? The thought of DeviceId was to aggregate under a specific type = the=20 elements that comprise the compound key to look up the device. Also = since there=20 are already implementations out there changing this would make it=20 incompatible. 

MP: Note that DSKPP uses = "DeviceIdentifierDataType" for=20 the device identity information. How about "DeviceIdDataType" = instead of=20 "DeviceIdType" here?

RPC2.       We = are really=20 unhappy with the proposed extensibility mechanism. This goes against = general XML=20 schema best practice. Defining extension points via = xs:any/xs:anyAttribute is=20 vastly superior (IMO):

[PH] this has = been=20 extensively discussed at IETF and there are pros and cons for all = approaches.=20 The pro’s of the name value approach is that it will be re-usable = for the ASN.1=20 spec and that we will have a semantic registry defined by=20 IANA.

MP: Agree to not reopen this discussion. The added "any" = in=20 KeyType allows other extensions.


RPC3.     =  =20 The use of “Reserved data attribute names” as described in = section 7 is really=20 difficult to work with. First, <Data> elements should ONLY be used = for=20 “real” extensions… i.e. things that aren’t = already known at the time the spec is=20 written.  If we already know that the items defined in section 7 = are=20 needed, they should just be defined in the schema with their own=20 element/attribute definitions. They should not be “reserved” = uses of the=20 <DATA> element.  We just don’t understand the desire to = do it this=20 way. Having explicitly defined elements also allows for more flexible=20 datayping.

[PH] this has = been=20 extensively discussed. And we opted for the name value pair approach. = This mean=20 that all elements in Data can be parsed in the same manner and = individually be=20 encrypted or not. There will be a centralized semantic registry by IANA, = etc


RPC4.     = This=20 mechanism only lets us create very simple name-value pair = extensions.  If=20 we have some small groups of related extensions, we’d really like = to be able to=20 define them externally in a private schema via their own complexType=20 definitions.  With the current method, it’s going to be very = messy to add=20 groups of extensions or extensions that have more complex data = values.

[PH] why do = you say=20 that, the name could be also be a namespace for an wholly encrypted or = base64=20 encoded XML sub node. I see your point though in terms of parsing here. = Could=20 you give me an example of what you had in mind since we have considered = quite a=20 few use cases and not come across the requirement for grouped=20 extensions.

RPC5        = In=20 general, it is undesirable to create abbreviations such as = “InAlgo” (in=20 PINUsageMode) to be used as XML keywords. To stay consistent with = “Local” and=20 “Prepend”, I would strongly suggest something like = “Embed” or=20 “Algorithmic”.
[PH[ we had Embed=20 before and people got confused by the meaning. So maybe Algorithmic is a = better=20 choice, that is why I tried to express the use of the PIN in the = algorithm as=20 InAlgo. I do not feel very strong about it. Maybe we can have a=20 vote

MP: "Algorithmic" is=20 fine.

 

Philip

 

 

 


From:=20 andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]
Sent:
Friday, May 30, 2008 4:36=20 PM
To:=20 keyprov@ietf.org
Cc: = Philip=20 Hoyer
Subject: FW: = [KEYPROV]=20 [pskc] Latest draft of PSKC

 

Here is Philip=20 Hoyer's response to Rob's comments (see below), which we initially = handled=20 offline, and then we decided it would be better to further the = discussion on the=20 mailing list. 

--=20 Andrea


 1.       Use=20 of xs:ID attributes:

a.       The = xs:ID=20 datatype is only used in the DerivedKeyType complexType.  xs:ID is = the=20 preferred mechanism for referring to other XML elements in an instance=20 document.  So why are custom attributes defined to be able to = referto=20 elements of the types KeyPropertiesType (the = “KeyPropertiesId” attribute) and=20 KeyType (“KeyId”)? Why don’t these use xs:ID = attributes?

[PH] good = point I was=20 thinking that xs:Id for KeyPropertiesId could be a good choice  The = KeyId=20 on the other hand is not really used to be referred to. Do you think it = would be=20 better to use xs:ID for this aswell? And in case we use it now is it = backwards=20 compatible to what we have?


b.      Why = doesn’t a=20 KeyContainer have an (optional) ID that could be used to reference it in = an=20 instance document?

[PH] valid = comment and=20 I will think we should add this

c.       = Same question=20 for PINPolicy?

[PH]=20 agreed

d.      The = use of the=20 DeviceIdType is inconsistent with other “ID”’s (that = are used for referential=20 information).  The elements in the DeviceIDType seem more = appropriate for=20 the DeviceType or KeyType elements.  At a minimum, I would not call = this a=20 “DeviceIdType” (perhaps “DeviceInfoType”?) but = really, I would just put its=20 elements directly in the DeviceType complexType).  I would also = give=20 <Device> elements an optional referential ID via xs:ID.

[PH] so basically = you are=20 saying that any high level entity (Key, Device, KeyContainer etc) should = have an=20 ID that is xs:ID? The thought of DeviceId was to aggregate under a = specific type=20 the elements that comprise the compound key to look up the=20 device


e.      Section = 5.2.1 says=20 that the DeviceIdType is an extensible type, but there are no extension = points=20 in it.

[PH] agreed I = think we=20 should add an xs:any

2.       = We are=20 really unhappy with the proposed extensibility mechanism. This goes = against=20 general XML schema best practice. Defining extension points via=20 xs:any/xs:anyAttribute is vastly superior (IMO):

[PH] this has = been=20 extensively discussed at IETF and there are pros and cons for all = approaches.=20 The pro’s of the name value approach is that it will be re-usable = for the ASN.1=20 spec and that we will have a semantic registry defined by=20 IANA.



a.       = The use=20 of “Reserved data attribute names” as described in section 7 = is really difficult=20 to work with. First, <Data> elements should ONLY be used for = “real”=20 extensions… i.e. things that aren’t already known at the = time the spec is=20 written.  If we already know that the items defined in section 7 = are=20 needed, they should just be defined in the schema with their own=20 element/attribute definitions. They should not be “reserved” = uses of the=20 <DATA> element.  We just don’t understand the desire to = do it this=20 way. Having explicitly defined elements also allows for more flexible=20 datayping.

[PH] this has = been=20 extensively discussed. And we opted for the name value pair approach. = This mean=20 that all elements in Data can be parsed in the same manner and = individually be=20 encrypted or not. There will be a centralized semantic registry by IANA, = etc


b.      This = mechanism only=20 lets us create very simple name-value pair extensions.  If we have = some=20 small groups of related extensions, we’d really like to be able to = define them=20 externally in a private schema via their own complexType = definitions.  With=20 the current method, it’s going to be very messy to add groups of = extensions or=20 extensions that have more complex data values.

[PH] why do = you say=20 that, the name could be also be a namespace for an wholly encrypted or = base64=20 encoded XML sub node. I see your point though in terms of parsing here. = Could=20 you give me an example of what you had in mind since we have considered = quite a=20 few use cases and not come across the requirement for grouped=20 extensions.


c.       It = is also a=20 pain for implementers to deal with the limitation of the data typing = available=20 for unencrypted <Data> elements.  For example, for a SecurID = token=20 with a display interval of 60 seconds, I cannot simply use an xml = schema-defined=20 datatype of xs:integer with a value of “60”.  I have to = Base64-encode the=20 big-endian 2-byte binary value for 60 seconds (and then decode it on the = receiving end). Why is this necessary?  I could define such an item = with a=20 single XML element, but here I need 3 or 4.

[PH] using = xs:string=20 for plainvalue was discussed during the last IETF meeting (I personally = am in=20 favor of it) but Sean Turner and the rest of the people did not see much = value=20 in it. If we use string we will need to deice for specific data elements = what=20 the encoding rules are. For example do we say for 8 byte unsigned int to = encode=20 just string e.g. ‘60’ or leading 0 examples = ‘00000060’. I would appreciate your=20 thoughts on this. Also how would we encode binary data in string form = base64=20 encoded?



d.      This = approach=20 does not produce “readable” XML since the data values are = always=20 Base64-encoded.  That is just crazy when the data is not sensitive = in=20 nature.  Please do not underestimate the value of being able to = look at=20 data in an instance document and know what it is without having to run = it=20 through a Base64 decoder! This is a major drawback.

[PH] agreed = and see=20 answer above


3.       RE: = PINPolicy:

a.       If I specify a=20 PINPolicy, I am forced to specify a PINKeyID, which forces me to create = another=20 Key element (even if I don’t have any additional PIN policy info = that I need to=20 pass along in that Key element). For 90% of the use cases, this = referential=20 style of description is overkill and makes the instance document much = more=20 complex than it needs to be. 

[PH] if you = are=20 referring to the fact that ‘<xs:attribute name=3D"PINKeyId" = type=3D"xs:string"=20 use=3D"required"/>’ is set to required I agree with you. We = should set this to=20 ‘optional’. I do not agree with your 90% use case analysis = since the main use=20 cases I have come across where to transmit the initial random pin for = PINPads=20 tokens within the same PSKC document from manufacturing to the = validation=20 server.



b.      The = PINPolicy=20 element only contains “policy” attributes for = “WrongPINtry” and “PINUsageMode”=20 and the element is not directly extensible.  Any extensions we need = have to=20 go in Data elements inside a separate Key element that the PINPolicy = then=20 references.  IMO, PIN policy info should be in the PINPolicy = element, not=20 in a separate “Key” element! The only thing that should go = in the Key element is=20 a PIN value that is being expressly communicated with the instance=20 document.  That is, a PIN value IS a key; PIN policy information IS = NOT a=20 key.

[PH] I agree = we need to=20 make PINPolicy extensible and not put stuff into the Data elements of = the=20 PINKey. Are there any other elements that you know of we should include = now and=20 not just as an xs:any extension?


c.       It = seems to=20 us that there are additional universally-known PIN policy attributes = that should=20 be included in the schema.  Things such as the PIN’s maximum = and minimum=20 length and it’s data type (integer, alphanumeric).  Unless = these are part=20 of the spec, we currently are forced to create custom Data elements for = them=20 (and put them in a referenced Key element). BTW – Just to be = clear, I am talking=20 about the POLICY information associated with whatever PIN a user uses = with their=20 token.  I’m not talking about the attributes of a specific = PIN value that=20 can be expressed in a Key element.  As an example, to express a min = and max=20 PIN length policy, we have to create custom Data elements in a separate = Key=20 element (and also Base64 encode the values).  I’m sorry, but = this is=20 getting=20 ridiculous. 

        =   =20 <Key=20 KeyId=3D"07552252661"

       &n= bsp;    =20 KeyAlgorithm=3D"http://www.ietf.org/keyprov= /pskc#pin">

        = ;     =20 <Data=20 Name=3D"PIN_MIN_LENGTH">

      &n= bsp;          =20 <PlainValue>NA=3D=3D</PlainValue>

   &n= bsp;         =20 </Data>

        &nbs= p;    =20 <Data=20 Name=3D"PIN_MAX_LENGTH">

      &n= bsp;          =20 <PlainValue>OA=3D=3D</PlainValue>

   &n= bsp;         =20 </Data>

        &nbs= p; =20 </Key>

[PH] = no the=20 format and length would be in the UsageElement of the PINKey. I had = hoped=20 Example (Section 12.2 of the spec) would make that clear here is the XML = fragment:

      =20 <Key KeyId=3D"07552252661"

         =20 KeyAlgorithm=3D"http://www.ietf.org/keyprov/pskc#pin">

            = <Usage>

           &= nbsp;   =20 <ResponseFormat Length=3D"4" = Format=3D"DECIMAL"/>

            = </Usage>

            = <Data Name=3D"SECRET">

           &= nbsp;   =20 <PlainValue>MTIzNA=3D=3D</PlainValue>

            = </Data>

       =20 </Key>

Notes:

a.      =20 If I had an xs:any extension point, I could express this in 2 lines of = XML in=20 the PinPolicy element.

b.      This = example=20 doesn’t include the PIN format, which would require me to=20 either:

         &nbs= p;            = ;            =             &= nbsp;           &n= bsp;         =20 i.            Use = another=20 custom Data=20 element 

        &nbs= p;            = ;            =             &= nbsp;           &n= bsp;        =20 ii.            = Include a=20 ResponseFormat element that then requires inclusion of a = “Length” attribute. But=20 what would the Length attribute really mean in this=20 case?

d.      Why isn’t a = PINPolicy reusable=20 across multiple tokens (it has no ID that can be used in a reference = from a=20 token definition).  If I want to define a PINPolicy that applies to = multiple tokens, the PINPolicy element needs its own ID.

[PH] I see = your point.=20 If we make PINKeyId optional as in the comment above you can have a = common=20 PINPolicy as part of the shared KeyProperties. I believe that would = serve your=20 purpose.


e.      The = “WrongPINtry”=20 element name (in PINPolicyType) is not consistent with the other = camel-case=20 names (“try” should be “Try”).

[PH] agreed, = will=20 change


f.        In=20 general, it is undesirable to create abbreviations such as = “InAlgo” (in=20 PINUsageMode) to be used as XML keywords. To stay consistent with = “Local” and=20 “Prepend”, I would strongly suggest something like = “Embed” or=20 “Algorithmic”.
[PH[ we had Embed=20 before and people got confused by the meaning. So maybe Algorithmic is a = better=20 choice, that is why I tried to express the use of the PIN in the = algorithm as=20 InAlgo. I do not feel very strong about it. Maybe we can have a=20 vote


4.       The = use of=20 “ResponseFormat” for describing a PIN is very = confusing.  The spec defines=20 ResponseFormat as follows “The ResponseFormat element defines the=20 characteristics of the result of a computation.  This defines the = format of=20 the OTP or of the response to a challenge.” A PIN is not the = result of a=20 “computation”, nor is it a response to a challenge.  It = seems quite odd to=20 use this Key construct for a PIN. I think that either another usage type = should=20 be defined or the ResponseFormat definition should be changed to also = reflect=20 its use for describing a PIN.
[PH]=20 Yes I think we need to change the description. I am getting a lot of = push back=20 to include PIN requirements in the spec so I tried to convince people = that tit=20 was a good idea without having to introduce to many new schema types. = Here you=20 say it is odd to use the Key element for the PIN value but above you = agree that=20 a PIN IS a Key. So I would keep it in the Key element buy change=20 description.

 

------_=_NextPart_001_01C8D4BD.5790281D-- --===============0564030737== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov --===============0564030737==-- From keyprov-bounces@ietf.org Sun Jun 22 19:04:03 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7699B3A67B6; Sun, 22 Jun 2008 19:04:03 -0700 (PDT) X-Original-To: keyprov@ietf.org Delivered-To: keyprov@core3.amsl.com Received: by core3.amsl.com (Postfix, from userid 0) id BDAE73A67C1; Sun, 22 Jun 2008 19:00:01 -0700 (PDT) From: Internet-Drafts@ietf.org To: i-d-announce@ietf.org Content-Type: Multipart/Mixed; Boundary="NextPart" Mime-Version: 1.0 Message-Id: <20080623020001.BDAE73A67C1@core3.amsl.com> Date: Sun, 22 Jun 2008 19:00:01 -0700 (PDT) Cc: keyprov@ietf.org Subject: [KEYPROV] I-D Action:draft-ietf-keyprov-dskpp-04.txt X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Provisioning of Symmetric Keys Working Group of the IETF. Title : Dynamic Symmetric Key Provisioning Protocol (DSKPP) Author(s) : A. Doherty, et al. Filename : draft-ietf-keyprov-dskpp-04.txt Pages : 104 Date : 2008-06-22 DSKPP is a client-server protocol for initialization (and configuration) of symmetric keys to locally and remotely accessible cryptographic modules. The protocol can be run with or without private-key capabilities in the cryptographic modules, and with or without an established public-key infrastructure. Two variations of the protocol support multiple usage scenarios. With the four-pass variant, keys are mutually generated by the provisioning server and cryptographic module; provisioned keys are not transferred over-the-wire or over-the-air. The two-pass variant enables secure and efficient download and installation of pre- generated symmetric keys to a cryptographic module. This document builds on information contained in [RFC4758], adding specific enhancements in response to implementation experience and liaison requests. It is intended that this document or a successor version thereto will become the basis for subsequent progression of a symmetric key provisioning protocol specification on the standards track. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-keyprov-dskpp-04.txt Internet-Drafts are also available by anonymous FTP at: ftp://ftp.ietf.org/internet-drafts/ Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Message/External-body; name="draft-ietf-keyprov-dskpp-04.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <2008-06-22185626.I-D@ietf.org> --NextPart Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov --NextPart-- From keyprov-bounces@ietf.org Sun Jun 22 19:56:24 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id F2E863A67EE; Sun, 22 Jun 2008 19:56:23 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BA5093A67C1 for ; Sun, 22 Jun 2008 19:50:33 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -6.599 X-Spam-Level: X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W6QhTGNMSWpn for ; Sun, 22 Jun 2008 19:50:32 -0700 (PDT) Received: from mexforward.lss.emc.com (mexforward.lss.emc.com [128.222.32.20]) by core3.amsl.com (Postfix) with ESMTP id 2E04E3A67A4 for ; Sun, 22 Jun 2008 19:50:31 -0700 (PDT) Received: from hop04-l1d11-si03.isus.emc.com (HOP04-L1D11-SI03.isus.emc.com [10.254.111.23]) by mexforward.lss.emc.com (Switch-3.2.5/Switch-3.1.7) with ESMTP id m5N2oPTw021226 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 22 Jun 2008 22:50:25 -0400 (EDT) Received: from mailhub.lss.emc.com (nagas.lss.emc.com [10.254.144.11]) by hop04-l1d11-si03.isus.emc.com (Tablus Interceptor); Sun, 22 Jun 2008 22:31:05 -0400 Received: from corpussmtp3.corp.emc.com (corpussmtp3.corp.emc.com [10.254.64.53]) by mailhub.lss.emc.com (Switch-3.2.5/Switch-3.1.7) with ESMTP id m5N2oNB4017549; Sun, 22 Jun 2008 22:50:23 -0400 (EDT) From: andrea.doherty@rsa.com Received: from CORPUSMX10B.corp.emc.com ([128.221.14.94]) by corpussmtp3.corp.emc.com with Microsoft SMTPSVC(6.0.3790.1830); Sun, 22 Jun 2008 22:49:33 -0400 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C8D4DB.C385A9DF" Date: Sun, 22 Jun 2008 22:49:32 -0400 Message-ID: <9ED76AB595E4944BB33D8998DE448D1105B97E@CORPUSMX10B.corp.emc.com> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: [KEYPROV] I-D Action:draft-ietf-keyprov-dskpp-04.txt Thread-Index: AcjU1W6yMm3Hg3xFQBad8jdBTb3yGgAAh1or References: <20080623020001.BDAE73A67C1@core3.amsl.com> To: X-OriginalArrivalTime: 23 Jun 2008 02:49:33.0555 (UTC) FILETIME=[C4408C30:01C8D4DB] X-Tablus-Inspected: yes X-Tablus-Classifications: public X-Tablus-Action: allow Cc: hannes.tschofenig@gmx.net Subject: [KEYPROV] FW: I-D Action:draft-ietf-keyprov-dskpp-04.txt X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C8D4DB.C385A9DF Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable As noted below, an update to the DSKPP document is available for = comment.=20 =20 Note that this document addresses all known issues. In particular, =20 1. Specified the Authentication Code Format (see Section 3.4). =20 2. Made schema (Sec 7) changes so that AuthenticationDataType is only = used in client messages, and not in server messages: a. AuthenticationDataType now has Client ID marked as mandatory (Sec = 4.3.4). b. Renamed AuthenticationCodeMacType to AuthenticationMacType to = make the element more generic to client and server (Sec. 4.3.4) initated messages. c. The second (optional) MAC in KeyProvFinished is still called = AuthenticationData but is now of type AuthenticationMacType (refer to Section 4.6).=20 3. Modified the MAC Calculations for Key Confirmation in one- and = two-pass (Sec 3.1.4.2 and 3.2.3.1) so that the MAC now includes a hash of all messages sent and = received up to, but not including, . Added Sec 3.1.4.3 to specify the Message = Hash Algorithm. 4. Added Section 1.5 to describe the presentation syntax used in the = document (i.e., XML), and to document the associated version, namespace prefixes, and = idenfiers. 5. Replaced the IANA Considerations section with wording from Hannes. 6. Some new references were added for the IANA Considerations section, = as well as for the other changes noted above. =20 Comments would be appreciated, esp. within the next two weeks to allow = time for any changes prior to the July 14 I-D submission cut-off date. =20 Andrea ________________________________ From: keyprov-bounces@ietf.org on behalf of Internet-Drafts@ietf.org Sent: Sun 6/22/2008 10:00 PM To: i-d-announce@ietf.org Cc: keyprov@ietf.org Subject: [KEYPROV] I-D Action:draft-ietf-keyprov-dskpp-04.txt A New Internet-Draft is available from the on-line Internet-Drafts = directories. This draft is a work item of the Provisioning of Symmetric Keys Working = Group of the IETF. Title : Dynamic Symmetric Key Provisioning Protocol = (DSKPP) Author(s) : A. Doherty, et al. Filename : draft-ietf-keyprov-dskpp-04.txt Pages : 104 Date : 2008-06-22 DSKPP is a client-server protocol for initialization (and configuration) of symmetric keys to locally and remotely accessible cryptographic modules. The protocol can be run with or without private-key capabilities in the cryptographic modules, and with or without an established public-key infrastructure. Two variations of the protocol support multiple usage scenarios. With the four-pass variant, keys are mutually generated by the provisioning server and cryptographic module; provisioned keys are not transferred over-the-wire or over-the-air. The two-pass variant enables secure and efficient download and installation of pre- generated symmetric keys to a cryptographic module. This document builds on information contained in [RFC4758], adding specific enhancements in response to implementation experience and liaison requests. It is intended that this document or a successor version thereto will become the basis for subsequent progression of a symmetric key provisioning protocol specification on the standards track. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-keyprov-dskpp-04.txt Internet-Drafts are also available by anonymous FTP at: ftp://ftp.ietf.org/internet-drafts/ Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. ------_=_NextPart_001_01C8D4DB.C385A9DF Content-Type: application/octet-stream; name="draft-ietf-keyprov-dskpp-04.URL" Content-Transfer-Encoding: base64 Content-Description: draft-ietf-keyprov-dskpp-04.URL Content-Disposition: attachment; filename="draft-ietf-keyprov-dskpp-04.URL" W0ludGVybmV0U2hvcnRjdXRdDQpVUkw9ZnRwOi8vZnRwLmlldGYub3JnL2ludGVybmV0LWRyYWZ0 cy9kcmFmdC1pZXRmLWtleXByb3YtZHNrcHAtMDQudHh0DQo= ------_=_NextPart_001_01C8D4DB.C385A9DF Content-Type: text/plain; name="ATT1233565.txt" Content-Transfer-Encoding: base64 Content-Description: ATT1233565.txt Content-Disposition: attachment; filename="ATT1233565.txt" X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCktFWVBST1Yg bWFpbGluZyBsaXN0DQpLRVlQUk9WQGlldGYub3JnDQpodHRwczovL3d3dy5pZXRmLm9yZy9tYWls bWFuL2xpc3RpbmZvL2tleXByb3YNCg== ------_=_NextPart_001_01C8D4DB.C385A9DF Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov ------_=_NextPart_001_01C8D4DB.C385A9DF-- From keyprov-bounces@ietf.org Mon Jun 23 05:38:53 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A10B13A69B6; Mon, 23 Jun 2008 05:38:53 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id F13193A699D for ; Mon, 23 Jun 2008 05:38:51 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -6.599 X-Spam-Level: X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mTQyWmpBm6FC for ; Mon, 23 Jun 2008 05:38:48 -0700 (PDT) Received: from mexforward.lss.emc.com (mexforward.lss.emc.com [128.222.32.20]) by core3.amsl.com (Postfix) with ESMTP id 132043A68EF for ; Mon, 23 Jun 2008 05:38:47 -0700 (PDT) Received: from hop04-l1d11-si03.isus.emc.com (HOP04-L1D11-SI03.isus.emc.com [10.254.111.23]) by mexforward.lss.emc.com (Switch-3.2.5/Switch-3.1.7) with ESMTP id m5NCciBq016456 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 23 Jun 2008 08:38:44 -0400 (EDT) Received: from mailhub.lss.emc.com (sesha.lss.emc.com [10.254.144.12]) by hop04-l1d11-si03.isus.emc.com (Tablus Interceptor); Mon, 23 Jun 2008 08:19:19 -0400 Received: from corpussmtp3.corp.emc.com (corpussmtp3.corp.emc.com [10.254.64.53]) by mailhub.lss.emc.com (Switch-3.2.5/Switch-3.1.7) with ESMTP id m5NCcXT2004589; Mon, 23 Jun 2008 08:38:43 -0400 (EDT) From: andrea.doherty@rsa.com Received: from CORPUSMX10B.corp.emc.com ([128.221.14.94]) by corpussmtp3.corp.emc.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 23 Jun 2008 08:38:25 -0400 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Date: Mon, 23 Jun 2008 08:37:40 -0400 Message-ID: <9ED76AB595E4944BB33D8998DE448D1105B98E@CORPUSMX10B.corp.emc.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: IANA URI Registry Proposal Thread-Index: AcjVLezqL67sPeRGSey7cUpV5QYFIA== To: X-OriginalArrivalTime: 23 Jun 2008 12:38:25.0647 (UTC) FILETIME=[07D1EFF0:01C8D52E] X-Tablus-Inspected: yes X-Tablus-Classifications: public X-Tablus-Action: allow Cc: keyprov@ietf.org, hannes.tchofenig@gmx.net Subject: [KEYPROV] IANA URI Registry Proposal X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org Philip, In addition to the SecurID identifiers from the OTP-WSS-Token spec, please also include http://www.rsa.com/names/2008/04/algorithms/SecurID#SecurID-AES128-Counter in the next update of the document. BTW - what is the status of the document? It appears that draft-hallambaker-algorithm-identifiers-00 has expired. Thanks, Andrea _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov From keyprov-bounces@ietf.org Mon Jun 23 06:39:59 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id D619A3A68FD; Mon, 23 Jun 2008 06:39:59 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 983253A67A6 for ; Mon, 23 Jun 2008 06:39:58 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: 1.352 X-Spam-Level: * X-Spam-Status: No, score=1.352 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, J_CHICKENPOX_22=0.6, J_CHICKENPOX_23=0.6, J_CHICKENPOX_25=0.6, J_CHICKENPOX_26=0.6, J_CHICKENPOX_27=0.6, J_CHICKENPOX_75=0.6] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OShoX3vhoOJN for ; Mon, 23 Jun 2008 06:39:35 -0700 (PDT) Received: from frhub1.activcard.fr (frhub1.activcard.fr [91.151.120.133]) by core3.amsl.com (Postfix) with ESMTP id 0B4C33A6904 for ; Mon, 23 Jun 2008 06:39:34 -0700 (PDT) Received: from sur-corp-ex-02.corp.ad.activcard.com (sur-corp-ex-02.corp.ad.activcard.com [192.168.33.40]) by frhub1.activcard.fr (Postfix) with ESMTP id D6B7725ED3C; Mon, 23 Jun 2008 15:39:25 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Date: Mon, 23 Jun 2008 15:39:16 +0200 Message-ID: <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0E6@sur-corp-ex-02.corp.ad.activcard.com> In-Reply-To: <3E5A2F1AD44F5E49A74F79AB47C0C0C9DF40B3@mou1wnexmb10.vcorp.ad.vrsn.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [KEYPROV] [pskc] Latest draft of PSKC Thread-Index: Acihb52vIXPZfM+dQBGaWxrT4r5ocAAVy7xQAHs9/BAAB0GJoAAC0jWgARViyUAASBMeYAFfxKKAAAGFK/UAAAvvgANQaPGwAZRV6yADujT6IADYIH1wACCuhuA= References: <9ED76AB595E4944BB33D8998DE448D110160C92D@CORPUSMX10B.corp.emc.com> <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0D3@sur-corp-ex-02.corp.ad.activcard.com> <3E5A2F1AD44F5E49A74F79AB47C0C0C9DF40B3@mou1wnexmb10.vcorp.ad.vrsn.com> From: "Philip Hoyer" To: "Pei, Mingliang" , , "Hannes Tschofenig" , "Hallam-Baker, Phillip" Cc: keyprov@ietf.org Subject: Re: [KEYPROV] [pskc] Latest draft of PSKC X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============1721149804==" Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org This is a multi-part message in MIME format. --===============1721149804== Content-class: urn:content-classes:message Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C8D536.8820DA0F" This is a multi-part message in MIME format. ------_=_NextPart_001_01C8D536.8820DA0F Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Ming, I will do some of the changes below but I really start to think we should consider this issue about typing and resistance to name value pairs. =20 Can we have a call this week? =20 How about Tuesday morning PST would that work? =20 Philip =20 ________________________________ From: Pei, Mingliang [mailto:mpei@verisign.com]=20 Sent: Monday, June 23, 2008 12:11 AM To: Philip Hoyer; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip Cc: andrea.doherty@rsa.com; keyprov@ietf.org Subject: RE: [KEYPROV] [pskc] Latest draft of PSKC =20 Hi Philip, =20 Thank you for the updates. I went through the revised documents, and verified the examples against the schema with my schema tool. The changes mostly look good to me. Here are a few more minor changes needed. =20 - There is one inconsistency in defining PINUsageModeType "InAlgo". The schema section and schema file used "Embed" but the section 5.4.4.1 used "InAlgo". - For your change 3, I think that it would be better to place KeyProperties element in KeyContainer in front of Device instead of being after. Logically we should define common key headers (KeyProperties) before a key is defined in a Device element and refer to the key properties. - The element name "WrongPINTry" doesn't sound natural as an element name. Maybe it is due to some inconsistence with our other naming conventions - we try to use an noun for an name elsewhere. How about an alternative name such as "MaxBadAttempts" or "BadTryThreshold" etc.? =20 Please see my other comments inline for the discussion points. =20 One more discussion issue is about Hannes's suggestion: "For the PSKC document I also suggest to use "urn:ietf:params:xml:ns:keyprov:pskc:1.0" instead of "urn:ietf:params:xml:ns:keyprov:container:1.0" I am fine with the namespace change. - Ming =20 ________________________________ From: Philip Hoyer [mailto:philip.hoyer@actividentity.com]=20 Sent: Wednesday, June 18, 2008 9:51 AM To: Pei, Mingliang; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip Cc: andrea.doherty@rsa.com; keyprov@ietf.org Subject: RE: [KEYPROV] [pskc] Latest draft of PSKC Please find attached the latest work in progress draft and related schema, =20 Changes made from version 4 are: =20 1. Added optional Id element to the container in case another document includes more than one container and wants to reference it uniquely, this is of type xs:Id=20 2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became mandatory)=20 3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to xs:ID=20 4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF as it refers to the ID of the element of (3) see directly above =20 5. Added optional PINPolicyId attribute of type xs:ID to PINPolicyType=20 6. Added the KeyContainer:KeyProperties element that was missing from version -04 (oversight).This is where the common properties for a key are actually held within a container=20 7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case=20 =20 Extension points: =20 Added a '' to=20 1. KeyContainerType=20 2. KeyPropertiesType=20 3. KeyType=20 4. PINPolicy=20 5. DeviceIDType=20 6. DeviceType=20 7. UsageType=20 =20 Added a '' to: 1. UsageType (since it contains the attributes of ' So I thought it would be wise to be able to extend this =20 =20 =20 Outstanding issues that need to be discussed: 1. Should we make KeyType:KeyId of type xs:ID instead of xs:string =20 MP : Prefer to keep it as xs:string. DSKPP will have the same concept. Using it as both an element ID reference and actual key identifier would be more confusing just for the case where PINKeyID refers to KeyID from another element. =20 1. Should we make KeyType:KeyProfileId and KeyProperties:KeyProfileId of type xs:ID instead of xs:string =20 =20 MP: I don't think so. According to its current usage, it is almost a proprietory value between a sending and a receiving party to consume. Unless I miss something, xs:ID is mainly used for reference purpose within an instance document of schema. But the KeyProfileId may have actual meaning given by the key issuer. =20 1. For all the uses of xs:ID should we add facets of minlength, maxlength and whitespace? Or do we just have standard =20 =20 MP: Not sure we always need to define minlength and maxlength for all IDs. =20 1. Should we go for xs:string for unencrypted data elements - Rob Philpott and others seem strongly for it but Sean Turner was against it at the last IETF in Philadelphia =20 =20 MP: My preference was "string" type with an encoding attribute. The meeting minutes of IETF indicates that a change isn't a must as people won't care its type and it doesn't really matter in the final spec. In other words, it seemed to be considered a low priority to change rather than being against it or not. =20 1. Where else do we need '' as extension points =20 =20 MP: Your addition seems to be complete. I cannot think of others for now. =20 1. For the added '' do we need a description = within the spec or do we just leave them in the parts of the schema fragments throughout the spec as obvious extension points? =20 =20 MP: I think that we should add a description for each "any" we added even if they are obvious. =20 1. Address other issues raised by Rob Philpott: Here below with my comments and numbered Rob Philpott Comment plus number (RPC1, RPC2, ... etc)=20 RPC1. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device. Also since there are already implementations out there changing this would make it incompatible.=20 MP: Note that DSKPP uses "DeviceIdentifierDataType" for the device identity information. How about "DeviceIdDataType" instead of "DeviceIdType" here? RPC2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. MP: Agree to not reopen this discussion. The added "any" in KeyType allows other extensions. RPC3. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc RPC4. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. RPC5 In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote =20 MP: "Algorithmic" is fine. =20 Philip =20 =20 =20 ________________________________ From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]=20 Sent: Friday, May 30, 2008 4:36 PM To: keyprov@ietf.org Cc: Philip Hoyer Subject: FW: [KEYPROV] [pskc] Latest draft of PSKC =20 Here is Philip Hoyer's response to Rob's comments (see below), which we initially handled offline, and then we decided it would be better to further the discussion on the mailing list. =20 -- Andrea 1. Use of xs:ID attributes: a. The xs:ID datatype is only used in the DerivedKeyType complexType. xs:ID is the preferred mechanism for referring to other XML elements in an instance document. So why are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the "KeyPropertiesId" attribute) and KeyType ("KeyId")? Why don't these use xs:ID attributes? [PH] good point I was thinking that xs:Id for KeyPropertiesId could be a good choice The KeyId on the other hand is not really used to be referred to. Do you think it would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?=20 b. Why doesn't a KeyContainer have an (optional) ID that could be used to reference it in an instance document? [PH] valid comment and I will think we should add this=20 c. Same question for PINPolicy? [PH] agreed d. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device e. Section 5.2.1 says that the DeviceIdType is an extensible type, but there are no extension points in it. [PH] agreed I think we should add an xs:any 2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. a. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc b. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. c. It is also a pain for implementers to deal with the limitation of the data typing available for unencrypted elements. For example, for a SecurID token with a display interval of 60 seconds, I cannot simply use an xml schema-defined datatype of xs:integer with a value of "60". I have to Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the receiving end). Why is this necessary? I could define such an item with a single XML element, but here I need 3 or 4. [PH] using xs:string for plainvalue was discussed during the last IETF meeting (I personally am in favor of it) but Sean Turner and the rest of the people did not see much value in it. If we use string we will need to deice for specific data elements what the encoding rules are. For example do we say for 8 byte unsigned int to encode just string e.g. '60' or leading 0 examples '00000060'. I would appreciate your thoughts on this. Also how would we encode binary data in string form base64 encoded? d. This approach does not produce "readable" XML since the data values are always Base64-encoded. That is just crazy when the data is not sensitive in nature. Please do not underestimate the value of being able to look at data in an instance document and know what it is without having to run it through a Base64 decoder! This is a major drawback. [PH] agreed and see answer above 3. RE: PINPolicy: a. If I specify a PINPolicy, I am forced to specify a PINKeyID, which forces me to create another Key element (even if I don't have any additional PIN policy info that I need to pass along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more complex than it needs to be.=20 [PH] if you are referring to the fact that '' is set to = required I agree with you. We should set this to 'optional'. I do not agree with your 90% use case analysis since the main use cases I have come across where to transmit the initial random pin for PINPads tokens within the same PSKC document from manufacturing to the validation server. b. The PINPolicy element only contains "policy" attributes for "WrongPINtry" and "PINUsageMode" and the element is not directly extensible. Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references. IMO, PIN policy info should be in the PINPolicy element, not in a separate "Key" element! The only thing that should go in the Key element is a PIN value that is being expressly communicated with the instance document. That is, a PIN value IS a key; PIN policy information IS NOT a key. [PH] I agree we need to make PINPolicy extensible and not put stuff into the Data elements of the PINKey. Are there any other elements that you know of we should include now and not just as an xs:any extension? c. It seems to us that there are additional universally-known PIN policy attributes that should be included in the schema. Things such as the PIN's maximum and minimum length and it's data type (integer, alphanumeric). Unless these are part of the spec, we currently are forced to create custom Data elements for them (and put them in a referenced Key element). BTW - Just to be clear, I am talking about the POLICY information associated with whatever PIN a user uses with their token. I'm not talking about the attributes of a specific PIN value that can be expressed in a Key element. As an example, to express a min and max PIN length policy, we have to create custom Data elements in a separate Key element (and also Base64 encode the values). I'm sorry, but this is getting ridiculous.=20 NA=3D=3D OA=3D=3D [PH] no the format and length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 of the spec) would make that clear here is the XML fragment: MTIzNA=3D=3D Notes: a. If I had an xs:any extension point, I could express this in 2 lines of XML in the PinPolicy element. b. This example doesn't include the PIN format, which would require me to either: i. Use another custom Data element=20 ii. Include a ResponseFormat element that then requires inclusion of a "Length" attribute. But what would the Length attribute really mean in this case? d. Why isn't a PINPolicy reusable across multiple tokens (it has no ID that can be used in a reference from a token definition). If I want to define a PINPolicy that applies to multiple tokens, the PINPolicy element needs its own ID. [PH] I see your point. If we make PINKeyId optional as in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your purpose. e. The "WrongPINtry" element name (in PINPolicyType) is not consistent with the other camel-case names ("try" should be "Try"). [PH] agreed, will change f. In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote 4. The use of "ResponseFormat" for describing a PIN is very confusing. The spec defines ResponseFormat as follows "The ResponseFormat element defines the characteristics of the result of a computation. This defines the format of the OTP or of the response to a challenge." A PIN is not the result of a "computation", nor is it a response to a challenge. It seems quite odd to use this Key construct for a PIN. I think that either another usage type should be defined or the ResponseFormat definition should be changed to also reflect its use for describing a PIN. [PH] Yes I think we need to change the description. I am getting a lot of push back to include PIN requirements in the spec so I tried to convince people that tit was a good idea without having to introduce to many new schema types. Here you say it is odd to use the Key element for the PIN value but above you agree that a PIN IS a Key. So I would keep it in the Key element buy change description. =20 ------_=_NextPart_001_01C8D536.8820DA0F Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Re: [KEYPROV] [pskc] Latest draft of PSKC

Ming,

I will do some of the changes below = but I really start to think we should consider this issue about typing and = resistance to name value pairs.

 

Can we have a call this = week?

 

How about Tuesday morning PST would = that work?

 

Philip

 


From: Pei, = Mingliang [mailto:mpei@verisign.com]
Sent: Monday, June 23, = 2008 12:11 AM
To: Philip Hoyer; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip
Cc: = andrea.doherty@rsa.com; keyprov@ietf.org
Subject: RE: [KEYPROV] = [pskc] Latest draft of PSKC

 

Hi = Philip,

 

Thank you for the updates. I went = through the revised documents, and verified the examples against the schema with = my schema tool. The changes mostly look good to me. Here are a few = more minor changes needed.

 

- There is one inconsistency in = defining PINUsageModeType "InAlgo". The schema section and schema = file used "Embed" but the section 5.4.4.1 used = "InAlgo".

- For your change 3, I think that = it would be better to place KeyProperties element in KeyContainer in front of = Device instead of being after. Logically we should define common key headers (KeyProperties) before a key is defined in a Device element and refer to = the key properties.

- The element name = "WrongPINTry" doesn't sound natural as an element name. Maybe it is due to some = inconsistence with our other naming conventions - we try to use an noun for an name elsewhere. How about an alternative name such as "MaxBadAttempts" or "BadTryThreshold" = etc.?

 

Please see my other comments inline = for the discussion points.

 

One more discussion issue is about Hannes's suggestion:

"For the PSKC document I also suggest to use "urn:ietf:params:xml:ns:keyprov:pskc:1.0" instead of "urn:ietf:params:xml:ns:keyprov:container:1.0"

I am fine with the namespace = change.

- Ming

 


From: Philip Hoyer [mailto:philip.hoyer@actividentity.com]
Sent: Wednesday, June 18, = 2008 9:51 AM
To: Pei, Mingliang; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip
Cc: = andrea.doherty@rsa.com; keyprov@ietf.org
Subject: RE: [KEYPROV] = [pskc] Latest draft of PSKC

Please find attached the latest = work in progress draft and related schema,

 

= Changes made from version 4 are:

 

  1. Added optional Id element to the container in case another document = includes more than one container and wants to reference it uniquely, this is = of type xs:Id
  2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became = mandatory)
  3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to = xs:ID
  4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF = as it refers to the ID of the element of (3) see directly = above  
  5. Added optional PINPolicyId attribute of type xs:ID to = PINPolicyType
  6. Added the KeyContainer:KeyProperties element that was missing from = version -04 (oversight).This is where the common properties for a key are = actually held within a container
  7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case =

 

Extension = points:

 

Added a ‘<xs:any namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0" maxOccurs=3D"unbounded"/>’ = to

  1. KeyContainerType
  2. KeyPropertiesType
  3. KeyType
  4. PINPolicy
  5. DeviceIDType
  6. DeviceType
  7. UsageType

 

Added a ‘<xs:anyAttribute namespace=3D"##other"/>’ = to:

  1. UsageType (since it contains the attributes of = ‘           =      

<xs:attribute name=3D"OTP" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"CR" type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Integrity" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Encrypt" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Unlock" type=3D"xs:boolean" default=3D"false"/>

      =       So I thought it would be wise to be able to extend = this

 

 

 

= Outstanding issues that need to be discussed:

  1. Should we make KeyType:KeyId of type xs:ID instead of = xs:string  

 

=

MP    : Pre= fer to keep it as xs:string. DSKPP will have the same concept. Using it as both = an element ID reference and actual key identifier would be more confusing = just for the case where PINKeyID refers to KeyID from another = element.

 

=
  1. Should we make KeyType:KeyProfileId and KeyProperties:KeyProfileId of type = xs:ID instead of xs:string  

 

=

MP: I don't think so. = According to its current usage, it is almost a proprietory value between a sending = and a receiving party to consume. Unless I miss something, xs:ID is mainly = used for reference purpose within an instance document of schema. But the KeyProfileId may have actual meaning given by the key = issuer.

 

=
  1. For all the uses of xs:ID should we add facets of minlength, maxlength = and whitespace? Or do we just have standard  

 

=

MP: Not sure we always need to = define minlength and maxlength for all IDs.

 

=
  1. Should we go for xs:string for unencrypted data elements – Rob = Philpott and others seem strongly for it but Sean Turner was against it at the = last IETF in Philadelphia  

 

=

MP: My preference was = "string" type with an encoding attribute. The meeting minutes of IETF indicates = that a change isn't a must as people won't care its type and it doesn't really = matter in the final spec. In other words, it seemed to be considered a low = priority to change rather than being against it or not.

 

=
  1. Where else do we need ‘<anyAttribute = namespace=3D"##other" processContents=3D"lax"/>’ as extension = points  

 

=

MP: Your addition seems to be complete. I cannot think of others for now.

 

=
  1. For the added ‘<xs:any namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0" maxOccurs=3D"unbounded"/>’ do we need a = description within the spec or do we just leave them in the parts of the schema fragments throughout the spec as obvious extension = points?  

 

=

MP: I think that we should add a description for each "any" we added even if they are = obvious.

 

=
  1. Address other issues raised by Rob Philpott: Here below with my comments = and numbered Rob Philpott Comment plus number (RPC1, RPC2, … = etc)

RPC1.      The use = of the DeviceIdType is inconsistent with other “ID”’s (that = are used for referential information).  The elements in the DeviceIDType = seem more appropriate for the DeviceType or KeyType elements.  At a minimum, = I would not call this a “DeviceIdType” (perhaps “DeviceInfoType”?) but really, I would just put its elements directly in the DeviceType complexType).  I would also give = <Device> elements an optional referential ID via xs:ID.

[PH] so basically you are saying = that any high level entity (Key, Device, KeyContainer etc) should have an ID that = is xs:ID? The thought of DeviceId was to aggregate under a specific type = the elements that comprise the compound key to look up the device. Also = since there are already implementations out there changing this would make it = incompatible. 

MP: Note that = DSKPP uses "DeviceIdentifierDataType" for the device identity information. How about "DeviceIdDataType" instead of "DeviceIdType" here?

RPC2.       We = are really unhappy with the proposed extensibility mechanism. This goes = against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO):

[PH] this has = been extensively discussed at IETF and there are pros and cons for all = approaches. The pro’s of the name value approach is that it will be re-usable = for the ASN.1 spec and that we will have a semantic registry defined by = IANA.

MP: Agree to not = reopen this discussion. The added "any" in KeyType allows other = extensions.


RPC3.       The use of “Reserved = data attribute names” as described in section 7 is really difficult to = work with. First, <Data> elements should ONLY be used for = “real” extensions… i.e. things that aren’t already known at the = time the spec is written.  If we already know that the items defined in = section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be “reserved” = uses of the <DATA> element.  We just don’t understand the = desire to do it this way. Having explicitly defined elements also allows for more flexible datayping.

[PH] this has = been extensively discussed. And we opted for the name value pair approach. = This mean that all elements in Data can be parsed in the same manner and = individually be encrypted or not. There will be a centralized semantic registry by IANA, = etc


RPC4.      This mechanism only lets us create = very simple name-value pair extensions.  If we have some small groups of related extensions, we’d really like to be able to define them = externally in a private schema via their own complexType definitions.  With = the current method, it’s going to be very messy to add groups of = extensions or extensions that have more complex data values.

[PH] why do you = say that, the name could be also be a namespace for an wholly encrypted or base64 = encoded XML sub node. I see your point though in terms of parsing here. Could = you give me an example of what you had in mind since we have considered quite a = few use cases and not come across the requirement for grouped = extensions.

RPC5       = In general, it is undesirable to create abbreviations such as “InAlgo” (in PINUsageMode) to be used as XML keywords. To = stay consistent with “Local” and “Prepend”, I would = strongly suggest something like “Embed” or = “Algorithmic”.
[PH[ we had Embed before = and people got confused by the meaning. So maybe Algorithmic is a better choice, = that is why I tried to express the use of the PIN in the algorithm as InAlgo. I = do not feel very strong about it. Maybe we can have a = vote

 

MP: "Algorithmic" is = fine.

 

Philip

 

 

 


From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]
Sent: Friday, May 30, = 2008 4:36 PM
To: keyprov@ietf.org
Cc: Philip Hoyer
Subject: FW: [KEYPROV] = [pskc] Latest draft of PSKC

 

Here is Philip Hoyer's = response to Rob's comments (see below), which we initially handled offline, = and then we decided it would be better to further the discussion on the = mailing list. 

-- Andrea


 1.       Use of = xs:ID attributes:

a.       The xs:ID datatype is only used = in the DerivedKeyType complexType.  xs:ID is the preferred mechanism for referring to other XML elements in an instance document.  So why = are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the “KeyPropertiesId” attribute) and = KeyType (“KeyId”)? Why don’t these use xs:ID attributes?

[PH] good point = I was thinking that xs:Id for KeyPropertiesId could be a good choice  The = KeyId on the other hand is not really used to be referred to. Do you think it = would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?


b.      Why doesn’t a KeyContainer have = an (optional) ID that could be used to reference it in an instance = document?

[PH] valid = comment and I will think we should add this

c.       Same question for PINPolicy?

[PH] = agreed

d.      The use of the DeviceIdType is = inconsistent with other “ID”’s (that are used for referential information).  The elements in the DeviceIDType seem more = appropriate for the DeviceType or KeyType elements.  At a minimum, I would not call = this a “DeviceIdType” (perhaps “DeviceInfoType”?) but = really, I would just put its elements directly in the DeviceType = complexType).  I would also give <Device> elements an optional referential ID via = xs:ID.

[PH] so basically you are saying = that any high level entity (Key, Device, KeyContainer etc) should have an ID that = is xs:ID? The thought of DeviceId was to aggregate under a specific type = the elements that comprise the compound key to look up the = device


e.      Section 5.2.1 says that the = DeviceIdType is an extensible type, but there are no extension points in it.

[PH] agreed I = think we should add an xs:any

2.       We are really unhappy with the = proposed extensibility mechanism. This goes against general XML schema best = practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior = (IMO):

[PH] this has = been extensively discussed at IETF and there are pros and cons for all = approaches. The pro’s of the name value approach is that it will be re-usable = for the ASN.1 spec and that we will have a semantic registry defined by = IANA.



a.       The use of “Reserved data attribute names” as described in section 7 is really difficult to = work with. First, <Data> elements should ONLY be used for = “real” extensions… i.e. things that aren’t already known at the = time the spec is written.  If we already know that the items defined in = section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be “reserved” = uses of the <DATA> element.  We just don’t understand the = desire to do it this way. Having explicitly defined elements also allows for more flexible datayping.

[PH] this has = been extensively discussed. And we opted for the name value pair approach. = This mean that all elements in Data can be parsed in the same manner and = individually be encrypted or not. There will be a centralized semantic registry by IANA, = etc


b.      This mechanism only lets us create very = simple name-value pair extensions.  If we have some small groups of = related extensions, we’d really like to be able to define them externally = in a private schema via their own complexType definitions.  With the = current method, it’s going to be very messy to add groups of extensions or extensions that have more complex data values.

[PH] why do you = say that, the name could be also be a namespace for an wholly encrypted or base64 = encoded XML sub node. I see your point though in terms of parsing here. Could = you give me an example of what you had in mind since we have considered quite a = few use cases and not come across the requirement for grouped = extensions.


c.       It is also a pain for = implementers to deal with the limitation of the data typing available for unencrypted <Data> elements.  For example, for a SecurID token with a = display interval of 60 seconds, I cannot simply use an xml schema-defined = datatype of xs:integer with a value of “60”.  I have to = Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the = receiving end). Why is this necessary?  I could define such an item with a = single XML element, but here I need 3 or 4.

[PH] using = xs:string for plainvalue was discussed during the last IETF meeting (I personally am = in favor of it) but Sean Turner and the rest of the people did not see much value = in it. If we use string we will need to deice for specific data elements what = the encoding rules are. For example do we say for 8 byte unsigned int to = encode just string e.g. ‘60’ or leading 0 examples = ‘00000060’. I would appreciate your thoughts on this. Also how would we encode = binary data in string form base64 encoded?



d.      This approach does not produce “readable” XML since the data values are always Base64-encoded.  That is just crazy when the data is not sensitive = in nature.  Please do not underestimate the value of being able to = look at data in an instance document and know what it is without having to run = it through a Base64 decoder! This is a major drawback.

[PH] agreed and = see answer above


3.       RE: PINPolicy:

a.       If I specify a PINPolicy, I am = forced to specify a PINKeyID, which forces me to create another Key element (even = if I don’t have any additional PIN policy info that I need to pass = along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more = complex than it needs to be. 

[PH] if you are = referring to the fact that ‘<xs:attribute name=3D"PINKeyId" type=3D"xs:string" use=3D"required"/>’ is = set to required I agree with you. We should set this to ‘optional’. = I do not agree with your 90% use case analysis since the main use cases I = have come across where to transmit the initial random pin for PINPads tokens = within the same PSKC document from manufacturing to the validation = server.



b.      The PINPolicy element only contains “policy” attributes for “WrongPINtry” and “PINUsageMode” and the element is not directly = extensible.  Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references.  IMO, PIN policy info = should be in the PINPolicy element, not in a separate “Key” = element! The only thing that should go in the Key element is a PIN value that is = being expressly communicated with the instance document.  That is, a PIN value IS a = key; PIN policy information IS NOT a key.

[PH] I agree we = need to make PINPolicy extensible and not put stuff into the Data elements of = the PINKey. Are there any other elements that you know of we should include = now and not just as an xs:any extension?


c.       It seems to us that there are = additional universally-known PIN policy attributes that should be included in the schema.  Things such as the PIN’s maximum and minimum length = and it’s data type (integer, alphanumeric).  Unless these are = part of the spec, we currently are forced to create custom Data elements for = them (and put them in a referenced Key element). BTW – Just to be clear, I = am talking about the POLICY information associated with whatever PIN a user = uses with their token.  I’m not talking about the attributes of a specific PIN value that can be expressed in a Key element.  As an = example, to express a min and max PIN length policy, we have to create custom = Data elements in a separate Key element (and also Base64 encode the = values).  I’m sorry, but this is getting ridiculous. 

           <Key KeyId=3D"07552252661"

             KeyAlgorithm=3D"http://www.ietf.org/keyprov= /pskc#pin">

            &= nbsp; <Data Name=3D"PIN_MIN_LENGTH">

            &= nbsp;     <PlainValue>NA=3D=3D</PlainValue>

            &= nbsp; </Data>

            &= nbsp; <Data Name=3D"PIN_MAX_LENGTH">

            &= nbsp;     <PlainValue>OA=3D=3D</PlainValue>

            &= nbsp; </Data>

           = </Key>

[PH] no the format and = length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 = of the spec) would make that clear here is the XML = fragment:

       <Key KeyId=3D"07552252661"

          KeyAlgorithm=3D"http://www.ietf.org/keyprov/pskc#pin"><= /o:p>

          &= nbsp; <Usage>

          &= nbsp;     <ResponseFormat Length=3D"4" = Format=3D"DECIMAL"/>

          &= nbsp; </Usage>

          &= nbsp; <Data Name=3D"SECRET">

          &= nbsp;     <PlainValue>MTIzNA=3D=3D</PlainValue>

          &= nbsp; </Data>

        = </Key>

Notes:

a.       If I had an xs:any extension = point, I could express this in 2 lines of XML in the PinPolicy element.

b.      This example doesn’t include the = PIN format, which would require me to either:

            &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            = ;        i.            Use another custom Data element 

            &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            = ;      ii.            = Include a ResponseFormat element that then requires inclusion of a = “Length” attribute. But what would the Length attribute really mean in this = case?

d.      Why isn’t a PINPolicy reusable = across multiple tokens (it has no ID that can be used in a reference from a = token definition).  If I want to define a PINPolicy that applies to = multiple tokens, the PINPolicy element needs its own ID.

[PH] I see your point. If we make PINKeyId optional as = in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your = purpose.


e.      The “WrongPINtry” element = name (in PINPolicyType) is not consistent with the other camel-case names (“try” should be “Try”).

[PH] agreed, will change


f.        In general, it is = undesirable to create abbreviations such as “InAlgo” (in PINUsageMode) to = be used as XML keywords. To stay consistent with “Local” and = “Prepend”, I would strongly suggest something like “Embed” or “Algorithmic”.
[PH[ we had Embed before = and people got confused by the meaning. So maybe Algorithmic is a better choice, = that is why I tried to express the use of the PIN in the algorithm as InAlgo. I = do not feel very strong about it. Maybe we can have a = vote


4.       The use of = “ResponseFormat” for describing a PIN is very confusing.  The spec defines = ResponseFormat as follows “The ResponseFormat element defines the characteristics = of the result of a computation.  This defines the format of the OTP or of = the response to a challenge.” A PIN is not the result of a “computation”, nor is it a response to a challenge.  It = seems quite odd to use this Key construct for a PIN. I think that either = another usage type should be defined or the ResponseFormat definition should be = changed to also reflect its use for describing a PIN.
[PH] Yes I think we need = to change the description. I am getting a lot of push back to include PIN = requirements in the spec so I tried to convince people that tit was a good idea without = having to introduce to many new schema types. Here you say it is odd to use the = Key element for the PIN value but above you agree that a PIN IS a Key. So I = would keep it in the Key element buy change = description.

 

------_=_NextPart_001_01C8D536.8820DA0F-- --===============1721149804== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov --===============1721149804==-- From keyprov-bounces@ietf.org Mon Jun 23 10:05:55 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 69E8C3A69FE; Mon, 23 Jun 2008 10:05:55 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BE6133A69FD for ; Mon, 23 Jun 2008 10:05:54 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -1.698 X-Spam-Level: X-Spam-Status: No, score=-1.698 tagged_above=-999 required=5 tests=[AWL=1.300, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_22=0.6, J_CHICKENPOX_23=0.6, J_CHICKENPOX_25=0.6, J_CHICKENPOX_26=0.6, J_CHICKENPOX_27=0.6, J_CHICKENPOX_75=0.6, RCVD_IN_DNSWL_MED=-4] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aCE7iJWLJ0Rr for ; Mon, 23 Jun 2008 10:05:30 -0700 (PDT) Received: from robin.verisign.com (robin.verisign.com [65.205.251.75]) by core3.amsl.com (Postfix) with ESMTP id 2265B3A697D for ; Mon, 23 Jun 2008 10:05:30 -0700 (PDT) Received: from mou1wnexcn01.vcorp.ad.vrsn.com (mailer1.verisign.com [65.205.251.34]) by robin.verisign.com (8.12.11/8.13.4) with ESMTP id m5NH5Exb001032; Mon, 23 Jun 2008 10:05:15 -0700 Received: from MOU1WNEXMB10.vcorp.ad.vrsn.com ([10.25.13.204]) by mou1wnexcn01.vcorp.ad.vrsn.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 23 Jun 2008 10:04:35 -0700 Content-class: urn:content-classes:message MIME-Version: 1.0 x-mimeole: Produced By Microsoft Exchange V6.5 Date: Mon, 23 Jun 2008 10:04:34 -0700 Message-ID: <3E5A2F1AD44F5E49A74F79AB47C0C0C9DF40CF@mou1wnexmb10.vcorp.ad.vrsn.com> In-Reply-To: <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0E6@sur-corp-ex-02.corp.ad.activcard.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [KEYPROV] [pskc] Latest draft of PSKC Thread-Index: Acihb52vIXPZfM+dQBGaWxrT4r5ocAAVy7xQAHs9/BAAB0GJoAAC0jWgARViyUAASBMeYAFfxKKAAAGFK/UAAAvvgANQaPGwAZRV6yADujT6IADYIH1wACCuhuAABzNuEA== From: "Pei, Mingliang" To: "Philip Hoyer" , , "Hannes Tschofenig" , "Hallam-Baker, Phillip" X-OriginalArrivalTime: 23 Jun 2008 17:04:35.0031 (UTC) FILETIME=[36508E70:01C8D553] Cc: keyprov@ietf.org Subject: Re: [KEYPROV] [pskc] Latest draft of PSKC X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============1679104512==" Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org This is a multi-part message in MIME format. --===============1679104512== Content-class: urn:content-classes:message Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C8D553.36035E65" This is a multi-part message in MIME format. ------_=_NextPart_001_01C8D553.36035E65 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable This Tuesday morning 8 or 9 PDT is good. - Ming ________________________________ From: Philip Hoyer [mailto:philip.hoyer@actividentity.com]=20 Sent: Monday, June 23, 2008 6:39 AM To: Pei, Mingliang; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip Cc: andrea.doherty@rsa.com; keyprov@ietf.org Subject: RE: [KEYPROV] [pskc] Latest draft of PSKC =09 =09 Ming, I will do some of the changes below but I really start to think we should consider this issue about typing and resistance to name value pairs. =20 Can we have a call this week? =20 How about Tuesday morning PST would that work? =20 Philip =20 =09 ________________________________ From: Pei, Mingliang [mailto:mpei@verisign.com]=20 Sent: Monday, June 23, 2008 12:11 AM To: Philip Hoyer; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip Cc: andrea.doherty@rsa.com; keyprov@ietf.org Subject: RE: [KEYPROV] [pskc] Latest draft of PSKC =20 Hi Philip, =20 Thank you for the updates. I went through the revised documents, and verified the examples against the schema with my schema tool. The changes mostly look good to me. Here are a few more minor changes needed. =20 - There is one inconsistency in defining PINUsageModeType "InAlgo". The schema section and schema file used "Embed" but the section 5.4.4.1 used "InAlgo". - For your change 3, I think that it would be better to place KeyProperties element in KeyContainer in front of Device instead of being after. Logically we should define common key headers (KeyProperties) before a key is defined in a Device element and refer to the key properties. - The element name "WrongPINTry" doesn't sound natural as an element name. Maybe it is due to some inconsistence with our other naming conventions - we try to use an noun for an name elsewhere. How about an alternative name such as "MaxBadAttempts" or "BadTryThreshold" etc.? =20 Please see my other comments inline for the discussion points. =20 One more discussion issue is about Hannes's suggestion: "For the PSKC document I also suggest to use "urn:ietf:params:xml:ns:keyprov:pskc:1.0" instead of "urn:ietf:params:xml:ns:keyprov:container:1.0" I am fine with the namespace change. - Ming =20 =09 ________________________________ From: Philip Hoyer [mailto:philip.hoyer@actividentity.com]=20 Sent: Wednesday, June 18, 2008 9:51 AM To: Pei, Mingliang; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip Cc: andrea.doherty@rsa.com; keyprov@ietf.org Subject: RE: [KEYPROV] [pskc] Latest draft of PSKC Please find attached the latest work in progress draft and related schema, =20 Changes made from version 4 are: =20 1. Added optional Id element to the container in case another document includes more than one container and wants to reference it uniquely, this is of type xs:Id=20 2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became mandatory)=20 3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to xs:ID=20 4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF as it refers to the ID of the element of (3) see directly above =20 5. Added optional PINPolicyId attribute of type xs:ID to PINPolicyType=20 6. Added the KeyContainer:KeyProperties element that was missing from version -04 (oversight).This is where the common properties for a key are actually held within a container=20 7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case=20 =20 Extension points: =20 Added a '' to=20 1. KeyContainerType=20 2. KeyPropertiesType=20 3. KeyType=20 4. PINPolicy=20 5. DeviceIDType=20 6. DeviceType=20 7. UsageType=20 =20 Added a '' to: 1. UsageType (since it contains the attributes of ' So I thought it would be wise to be able to extend this =20 =20 =20 Outstanding issues that need to be discussed: 1. Should we make KeyType:KeyId of type xs:ID instead of xs:string =20 =20 MP : Prefer to keep it as xs:string. DSKPP will have the same concept. Using it as both an element ID reference and actual key identifier would be more confusing just for the case where PINKeyID refers to KeyID from another element. =20 1. Should we make KeyType:KeyProfileId and KeyProperties:KeyProfileId of type xs:ID instead of xs:string =20 =20 MP: I don't think so. According to its current usage, it is almost a proprietory value between a sending and a receiving party to consume. Unless I miss something, xs:ID is mainly used for reference purpose within an instance document of schema. But the KeyProfileId may have actual meaning given by the key issuer. =20 1. For all the uses of xs:ID should we add facets of minlength, maxlength and whitespace? Or do we just have standard =20 =20 MP: Not sure we always need to define minlength and maxlength for all IDs. =20 1. Should we go for xs:string for unencrypted data elements - Rob Philpott and others seem strongly for it but Sean Turner was against it at the last IETF in Philadelphia =20 =20 MP: My preference was "string" type with an encoding attribute. The meeting minutes of IETF indicates that a change isn't a must as people won't care its type and it doesn't really matter in the final spec. In other words, it seemed to be considered a low priority to change rather than being against it or not. =20 1. Where else do we need '' as extension points =20 =20 MP: Your addition seems to be complete. I cannot think of others for now. =20 1. For the added '' do we = need a description within the spec or do we just leave them in the parts of the schema fragments throughout the spec as obvious extension points? =20 =20 MP: I think that we should add a description for each "any" we added even if they are obvious. =20 1. Address other issues raised by Rob Philpott: Here below with my comments and numbered Rob Philpott Comment plus number (RPC1, RPC2, ... etc)=20 RPC1. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device. Also since there are already implementations out there changing this would make it incompatible.=20 MP: Note that DSKPP uses "DeviceIdentifierDataType" for the device identity information. How about "DeviceIdDataType" instead of "DeviceIdType" here? RPC2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. MP: Agree to not reopen this discussion. The added "any" in KeyType allows other extensions. =09 RPC3. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc =09 RPC4. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. RPC5 In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote =20 MP: "Algorithmic" is fine. =20 Philip =20 =20 =20 =09 ________________________________ From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]=20 Sent: Friday, May 30, 2008 4:36 PM To: keyprov@ietf.org Cc: Philip Hoyer Subject: FW: [KEYPROV] [pskc] Latest draft of PSKC =20 Here is Philip Hoyer's response to Rob's comments (see below), which we initially handled offline, and then we decided it would be better to further the discussion on the mailing list. =20 -- Andrea =09 1. Use of xs:ID attributes: =09 a. The xs:ID datatype is only used in the DerivedKeyType complexType. xs:ID is the preferred mechanism for referring to other XML elements in an instance document. So why are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the "KeyPropertiesId" attribute) and KeyType ("KeyId")? Why don't these use xs:ID attributes? [PH] good point I was thinking that xs:Id for KeyPropertiesId could be a good choice The KeyId on the other hand is not really used to be referred to. Do you think it would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?=20 =09 b. Why doesn't a KeyContainer have an (optional) ID that could be used to reference it in an instance document? [PH] valid comment and I will think we should add this=20 =09 c. Same question for PINPolicy? [PH] agreed =09 d. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device =09 e. Section 5.2.1 says that the DeviceIdType is an extensible type, but there are no extension points in it. [PH] agreed I think we should add an xs:any =09 2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. =09 =09 a. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc =09 b. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. =09 c. It is also a pain for implementers to deal with the limitation of the data typing available for unencrypted elements. For example, for a SecurID token with a display interval of 60 seconds, I cannot simply use an xml schema-defined datatype of xs:integer with a value of "60". I have to Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the receiving end). Why is this necessary? I could define such an item with a single XML element, but here I need 3 or 4. [PH] using xs:string for plainvalue was discussed during the last IETF meeting (I personally am in favor of it) but Sean Turner and the rest of the people did not see much value in it. If we use string we will need to deice for specific data elements what the encoding rules are. For example do we say for 8 byte unsigned int to encode just string e.g. '60' or leading 0 examples '00000060'. I would appreciate your thoughts on this. Also how would we encode binary data in string form base64 encoded? =09 =09 d. This approach does not produce "readable" XML since the data values are always Base64-encoded. That is just crazy when the data is not sensitive in nature. Please do not underestimate the value of being able to look at data in an instance document and know what it is without having to run it through a Base64 decoder! This is a major drawback. [PH] agreed and see answer above =09 3. RE: PINPolicy: =09 a. If I specify a PINPolicy, I am forced to specify a PINKeyID, which forces me to create another Key element (even if I don't have any additional PIN policy info that I need to pass along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more complex than it needs to be.=20 [PH] if you are referring to the fact that '' is set to = required I agree with you. We should set this to 'optional'. I do not agree with your 90% use case analysis since the main use cases I have come across where to transmit the initial random pin for PINPads tokens within the same PSKC document from manufacturing to the validation server. =09 =09 b. The PINPolicy element only contains "policy" attributes for "WrongPINtry" and "PINUsageMode" and the element is not directly extensible. Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references. IMO, PIN policy info should be in the PINPolicy element, not in a separate "Key" element! The only thing that should go in the Key element is a PIN value that is being expressly communicated with the instance document. That is, a PIN value IS a key; PIN policy information IS NOT a key. [PH] I agree we need to make PINPolicy extensible and not put stuff into the Data elements of the PINKey. Are there any other elements that you know of we should include now and not just as an xs:any extension? =09 c. It seems to us that there are additional universally-known PIN policy attributes that should be included in the schema. Things such as the PIN's maximum and minimum length and it's data type (integer, alphanumeric). Unless these are part of the spec, we currently are forced to create custom Data elements for them (and put them in a referenced Key element). BTW - Just to be clear, I am talking about the POLICY information associated with whatever PIN a user uses with their token. I'm not talking about the attributes of a specific PIN value that can be expressed in a Key element. As an example, to express a min and max PIN length policy, we have to create custom Data elements in a separate Key element (and also Base64 encode the values). I'm sorry, but this is getting ridiculous.=20 =09 =09 =09 NA=3D=3D =09 =09 =09 OA=3D=3D =09 =09 =09 [PH] no the format and length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 of the spec) would make that clear here is the XML fragment: MTIzNA=3D=3D =09 Notes: =09 a. If I had an xs:any extension point, I could express this in 2 lines of XML in the PinPolicy element. =09 b. This example doesn't include the PIN format, which would require me to either: =09 =09 i. Use another custom Data element=20 =09 =09 ii. Include a ResponseFormat element that then requires inclusion of a "Length" attribute. But what would the Length attribute really mean in this case? =09 d. Why isn't a PINPolicy reusable across multiple tokens (it has no ID that can be used in a reference from a token definition). If I want to define a PINPolicy that applies to multiple tokens, the PINPolicy element needs its own ID. [PH] I see your point. If we make PINKeyId optional as in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your purpose. =09 e. The "WrongPINtry" element name (in PINPolicyType) is not consistent with the other camel-case names ("try" should be "Try"). [PH] agreed, will change =09 f. In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote =09 4. The use of "ResponseFormat" for describing a PIN is very confusing. The spec defines ResponseFormat as follows "The ResponseFormat element defines the characteristics of the result of a computation. This defines the format of the OTP or of the response to a challenge." A PIN is not the result of a "computation", nor is it a response to a challenge. It seems quite odd to use this Key construct for a PIN. I think that either another usage type should be defined or the ResponseFormat definition should be changed to also reflect its use for describing a PIN. [PH] Yes I think we need to change the description. I am getting a lot of push back to include PIN requirements in the spec so I tried to convince people that tit was a good idea without having to introduce to many new schema types. Here you say it is odd to use the Key element for the PIN value but above you agree that a PIN IS a Key. So I would keep it in the Key element buy change description. =20 ------_=_NextPart_001_01C8D553.36035E65 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Re: [KEYPROV] = [pskc] Latest draft of PSKC
This Tuesday morning 8 or 9 PDT is good. -=20 Ming


From: Philip Hoyer=20 [mailto:philip.hoyer@actividentity.com]
Sent: Monday, June = 23, 2008=20 6:39 AM
To: Pei, Mingliang; SMachani@diversinet.com; Hannes=20 Tschofenig; Hallam-Baker, Phillip
Cc: = andrea.doherty@rsa.com;=20 keyprov@ietf.org
Subject: RE: [KEYPROV] [pskc] Latest draft = of=20 PSKC

Ming,

I will do = some of the=20 changes below but I really start to think we should consider this = issue about=20 typing and resistance to name value = pairs.

 

Can we have = a call=20 this week?

 

How about = Tuesday=20 morning PST would that work?

 

Philip

 


From: Pei,=20 Mingliang [mailto:mpei@verisign.com]
Sent:
Monday, June 23, 2008 = 12:11=20 AM
To: Philip = Hoyer;=20 SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, = Phillip
Cc: andrea.doherty@rsa.com;=20 keyprov@ietf.org
Subject: RE:=20 [KEYPROV] [pskc] Latest draft of = PSKC

 

Hi=20 Philip,

 

Thank you = for the=20 updates. I went through the revised documents, and verified the = examples=20 against the schema with my schema tool. The changes mostly = look good to=20 me. Here are a few more minor changes = needed.

 

- There is = one=20 inconsistency in defining PINUsageModeType "InAlgo". The schema = section and=20 schema file used "Embed" but the section 5.4.4.1 used=20 "InAlgo".

- For your = change 3,=20 I think that it would be better to place KeyProperties element in = KeyContainer=20 in front of Device instead of being after. Logically we should define = common=20 key headers (KeyProperties) before a key is defined in a Device = element and=20 refer to the key properties.

- The = element name=20 "WrongPINTry" doesn't sound natural as an element name. Maybe it is = due to=20 some inconsistence with our other naming conventions - we try to use = an noun=20 for an name elsewhere. How about an alternative name such as = "MaxBadAttempts" or "BadTryThreshold" = etc.?

 

Please see = my other=20 comments inline for the discussion = points.

 

One more = discussion=20 issue is about Hannes's suggestion:

"For the=20 PSKC document I also suggest to use = "urn:ietf:params:xml:ns:keyprov:pskc:1.0"=20 instead of=20 = "urn:ietf:params:xml:ns:keyprov:container:1.0"

I am fine = with the=20 namespace change.

-=20 Ming

 


From: Philip=20 Hoyer [mailto:philip.hoyer@actividentity.com]
Sent:
Wednesday, June 18, 2008 = 9:51=20 AM
To: Pei, = Mingliang;=20 SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, = Phillip
Cc: andrea.doherty@rsa.com;=20 keyprov@ietf.org
Subject: RE:=20 [KEYPROV] [pskc] Latest draft of PSKC

Please find = attached=20 the latest work in progress draft and related=20 schema,

 

Changes=20 made from version 4 are:

 

  1. Added optional Id = element to the=20 container in case another document includes more than one container = and=20 wants to reference it uniquely, this is of type xs:Id =
  2. Made PINKeyId of = PINPolicy=20 optional (in version 4 it wrongly became mandatory)=20
  3. Changed=20 KeyPropertiesType:KeyPropertiesId from type xs:String to = xs:ID=20
  4. Changed = KeyType:KeyPropertiesId=20 from type xs:string to be of type xs:IDREF as it refers to the ID of = the=20 element of (3) see directly above  =20
  5. Added optional = PINPolicyId=20 attribute of type xs:ID to PINPolicyType
  6. Added the=20 KeyContainer:KeyProperties element that was missing from version -04 = (oversight).This is where the common properties for a key are = actually held=20 within a container
  7. Changed=20 PINPolicyType: WrongPINtry into=20 WrongPINTry so that = it is=20 proper camel-case

 

Extension=20 points:

 

Added a = ‘<xs:any=20 namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0"=20 maxOccurs=3D"unbounded"/>’ to

  1. KeyContainerType=20
  2. KeyPropertiesType=20
  3. KeyType =
  4. PINPolicy
  5. DeviceIDType
  6. DeviceType
  7. UsageType

 

Added a=20 ‘<xs:anyAttribute namespace=3D"##other"/>’=20 to:

  1. UsageType (since it = contains the=20 attributes of=20 = ‘           =      =20

<xs:attribute=20 name=3D"OTP" type=3D"xs:boolean" = default=3D"false"/>

           =              = <xs:attribute name=3D"CR" type=3D"xs:boolean"=20 default=3D"false"/>

           =              = <xs:attribute name=3D"Integrity" type=3D"xs:boolean"=20 default=3D"false"/>

           =              = <xs:attribute name=3D"Encrypt" type=3D"xs:boolean"=20 default=3D"false"/>

           =              = <xs:attribute name=3D"Unlock" type=3D"xs:boolean"=20 default=3D"false"/>

           = =20 So I thought it would be wise to be able to extend=20 this

 

 

 

Outstanding=20 issues that need to be discussed:

  1. Should we make = KeyType:KeyId of=20 type xs:ID instead of xs:string  =20

 

MP    : Prefer=20 to keep it as xs:string. DSKPP will have the same concept. Using it as = both an=20 element ID reference and actual key identifier would be more confusing = just=20 for the case where PINKeyID refers to KeyID from another=20 element.

 

  1. Should we make=20 KeyType:KeyProfileId and KeyProperties:KeyProfileId of type xs:ID = instead of=20 xs:string  =20

 

MP: I = don't=20 think so. According to its current usage, it is almost a proprietory = value=20 between a sending and a receiving party to consume. Unless I miss = something,=20 xs:ID is mainly used for reference purpose within an instance document = of=20 schema. But the KeyProfileId may have actual meaning given by the = key=20 issuer.

 

  1. For all the uses of = xs:ID should=20 we add facets of minlength, maxlength and whitespace? Or do we just = have=20 standard  =20

 

MP: Not = sure we=20 always need to define minlength and maxlength for all = IDs.

 

  1. Should we go for = xs:string for=20 unencrypted data elements – Rob Philpott and others seem = strongly for it but=20 Sean Turner was against it at the last IETF in Philadelphia  =20

 

MP: My = preference was=20 "string" type with an encoding attribute. The meeting minutes of IETF=20 indicates that a change isn't a must as people won't care its type and = it=20 doesn't really matter in the final spec. In other words, it seemed to = be=20 considered a low priority to change rather than being against it = or=20 not.

 

  1. Where else do we need=20 ‘<anyAttribute namespace=3D"##other" = processContents=3D"lax"/>’ as=20 extension points  =20

 

MP: Your=20 addition seems to be complete. I cannot think of others for=20 now.

 

  1. For the added = ‘<xs:any=20 namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0"=20 maxOccurs=3D"unbounded"/>’ do we need a description within = the spec or do=20 we just leave them in the parts of the schema fragments throughout = the spec=20 as obvious extension points?  =20

 

MP: I think = that we=20 should add a description for each "any" we added even if they are=20 obvious.

 

  1. Address other issues = raised by=20 Rob Philpott: Here below with my comments and numbered Rob Philpott = Comment=20 plus number (RPC1, RPC2, … etc)

RPC1.      The use = of the=20 DeviceIdType is inconsistent with other “ID”’s (that = are used for referential=20 information).  The elements in the DeviceIDType seem more = appropriate for=20 the DeviceType or KeyType elements.  At a minimum, I would not = call this=20 a “DeviceIdType” (perhaps “DeviceInfoType”?) = but really, I would just put its=20 elements directly in the DeviceType complexType).  I would also = give=20 <Device> elements an optional referential ID via xs:ID.

[PH] so = basically you are=20 saying that any high level entity (Key, Device, KeyContainer etc) = should have=20 an ID that is xs:ID? The thought of DeviceId was to aggregate under a = specific=20 type the elements that comprise the compound key to look up the = device. Also=20 since there are already implementations out there changing this would = make it=20 incompatible. 

MP: Note = that DSKPP=20 uses "DeviceIdentifierDataType" for the device identity = information. How=20 about "DeviceIdDataType" instead of "DeviceIdType"=20 here?

RPC2.       We = are=20 really unhappy with the proposed extensibility mechanism. This goes = against=20 general XML schema best practice. Defining extension points via=20 xs:any/xs:anyAttribute is vastly superior (IMO):

[PH] this = has been=20 extensively discussed at IETF and there are pros and cons for all = approaches.=20 The pro’s of the name value approach is that it will be = re-usable for the=20 ASN.1 spec and that we will have a semantic registry defined by=20 IANA.

MP: Agree = to not=20 reopen this discussion. The added "any" in KeyType allows other=20 extensions.


RPC3.       The use=20 of “Reserved data attribute names” as described in section = 7 is really=20 difficult to work with. First, <Data> elements should ONLY be = used for=20 “real” extensions… i.e. things that aren’t = already known at the time the spec=20 is written.  If we already know that the items defined in section = 7 are=20 needed, they should just be defined in the schema with their own=20 element/attribute definitions. They should not be = “reserved” uses of the=20 <DATA> element.  We just don’t understand the desire = to do it this=20 way. Having explicitly defined elements also allows for more flexible=20 datayping.

[PH] this = has been=20 extensively discussed. And we opted for the name value pair approach. = This=20 mean that all elements in Data can be parsed in the same manner and=20 individually be encrypted or not. There will be a centralized semantic = registry by IANA, etc


RPC4.      This = mechanism=20 only lets us create very simple name-value pair extensions.  If = we have=20 some small groups of related extensions, we’d really like to be = able to define=20 them externally in a private schema via their own complexType=20 definitions.  With the current method, it’s going to be = very messy to add=20 groups of extensions or extensions that have more complex data = values.

[PH] why do = you say=20 that, the name could be also be a namespace for an wholly encrypted or = base64=20 encoded XML sub node. I see your point though in terms of parsing = here. Could=20 you give me an example of what you had in mind since we have = considered quite=20 a few use cases and not come across the requirement for grouped=20 extensions.

RPC5        In=20 general, it is undesirable to create abbreviations such as = “InAlgo” (in=20 PINUsageMode) to be used as XML keywords. To stay consistent with = “Local” and=20 “Prepend”, I would strongly suggest something like = “Embed” or=20 “Algorithmic”.
[PH[ we had Embed=20 before and people got confused by the meaning. So maybe Algorithmic is = a=20 better choice, that is why I tried to express the use of the PIN in = the=20 algorithm as InAlgo. I do not feel very strong about it. Maybe we can = have a=20 vote

 

MP: = "Algorithmic" is=20 fine.

 

Philip

 

 

 


From:=20 andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]
Sent:
Friday, May 30, 2008 4:36 = PM
To:=20 keyprov@ietf.org
Cc: Philip=20 Hoyer
Subject: FW: = [KEYPROV]=20 [pskc] Latest draft of PSKC

 

Here is Philip=20 Hoyer's response to Rob's comments (see below), which we = initially=20 handled offline, and then we decided it would be better to further the = discussion on the mailing list. 

--=20 Andrea


 1.      =20 Use of xs:ID attributes:

a.       = The=20 xs:ID datatype is only used in the DerivedKeyType complexType.  = xs:ID is=20 the preferred mechanism for referring to other XML elements in an = instance=20 document.  So why are custom attributes defined to be able to = referto=20 elements of the types KeyPropertiesType (the = “KeyPropertiesId” attribute) and=20 KeyType (“KeyId”)? Why don’t these use xs:ID = attributes?

[PH] good = point I was=20 thinking that xs:Id for KeyPropertiesId could be a good choice =  The KeyId=20 on the other hand is not really used to be referred to. Do you think = it would=20 be better to use xs:ID for this aswell? And in case we use it now is = it=20 backwards compatible to what we have?


b.      Why = doesn’t a=20 KeyContainer have an (optional) ID that could be used to reference it = in an=20 instance document?

[PH] valid = comment=20 and I will think we should add this

c.       = Same=20 question for PINPolicy?

[PH]=20 agreed

d.      The = use of=20 the DeviceIdType is inconsistent with other “ID”’s = (that are used for=20 referential information).  The elements in the DeviceIDType seem = more=20 appropriate for the DeviceType or KeyType elements.  At a = minimum, I=20 would not call this a “DeviceIdType” (perhaps = “DeviceInfoType”?) but really, I=20 would just put its elements directly in the DeviceType = complexType).  I=20 would also give <Device> elements an optional referential ID via = xs:ID.

[PH] so = basically you are=20 saying that any high level entity (Key, Device, KeyContainer etc) = should have=20 an ID that is xs:ID? The thought of DeviceId was to aggregate under a = specific=20 type the elements that comprise the compound key to look up the=20 device


e.      Section = 5.2.1=20 says that the DeviceIdType is an extensible type, but there are no = extension=20 points in it.

[PH] agreed = I think=20 we should add an xs:any

2.       We are=20 really unhappy with the proposed extensibility mechanism. This goes = against=20 general XML schema best practice. Defining extension points via=20 xs:any/xs:anyAttribute is vastly superior (IMO):

[PH] this = has been=20 extensively discussed at IETF and there are pros and cons for all = approaches.=20 The pro’s of the name value approach is that it will be = re-usable for the=20 ASN.1 spec and that we will have a semantic registry defined by=20 IANA.



a.       The use=20 of “Reserved data attribute names” as described in section = 7 is really=20 difficult to work with. First, <Data> elements should ONLY be = used for=20 “real” extensions… i.e. things that aren’t = already known at the time the spec=20 is written.  If we already know that the items defined in section = 7 are=20 needed, they should just be defined in the schema with their own=20 element/attribute definitions. They should not be = “reserved” uses of the=20 <DATA> element.  We just don’t understand the desire = to do it this=20 way. Having explicitly defined elements also allows for more flexible=20 datayping.

[PH] this = has been=20 extensively discussed. And we opted for the name value pair approach. = This=20 mean that all elements in Data can be parsed in the same manner and=20 individually be encrypted or not. There will be a centralized semantic = registry by IANA, etc


b.      This = mechanism=20 only lets us create very simple name-value pair extensions.  If = we have=20 some small groups of related extensions, we’d really like to be = able to define=20 them externally in a private schema via their own complexType=20 definitions.  With the current method, it’s going to be = very messy to add=20 groups of extensions or extensions that have more complex data = values.

[PH] why do = you say=20 that, the name could be also be a namespace for an wholly encrypted or = base64=20 encoded XML sub node. I see your point though in terms of parsing = here. Could=20 you give me an example of what you had in mind since we have = considered quite=20 a few use cases and not come across the requirement for grouped=20 extensions.


c.       = It is also=20 a pain for implementers to deal with the limitation of the data typing = available for unencrypted <Data> elements.  For example, = for a=20 SecurID token with a display interval of 60 seconds, I cannot simply = use an=20 xml schema-defined datatype of xs:integer with a value of = “60”.  I have=20 to Base64-encode the big-endian 2-byte binary value for 60 seconds = (and then=20 decode it on the receiving end). Why is this necessary?  I could = define=20 such an item with a single XML element, but here I need 3 or 4.

[PH] using = xs:string=20 for plainvalue was discussed during the last IETF meeting (I = personally am in=20 favor of it) but Sean Turner and the rest of the people did not see = much value=20 in it. If we use string we will need to deice for specific data = elements what=20 the encoding rules are. For example do we say for 8 byte unsigned int = to=20 encode just string e.g. ‘60’ or leading 0 examples = ‘00000060’. I would=20 appreciate your thoughts on this. Also how would we encode binary data = in=20 string form base64 encoded?



d.      = This approach=20 does not produce “readable” XML since the data values are = always=20 Base64-encoded.  That is just crazy when the data is not = sensitive in=20 nature.  Please do not underestimate the value of being able to = look at=20 data in an instance document and know what it is without having to run = it=20 through a Base64 decoder! This is a major drawback.

[PH] agreed = and see=20 answer above


3.       = RE:=20 PINPolicy:

a.       If I specify = a=20 PINPolicy, I am forced to specify a PINKeyID, which forces me to = create=20 another Key element (even if I don’t have any additional PIN = policy info that=20 I need to pass along in that Key element). For 90% of the use cases, = this=20 referential style of description is overkill and makes the instance = document=20 much more complex than it needs to be. 

[PH] if you = are=20 referring to the fact that ‘<xs:attribute name=3D"PINKeyId" = type=3D"xs:string"=20 use=3D"required"/>’ is set to required I agree with you. We = should set this=20 to ‘optional’. I do not agree with your 90% use case = analysis since the main=20 use cases I have come across where to transmit the initial random pin = for=20 PINPads tokens within the same PSKC document from manufacturing to the = validation server.



b.      The = PINPolicy=20 element only contains “policy” attributes for = “WrongPINtry” and “PINUsageMode”=20 and the element is not directly extensible.  Any extensions we = need have=20 to go in Data elements inside a separate Key element that the = PINPolicy then=20 references.  IMO, PIN policy info should be in the PINPolicy = element, not=20 in a separate “Key” element! The only thing that should go = in the Key element=20 is a PIN value that is being expressly communicated with the instance=20 document.  That is, a PIN value IS a key; PIN policy information = IS NOT a=20 key.

[PH] I = agree we need=20 to make PINPolicy extensible and not put stuff into the Data elements = of the=20 PINKey. Are there any other elements that you know of we should = include now=20 and not just as an xs:any extension?


c.       = It seems to=20 us that there are additional universally-known PIN policy attributes = that=20 should be included in the schema.  Things such as the PIN’s = maximum and=20 minimum length and it’s data type (integer, alphanumeric).  = Unless these=20 are part of the spec, we currently are forced to create custom Data = elements=20 for them (and put them in a referenced Key element). BTW – Just = to be clear, I=20 am talking about the POLICY information associated with whatever PIN a = user=20 uses with their token.  I’m not talking about the = attributes of a=20 specific PIN value that can be expressed in a Key element.  As an = example, to express a min and max PIN length policy, we have to create = custom=20 Data elements in a separate Key element (and also Base64 encode the=20 values).  I’m sorry, but this is getting=20 = ridiculous. 

        =   =20 <Key=20 = KeyId=3D"07552252661"

       &n= bsp;    =20 KeyAlgorithm=3D"http://www.ietf.org/keyprov= /pskc#pin">

        = ;     =20 <Data=20 = Name=3D"PIN_MIN_LENGTH">

      &n= bsp;          =20 = <PlainValue>NA=3D=3D</PlainValue>

   &n= bsp;         =20 = </Data>

        &nbs= p;    =20 <Data=20 = Name=3D"PIN_MAX_LENGTH">

      &n= bsp;          =20 = <PlainValue>OA=3D=3D</PlainValue>

   &n= bsp;         =20 = </Data>

        &nbs= p; =20 </Key>

[PH] no the=20 format and length would be in the UsageElement of the PINKey. I had = hoped=20 Example (Section 12.2 of the spec) would make that clear here is the = XML=20 fragment:

      =20 <Key KeyId=3D"07552252661"

         =20 = KeyAlgorithm=3D"http://www.ietf.org/keyprov/pskc#pin">

            = <Usage>

           &= nbsp;   =20 <ResponseFormat Length=3D"4"=20 Format=3D"DECIMAL"/>

            = </Usage>

            = <Data Name=3D"SECRET">

           &= nbsp;   =20 = <PlainValue>MTIzNA=3D=3D</PlainValue>

            = </Data>

       =20 </Key>

Notes:

a.      =20 If I had an xs:any extension point, I could express this in 2 lines of = XML in=20 the PinPolicy element.

b.      This = example=20 doesn’t include the PIN format, which would require me to=20 = either:

         &nbs= p;            = ;            =             &= nbsp;           &n= bsp;         =20 i.            = Use=20 another custom Data=20 = element 

        &nbs= p;            = ;            =             &= nbsp;           &n= bsp;        =20 ii.            = Include=20 a ResponseFormat element that then requires inclusion of a = “Length” attribute.=20 But what would the Length attribute really mean in this=20 case?

d.      Why isn’t a = PINPolicy reusable=20 across multiple tokens (it has no ID that can be used in a reference = from a=20 token definition).  If I want to define a PINPolicy that applies = to=20 multiple tokens, the PINPolicy element needs its own ID.

[PH] I see = your=20 point. If we make PINKeyId optional as in the comment above you can = have a=20 common PINPolicy as part of the shared KeyProperties. I believe that = would=20 serve your purpose.


e.      The = “WrongPINtry”=20 element name (in PINPolicyType) is not consistent with the other = camel-case=20 names (“try” should be “Try”).

[PH] = agreed, will=20 change


f.        In=20 general, it is undesirable to create abbreviations such as = “InAlgo” (in=20 PINUsageMode) to be used as XML keywords. To stay consistent with = “Local” and=20 “Prepend”, I would strongly suggest something like = “Embed” or=20 “Algorithmic”.
[PH[ we had Embed=20 before and people got confused by the meaning. So maybe Algorithmic is = a=20 better choice, that is why I tried to express the use of the PIN in = the=20 algorithm as InAlgo. I do not feel very strong about it. Maybe we can = have a=20 vote


4.       = The use of=20 “ResponseFormat” for describing a PIN is very = confusing.  The spec=20 defines ResponseFormat as follows “The ResponseFormat element = defines the=20 characteristics of the result of a computation.  This defines the = format=20 of the OTP or of the response to a challenge.” A PIN is not the = result of a=20 “computation”, nor is it a response to a challenge.  = It seems quite odd=20 to use this Key construct for a PIN. I think that either another usage = type=20 should be defined or the ResponseFormat definition should be changed = to also=20 reflect its use for describing a PIN.
[PH] Yes I think we need to change the = description. I am=20 getting a lot of push back to include PIN requirements in the spec so = I tried=20 to convince people that tit was a good idea without having to = introduce to=20 many new schema types. Here you say it is odd to use the Key element = for the=20 PIN value but above you agree that a PIN IS a Key. So I would keep it = in the=20 Key element buy change = description.

 

------_=_NextPart_001_01C8D553.36035E65-- --===============1679104512== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov --===============1679104512==-- From keyprov-bounces@ietf.org Mon Jun 23 13:05:53 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 60DEE3A6A18; Mon, 23 Jun 2008 13:05:53 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id C4BE73A6A18 for ; Mon, 23 Jun 2008 13:05:51 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -101.976 X-Spam-Level: X-Spam-Status: No, score=-101.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, USER_IN_WHITELIST=-100] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OtMWErIUDZo5 for ; Mon, 23 Jun 2008 13:05:48 -0700 (PDT) Received: from rv-out-0506.google.com (rv-out-0506.google.com [209.85.198.229]) by core3.amsl.com (Postfix) with ESMTP id E79D63A6A12 for ; Mon, 23 Jun 2008 13:05:47 -0700 (PDT) Received: by rv-out-0506.google.com with SMTP id b25so7622201rvf.49 for ; Mon, 23 Jun 2008 13:05:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:cc:mime-version:content-type:x-google-sender-auth; bh=xIzbMWd+xkbn1D9KWGKgrjaBLWgxDbnMNxK0y9NpcL4=; b=im1NetitYXeVUEwHqKmFNUd6AfTNvWud3Rmp8t3MxNlFccrRVoZk20E3Mbjboan29d ugpelm1k9TeF04IaqkieykE8mk3YRiKo9nB0XQAp92xzs3mMp0mtUjLqpT6vmn72TZfc n0zZ2JdI+JVbm+jBWzULwvNtioBrG7INtypc0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:cc:mime-version:content-type :x-google-sender-auth; b=K/kkH0+m/vn91U7bHSaWbINCuND87tvliwd71APD25ulm1Hl1MWU4aPaomZ+El1y9Y PDOsSuQLNP4LD4U25lxXxLyRu30k1t6uvfGQcy9PRp9uYong9N+WuemTm7UH6dxgG+cI dT7K/3xA1EaX336Hfb2/3X94fo3CSqxRj43Mc= Received: by 10.140.207.2 with SMTP id e2mr13285816rvg.187.1214251547724; Mon, 23 Jun 2008 13:05:47 -0700 (PDT) Received: by 10.141.91.18 with HTTP; Mon, 23 Jun 2008 13:05:47 -0700 (PDT) Message-ID: Date: Mon, 23 Jun 2008 14:05:47 -0600 From: "Matt Ball" To: KEYPROV MIME-Version: 1.0 X-Google-Sender-Auth: 577188370da166f8 Subject: [KEYPROV] Looking for KEYPROV presentation at the 2008 Key Management Summit X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============1666434935==" Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org --===============1666434935== Content-Type: multipart/alternative; boundary="----=_Part_21327_30629606.1214251547689" ------=_Part_21327_30629606.1214251547689 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Folks, On behalf of the 2008 IEEE Key Management Summit (KMS 2008), I would like to invite a member of IETF's KEYPROV to give a 30-minute presentation on KEYPROV, and to represent KEYPROV on a panel discussion. This will be an excellent opportunity to get exposure for KEYPROV. Please see http://keymanagementsummit.com/2008/ for more information. The summit will be from Sept 23-24, 2008 in Baltimore, Maryland. If you are interested in presenting on behalf of KEYPROV, please send me an e-mail and copy the KEYPROV chairs (Phillip Hallam-Baker and Hannes Tschofenig). Thanks! Matt Ball, KMS 2008 Chair M.V. Ball Technical Consulting, Inc. Phone: 303-469-2469, Cell: 303-717-2717 http://www.mvballtech.com http://www.linkedin.com/in/matthewvball ------=_Part_21327_30629606.1214251547689 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Folks,

On behalf of the 2008 IEEE Key Management Summit (KMS 2008), I would like to invite a member of IETF's KEYPROV to give a 30-minute presentation on KEYPROV, and to represent KEYPROV on a panel discussion.  This will be an excellent opportunity to get exposure for KEYPROV.

Please see http://keymanagementsummit.com/2008/ for more information.

The summit will be from Sept 23-24, 2008 in Baltimore, Maryland.

If you are interested in presenting on behalf of KEYPROV, please send me an e-mail and copy the KEYPROV chairs (Phillip Hallam-Baker and Hannes Tschofenig).

Thanks!
Matt Ball, KMS 2008 Chair
M.V. Ball Technical Consulting, Inc.
Phone: 303-469-2469, Cell: 303-717-2717
http://www.mvballtech.com
http://www.linkedin.com/in/matthewvball ------=_Part_21327_30629606.1214251547689-- --===============1666434935== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov --===============1666434935==-- From keyprov-bounces@ietf.org Tue Jun 24 10:27:36 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 2DB7D3A6813; Tue, 24 Jun 2008 10:27:36 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3A5713A6813 for ; Tue, 24 Jun 2008 10:27:35 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: 1.652 X-Spam-Level: * X-Spam-Status: No, score=1.652 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, J_CHICKENPOX_22=0.6, J_CHICKENPOX_23=0.6, J_CHICKENPOX_25=0.6, J_CHICKENPOX_26=0.6, J_CHICKENPOX_27=0.6, J_CHICKENPOX_55=0.6, J_CHICKENPOX_75=0.6] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JQYduXvWqQR4 for ; Tue, 24 Jun 2008 10:27:10 -0700 (PDT) Received: from frhub1.activcard.fr (frhub1.activcard.fr [91.151.120.133]) by core3.amsl.com (Postfix) with ESMTP id 713E63A679C for ; Tue, 24 Jun 2008 10:27:09 -0700 (PDT) Received: from sur-corp-ex-02.corp.ad.activcard.com (sur-corp-ex-02.corp.ad.activcard.com [192.168.33.40]) by frhub1.activcard.fr (Postfix) with ESMTP id 471B825ED42; Tue, 24 Jun 2008 19:27:12 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Date: Tue, 24 Jun 2008 19:27:03 +0200 Message-ID: <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0F1@sur-corp-ex-02.corp.ad.activcard.com> In-Reply-To: <3E5A2F1AD44F5E49A74F79AB47C0C0C9DF40B3@mou1wnexmb10.vcorp.ad.vrsn.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [KEYPROV] [pskc] Latest draft of PSKC Thread-Index: Acihb52vIXPZfM+dQBGaWxrT4r5ocAAVy7xQAHs9/BAAB0GJoAAC0jWgARViyUAASBMeYAFfxKKAAAGFK/UAAAvvgANQaPGwAZRV6yADujT6IADYIH1wAFY3P/A= References: <9ED76AB595E4944BB33D8998DE448D110160C92D@CORPUSMX10B.corp.emc.com> <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0D3@sur-corp-ex-02.corp.ad.activcard.com> <3E5A2F1AD44F5E49A74F79AB47C0C0C9DF40B3@mou1wnexmb10.vcorp.ad.vrsn.com> From: "Philip Hoyer" To: "Pei, Mingliang" , , "Hannes Tschofenig" , "Hallam-Baker, Phillip" Cc: keyprov@ietf.org Subject: Re: [KEYPROV] [pskc] Latest draft of PSKC X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============0040016803==" Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org This is a multi-part message in MIME format. --===============0040016803== Content-class: urn:content-classes:message Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C8D61F.847AE95B" This is a multi-part message in MIME format. ------_=_NextPart_001_01C8D61F.847AE95B Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Attendees: Ming Pei, Salah Macchani, Philip Hoyer Apologies from Phillip Hallam-Baker and Hannes Tschofenig =20 Discussed: * PINUsageModeType "InAlgo" - Agreed to change to 'Algorithmic' * For the PINPolicy.WrongPINtry agreed to change name to MaxFailedAttempts * Decided not to adopt xs:ID for KeyId.since xs:ID is more used for referencing elements within XML documents whereas KeyID is a unique identifier beyond the boundaries of the provisioning transport. * Philip to go through description of entity in spec and add the extension description to entities where * The comment on inconsistency of DeviceIDType. Since this type is referred to directly in DSKPP it was seen that moving the elements into Device would not be advisable since Device currently mandates the presence of 1 key. So it was preferred to change the name of DeviceId to DeviceInfo. * Comments on plainvalue being string and adversion to name-value types * Philip to create email based on proposal from Hannes but inside the tag and discuss with Hannes * Ming and Salah to think about additional possible solutions - to reconvene at next sync up call on Wednesday 2nd of July =20 =20 Philip will make agreed changes to current spec and then discuss with Hannes if to submit before tackling name-value-pair issue. =20 Philip =20 =20 =20 ________________________________ From: Pei, Mingliang [mailto:mpei@verisign.com]=20 Sent: Monday, June 23, 2008 12:11 AM To: Philip Hoyer; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip Cc: andrea.doherty@rsa.com; keyprov@ietf.org Subject: RE: [KEYPROV] [pskc] Latest draft of PSKC =20 Hi Philip, =20 Thank you for the updates. I went through the revised documents, and verified the examples against the schema with my schema tool. The changes mostly look good to me. Here are a few more minor changes needed. =20 - There is one inconsistency in defining PINUsageModeType "InAlgo". The schema section and schema file used "Embed" but the section 5.4.4.1 used "InAlgo". - For your change 3, I think that it would be better to place KeyProperties element in KeyContainer in front of Device instead of being after. Logically we should define common key headers (KeyProperties) before a key is defined in a Device element and refer to the key properties. - The element name "WrongPINTry" doesn't sound natural as an element name. Maybe it is due to some inconsistence with our other naming conventions - we try to use an noun for an name elsewhere. How about an alternative name such as "MaxBadAttempts" or "BadTryThreshold" etc.? =20 Please see my other comments inline for the discussion points. =20 One more discussion issue is about Hannes's suggestion: "For the PSKC document I also suggest to use "urn:ietf:params:xml:ns:keyprov:pskc:1.0" instead of "urn:ietf:params:xml:ns:keyprov:container:1.0" I am fine with the namespace change. - Ming =20 ________________________________ From: Philip Hoyer [mailto:philip.hoyer@actividentity.com]=20 Sent: Wednesday, June 18, 2008 9:51 AM To: Pei, Mingliang; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip Cc: andrea.doherty@rsa.com; keyprov@ietf.org Subject: RE: [KEYPROV] [pskc] Latest draft of PSKC Please find attached the latest work in progress draft and related schema, =20 Changes made from version 4 are: =20 1. Added optional Id element to the container in case another document includes more than one container and wants to reference it uniquely, this is of type xs:Id=20 2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became mandatory)=20 3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to xs:ID=20 4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF as it refers to the ID of the element of (3) see directly above =20 5. Added optional PINPolicyId attribute of type xs:ID to PINPolicyType=20 6. Added the KeyContainer:KeyProperties element that was missing from version -04 (oversight).This is where the common properties for a key are actually held within a container=20 7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case=20 =20 Extension points: =20 Added a '' to=20 1. KeyContainerType=20 2. KeyPropertiesType=20 3. KeyType=20 4. PINPolicy=20 5. DeviceIDType=20 6. DeviceType=20 7. UsageType=20 =20 Added a '' to: 1. UsageType (since it contains the attributes of ' So I thought it would be wise to be able to extend this =20 =20 =20 Outstanding issues that need to be discussed: 1. Should we make KeyType:KeyId of type xs:ID instead of xs:string =20 MP : Prefer to keep it as xs:string. DSKPP will have the same concept. Using it as both an element ID reference and actual key identifier would be more confusing just for the case where PINKeyID refers to KeyID from another element. =20 1. Should we make KeyType:KeyProfileId and KeyProperties:KeyProfileId of type xs:ID instead of xs:string =20 =20 MP: I don't think so. According to its current usage, it is almost a proprietory value between a sending and a receiving party to consume. Unless I miss something, xs:ID is mainly used for reference purpose within an instance document of schema. But the KeyProfileId may have actual meaning given by the key issuer. =20 1. For all the uses of xs:ID should we add facets of minlength, maxlength and whitespace? Or do we just have standard =20 =20 MP: Not sure we always need to define minlength and maxlength for all IDs. =20 1. Should we go for xs:string for unencrypted data elements - Rob Philpott and others seem strongly for it but Sean Turner was against it at the last IETF in Philadelphia =20 =20 MP: My preference was "string" type with an encoding attribute. The meeting minutes of IETF indicates that a change isn't a must as people won't care its type and it doesn't really matter in the final spec. In other words, it seemed to be considered a low priority to change rather than being against it or not. =20 1. Where else do we need '' as extension points =20 =20 MP: Your addition seems to be complete. I cannot think of others for now. =20 1. For the added '' do we need a description = within the spec or do we just leave them in the parts of the schema fragments throughout the spec as obvious extension points? =20 =20 MP: I think that we should add a description for each "any" we added even if they are obvious. =20 1. Address other issues raised by Rob Philpott: Here below with my comments and numbered Rob Philpott Comment plus number (RPC1, RPC2, ... etc)=20 RPC1. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device. Also since there are already implementations out there changing this would make it incompatible.=20 MP: Note that DSKPP uses "DeviceIdentifierDataType" for the device identity information. How about "DeviceIdDataType" instead of "DeviceIdType" here? RPC2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. MP: Agree to not reopen this discussion. The added "any" in KeyType allows other extensions. RPC3. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc RPC4. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. RPC5 In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote =20 MP: "Algorithmic" is fine. =20 Philip =20 =20 =20 ________________________________ From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]=20 Sent: Friday, May 30, 2008 4:36 PM To: keyprov@ietf.org Cc: Philip Hoyer Subject: FW: [KEYPROV] [pskc] Latest draft of PSKC =20 Here is Philip Hoyer's response to Rob's comments (see below), which we initially handled offline, and then we decided it would be better to further the discussion on the mailing list. =20 -- Andrea 1. Use of xs:ID attributes: a. The xs:ID datatype is only used in the DerivedKeyType complexType. xs:ID is the preferred mechanism for referring to other XML elements in an instance document. So why are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the "KeyPropertiesId" attribute) and KeyType ("KeyId")? Why don't these use xs:ID attributes? [PH] good point I was thinking that xs:Id for KeyPropertiesId could be a good choice The KeyId on the other hand is not really used to be referred to. Do you think it would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?=20 b. Why doesn't a KeyContainer have an (optional) ID that could be used to reference it in an instance document? [PH] valid comment and I will think we should add this=20 c. Same question for PINPolicy? [PH] agreed d. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device e. Section 5.2.1 says that the DeviceIdType is an extensible type, but there are no extension points in it. [PH] agreed I think we should add an xs:any 2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. a. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc b. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. c. It is also a pain for implementers to deal with the limitation of the data typing available for unencrypted elements. For example, for a SecurID token with a display interval of 60 seconds, I cannot simply use an xml schema-defined datatype of xs:integer with a value of "60". I have to Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the receiving end). Why is this necessary? I could define such an item with a single XML element, but here I need 3 or 4. [PH] using xs:string for plainvalue was discussed during the last IETF meeting (I personally am in favor of it) but Sean Turner and the rest of the people did not see much value in it. If we use string we will need to deice for specific data elements what the encoding rules are. For example do we say for 8 byte unsigned int to encode just string e.g. '60' or leading 0 examples '00000060'. I would appreciate your thoughts on this. Also how would we encode binary data in string form base64 encoded? d. This approach does not produce "readable" XML since the data values are always Base64-encoded. That is just crazy when the data is not sensitive in nature. Please do not underestimate the value of being able to look at data in an instance document and know what it is without having to run it through a Base64 decoder! This is a major drawback. [PH] agreed and see answer above 3. RE: PINPolicy: a. If I specify a PINPolicy, I am forced to specify a PINKeyID, which forces me to create another Key element (even if I don't have any additional PIN policy info that I need to pass along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more complex than it needs to be.=20 [PH] if you are referring to the fact that '' is set to = required I agree with you. We should set this to 'optional'. I do not agree with your 90% use case analysis since the main use cases I have come across where to transmit the initial random pin for PINPads tokens within the same PSKC document from manufacturing to the validation server. b. The PINPolicy element only contains "policy" attributes for "WrongPINtry" and "PINUsageMode" and the element is not directly extensible. Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references. IMO, PIN policy info should be in the PINPolicy element, not in a separate "Key" element! The only thing that should go in the Key element is a PIN value that is being expressly communicated with the instance document. That is, a PIN value IS a key; PIN policy information IS NOT a key. [PH] I agree we need to make PINPolicy extensible and not put stuff into the Data elements of the PINKey. Are there any other elements that you know of we should include now and not just as an xs:any extension? c. It seems to us that there are additional universally-known PIN policy attributes that should be included in the schema. Things such as the PIN's maximum and minimum length and it's data type (integer, alphanumeric). Unless these are part of the spec, we currently are forced to create custom Data elements for them (and put them in a referenced Key element). BTW - Just to be clear, I am talking about the POLICY information associated with whatever PIN a user uses with their token. I'm not talking about the attributes of a specific PIN value that can be expressed in a Key element. As an example, to express a min and max PIN length policy, we have to create custom Data elements in a separate Key element (and also Base64 encode the values). I'm sorry, but this is getting ridiculous.=20 NA=3D=3D OA=3D=3D [PH] no the format and length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 of the spec) would make that clear here is the XML fragment: MTIzNA=3D=3D Notes: a. If I had an xs:any extension point, I could express this in 2 lines of XML in the PinPolicy element. b. This example doesn't include the PIN format, which would require me to either: i. Use another custom Data element=20 ii. Include a ResponseFormat element that then requires inclusion of a "Length" attribute. But what would the Length attribute really mean in this case? d. Why isn't a PINPolicy reusable across multiple tokens (it has no ID that can be used in a reference from a token definition). If I want to define a PINPolicy that applies to multiple tokens, the PINPolicy element needs its own ID. [PH] I see your point. If we make PINKeyId optional as in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your purpose. e. The "WrongPINtry" element name (in PINPolicyType) is not consistent with the other camel-case names ("try" should be "Try"). [PH] agreed, will change f. In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote 4. The use of "ResponseFormat" for describing a PIN is very confusing. The spec defines ResponseFormat as follows "The ResponseFormat element defines the characteristics of the result of a computation. This defines the format of the OTP or of the response to a challenge." A PIN is not the result of a "computation", nor is it a response to a challenge. It seems quite odd to use this Key construct for a PIN. I think that either another usage type should be defined or the ResponseFormat definition should be changed to also reflect its use for describing a PIN. [PH] Yes I think we need to change the description. I am getting a lot of push back to include PIN requirements in the spec so I tried to convince people that tit was a good idea without having to introduce to many new schema types. Here you say it is odd to use the Key element for the PIN value but above you agree that a PIN IS a Key. So I would keep it in the Key element buy change description. =20 ------_=_NextPart_001_01C8D61F.847AE95B Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Re: [KEYPROV] [pskc] Latest draft of PSKC

Attendees: Ming Pei, Salah Macchani, Philip Hoyer

Apologies from Phillip Hallam-Baker = and Hannes Tschofenig

 

Discussed:<= /p>

  • PINUsageModeType "InAlgo" - = Agreed to change to = ‘Algorithmic’
  • For the PINPolicy.WrongPINtry  agreed to change name to = MaxFailedAttempts
  • Decided not to adopt xs:ID for KeyId.since xs:ID is more used for = referencing elements within XML documents whereas KeyID is a unique identifier = beyond the boundaries of the provisioning = transport.
  • Philip to go through description of entity in spec and add the extension description to entities where <any = added>
  • The comment on inconsistency of DeviceIDType. Since this type is = referred to directly in DSKPP it was seen that moving the elements into Device would not = be advisable since Device currently mandates the presence of 1 key. So = it was preferred to change the name of DeviceId to = DeviceInfo.
  • Comments on plainvalue being string and adversion to name-value = types
    • Philip to create email based on proposal from Hannes but inside the = <Data> tag and discuss with Hannes
    • Ming and Salah to think about additional possible solutions – to = reconvene at next sync up call on Wednesday 2nd of = July

 

 

Philip will make agreed changes to = current spec and then discuss with Hannes if to submit before tackling = name-value-pair issue.

 

Philip

 

 

 


From: Pei, = Mingliang [mailto:mpei@verisign.com]
Sent: Monday, June 23, = 2008 12:11 AM
To: Philip Hoyer; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip
Cc: = andrea.doherty@rsa.com; keyprov@ietf.org
Subject: RE: [KEYPROV] = [pskc] Latest draft of PSKC

 

Hi = Philip,

 

Thank you for the updates. I went = through the revised documents, and verified the examples against the schema with = my schema tool. The changes mostly look good to me. Here are a few = more minor changes needed.

 

- There is one inconsistency in = defining PINUsageModeType "InAlgo". The schema section and schema file used "Embed" but the section 5.4.4.1 used "InAlgo".

- For your change 3, I think that = it would be better to place KeyProperties element in KeyContainer in front of = Device instead of being after. Logically we should define common key headers (KeyProperties) before a key is defined in a Device element and refer to = the key properties.

- The element name = "WrongPINTry" doesn't sound natural as an element name. Maybe it is due to some = inconsistence with our other naming conventions - we try to use an noun for an name elsewhere. How about an alternative name such as "MaxBadAttempts" or "BadTryThreshold" = etc.?

 

Please see my other comments inline = for the discussion points.

 

One more discussion issue is about Hannes's suggestion:

"For the PSKC document I also suggest to use "urn:ietf:params:xml:ns:keyprov:pskc:1.0" instead of "urn:ietf:params:xml:ns:keyprov:container:1.0"

I am fine with the namespace = change.

- Ming

 


From: Philip Hoyer [mailto:philip.hoyer@actividentity.com]
Sent: Wednesday, June 18, = 2008 9:51 AM
To: Pei, Mingliang; SMachani@diversinet.com; Hannes Tschofenig; Hallam-Baker, Phillip
Cc: = andrea.doherty@rsa.com; keyprov@ietf.org
Subject: RE: [KEYPROV] = [pskc] Latest draft of PSKC

Please find attached the latest = work in progress draft and related schema,

 

= Changes made from version 4 are:

 

  1. Added optional Id element to the container in case another document = includes more than one container and wants to reference it uniquely, this is = of type xs:Id
  2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became = mandatory)
  3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to = xs:ID
  4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF = as it refers to the ID of the element of (3) see directly = above  
  5. Added optional PINPolicyId attribute of type xs:ID to = PINPolicyType
  6. Added the KeyContainer:KeyProperties element that was missing from = version -04 (oversight).This is where the common properties for a key are = actually held within a container
  7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case =

 

Extension = points:

 

Added a ‘<xs:any namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0" maxOccurs=3D"unbounded"/>’ = to

  1. KeyContainerType
  2. KeyPropertiesType
  3. KeyType
  4. PINPolicy
  5. DeviceIDType
  6. DeviceType
  7. UsageType

 

Added a ‘<xs:anyAttribute namespace=3D"##other"/>’ = to:

  1. UsageType (since it contains the attributes of = ‘           =      

<xs:attribute name=3D"OTP" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"CR" type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Integrity" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Encrypt" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Unlock" type=3D"xs:boolean" = default=3D"false"/>

      =       So I thought it would be wise to be able to extend = this

 

 

 

= Outstanding issues that need to be discussed:

  1. Should we make KeyType:KeyId of type xs:ID instead of = xs:string  

 

=

MP    : Pre= fer to keep it as xs:string. DSKPP will have the same concept. Using it as both = an element ID reference and actual key identifier would be more confusing = just for the case where PINKeyID refers to KeyID from another = element.

 

=
  1. Should we make KeyType:KeyProfileId and KeyProperties:KeyProfileId of type = xs:ID instead of xs:string  

 

=

MP: I don't think so. = According to its current usage, it is almost a proprietory value between a sending = and a receiving party to consume. Unless I miss something, xs:ID is mainly = used for reference purpose within an instance document of schema. But the KeyProfileId may have actual meaning given by the key = issuer.

 

=
  1. For all the uses of xs:ID should we add facets of minlength, maxlength = and whitespace? Or do we just have standard  

 

=

MP: Not sure we always need to = define minlength and maxlength for all IDs.

 

=
  1. Should we go for xs:string for unencrypted data elements – Rob = Philpott and others seem strongly for it but Sean Turner was against it at the = last IETF in Philadelphia  

 

=

MP: My preference was = "string" type with an encoding attribute. The meeting minutes of IETF indicates = that a change isn't a must as people won't care its type and it doesn't really = matter in the final spec. In other words, it seemed to be considered a low = priority to change rather than being against it or not.

 

=
  1. Where else do we need ‘<anyAttribute = namespace=3D"##other" processContents=3D"lax"/>’ as extension = points  

 

=

MP: Your addition seems to be complete. I cannot think of others for now.

 

=
  1. For the added ‘<xs:any namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0" maxOccurs=3D"unbounded"/>’ do we need a = description within the spec or do we just leave them in the parts of the schema = fragments throughout the spec as obvious extension = points?  

 

=

MP: I think that we should add a description for each "any" we added even if they are = obvious.

 

=
  1. Address other issues raised by Rob Philpott: Here below with my comments = and numbered Rob Philpott Comment plus number (RPC1, RPC2, … = etc)

RPC1.      The use = of the DeviceIdType is inconsistent with other “ID”’s (that = are used for referential information).  The elements in the DeviceIDType = seem more appropriate for the DeviceType or KeyType elements.  At a minimum, = I would not call this a “DeviceIdType” (perhaps = “DeviceInfoType”?) but really, I would just put its elements directly in the DeviceType complexType).  I would also give <Device> elements an = optional referential ID via xs:ID.

[PH] so basically you are saying = that any high level entity (Key, Device, KeyContainer etc) should have an ID that is = xs:ID? The thought of DeviceId was to aggregate under a specific type the = elements that comprise the compound key to look up the device. Also since there = are already implementations out there changing this would make it = incompatible. 

MP: Note that = DSKPP uses "DeviceIdentifierDataType" for the device identity information. How about "DeviceIdDataType" instead of "DeviceIdType" here?

RPC2.       We = are really unhappy with the proposed extensibility mechanism. This goes = against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO):

[PH] this has = been extensively discussed at IETF and there are pros and cons for all = approaches. The pro’s of the name value approach is that it will be re-usable = for the ASN.1 spec and that we will have a semantic registry defined by = IANA.

MP: Agree to not = reopen this discussion. The added "any" in KeyType allows other = extensions.


RPC3.       The use of “Reserved = data attribute names” as described in section 7 is really difficult to = work with. First, <Data> elements should ONLY be used for = “real” extensions… i.e. things that aren’t already known at the = time the spec is written.  If we already know that the items defined in = section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be “reserved” = uses of the <DATA> element.  We just don’t understand the = desire to do it this way. Having explicitly defined elements also allows for more flexible datayping.

[PH] this has = been extensively discussed. And we opted for the name value pair approach. = This mean that all elements in Data can be parsed in the same manner and = individually be encrypted or not. There will be a centralized semantic registry by IANA, = etc


RPC4.      This mechanism only lets us create = very simple name-value pair extensions.  If we have some small groups of related extensions, we’d really like to be able to define them = externally in a private schema via their own complexType definitions.  With = the current method, it’s going to be very messy to add groups of = extensions or extensions that have more complex data values.

[PH] why do you = say that, the name could be also be a namespace for an wholly encrypted or base64 = encoded XML sub node. I see your point though in terms of parsing here. Could = you give me an example of what you had in mind since we have considered quite a = few use cases and not come across the requirement for grouped = extensions.

RPC5       = In general, it is undesirable to create abbreviations such as “InAlgo” (in PINUsageMode) to be used as XML keywords. To = stay consistent with “Local” and “Prepend”, I would = strongly suggest something like “Embed” or = “Algorithmic”.
[PH[ we had Embed before = and people got confused by the meaning. So maybe Algorithmic is a better choice, = that is why I tried to express the use of the PIN in the algorithm as InAlgo. I = do not feel very strong about it. Maybe we can have a = vote

 

MP: "Algorithmic" is = fine.

 

Philip

 

 

 


From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]
Sent: Friday, May 30, = 2008 4:36 PM
To: keyprov@ietf.org
Cc: Philip Hoyer
Subject: FW: [KEYPROV] = [pskc] Latest draft of PSKC

 

Here is Philip Hoyer's = response to Rob's comments (see below), which we initially handled offline, = and then we decided it would be better to further the discussion on the = mailing list. 

-- Andrea


 1.       Use of = xs:ID attributes:

a.       The xs:ID datatype is only used = in the DerivedKeyType complexType.  xs:ID is the preferred mechanism for referring to other XML elements in an instance document.  So why = are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the “KeyPropertiesId” attribute) and = KeyType (“KeyId”)? Why don’t these use xs:ID attributes?

[PH] good point = I was thinking that xs:Id for KeyPropertiesId could be a good choice  The = KeyId on the other hand is not really used to be referred to. Do you think it = would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?


b.      Why doesn’t a KeyContainer have = an (optional) ID that could be used to reference it in an instance = document?

[PH] valid = comment and I will think we should add this

c.       Same question for PINPolicy?

[PH] = agreed

d.      The use of the DeviceIdType is = inconsistent with other “ID”’s (that are used for referential information).  The elements in the DeviceIDType seem more = appropriate for the DeviceType or KeyType elements.  At a minimum, I would not call = this a “DeviceIdType” (perhaps “DeviceInfoType”?) but = really, I would just put its elements directly in the DeviceType = complexType).  I would also give <Device> elements an optional referential ID via = xs:ID.

[PH] so basically you are saying = that any high level entity (Key, Device, KeyContainer etc) should have an ID that = is xs:ID? The thought of DeviceId was to aggregate under a specific type = the elements that comprise the compound key to look up the = device


e.      Section 5.2.1 says that the = DeviceIdType is an extensible type, but there are no extension points in it.

[PH] agreed I = think we should add an xs:any

2.       We are really unhappy with the = proposed extensibility mechanism. This goes against general XML schema best = practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior = (IMO):

[PH] this has = been extensively discussed at IETF and there are pros and cons for all = approaches. The pro’s of the name value approach is that it will be re-usable = for the ASN.1 spec and that we will have a semantic registry defined by = IANA.



a.       The use of “Reserved data attribute names” as described in section 7 is really difficult to = work with. First, <Data> elements should ONLY be used for = “real” extensions… i.e. things that aren’t already known at the time the spec is written.  If we already know that the items defined in section 7 = are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be “reserved” = uses of the <DATA> element.  We just don’t understand the = desire to do it this way. Having explicitly defined elements also allows for more flexible datayping.

[PH] this has = been extensively discussed. And we opted for the name value pair approach. = This mean that all elements in Data can be parsed in the same manner and = individually be encrypted or not. There will be a centralized semantic registry by IANA, = etc


b.      This mechanism only lets us create very = simple name-value pair extensions.  If we have some small groups of = related extensions, we’d really like to be able to define them externally = in a private schema via their own complexType definitions.  With the = current method, it’s going to be very messy to add groups of extensions or = extensions that have more complex data values.

[PH] why do you = say that, the name could be also be a namespace for an wholly encrypted or base64 = encoded XML sub node. I see your point though in terms of parsing here. Could = you give me an example of what you had in mind since we have considered quite a = few use cases and not come across the requirement for grouped = extensions.


c.       It is also a pain for = implementers to deal with the limitation of the data typing available for unencrypted <Data> elements.  For example, for a SecurID token with a = display interval of 60 seconds, I cannot simply use an xml schema-defined = datatype of xs:integer with a value of “60”.  I have to = Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the receiving end). Why is this necessary?  I could define such an item = with a single XML element, but here I need 3 or 4.

[PH] using = xs:string for plainvalue was discussed during the last IETF meeting (I personally am = in favor of it) but Sean Turner and the rest of the people did not see much value = in it. If we use string we will need to deice for specific data elements what = the encoding rules are. For example do we say for 8 byte unsigned int to = encode just string e.g. ‘60’ or leading 0 examples = ‘00000060’. I would appreciate your thoughts on this. Also how would we encode = binary data in string form base64 encoded?



d.      This approach does not produce “readable” XML since the data values are always Base64-encoded.  That is just crazy when the data is not sensitive = in nature.  Please do not underestimate the value of being able to = look at data in an instance document and know what it is without having to run = it through a Base64 decoder! This is a major drawback.

[PH] agreed and = see answer above


3.       RE: PINPolicy:

a.       If I specify a PINPolicy, I am = forced to specify a PINKeyID, which forces me to create another Key element (even = if I don’t have any additional PIN policy info that I need to pass = along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more = complex than it needs to be. 

[PH] if you are = referring to the fact that ‘<xs:attribute name=3D"PINKeyId" type=3D"xs:string" use=3D"required"/>’ is = set to required I agree with you. We should set this to ‘optional’. = I do not agree with your 90% use case analysis since the main use cases I = have come across where to transmit the initial random pin for PINPads tokens = within the same PSKC document from manufacturing to the validation = server.



b.      The PINPolicy element only contains “policy” attributes for “WrongPINtry” and “PINUsageMode” and the element is not directly = extensible.  Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references.  IMO, PIN policy info = should be in the PINPolicy element, not in a separate “Key” = element! The only thing that should go in the Key element is a PIN value that is = being expressly communicated with the instance document.  That is, a PIN value IS a = key; PIN policy information IS NOT a key.

[PH] I agree we = need to make PINPolicy extensible and not put stuff into the Data elements of = the PINKey. Are there any other elements that you know of we should include = now and not just as an xs:any extension?


c.       It seems to us that there are = additional universally-known PIN policy attributes that should be included in the schema.  Things such as the PIN’s maximum and minimum length = and it’s data type (integer, alphanumeric).  Unless these are = part of the spec, we currently are forced to create custom Data elements for = them (and put them in a referenced Key element). BTW – Just to be clear, I = am talking about the POLICY information associated with whatever PIN a user = uses with their token.  I’m not talking about the attributes of a specific PIN value that can be expressed in a Key element.  As an = example, to express a min and max PIN length policy, we have to create custom = Data elements in a separate Key element (and also Base64 encode the = values).  I’m sorry, but this is getting ridiculous. 

           <Key KeyId=3D"07552252661"

             KeyAlgorithm=3D"http://www.ietf.org/keyprov= /pskc#pin">

            &= nbsp; <Data Name=3D"PIN_MIN_LENGTH">

            &= nbsp;     <PlainValue>NA=3D=3D</PlainValue>

            &= nbsp; </Data>

            &= nbsp; <Data Name=3D"PIN_MAX_LENGTH">

            &= nbsp;     <PlainValue>OA=3D=3D</PlainValue>

            &= nbsp; </Data>

           = </Key>

[PH] no the format and = length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 = of the spec) would make that clear here is the XML = fragment:

       <Key KeyId=3D"07552252661"

          KeyAlgorithm=3D"http://www.ietf.org/keyprov/pskc#pin"><= /o:p>

          &= nbsp; <Usage>

          &= nbsp;     <ResponseFormat Length=3D"4" = Format=3D"DECIMAL"/>

          &= nbsp; </Usage>

          &= nbsp; <Data Name=3D"SECRET">

          &= nbsp;     <PlainValue>MTIzNA=3D=3D</PlainValue>

          &= nbsp; </Data>

        = </Key>

Notes:

a.       If I had an xs:any extension = point, I could express this in 2 lines of XML in the PinPolicy element.

b.      This example doesn’t include the = PIN format, which would require me to either:

            &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            = ;        i.            Use another custom Data element 

            &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            = ;      ii.            = Include a ResponseFormat element that then requires inclusion of a = “Length” attribute. But what would the Length attribute really mean in this = case?

d.      Why isn’t a PINPolicy reusable = across multiple tokens (it has no ID that can be used in a reference from a = token definition).  If I want to define a PINPolicy that applies to = multiple tokens, the PINPolicy element needs its own ID.

[PH] I see your point. If we make PINKeyId optional as = in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your = purpose.


e.      The “WrongPINtry” element = name (in PINPolicyType) is not consistent with the other camel-case names (“try” should be “Try”).

[PH] agreed, will change


f.        In general, it is = undesirable to create abbreviations such as “InAlgo” (in PINUsageMode) to = be used as XML keywords. To stay consistent with “Local” and “Prepend”, I would strongly suggest something like “Embed” or “Algorithmic”.
[PH[ we had Embed before = and people got confused by the meaning. So maybe Algorithmic is a better choice, = that is why I tried to express the use of the PIN in the algorithm as InAlgo. I = do not feel very strong about it. Maybe we can have a = vote


4.       The use of = “ResponseFormat” for describing a PIN is very confusing.  The spec defines = ResponseFormat as follows “The ResponseFormat element defines the characteristics = of the result of a computation.  This defines the format of the OTP or of = the response to a challenge.” A PIN is not the result of a “computation”, nor is it a response to a challenge.  It = seems quite odd to use this Key construct for a PIN. I think that either = another usage type should be defined or the ResponseFormat definition should be = changed to also reflect its use for describing a PIN.
[PH] Yes I think we need = to change the description. I am getting a lot of push back to include PIN = requirements in the spec so I tried to convince people that tit was a good idea without = having to introduce to many new schema types. Here you say it is odd to use the = Key element for the PIN value but above you agree that a PIN IS a Key. So I = would keep it in the Key element buy change = description.

 

------_=_NextPart_001_01C8D61F.847AE95B-- --===============0040016803== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov --===============0040016803==-- From keyprov-bounces@ietf.org Wed Jun 25 11:54:48 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7638828C122; Wed, 25 Jun 2008 11:54:48 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id AE52E28C122 for ; Wed, 25 Jun 2008 11:54:47 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: -2.599 X-Spam-Level: X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4xQTN7YvjJS3 for ; Wed, 25 Jun 2008 11:54:46 -0700 (PDT) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by core3.amsl.com (Postfix) with SMTP id 74EA928C120 for ; Wed, 25 Jun 2008 11:54:46 -0700 (PDT) Received: (qmail invoked by alias); 25 Jun 2008 18:54:48 -0000 Received: from a91-154-105-144.elisa-laajakaista.fi (EHLO [192.168.255.3]) [91.154.105.144] by mail.gmx.net (mp036) with SMTP; 25 Jun 2008 20:54:48 +0200 X-Authenticated: #29516787 X-Provags-ID: V01U2FsdGVkX19XLFYAt0BXuPgoqXpLlAEyp7QJkjHj63Cw9caigl WQYTnsxXnBveKE Message-ID: <48629475.4030206@gmx.net> Date: Wed, 25 Jun 2008 21:54:45 +0300 From: Hannes Tschofenig User-Agent: Thunderbird 2.0.0.14 (Windows/20080421) MIME-Version: 1.0 To: keyprov@ietf.org X-Y-GMX-Trusted: 0 Subject: [KEYPROV] Status Code Registry for DSKPP X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org Here is a text proposal for the status code registry for DSKPP: -------------------------------------------------- Status Code Registry ==================== This document requests that the IANA create a new registry for the DSKPP protocol including an initial registry for status codes. The status codes are included in a response message and defined in the schema in the StatusCode type definition in the XML schema in Section 7. The following summarizes the requested registry: Related Registry: KEYPROV DSKPP Registries, Status codes for DSKPP Defining RFC: RFC XXXX [NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number for this specification.] Registration/Assignment Procedures: Following the policies outlined in [RFC3575], the IANA policy for assigning new values for the status codes for DSKPP shall be "Specification Required" and their meanings must be documented in an RFC or in some other permanent and readily available reference, in sufficient detail that interoperability between independent implementations is possible. No mechanism to mark entries as "deprecated" is envisioned. It is possible to delete or update entries from the registry. Registrant Contact: IETF, KEYPROV working group, (keyprov@ietf.org), Andrea Doherty (andrea.doherty@rsa.com). This section pre-registers the initial status codes, as described above in Section 4.7, including their textual description. The list in Section 4.7 starts with the StatusCode "Continue" and ends with the StatusCode "InitializationFailed". -------------------------------------------------- One would also have to think on what is going to happen if the client receives a status code that is not understood. Proposal: Treat it as an unrecoverable error. Ciao Hannes _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov From keyprov-bounces@ietf.org Fri Jun 27 08:14:42 2008 Return-Path: X-Original-To: keyprov-archive@optimus.ietf.org Delivered-To: ietfarch-keyprov-archive@core3.amsl.com Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id EC4C928C0D6; Fri, 27 Jun 2008 08:14:41 -0700 (PDT) X-Original-To: keyprov@core3.amsl.com Delivered-To: keyprov@core3.amsl.com Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id AD77D28C0E7 for ; Fri, 27 Jun 2008 08:14:40 -0700 (PDT) X-Virus-Scanned: amavisd-new at amsl.com X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=x tagged_above=-999 required=5 tests=[] Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yoZ-TlxtwFGd for ; Fri, 27 Jun 2008 08:14:40 -0700 (PDT) Received: from frhub1.activcard.fr (frhub1.activcard.fr [91.151.120.133]) by core3.amsl.com (Postfix) with ESMTP id 6C6563A6903 for ; Fri, 27 Jun 2008 08:14:37 -0700 (PDT) Received: from sur-corp-ex-02.corp.ad.activcard.com (sur-corp-ex-02.corp.ad.activcard.com [192.168.33.40]) by frhub1.activcard.fr (Postfix) with ESMTP id 67A9025ED66; Fri, 27 Jun 2008 17:14:36 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C8D868.7CA86ECF" Date: Fri, 27 Jun 2008 17:14:25 +0200 Message-ID: <5BFE9E473DBFC24CA87F18F29B3F0AC40203F105@sur-corp-ex-02.corp.ad.activcard.com> In-Reply-To: <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0D3@sur-corp-ex-02.corp.ad.activcard.com> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: [KEYPROV] [pskc] Latest draft of PSKC Thread-Index: Acihb52vIXPZfM+dQBGaWxrT4r5ocAAVy7xQAHs9/BAAB0GJoAAC0jWgARViyUAASBMeYAFfxKKAAAGFK/UAAAvvgANQaPGwAZRV6yADujT6IAG6oWTw References: <9ED76AB595E4944BB33D8998DE448D110160C92D@CORPUSMX10B.corp.emc.com> <5BFE9E473DBFC24CA87F18F29B3F0AC40203F0D3@sur-corp-ex-02.corp.ad.activcard.com> From: "Philip Hoyer" To: "Pei, Mingliang" , , "Hannes Tschofenig" , "Hallam-Baker, Phillip" , Cc: keyprov@ietf.org Subject: Re: [KEYPROV] [pskc] Latest draft of PSKC X-BeenThere: keyprov@ietf.org X-Mailman-Version: 2.1.9 Precedence: list List-Id: "Provisioning of Symmetric Keys \(keyprov\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: keyprov-bounces@ietf.org Errors-To: keyprov-bounces@ietf.org This is a multi-part message in MIME format. ------_=_NextPart_001_01C8D868.7CA86ECF Content-Type: multipart/alternative; boundary="----_=_NextPart_002_01C8D868.7CA86ECF" ------_=_NextPart_002_01C8D868.7CA86ECF Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable =20 Please find attached the latest work in progress draft and related schema, =20 Changes made from version 4 are: =20 1. Added optional Id element to the container in case another document includes more than one container and wants to reference it uniquely, this is of type xs:Id 2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became mandatory)=20 3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to xs:ID 4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF as it refers to the ID of the element of (3) see directly above 5. Added optional PINPolicyId attribute of type xs:ID to PINPolicyType 6. Added the KeyContainer:KeyProperties element that was missing from version -04 (oversight).This is where the common properties for a key are actually held within a container 7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case but the discussed naming and changed to 'MaxFailedAttempts' 8. Changed PINUsageMode 'InAlgo' to 'Algorithmic' 9. Added description for added extension points (see below) 10. Changed DeviceIdType to DeviceInfoType (please see other email for rational to keep separate type and not move elements directly under Device) 11. Moved Keyporperties in front of device under KeyContainer for more readability 12. Changed Namespace as per Hannes proposal from "urn:ietf:params:xml:ns:keyprov:container:1.0" to "urn:ietf:params:xml:ns:keyprov:pskc:1.0" 13. Cleaned up the way that attributes (no angled brackets) and elements (angled brackets ) are described in the spec 14. Corrected some spelling and grammar =20 Extension points: =20 Added a '' to=20 1. KeyContainerType 2. KeyPropertiesType 3. KeyType 4. PINPolicy 5. DeviceIDType 6. DeviceType 7. UsageType =20 Added a '' to: 1. UsageType (since it contains the attributes of ' So I thought it would be wise to be able to extend this =20 =20 =20 Outstanding issues that need to be discussed: 1. Should we go for xs:string for unencrypted data elements - Rob Philpott and others seem strongly for it but Sean Turner was against it at the last IETF in Philadelphia (please see other email about proposal) 2. Address other issues raised by Rob Philpott: Here below with my comments and numbered Rob Philpott Comment plus number (RPC1, RPC2, ... etc) 3. For PINPolicy we have 'Prepend' should we add 'Append' for completeness? =20 =20 RPC2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. RPC3. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc RPC4. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. =20 Philip =20 =20 =20 ________________________________ From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]=20 Sent: Friday, May 30, 2008 4:36 PM To: keyprov@ietf.org Cc: Philip Hoyer Subject: FW: [KEYPROV] [pskc] Latest draft of PSKC =20 Here is Philip Hoyer's response to Rob's comments (see below), which we initially handled offline, and then we decided it would be better to further the discussion on the mailing list. =20 -- Andrea =20 1. Use of xs:ID attributes: a. The xs:ID datatype is only used in the DerivedKeyType complexType. xs:ID is the preferred mechanism for referring to other XML elements in an instance document. So why are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the "KeyPropertiesId" attribute) and KeyType ("KeyId")? Why don't these use xs:ID attributes? [PH] good point I was thinking that xs:Id for KeyPropertiesId could be a good choice The KeyId on the other hand is not really used to be referred to. Do you think it would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?=20 b. Why doesn't a KeyContainer have an (optional) ID that could be used to reference it in an instance document? [PH] valid comment and I will think we should add this=20 c. Same question for PINPolicy? [PH] agreed d. The use of the DeviceIdType is inconsistent with other "ID"'s (that are used for referential information). The elements in the DeviceIDType seem more appropriate for the DeviceType or KeyType elements. At a minimum, I would not call this a "DeviceIdType" (perhaps "DeviceInfoType"?) but really, I would just put its elements directly in the DeviceType complexType). I would also give elements an optional referential ID via xs:ID. [PH] so basically you are saying that any high level entity (Key, Device, KeyContainer etc) should have an ID that is xs:ID? The thought of DeviceId was to aggregate under a specific type the elements that comprise the compound key to look up the device e. Section 5.2.1 says that the DeviceIdType is an extensible type, but there are no extension points in it. [PH] agreed I think we should add an xs:any 2. We are really unhappy with the proposed extensibility mechanism. This goes against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO): [PH] this has been extensively discussed at IETF and there are pros and cons for all approaches. The pro's of the name value approach is that it will be re-usable for the ASN.1 spec and that we will have a semantic registry defined by IANA. a. The use of "Reserved data attribute names" as described in section 7 is really difficult to work with. First, elements should ONLY be used for "real" extensions... i.e. things that aren't already known at the time the spec is written. If we already know that the items defined in section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be "reserved" uses of the element. We just don't understand the desire to do it this way. Having explicitly defined elements also allows for more flexible datayping. [PH] this has been extensively discussed. And we opted for the name value pair approach. This mean that all elements in Data can be parsed in the same manner and individually be encrypted or not. There will be a centralized semantic registry by IANA, etc b. This mechanism only lets us create very simple name-value pair extensions. If we have some small groups of related extensions, we'd really like to be able to define them externally in a private schema via their own complexType definitions. With the current method, it's going to be very messy to add groups of extensions or extensions that have more complex data values. [PH] why do you say that, the name could be also be a namespace for an wholly encrypted or base64 encoded XML sub node. I see your point though in terms of parsing here. Could you give me an example of what you had in mind since we have considered quite a few use cases and not come across the requirement for grouped extensions. c. It is also a pain for implementers to deal with the limitation of the data typing available for unencrypted elements. For example, for a SecurID token with a display interval of 60 seconds, I cannot simply use an xml schema-defined datatype of xs:integer with a value of "60". I have to Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the receiving end). Why is this necessary? I could define such an item with a single XML element, but here I need 3 or 4. [PH] using xs:string for plainvalue was discussed during the last IETF meeting (I personally am in favor of it) but Sean Turner and the rest of the people did not see much value in it. If we use string we will need to deice for specific data elements what the encoding rules are. For example do we say for 8 byte unsigned int to encode just string e.g. '60' or leading 0 examples '00000060'. I would appreciate your thoughts on this. Also how would we encode binary data in string form base64 encoded? d. This approach does not produce "readable" XML since the data values are always Base64-encoded. That is just crazy when the data is not sensitive in nature. Please do not underestimate the value of being able to look at data in an instance document and know what it is without having to run it through a Base64 decoder! This is a major drawback. [PH] agreed and see answer above 3. RE: PINPolicy: a. If I specify a PINPolicy, I am forced to specify a PINKeyID, which forces me to create another Key element (even if I don't have any additional PIN policy info that I need to pass along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more complex than it needs to be.=20 [PH] if you are referring to the fact that '' is set to = required I agree with you. We should set this to 'optional'. I do not agree with your 90% use case analysis since the main use cases I have come across where to transmit the initial random pin for PINPads tokens within the same PSKC document from manufacturing to the validation server. b. The PINPolicy element only contains "policy" attributes for "WrongPINtry" and "PINUsageMode" and the element is not directly extensible. Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references. IMO, PIN policy info should be in the PINPolicy element, not in a separate "Key" element! The only thing that should go in the Key element is a PIN value that is being expressly communicated with the instance document. That is, a PIN value IS a key; PIN policy information IS NOT a key. [PH] I agree we need to make PINPolicy extensible and not put stuff into the Data elements of the PINKey. Are there any other elements that you know of we should include now and not just as an xs:any extension? c. It seems to us that there are additional universally-known PIN policy attributes that should be included in the schema. Things such as the PIN's maximum and minimum length and it's data type (integer, alphanumeric). Unless these are part of the spec, we currently are forced to create custom Data elements for them (and put them in a referenced Key element). BTW - Just to be clear, I am talking about the POLICY information associated with whatever PIN a user uses with their token. I'm not talking about the attributes of a specific PIN value that can be expressed in a Key element. As an example, to express a min and max PIN length policy, we have to create custom Data elements in a separate Key element (and also Base64 encode the values). I'm sorry, but this is getting ridiculous.=20 NA=3D=3D OA=3D=3D [PH] no the format and length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 of the spec) would make that clear here is the XML fragment: MTIzNA=3D=3D Notes: a. If I had an xs:any extension point, I could express this in 2 lines of XML in the PinPolicy element. b. This example doesn't include the PIN format, which would require me to either: i. Use another custom Data element=20 ii. Include a ResponseFormat element that then requires inclusion of a "Length" attribute. But what would the Length attribute really mean in this case? d. Why isn't a PINPolicy reusable across multiple tokens (it has no ID that can be used in a reference from a token definition). If I want to define a PINPolicy that applies to multiple tokens, the PINPolicy element needs its own ID. [PH] I see your point. If we make PINKeyId optional as in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your purpose. e. The "WrongPINtry" element name (in PINPolicyType) is not consistent with the other camel-case names ("try" should be "Try"). [PH] agreed, will change f. In general, it is undesirable to create abbreviations such as "InAlgo" (in PINUsageMode) to be used as XML keywords. To stay consistent with "Local" and "Prepend", I would strongly suggest something like "Embed" or "Algorithmic". [PH[ we had Embed before and people got confused by the meaning. So maybe Algorithmic is a better choice, that is why I tried to express the use of the PIN in the algorithm as InAlgo. I do not feel very strong about it. Maybe we can have a vote 4. The use of "ResponseFormat" for describing a PIN is very confusing. The spec defines ResponseFormat as follows "The ResponseFormat element defines the characteristics of the result of a computation. This defines the format of the OTP or of the response to a challenge." A PIN is not the result of a "computation", nor is it a response to a challenge. It seems quite odd to use this Key construct for a PIN. I think that either another usage type should be defined or the ResponseFormat definition should be changed to also reflect its use for describing a PIN. [PH] Yes I think we need to change the description. I am getting a lot of push back to include PIN requirements in the spec so I tried to convince people that tit was a good idea without having to introduce to many new schema types. Here you say it is odd to use the Key element for the PIN value but above you agree that a PIN IS a Key. So I would keep it in the Key element buy change description. =20 ------_=_NextPart_002_01C8D868.7CA86ECF Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Re: [KEYPROV] [pskc] Latest draft of PSKC

 

Please find attached the latest = work in progress draft and related schema,

 

= Changes made from version 4 are:

 

  1. Added optional Id element to the container in case another document = includes more than one container and wants to reference it uniquely, this is = of type xs:Id
  2. Made PINKeyId of PINPolicy optional (in version 4 it wrongly became = mandatory)
  3. Changed KeyPropertiesType:KeyPropertiesId from type xs:String to = xs:ID
  4. Changed KeyType:KeyPropertiesId from type xs:string to be of type xs:IDREF = as it refers to the ID of the element of (3) see directly = above
  5. Added optional PINPolicyId attribute of type xs:ID to = PINPolicyType
  6. Added the KeyContainer:KeyProperties element that was missing from = version -04 (oversight).This is where the common properties for a key are = actually held within a container
  7. Changed PINPolicyType: WrongPINtry into WrongPINTry so that it is proper camel-case but the = discussed naming and changed to = ‘MaxFailedAttempts’
  8. Changed PINUsageMode ‘InAlgo’ to = ‘Algorithmic’
  9. Added description for added extension points (see = below)
  10. Changed DeviceIdType to DeviceInfoType (please see other email for rational = to keep separate type and not move elements directly under = Device)
  11. Moved Keyporperties in front of device under KeyContainer for more = readability
  12. Changed Namespace as per Hannes proposal from = "urn:ietf:params:xml:ns:keyprov:container:1.0" to = “urn:ietf:params:xml:ns:keyprov:pskc:1.0"
  13. Cleaned up the way that attributes (no angled brackets) and elements = (angled brackets <elementName>) are described in the = spec
  14. Corrected some spelling and grammar

 

Extension = points:

 

Added a ‘<xs:any namespace=3D"##other" processContents=3D"lax" minOccurs=3D"0" maxOccurs=3D"unbounded"/>’ = to

  1. KeyContainerType<= /span>
  2. KeyPropertiesType=
  3. KeyType
  4. PINPolicy<= /font>
  5. DeviceIDType
  6. DeviceType=
  7. UsageType<= /font>

 

Added a ‘<xs:anyAttribute namespace=3D"##other"/>’ = to:

  1. UsageType (since it contains the attributes of = ‘           =      

<xs:attribute name=3D"OTP" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"CR" type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Integrity" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Encrypt" = type=3D"xs:boolean" default=3D"false"/>

      =             &= nbsp;     <xs:attribute name=3D"Unlock" type=3D"xs:boolean" default=3D"false"/>

      =       So I thought it would be wise to be able to extend = this

 

 

 

= Outstanding issues that need to be discussed:

  1. Should we go for xs:string for unencrypted data elements – Rob = Philpott and others seem strongly for it but Sean Turner was against it at the = last IETF in Philadelphia (please see other email about = proposal)
  2. Address other issues raised by Rob Philpott: Here below with my comments = and numbered Rob Philpott Comment plus number (RPC1, RPC2, … = etc)
  3. For PINPolicy we have ‘Prepend’ should we add = ‘Append’ for completeness?

 

 

RPC2.       We = are really unhappy with the proposed extensibility mechanism. This goes = against general XML schema best practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior (IMO):

[PH] this has = been extensively discussed at IETF and there are pros and cons for all = approaches. The pro’s of the name value approach is that it will be re-usable = for the ASN.1 spec and that we will have a semantic registry defined by = IANA.


RPC3.       The use of “Reserved = data attribute names” as described in section 7 is really difficult to = work with. First, <Data> elements should ONLY be used for = “real” extensions… i.e. things that aren’t already known at the = time the spec is written.  If we already know that the items defined in = section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be “reserved” = uses of the <DATA> element.  We just don’t understand the = desire to do it this way. Having explicitly defined elements also allows for more flexible datayping.

[PH] this has = been extensively discussed. And we opted for the name value pair approach. = This mean that all elements in Data can be parsed in the same manner and = individually be encrypted or not. There will be a centralized semantic registry by IANA, = etc


RPC4.      This mechanism only lets us create = very simple name-value pair extensions.  If we have some small groups of related extensions, we’d really like to be able to define them = externally in a private schema via their own complexType definitions.  With = the current method, it’s going to be very messy to add groups of = extensions or extensions that have more complex data values.

[PH] why do you = say that, the name could be also be a namespace for an wholly encrypted or base64 = encoded XML sub node. I see your point though in terms of parsing here. Could = you give me an example of what you had in mind since we have considered quite a = few use cases and not come across the requirement for grouped = extensions.

 

Philip

 

 

 


From: andrea.doherty@rsa.com [mailto:andrea.doherty@rsa.com]
Sent: Friday, May 30, = 2008 4:36 PM
To: keyprov@ietf.org
Cc: Philip Hoyer
Subject: FW: [KEYPROV] = [pskc] Latest draft of PSKC

 

Here is Philip Hoyer's = response to Rob's comments (see below), which we initially handled offline, = and then we decided it would be better to further the discussion on the = mailing list. 

-- Andrea

 
 1.       Use of = xs:ID attributes:

a.       The xs:ID datatype is only used = in the DerivedKeyType complexType.  xs:ID is the preferred mechanism for referring to other XML elements in an instance document.  So why = are custom attributes defined to be able to referto elements of the types KeyPropertiesType (the “KeyPropertiesId” attribute) and = KeyType (“KeyId”)? Why don’t these use xs:ID attributes?

[PH] good point = I was thinking that xs:Id for KeyPropertiesId could be a good choice  The = KeyId on the other hand is not really used to be referred to. Do you think it = would be better to use xs:ID for this aswell? And in case we use it now is it backwards compatible to what we have?


b.      Why doesn’t a KeyContainer have = an (optional) ID that could be used to reference it in an instance = document?

[PH] valid = comment and I will think we should add this

c.       Same question for PINPolicy?

[PH] = agreed

d.      The use of the DeviceIdType is = inconsistent with other “ID”’s (that are used for referential information).  The elements in the DeviceIDType seem more = appropriate for the DeviceType or KeyType elements.  At a minimum, I would not call = this a “DeviceIdType” (perhaps “DeviceInfoType”?) but = really, I would just put its elements directly in the DeviceType = complexType).  I would also give <Device> elements an optional referential ID via = xs:ID.

[PH] so basically you are saying = that any high level entity (Key, Device, KeyContainer etc) should have an ID that = is xs:ID? The thought of DeviceId was to aggregate under a specific type = the elements that comprise the compound key to look up the = device


e.      Section 5.2.1 says that the = DeviceIdType is an extensible type, but there are no extension points in it.

[PH] agreed I = think we should add an xs:any

2.       We are really unhappy with the = proposed extensibility mechanism. This goes against general XML schema best = practice. Defining extension points via xs:any/xs:anyAttribute is vastly superior = (IMO):

[PH] this has = been extensively discussed at IETF and there are pros and cons for all = approaches. The pro’s of the name value approach is that it will be re-usable = for the ASN.1 spec and that we will have a semantic registry defined by = IANA.



a.       The use of “Reserved data attribute names” as described in section 7 is really difficult to = work with. First, <Data> elements should ONLY be used for = “real” extensions… i.e. things that aren’t already known at the = time the spec is written.  If we already know that the items defined in = section 7 are needed, they should just be defined in the schema with their own element/attribute definitions. They should not be “reserved” = uses of the <DATA> element.  We just don’t understand the = desire to do it this way. Having explicitly defined elements also allows for more flexible datayping.

[PH] this has = been extensively discussed. And we opted for the name value pair approach. = This mean that all elements in Data can be parsed in the same manner and = individually be encrypted or not. There will be a centralized semantic registry by IANA, = etc


b.      This mechanism only lets us create very = simple name-value pair extensions.  If we have some small groups of = related extensions, we’d really like to be able to define them externally = in a private schema via their own complexType definitions.  With the = current method, it’s going to be very messy to add groups of extensions or extensions that have more complex data values.

[PH] why do you = say that, the name could be also be a namespace for an wholly encrypted or base64 = encoded XML sub node. I see your point though in terms of parsing here. Could = you give me an example of what you had in mind since we have considered quite a few = use cases and not come across the requirement for grouped = extensions.


c.       It is also a pain for = implementers to deal with the limitation of the data typing available for unencrypted <Data> elements.  For example, for a SecurID token with a = display interval of 60 seconds, I cannot simply use an xml schema-defined = datatype of xs:integer with a value of “60”.  I have to = Base64-encode the big-endian 2-byte binary value for 60 seconds (and then decode it on the receiving end). Why is this necessary?  I could define such an item = with a single XML element, but here I need 3 or 4.

[PH] using = xs:string for plainvalue was discussed during the last IETF meeting (I personally am = in favor of it) but Sean Turner and the rest of the people did not see much value = in it. If we use string we will need to deice for specific data elements what = the encoding rules are. For example do we say for 8 byte unsigned int to = encode just string e.g. ‘60’ or leading 0 examples = ‘00000060’. I would appreciate your thoughts on this. Also how would we encode = binary data in string form base64 encoded?



d.      This approach does not produce “readable” XML since the data values are always Base64-encoded.  That is just crazy when the data is not sensitive = in nature.  Please do not underestimate the value of being able to = look at data in an instance document and know what it is without having to run = it through a Base64 decoder! This is a major drawback.

[PH] agreed and = see answer above


3.       RE: PINPolicy:

a.       If I specify a PINPolicy, I am = forced to specify a PINKeyID, which forces me to create another Key element (even = if I don’t have any additional PIN policy info that I need to pass = along in that Key element). For 90% of the use cases, this referential style of description is overkill and makes the instance document much more = complex than it needs to be. 

[PH] if you are = referring to the fact that ‘<xs:attribute name=3D"PINKeyId" type=3D"xs:string" use=3D"required"/>’ is = set to required I agree with you. We should set this to ‘optional’. = I do not agree with your 90% use case analysis since the main use cases I = have come across where to transmit the initial random pin for PINPads tokens = within the same PSKC document from manufacturing to the validation = server.



b.      The PINPolicy element only contains “policy” attributes for “WrongPINtry” and “PINUsageMode” and the element is not directly = extensible.  Any extensions we need have to go in Data elements inside a separate Key element that the PINPolicy then references.  IMO, PIN policy info = should be in the PINPolicy element, not in a separate “Key” = element! The only thing that should go in the Key element is a PIN value that is = being expressly communicated with the instance document.  That is, a PIN = value IS a key; PIN policy information IS NOT a key.

[PH] I agree we = need to make PINPolicy extensible and not put stuff into the Data elements of = the PINKey. Are there any other elements that you know of we should include = now and not just as an xs:any extension?


c.       It seems to us that there are = additional universally-known PIN policy attributes that should be included in the schema.  Things such as the PIN’s maximum and minimum length = and it’s data type (integer, alphanumeric).  Unless these are = part of the spec, we currently are forced to create custom Data elements for = them (and put them in a referenced Key element). BTW – Just to be clear, I = am talking about the POLICY information associated with whatever PIN a user = uses with their token.  I’m not talking about the attributes of a specific PIN value that can be expressed in a Key element.  As an = example, to express a min and max PIN length policy, we have to create custom = Data elements in a separate Key element (and also Base64 encode the = values).  I’m sorry, but this is getting ridiculous. 

           <Key KeyId=3D"07552252661"

             KeyAlgorithm=3D"http://www.ietf.org/keyprov= /pskc#pin">

            &= nbsp; <Data Name=3D"PIN_MIN_LENGTH">

            &= nbsp;     <PlainValue>NA=3D=3D</PlainValue>

            &= nbsp; </Data>

            &= nbsp; <Data Name=3D"PIN_MAX_LENGTH">

            &= nbsp;     <PlainValue>OA=3D=3D</PlainValue>

            &= nbsp; </Data>

           = </Key>

[PH] no the format and = length would be in the UsageElement of the PINKey. I had hoped Example (Section 12.2 = of the spec) would make that clear here is the XML = fragment:

       <Key KeyId=3D"07552252661"

          KeyAlgorithm=3D"http://www.ietf.org/keyprov/pskc#pin"><= /o:p>

          &= nbsp; <Usage>

          &= nbsp;     <ResponseFormat Length=3D"4" = Format=3D"DECIMAL"/>

          &= nbsp; </Usage>

          &= nbsp; <Data Name=3D"SECRET">

          &= nbsp;     <PlainValue>MTIzNA=3D=3D</PlainValue>

          &= nbsp; </Data>

        = </Key>

Notes:

a.       If I had an xs:any extension = point, I could express this in 2 lines of XML in the PinPolicy element.

b.      This example doesn’t include the = PIN format, which would require me to either:

            &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            = ;        i.            Use = another custom Data element 

            &= nbsp;           &n= bsp;           &nb= sp;           &nbs= p;            = ;      ii.            = Include a ResponseFormat element that then requires inclusion of a = “Length” attribute. But what would the Length attribute really mean in this = case?

d.      Why isn’t a PINPolicy reusable = across multiple tokens (it has no ID that can be used in a reference from a = token definition).  If I want to define a PINPolicy that applies to = multiple tokens, the PINPolicy element needs its own ID.

[PH] I see your point. If we make PINKeyId optional as = in the comment above you can have a common PINPolicy as part of the shared KeyProperties. I believe that would serve your = purpose.


e.      The “WrongPINtry” element = name (in PINPolicyType) is not consistent with the other camel-case names (“try” should be “Try”).

[PH] agreed, will change


f.        In general, it is = undesirable to create abbreviations such as “InAlgo” (in PINUsageMode) to = be used as XML keywords. To stay consistent with “Local” and “Prepend”, I would strongly suggest something like “Embed” or “Algorithmic”.
[PH[ we had Embed before = and people got confused by the meaning. So maybe Algorithmic is a better choice, = that is why I tried to express the use of the PIN in the algorithm as InAlgo. I = do not feel very strong about it. Maybe we can have a = vote


4.       The use of = “ResponseFormat” for describing a PIN is very confusing.  The spec defines = ResponseFormat as follows “The ResponseFormat element defines the characteristics = of the result of a computation.  This defines the format of the OTP or of = the response to a challenge.” A PIN is not the result of a “computation”, nor is it a response to a challenge.  It = seems quite odd to use this Key construct for a PIN. I think that either = another usage type should be defined or the ResponseFormat definition should be = changed to also reflect its use for describing a PIN.
[PH] Yes I think we need = to change the description. I am getting a lot of push back to include PIN = requirements in the spec so I tried to convince people that tit was a good idea without = having to introduce to many new schema types. Here you say it is odd to use the = Key element for the PIN value but above you agree that a PIN IS a Key. So I = would keep it in the Key element buy change = description.

 

------_=_NextPart_002_01C8D868.7CA86ECF-- ------_=_NextPart_001_01C8D868.7CA86ECF Content-Type: text/xml; name="draft-ietf-keyprov-portable-symmetric-key-container-05_wip_270608.xml" Content-Transfer-Encoding: base64 Content-Description: draft-ietf-keyprov-portable-symmetric-key-container-05_wip_270608.xml Content-Disposition: attachment; filename="draft-ietf-keyprov-portable-symmetric-key-container-05_wip_270608.xml" PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjw/eG1sLXN0eWxlc2hlZXQg dHlwZT0ndGV4dC94c2wnIGhyZWY9J3JmYzI2MjkueHNsdCcgPz4NCjwhRE9DVFlQRSByZmMgU1lT VEVNICJyZmMyNjI5LmR0ZCIgWw0KCTwhRU5USVRZIHJmYzIxMTkgUFVCTElDICcnIA0KICAgICAg J2h0dHA6Ly94bWwucmVzb3VyY2Uub3JnL3B1YmxpYy9yZmMvYmlieG1sL3JlZmVyZW5jZS5SRkMu MjExOS54bWwnPg0KXT4NCjxyZmMgY2F0ZWdvcnk9InN0ZCIgaXByPSJmdWxsMzk3OCIgZG9jTmFt ZT0iZHJhZnQtaWV0Zi1rZXlwcm92LXBvcnRhYmxlLXN5bW1ldHJpYy1rZXktY29udGFpbmVyLTA1 LnR4dCI+DQoJPD9yZmMgdG9jPSJ5ZXMiID8+DQoJPD9yZmMgc3ltcmVmcz0ieWVzIiA/Pg0KCTw/ cmZjIHNvcnRyZWZzPSJ5ZXMiPz4NCgk8P3JmYyBpcHJub3RpZmllZD0ibm8iID8+DQoJPD9yZmMg c3RyaWN0PSJ5ZXMiID8+DQoJPGZyb250Pg0KCQk8dGl0bGU+UG9ydGFibGUgU3ltbWV0cmljIEtl eSBDb250YWluZXI8L3RpdGxlPg0KCQk8YXV0aG9yIGluaXRpYWxzPSJQLiIgc3VybmFtZT0iSG95 ZXIiIGZ1bGxuYW1lPSJQaGlsaXAgSG95ZXIiPg0KCQkJPG9yZ2FuaXphdGlvbiBhYmJyZXY9IkFj dGl2SWRlbnRpdHkiPg0KCQkJQWN0aXZJZGVudGl0eSwgSW5jLg0KCSAgICA8L29yZ2FuaXphdGlv bj4NCgkJCTxhZGRyZXNzPg0KCQkJCTxwb3N0YWw+DQoJCQkJCTxzdHJlZXQ+MTE3IFdhdGVybG9v IFJvYWQ8L3N0cmVldD4NCgkJCQkJPGNpdHk+TG9uZG9uPC9jaXR5Pg0KCQkJCQk8cmVnaW9uPlNF MTwvcmVnaW9uPg0KCQkJCQk8Y29kZT44VUw8L2NvZGU+DQoJCQkJCTxjb3VudHJ5PlVLPC9jb3Vu dHJ5Pg0KCQkJCTwvcG9zdGFsPg0KCQkJCTxwaG9uZT4rNDQgKDApIDIwIDc3NDQgNjQ1NTwvcGhv bmU+DQoJCQkJPGVtYWlsPlBoaWxpcC5Ib3llckBhY3RpdmlkZW50aXR5LmNvbTwvZW1haWw+DQoJ CQk8L2FkZHJlc3M+DQoJCTwvYXV0aG9yPg0KCQk8YXV0aG9yIGluaXRpYWxzPSJNLiIgc3VybmFt ZT0iUGVpIiBmdWxsbmFtZT0iTWluZ2xpYW5nIFBlaSI+DQoJCQk8b3JnYW5pemF0aW9uIGFiYnJl dj0iVmVyaVNpZ24iPg0KCQkJVmVyaVNpZ24sIEluYy4NCgkgICAgPC9vcmdhbml6YXRpb24+DQoJ CQk8YWRkcmVzcz4NCgkJCQk8cG9zdGFsPg0KCQkJCQk8c3RyZWV0PjQ4NyBFLiBNaWRkbGVmaWVs ZCBSb2FkPC9zdHJlZXQ+DQoJCQkJCTxjaXR5Pk1vdW50YWluIFZpZXc8L2NpdHk+DQoJCQkJCTxy ZWdpb24+Q0E8L3JlZ2lvbj4NCgkJCQkJPGNvZGU+OTQwNDM8L2NvZGU+DQoJCQkJCTxjb3VudHJ5 PlVTQTwvY291bnRyeT4NCgkJCQk8L3Bvc3RhbD4NCgkJCQk8cGhvbmU+KzEgNjUwIDQyNiA1MTcz PC9waG9uZT4NCgkJCQk8ZW1haWw+bXBlaUB2ZXJpc2lnbi5jb208L2VtYWlsPg0KCQkJPC9hZGRy ZXNzPg0KCQk8L2F1dGhvcj4NCgkJPGF1dGhvciBpbml0aWFscz0iUy4iIHN1cm5hbWU9Ik1hY2hh bmkiIGZ1bGxuYW1lPSJTYWxhaCBNYWNoYW5pIj4NCgkJCTxvcmdhbml6YXRpb24gYWJicmV2PSJE aXZlcnNpbmV0Ij4NCgkJCURpdmVyc2luZXQsIEluYy4NCgkgICAgPC9vcmdhbml6YXRpb24+DQoJ CQk8YWRkcmVzcz4NCgkJCQk8cG9zdGFsPg0KCQkJCQk8c3RyZWV0PjIyMjUgU2hlcHBhcmQgQXZl bnVlIEVhc3Q8L3N0cmVldD4NCgkJCQkJPHN0cmVldD5TdWl0ZSAxODAxPC9zdHJlZXQ+DQoJCQkJ CTxjaXR5PlRvcm9udG88L2NpdHk+DQoJCQkJCTxyZWdpb24+T250YXJpbzwvcmVnaW9uPg0KCQkJ CQk8Y29kZT5NMkogNUMyPC9jb2RlPg0KCQkJCQk8Y291bnRyeT5DYW5hZGE8L2NvdW50cnk+DQoJ CQkJPC9wb3N0YWw+DQoJCQkJPHBob25lPisxIDQxNiA3NTYgMjMyNCBFeHQuIDMyMTwvcGhvbmU+ DQoJCQkJPGVtYWlsPnNtYWNoYW5pQGRpdmVyc2luZXQuY29tPC9lbWFpbD4NCgkJCTwvYWRkcmVz cz4NCgkJPC9hdXRob3I+DQoJCTxkYXRlIGRheT0iMjciIG1vbnRoPSJKdW5lIiB5ZWFyPSIyMDA4 Ii8+DQoJCTx3b3JrZ3JvdXA+a2V5cHJvdjwvd29ya2dyb3VwPg0KCQk8YWJzdHJhY3Q+DQoJCQk8 dD5UaGlzIGRvY3VtZW50IHNwZWNpZmllcyBhIHN5bW1ldHJpYyBrZXkgZm9ybWF0IGZvciB0cmFu c3BvcnQgDQoJCSAgICAgYW5kIHByb3Zpc2lvbmluZyBvZiBzeW1tZXRyaWMga2V5cyAoZm9yIGV4 YW1wbGUgT25lIFRpbWUgUGFzc3dvcmQgKE9UUCkgc2hhcmVkIHNlY3JldHMgb3IgDQogICAgICAg ICAgICAgICAgICAgICBzeW1tZXRyaWMgY3J5cHRvZ3JhcGhpYyBrZXlzKSB0byBkaWZmZXJlbnQg dHlwZXMgb2YgY3J5cHRvIG1vZHVsZXMgc3VjaCBhcyBhIHN0cm9uZyBhdXRoZW50aWNhdGlvbiBk ZXZpY2UuIA0KICAgICAgICAgICAgICAgICAgICAgVGhlIHN0YW5kYXJkIGtleSB0cmFuc3BvcnQg Zm9ybWF0IGVuYWJsZXMgZW50ZXJwcmlzZXMgdG8gZGVwbG95IGJlc3Qtb2YtYnJlZWQgc29sdXRp b25zIGNvbWJpbmluZyANCiAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHMgZnJvbSBkaWZm ZXJlbnQgdmVuZG9ycyBpbnRvIHRoZSBzYW1lIGluZnJhc3RydWN0dXJlLiA8L3Q+DQoJCQk8dD5U aGlzIHdvcmsgaXMgYSBqb2ludCBlZmZvcnQgYnkgdGhlIG1lbWJlcnMgb2YgT0FUSCAoSW5pdGlh dGl2ZSBmb3IgT3BlbiBBdVRIZW50aWNhdGlvbikNCiAgICAgICAgICAgICAgICAgICAgIHRvIHNw ZWNpZnkgYSBmb3JtYXQgdGhhdCBjYW4gYmUgZnJlZWx5IGRpc3RyaWJ1dGVkIHRvIHRoZSB0ZWNo bmljYWwgY29tbXVuaXR5LiBUaGUgYXV0aG9ycyANCiAgICAgICAgICAgICAgICAgICAgIGJlbGll dmUgdGhhdCBhIGNvbW1vbiBhbmQgc2hhcmVkIHNwZWNpZmljYXRpb24gd2lsbCBmYWNpbGl0YXRl IGFkb3B0aW9uIG9mIHR3by1mYWN0b3IgDQogICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNh dGlvbiBvbiB0aGUgSW50ZXJuZXQgYnkgZW5hYmxpbmcgaW50ZXJvcGVyYWJpbGl0eSBiZXR3ZWVu IGNvbW1lcmNpYWwgYW5kIA0KICAgICAgICAgICAgICAgICAgICAgb3Blbi1zb3VyY2UgaW1wbGVt ZW50YXRpb25zLjwvdD4NCgkJPC9hYnN0cmFjdD4NCgk8L2Zyb250Pg0KCTxtaWRkbGU+DQoJCTxz ZWN0aW9uIHRpdGxlPSJJbnRyb2R1Y3Rpb24iPg0KCQkJPHQ+V2l0aCBpbmNyZWFzaW5nIHVzZSBv ZiBzeW1tZXRyaWMga2V5IGJhc2VkIGF1dGhlbnRpY2F0aW9uIHN5c3RlbXMgc3VjaCBhcyBzeXN0 ZW1zIGJhc2VkIG9uZSB0aW1lIHBhc3N3b3JkIChPVFApIGFuZCBjaGFsbGVuZ2UgDQoJCXJlc3Bv bnNlIG1lY2hhbmlzbXMsIHRoZXJlIGlzIGEgbmVlZCBmb3IgdmVuZG9yIGludGVyb3BlcmFiaWxp dHkgYW5kIGEgc3RhbmRhcmQgZm9ybWF0IGZvciBpbXBvcnRpbmcsIGV4cG9ydGluZyBvciANCgkJ cHJvdmlzaW9uaW5nIHN5bW1ldHJpYyBrZXlzIGZyb20gb25lIHN5c3RlbSB0byBhbm90aGVyLiBU cmFkaXRpb25hbGx5IGF1dGhlbnRpY2F0aW9uIHNlcnZlciB2ZW5kb3JzIA0KCQlhbmQgc2Vydmlj ZSBwcm92aWRlcnMgaGF2ZSB1c2VkIHByb3ByaWV0YXJ5IGZvcm1hdHMgZm9yIGltcG9ydGluZywg ZXhwb3J0aW5nIGFuZCBwcm92aXNpb25pbmcgdGhlc2Uga2V5cyANCgkJaW50byB0aGVpciBzeXN0 ZW1zIG1ha2luZyBpdCBoYXJkIHRvIHVzZSB0b2tlbnMgZnJvbSB2ZW5kb3IgQSB3aXRoIGEgc2Vy dmVyIGZyb20gdmVuZG9yIEIuPC90Pg0KCQkJPHQ+VGhpcyBJbnRlcm5ldCBkcmFmdCBkZXNjcmli ZXMgYSBzdGFuZGFyZCBmb3JtYXQgZm9yIHNlcmlhbGl6aW5nIHN5bW1ldHJpYyBrZXlzIHN1Y2gg YXMgT1RQIHNoYXJlZCBzZWNyZXRzIGZvciBzeXN0ZW0gaW1wb3J0LCBleHBvcnQgb3IgbmV0d29y ay9wcm90b2NvbCB0cmFuc3BvcnQuIA0KCQlUaGUgZ29hbCBpcyB0aGF0IAl0aGUgZm9ybWF0IHdp bGwgZmFjaWxpdGF0ZSBkeW5hbWljIHByb3Zpc2lvbmluZyBhbmQgdHJhbnNmZXIgb2Ygc3ltbWV0 cmljIGtleXMgc3VjaCBhcyBPVFAgc2hhcmVkIHNlY3JldHMgb3IgDQogICAgICAgIGVuY3J5cHRp b24ga2V5cyBvZiBkaWZmZXJlbnQgdHlwZXMuIEluIHRoZSBjYXNlIG9mIE9UUCBzaGFyZWQgc2Vj cmV0cywgdGhlIGZvcm1hdCB3aWxsIGZhY2lsaXRhdGUgDQogICAgICAgIGR5bmFtaWMgcHJvdmlz aW9uaW5nIHVzaW5nIGFuIG9ubGluZSBwcm92aXNpb25pbmcgcHJvdG9jb2wgdG8gZGlmZmVyZW50 IGZsYXZvcnMgb2YgZW1iZWRkZWQgdG9rZW5zIG9yIGFsbG93IA0KICAgICAgICBjdXN0b21lcnMg dG8gaW1wb3J0IG5ldyBvciBleGlzdGluZyB0b2tlbnMgaW4gYmF0Y2ggb3Igc2luZ2xlIGluc3Rh bmNlcyBpbnRvIGEgY29tcGxpYW50IHN5c3RlbS48L3Q+DQoJCQk8dD5UaGlzIGRyYWZ0IGFsc28g c3BlY2lmaWVzIHRoZSBrZXkgYXR0cmlidXRlcyByZXF1aXJlZCBmb3IgY29tcHV0YXRpb24gc3Vj aCBhcyB0aGUgaW5pdGlhbCBldmVudCANCgkJY291bnRlciB1c2VkIGluIHRoZSBIT1RQIGFsZ29y aXRobSA8eHJlZiB0YXJnZXQ9IkhPVFAiLz4uIEl0IGlzIGFsc28gYXBwbGljYWJsZSBmb3Igb3Ro ZXIgDQogICAgICAgIHRpbWUtYmFzZWQgb3IgcHJvcHJpZXRhcnkgYWxnb3JpdGhtcy4gPC90Pg0K CQkJPHQ+VG8gcHJvdmlkZSBhbiBhbmFsb2d5LCBpbiBwdWJsaWMga2V5IGVudmlyb25tZW50cyB0 aGUgUEtDUyMxMiBmb3JtYXQgPHhyZWYgdGFyZ2V0PSJQS0NTMTIiLz4gaXMgY29tbW9ubHkgdXNl ZCBmb3IgDQoJCWltcG9ydGluZyBhbmQgZXhwb3J0aW5nIHByaXZhdGUga2V5cyBhbmQgY2VydGlm aWNhdGVzIGJldHdlZW4gc3lzdGVtcy4gSW4gdGhlIGVudmlyb25tZW50cyBvdXRsaW5lZCANCgkJ aW4gdGhpcyBkb2N1bWVudCB3aGVyZSBPVFAga2V5cyBtYXkgYmUgdHJhbnNwb3J0ZWQgZGlyZWN0 bHkgZG93biB0byBzbWFydGNhcmRzIG9yIGRldmljZXMgDQoJCXdpdGggbGltaXRlZCBjb21wdXRp bmcgY2FwYWJpbGl0aWVzLCBhIGZvcm1hdCB3aXRoIHNtYWxsIChzaXplIGluIGJ5dGVzKSBhbmQg ZXhwbGljaXQgc2hhcmVkIHNlY3JldCANCiAgICAgICAgY29uZmlndXJhdGlvbiBhdHRyaWJ1dGUg aW5mb3JtYXRpb24gaXMgZGVzaXJhYmxlLCBhdm9pZGluZyBjb21wbGV4aXR5IG9mIFBLQ1MjMTIu IEZvciBleGFtcGxlLA0KICAgICAgICBvbmUgd291bGQgaGF2ZSB0byB1c2Ugb3BhcXVlIGRhdGEg d2l0aGluIFBLQ1MjMTIgdG8gY2Fycnkgc2hhcmVkIHNlY3JldCBhdHRyaWJ1dGVzIHVzZWQgZm9y IE9UUCANCiAgICAgICAgY2FsY3VsYXRpb25zLCB3aGVyZWFzIGEgbW9yZSBleHBsaWNpdCBhdHRy aWJ1dGUgc2NoZW1hIGRlZmluaXRpb24gaXMgYmV0dGVyIGZvciBpbnRlcm9wZXJhYmlsaXR5DQog ICAgICAgIGFuZCBlZmZpY2llbmN5LjwvdD4NCgkJPC9zZWN0aW9uPg0KCQk8c2VjdGlvbiB0aXRs ZT0iVGVybWlub2xvZ3kiPg0KICAgICAgICAgIDxzZWN0aW9uIHRpdGxlPSJLZXkgV29yZHMiPg0K CQkJPHQ+VGhlIGtleSB3b3JkcyAiTVVTVCIsICJNVVNUIE5PVCIsICJSRVFVSVJFRCIsICJTSEFM TCIsDQogICAgICAgICAgICAiU0hBTEwgTk9UIiwgIlNIT1VMRCIsICJTSE9VTEQgTk9UIiwgIlJF Q09NTUVOREVEIiwgIk1BWSIsDQogICAgICAgICAgICBhbmQgIk9QVElPTkFMIiBpbiB0aGlzIGRv Y3VtZW50IGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcw0KICAgICAgICAgICAgZGVzY3JpYmVkIGlu IDx4cmVmIHRhcmdldD0iUkZDMjExOSIvPi48L3Q+DQogICAgICAgICAgPC9zZWN0aW9uPg0KICAg ICAgICAgICAgPHNlY3Rpb24gdGl0bGU9IkRlZmluaXRpb25zIj4NCiAgICAgICAgICAgICAgPHQ+ VGhpcyBzZWN0aW9uIGRlZmluZXMgdGVybXMgdXNlZCBpbiB0aGlzIGRvY3VtZW50LiBUaGUgc2Ft ZSB0ZXJtcyANCiAgICAgICAgICAgICAgICBtYXkgYmUgZGVmaW5lZCBkaWZmZXJlbnRseSBpbiBv dGhlciBkb2N1bWVudHMuDQogICAgICAgICAgICAgICAgPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0K ICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkF1dGhlbnRpY2F0aW9uIFRva2VuOiI+QSBw aHlzaWNhbCBkZXZpY2UgdGhhdCBhbiBhdXRob3JpemVkIHVzZXIgb2YgDQogICAgICAgICAgICAg ICAgICAgIGNvbXB1dGVyIHNlcnZpY2VzIGlzIGdpdmVuIHRvIGFpZCBpbiBhdXRoZW50aWNhdGlv bi4gVGhlIHRlcm0gbWF5IGFsc28gcmVmZXIgdG8gDQogICAgICAgICAgICAgICAgICBzb2Z0d2Fy ZSB0b2tlbnMuPC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkJ1bGsgUHJvdmlz aW9uaW5nOiI+VHJhbnNmZXJyaW5nIG11bHRpcGxlIGtleXMgbGlua2VkIHRvIG11bHRpcGxlIGRl dmljZXMgaW4gYSBzaW5nbGUgZXhlY3V0aW9uIHN0ZXAgd2l0aGluIG9uZSBzaW5nbGUgUFNLQyBL ZXlDb250YWluZXI8L3Q+DQogICAgICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ3J5cHRvZ3Jh cGhpYyBNb2R1bGU6Ij5BIGNvbXBvbmVudCBvZiBhbiBhcHBsaWNhdGlvbiwgd2hpY2ggZW5hYmxl cw0KICAgICAgIHN5bW1ldHJpYyBrZXkgY3J5cHRvZ3JhcGhpYyBmdW5jdGlvbmFsaXR5PC90Pg0K ICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNyeXB0b2dyYXBoaWMgS2V5OiI+QSBwYXJh bWV0ZXIgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgY3J5cHRvZ3JhcGhpYyANCiAgICAgICAg ICAgICAgICAgICAgYWxnb3JpdGhtIHRoYXQgZGV0ZXJtaW5lcyBpdHMgb3BlcmF0aW9uIGluIHN1 Y2ggYSB3YXkgdGhhdCBhbiBlbnRpdHkgd2l0aCBrbm93bGVkZ2UgDQogICAgICAgICAgICAgICAg ICAgIG9mIHRoZSBrZXkgY2FuIHJlcHJvZHVjZSBvciByZXZlcnNlIHRoZSBvcGVyYXRpb24sIHdo aWxlIGFuIGVudGl0eSB3aXRob3V0IGtub3dsZWRnZSANCiAgICAgICAgICAgICAgICAgIG9mIHRo ZSBrZXkgY2Fubm90IChzZWUgPHhyZWYgdGFyZ2V0PSJOSVNULVNQODAwLTU3Ii8+KTwvdD4NCiAg ICAgICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDcnlwdG9ncmFwaGljIFRva2VuOiI+U2VlIEF1 dGhlbnRpY2F0aW9uIFRva2VuPC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkRl dmljZToiPkEgcGh5c2ljYWwgcGllY2Ugb2YgaGFyZHdhcmUsIG9yIGEgc29mdHdhcmUgZnJhbWV3 b3JrLCB0aGF0DQogICAgICAgICAgICAgICAgICBob3N0cyBzeW1tZXRyaWMga2V5czwvdD4NCiAg ICAgICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJEZXZpY2VJbmZvOiI+QSBzZXQgb2YgZWxlbWVu dHMgd2hvc2UgdmFsdWVzIGNvbWJpbmVkIHVuaXF1ZWx5IGlkZW50aWZ5IGEgZGV2aWNlIGUuZy4g TWFudWZhY3R1cmUgJ0FDTUUgYW5kIFNlcmlhbG51bWJlciAnMTIzNDU2NzgnPC90Pg0KICAgICAg ICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkR5bmFtaWMgUHJvdmlzaW9uaW5nOiI+VXNhZ2Ugb2Yg YSBwcm90b2NvbCwgc3VjaCBhcyBEU0tQUCwgdG8gbWFrZSBhIGtleSBjb250YWluZXIgYXZhaWxh YmxlIHRvIGEgcmVjaXBpZW50PC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkVu Y3J5cHRpb24gS2V5OiI+QSBrZXkgdXNlZCB0byBlbmNyeXB0IGtleTwvdD4NCiAgICAgICAgICAg ICAgICAgIDx0IGhhbmdUZXh0PSJLZXk6Ij5TZWUgQ3J5cHRvZ3JhcGhpYyBLZXk8L3Q+DQogICAg ICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iSGFyZHdhcmUgVG9rZW46Ij5TZWUgQXV0aGVudGlj YXRpb24gVG9rZW48L3Q+DQogICAgICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iS2V5IEFsZ29y aXRobToiPkEgd2VsbC1kZWZpbmVkIGNvbXB1dGF0aW9uYWwgcHJvY2VkdXJlIHRoYXQgdGFrZXMg DQogICAgICAgICAgICAgICAgICB2YXJpYWJsZSBpbnB1dHMgaW5jbHVkaW5nIGEgY3J5cHRvZ3Jh cGhpYyBrZXkgYW5kIHByb2R1Y2VzIGFuIG91dHB1dC48L3Q+DQogICAgICAgICAgICAgICAgICA8 dCBoYW5nVGV4dD0iS2V5IENvbnRhaW5lcjoiPkFuIG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBz eW1tZXRyaWMga2V5cyBhbmQgdGhlaXINCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgZm9y IHNldCBvZiBkZXZpY2VzPC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IktleSBJ RCAoS2V5SUQpOiI+QSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHN5bW1ldHJpYyBrZXk8L3Q+ DQogICAgICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iS2V5IElzc3VlcjoiPkFuIG9yZ2FuaXph dGlvbiB0aGF0IGlzc3VlcyBzeW1tZXRyaWMga2V5cyB0byBlbmQtdXNlcnM8L3Q+DQogICAgICAg ICAgICAgICAgICA8dCBoYW5nVGV4dD0iS2V5IFR5cGU6Ij5UaGUgdHlwZSBvZiBzeW1tZXRyaWMg a2V5IGNyeXB0b2dyYXBoaWMgbWV0aG9kcyBmb3Igd2hpY2gNCiAgICAgICAgICAgICAgICAgICAg dGhlIGtleSB3aWxsIGJlIHVzZWQgKGUuZy4sIE9BVEggSE9UUCBvciBSU0EgU2VjdXJJRCBhdXRo ZW50aWNhdGlvbiwgQUVTIGVuY3J5cHRpb24sIA0KICAgICAgICAgICAgICAgICAgZXRjLik8L3Q+ DQogICAgICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iU2VjcmV0IEtleToiPlRoZSBzeW1tZXRy aWMga2V5IGRhdGE8L3Q+DQogICAgICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iU29mdHdhcmUg VG9rZW46Ij5BIHR5cGUgb2YgYXV0aGVudGljYXRpb24gdG9rZW4gdGhhdCBpcyBzdG9yZWQgb24g DQogICAgICAgICAgICAgICAgICAgIGEgZ2VuZXJhbC1wdXJwb3NlIGVsZWN0cm9uaWMgZGV2aWNl IHN1Y2ggYXMgYSBkZXNrdG9wIGNvbXB1dGVyLCBsYXB0b3AsIFBEQSwgDQogICAgICAgICAgICAg ICAgICBvciBtb2JpbGUgcGhvbmUgPC90Pg0KICAgICAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IlRva2VuOiI+U2VlIEF1dGhlbnRpY2F0aW9uIFRva2VuPC90Pg0KICAgICAgICAgICAgICAgICAg PHQgaGFuZ1RleHQ9IlVzZXI6Ij5UaGUgcGVyc29uIG9yIGNsaWVudCB0byB3aG9tIGRldmljZXMg YXJlIGlzc3VlZDwvdD4NCiAgICAgICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJVc2VyIElEOiI+ QSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHVzZXIgb3IgY2xpZW50PC90Pg0KICAgICAgICAg ICAgICA8L2xpc3Q+PC90PiAgICAgICAgICAgIA0KICAgICAgICAgIDwvc2VjdGlvbj4NCgkJPC9z ZWN0aW9uPg0KCQ0KCQkNCgkJPHNlY3Rpb24gdGl0bGU9IlVzZSBDYXNlcyI+DQoJCQ0KCQkJPHQ+ VGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBhIGNvbXByZWhlbnNpdmUgbGlzdCBvZiB1c2UgY2FzZXMg dGhhdCBpbnNwaXJlZCB0aGUgZGV2ZWxvcG1lbnQgb2YgDQoJCXRoaXMgc3BlY2lmaWNhdGlvbi4g VGhlc2UgcmVxdWlyZW1lbnRzIHdlcmUgdXNlZCB0byBkZXJpdmUgdGhlIHByaW1hcnkgcmVxdWly ZW1lbnQgdGhhdCBkcm92ZSB0aGUgZGVzaWduLg0KCQlUaGVzZSByZXF1aXJlbWVudHMgYXJlIGNv dmVyZWQgaW4gdGhlIG5leHQgc2VjdGlvbi48L3Q+DQoJCQk8dD5UaGVzZSB1c2UgY2FzZXMgYWxz byBoZWxwIGluIHVuZGVyc3RhbmRpbmcgdGhlIGFwcGxpY2FiaWxpdHkgb2YgdGhpcyBzcGVjaWZp Y2F0aW9uIHRvIHJlYWwgd29ybGQgc2l0dWF0aW9ucy48L3Q+DQoJCQk8c2VjdGlvbiB0aXRsZT0i T25saW5lIFVzZSBDYXNlcyI+DQoJCQkNCgkJCQk8dD5UaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRo ZSB1c2UgY2FzZXMgcmVsYXRlZCB0byBwcm92aXNpb25pbmcgdGhlIGtleXMgDQoJCXVzaW5nIGFu IG9ubGluZSBwcm92aXNpb25pbmcgcHJvdG9jb2wgc3VjaCBhcyA8eHJlZiB0YXJnZXQ9IkRTS1BQ Ii8+PC90Pg0KCQkNCgkJCQk8c2VjdGlvbiB0aXRsZT0iVHJhbnNwb3J0IG9mIGtleXMgZnJvbSBT ZXJ2ZXIgdG8gQ3J5cHRvIE1vZHVsZSI+DQoJCQkJCTx0PkZvciBleGFtcGxlLCBhIG1vYmlsZSBk ZXZpY2UgdXNlciB3YW50cyB0byBvYnRhaW4gYSBzeW1tZXRyaWMga2V5IGZvciB1c2Ugd2l0aCBh IGNyeXB0b21vZHVsZSBvbiB0aGUgZGV2aWNlLiAgVGhlIGNyeXB0b21vZHVsZSBjbGllbnQgZnJv bSB2ZW5kb3IgQSBpbml0aWF0ZXMgdGhlIHByb3Zpc2lvbmluZyBwcm9jZXNzIGFnYWluc3QgYSBw cm92aXNpb25pbmcgc3lzdGVtIGZyb20gdmVuZG9yIEIgdXNpbmcgYSBzdGFuZGFyZHMtYmFzZWQg cHJvdmlzaW9uaW5nIHByb3RvY29sIHN1Y2ggYXMgPHhyZWYgdGFyZ2V0PSJEU0tQUCIvPi4gVGhl IHByb3Zpc2lvbmluZyBlbnRpdHkgZGVsaXZlcnMgb25lIG9yIG1vcmUga2V5cyBpbiBhIHN0YW5k YXJkIGZvcm1hdCB0aGF0IGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIG1vYmlsZSBkZXZpY2UuPC90 Pg0KCQkNCgkJCQkJPHQ+Rm9yIGV4YW1wbGUsIGluIGEgdmFyaWF0aW9uIG9mIHRoZSBhYm92ZSwg aW5zdGVhZCBvZiB0aGUgdXNlcidzIG1vYmlsZSBwaG9uZSwgYSBrZXkgDQoJCWlzIHByb3Zpc2lv bmVkIGluIHRoZSB1c2VyJ3Mgc29mdCB0b2tlbiBhcHBsaWNhdGlvbiBvbiBhIGxhcHRvcCB1c2lu ZyBhIA0KCQluZXR3b3JrLWJhc2VkIG9ubGluZSBwcm90b2NvbC4gQXMgYmVmb3JlLCB0aGUgcHJv dmlzaW9uaW5nIHN5c3RlbSBkZWxpdmVycyBhIGtleSBpbiBhIHN0YW5kYXJkIGZvcm1hdCB0aGF0 IGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIHNvZnQgdG9rZW4gb24gdGhlIFBDLjwvdD4NCg0KCQkJ CQk8dD5Gb3IgZXhhbXBsZSwgdGhlIGVuZC11c2VyIG9yIHRoZSBrZXkgaXNzdWVyIHdhbnRzIHRv IHVwZGF0ZSBvciBjb25maWd1cmUgYW4gZXhpc3RpbmcgDQogICAgICAgICAgICAgICAgICAgIGtl eSBpbiB0aGUgY3J5cHRvbW9kdWxlIGFuZCByZXF1ZXN0cyBhIHJlcGxhY2VtZW50IGtleSBjb250 YWluZXIuIA0KICAgICAgICAgICAgICAgICAgICBUaGUgY29udGFpbmVyIG1heSBvciBtYXkgbm90 IGluY2x1ZGUgYSBuZXcga2V5IGFuZCBtYXkgaW5jbHVkZSBuZXcgb3IgdXBkYXRlZCANCiAgICAg ICAgICAgICAgICAgICAga2V5IGF0dHJpYnV0ZXMgc3VjaCBhcyBhIG5ldyBjb3VudGVyIHZhbHVl IGluIEhPVFAga2V5IGNhc2UsIA0KICAgICAgICAgICAgICAgICAgICBhIG1vZGlmaWVkIHJlc3Bv bnNlIGZvcm1hdCBvciBsZW5ndGgsIGEgbmV3IGZyaWVuZGx5IG5hbWUsIGV0Yy48L3Q+DQoNCgkJ CQk8L3NlY3Rpb24+DQoNCgkJCQk8c2VjdGlvbiB0aXRsZT0iVHJhbnNwb3J0IG9mIGtleXMgZnJv bSBDcnlwdG8gTW9kdWxlIHRvIENyeXB0byBNb2R1bGUiPg0KCQkJCQk8dD5Gb3IgZXhhbXBsZSwg YSB1c2VyIHdhbnRzIHRvIHRyYW5zcG9ydCBhIGtleSBmcm9tIG9uZSBjcnlwdG9tb2R1bGUgdG8g YW5vdGhlci4gIFRoZXJlIG1heSBiZSB0d28gY3J5cHRvZ3JhcGhpYyBtb2R1bGVzLCBvbmUgb24g YSBjb21wdXRlciBvbmUgb24gYSBtb2JpbGUgcGhvbmUsIGFuZCB0aGUgdXNlciB3YW50cyB0byB0 cmFuc3BvcnQgYSBrZXkgZnJvbSB0aGUgY29tcHV0ZXIgdG8gdGhlIG1vYmlsZSBwaG9uZS4gIFRo ZSB1c2VyIGNhbiBleHBvcnQgdGhlIGtleSBhbmQgcmVsYXRlZCBkYXRhIGluIGEgc3RhbmRhcmQg Zm9ybWF0IGZvciBpbnB1dCBpbnRvIHRoZSBvdGhlciBjcnlwdG9tb2R1bGUuPC90Pg0KCQkJCTwv c2VjdGlvbj4NCg0KCQkJCTxzZWN0aW9uIHRpdGxlPSJUcmFuc3BvcnQgb2Yga2V5cyBmcm9tIENy eXB0byBNb2R1bGUgdG8gU2VydmVyIj4NCgkJCQkJPHQ+Rm9yIGV4YW1wbGUsIGEgdXNlciB3YW50 cyB0byBhY3RpdmF0ZSBhbmQgdXNlIGEgbmV3IGtleSBhbmQgcmVsYXRlZCBkYXRhIGFnYWluc3Qg YSB2YWxpZGF0aW9uIHN5c3RlbSB0aGF0IGlzIG5vdCBhd2FyZSBvZiB0aGlzIGtleS4gIFRoaXMg a2V5IG1heSBiZSBlbWJlZGRlZCBpbiB0aGUgY3J5cHRvbW9kdWxlIChlLmcuICBTRCBjYXJkLCBV U0IgZHJpdmUpIHRoYXQgdGhlIHVzZXIgaGFzIHB1cmNoYXNlZCBhdCB0aGUgbG9jYWwgZWxlY3Ry b25pY3MgcmV0YWlsZXIuICBBbG9uZyB3aXRoIHRoZSBjcnlwdG9tb2R1bGUsIHRoZSB1c2VyIG1h eSBnZXQgdGhlIGtleSBvbiBhIENEIG9yIGEgZmxvcHB5IGluIGEgc3RhbmRhcmQgZm9ybWF0LiAg VGhlIHVzZXIgY2FuIG5vdyB1cGxvYWQgdmlhIGEgc2VjdXJlIG9ubGluZSBjaGFubmVsIG9yIGlt cG9ydCB0aGlzIGtleSBhbmQgcmVsYXRlZCBkYXRhIGludG8gdGhlIG5ldyB2YWxpZGF0aW9uIHN5 c3RlbSBhbmQgc3RhcnQgdXNpbmcgdGhlIGtleS48L3Q+CQkJCQ0KPC9zZWN0aW9uPg0KCQkJCQ0K CQkJCTxzZWN0aW9uIHRpdGxlPSJTZXJ2ZXIgdG8gc2VydmVyIEJ1bGsgaW1wb3J0L2V4cG9ydCBv ZiBrZXlzIj4NCgkJCQkJPHQ+RnJvbSB0aW1lIHRvIHRpbWUsIGEga2V5IG1hbmFnZW1lbnQgc3lz dGVtIG1heSBiZSByZXF1aXJlZCB0byBpbXBvcnQgb3IgZXhwb3J0IGtleXMgaW4gYnVsayBmcm9t IG9uZSBlbnRpdHkgdG8gYW5vdGhlci4gPC90Pg0KCQkJCQk8dD5Gb3IgZXhhbXBsZSwgaW5zdGVh ZCBvZiBpbXBvcnRpbmcga2V5cyBmcm9tIGEgbWFudWZhY3R1cmVyIHVzaW5nIGEgZmlsZSwgYSB2 YWxpZGF0aW9uIHNlcnZlciBtYXkgZG93bmxvYWQgdGhlIGtleXMgdXNpbmcgYW4gb25saW5lIHBy b3RvY29sLiAgVGhlIGtleXMgY2FuIGJlIGRvd25sb2FkZWQgaW4gYSBzdGFuZGFyZCBmb3JtYXQg dGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IGEgdmFsaWRhdGlvbiBzeXN0ZW0uPC90Pg0KCQkJCQk8 dD5Gb3IgZXhhbXBsZSwgaW4gYSB2YXJpYXRpb24gb2YgdGhlIGFib3ZlLCBhbiBPVEEga2V5IHBy b3Zpc2lvbmluZyBnYXRld2F5IHRoYXQgcHJvdmlzaW9ucyBrZXlzIHRvIG1vYmlsZSBwaG9uZXMg bWF5IG9idGFpbiBrZXkgbWF0ZXJpYWwgZnJvbSBhIGtleSBpc3N1ZXIgdXNpbmcgYW4gb25saW5l IHByb3RvY29sLiAgVGhlIGtleXMgYXJlIGRlbGl2ZXJlZCBpbiBhIHN0YW5kYXJkIGZvcm1hdCB0 aGF0IGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIGtleSBwcm92aXNpb25pbmcgZ2F0ZXdheSBhbmQg c3Vic2VxdWVudGx5IHNlbnQgdG8gdGhlIGVuZC11c2VyJ3MgbW9iaWxlIHBob25lLjwvdD4NCgkJ CQk8L3NlY3Rpb24+DQoJCQk8L3NlY3Rpb24+DQoJCQkNCgkJCTxzZWN0aW9uIHRpdGxlPSJPZmZs aW5lIFVzZSBDYXNlcyI+DQoJCQkJPHQ+VGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgdXNlIGNh c2VzIHJlbGF0aW5nIHRvIG9mZmxpbmUgdHJhbnNwb3J0IG9mIGtleXMgZnJvbSBvbmUgc3lzdGVt IHRvIGFub3RoZXIsIA0KCQl1c2luZyBzb21lIGZvcm0gb2YgZXhwb3J0IGFuZCBpbXBvcnQgbW9k ZWwuIDwvdD4NCg0KCQkJCTxzZWN0aW9uIHRpdGxlPSJTZXJ2ZXIgdG8gc2VydmVyIEJ1bGsgaW1w b3J0L2V4cG9ydCBvZiBrZXlzIj4NCgkJCQkJPHQ+Rm9yIGV4YW1wbGUsIGNyeXB0byBtb2R1bGVz IHN1Y2ggYXMgT1RQIGF1dGhlbnRpY2F0aW9uIHRva2VucywgbWF5IGhhdmUgdGhlaXIgc3ltbWV0 cmljIGtleXMgaW5pdGlhbGl6ZWQgZHVyaW5nIHRoZSBtYW51ZmFjdHVyaW5nIHByb2Nlc3MgaW4g YnVsaywgcmVxdWlyaW5nIGNvcGllcyBvZiB0aGUga2V5cyBhbmQgYWxnb3JpdGhtIGRhdGEgdG8g YmUgbG9hZGVkIGludG8gdGhlIGF1dGhlbnRpY2F0aW9uIHN5c3RlbSB0aHJvdWdoIGEgZmlsZSBv biBwb3J0YWJsZSBtZWRpYS4gIFRoZSBtYW51ZmFjdHVyZXIgcHJvdmlkZXMgdGhlIGtleXMgYW5k IHJlbGF0ZWQgZGF0YSBpbiB0aGUgZm9ybSBvZiBhIGZpbGUgY29udGFpbmluZyByZWNvcmRzIGlu IHN0YW5kYXJkIGZvcm1hdCwgdHlwaWNhbGx5IG9uIGEgQ0QuICBOb3RlIHRoYXQgdGhlIHRva2Vu IG1hbnVmYWN0dXJlciBhbmQgdGhlIHZlbmRvciBmb3IgdGhlIHZhbGlkYXRpb24gc3lzdGVtIG1h eSBiZSB0aGUgc2FtZSBvciBkaWZmZXJlbnQuIFNvbWUgY3J5cHRvIG1vZHVsZXMgd2lsbCBhbGxv dyBsb2NhbCBQSU4gbWFuYWdlbWVudCAodGhlIGRldmljZSB3aWxsIGhhdmUgYSBQSU4gcGFkKSBo ZW5jZSByYW5kb20gaW5pdGlhbCBQSU5zIHNldCBhdCBtYW51ZmFjdHVyaW5nIHNob3VsZCBiZSB0 cmFuc21pdHRlZCB0b2dldGhlciB3aXRoIHRoZSByZXNwZWN0aXZlIGtleXMgdGhleSBwcm90ZWN0 LjwvdD4NCgkJCQkJPHQ+Rm9yIGV4YW1wbGUsIGFuIGVudGVycHJpc2Ugd2FudHMgdG8gcG9ydCBr ZXlzIGFuZCByZWxhdGVkIGRhdGEgZnJvbSBhbiBleGlzdGluZyB2YWxpZGF0aW9uIHN5c3RlbSBB IGludG8gYSBkaWZmZXJlbnQgdmFsaWRhdGlvbiBzeXN0ZW0gQi4gVGhlIGV4aXN0aW5nIHZhbGlk YXRpb24gc3lzdGVtIHByb3ZpZGVzIHRoZSBlbnRlcnByaXNlIHdpdGggYSBmdW5jdGlvbmFsaXR5 IHRoYXQgZW5hYmxlcyBleHBvcnQgb2Yga2V5cyBhbmQgcmVsYXRlZCBkYXRhIChlLmcuIGZvciBP VFAgYXV0aGVudGljYXRpb24gdG9rZW5zKSBpbiBhIHN0YW5kYXJkIGZvcm1hdC4gIFNpbmNlIHRo ZSBPVFAgdG9rZW5zIGFyZSBpbiB0aGUgc3RhbmRhcmQgZm9ybWF0LCB0aGUgZW50ZXJwcmlzZSBj YW4gaW1wb3J0IHRoZSB0b2tlbiByZWNvcmRzIGludG8gdGhlIG5ldyB2YWxpZGF0aW9uIHN5c3Rl bSBCIGFuZCBzdGFydCB1c2luZyB0aGUgZXhpc3RpbmcgdG9rZW5zLiAgTm90ZSB0aGF0IHRoZSB2 ZW5kb3JzIGZvciB0aGUgdHdvIHZhbGlkYXRpb24gc3lzdGVtcyBtYXkgYmUgdGhlIHNhbWUgb3Ig ZGlmZmVyZW50LiA8L3Q+DQoJCQk8L3NlY3Rpb24+CQkJCQkNCgkJCQkNCgkJCTwvc2VjdGlvbj4N CgkJPC9zZWN0aW9uPg0KCQk8c2VjdGlvbiB0aXRsZT0iUmVxdWlyZW1lbnRzIj4NCgkJCTx0PlRo aXMgc2VjdGlvbiBvdXRsaW5lcyB0aGUgbW9zdCByZWxldmFudCByZXF1aXJlbWVudHMgdGhhdCBh cmUgdGhlIGJhc2lzIG9mIA0KCQl0aGlzIHdvcmsuIFNldmVyYWwgb2YgdGhlIHJlcXVpcmVtZW50 cyB3ZXJlIGRlcml2ZWQgZnJvbSB1c2UgY2FzZXMgZGVzY3JpYmVkIGFib3ZlLiANCg0KCQk8bGlz dCBzdHlsZT0iZm9ybWF0IFIlZDoiPg0KCQkJCQk8dD5UaGUgZm9ybWF0IE1VU1Qgc3VwcG9ydCB0 cmFuc3BvcnQgb2YgbXVsdGlwbGUgdHlwZXMgb2Ygc3ltbWV0cmljIGtleXMgYW5kIHJlbGF0ZWQg YXR0cmlidXRlcyBmb3IgYWxnb3JpdGhtcyANCgkJaW5jbHVkaW5nIEhPVFAsIG90aGVyIE9UUCwg Y2hhbGxlbmdlLXJlc3BvbnNlLCBldGMuPC90Pg0KCQkJCQk8dD5UaGUgZm9ybWF0IE1VU1QgaGFu ZGxlIHRoZSBzeW1tZXRyaWMga2V5IGl0c2VsZiBhcyB3ZWxsIG9mIGF0dHJpYnV0ZXMgdGhhdCBh cmUgDQoJCXR5cGljYWxseSBhc3NvY2lhdGVkIHdpdGggc3ltbWV0cmljIGtleXMuIFNvbWUgb2Yg dGhlc2UgYXR0cmlidXRlcyBtYXkgYmUNCg0KCQkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJ CQkJCTx0PlVuaXF1ZSBLZXkgSWRlbnRpZmllcjwvdD4NCgkJCQkJCQk8dD5Jc3N1ZXIgaW5mb3Jt YXRpb248L3Q+DQoJCQkJCQkJPHQ+QWxnb3JpdGhtIElEPC90Pg0KCQkJCQkJCTx0PkFsZ29yaXRo bSBtb2RlPC90Pg0KCQkJCQkJCTx0Pklzc3VlciBOYW1lPC90Pg0KCQkJCQkJCTx0PktleSBmcmll bmRseSBuYW1lPC90Pg0KCQkJCQkJCTx0PkV2ZW50IGNvdW50ZXIgdmFsdWUgKG1vdmluZyBmYWN0 b3IgZm9yIE9UUCBhbGdvcml0aG1zKTwvdD4NCgkJCQkJCQk8dD5UaW1lIHZhbHVlPC90Pg0KCQkJ CQkJPC9saXN0Pg0KCQkJCQk8L3Q+DQoJCQkJCTx0PlRoZSBmb3JtYXQgU0hPVUxEIHN1cHBvcnQg Ym90aCBvZmZsaW5lIGFuZCBvbmxpbmUgc2NlbmFyaW9zLiBUaGF0IGlzIGl0IHNob3VsZCBiZSAN CgkJc2VyaWFsaXphYmxlIHRvIGEgZmlsZSBhcyB3ZWxsIGFzIGl0IHNob3VsZCBiZSBwb3NzaWJs ZSB0byB1c2UgdGhpcyBmb3JtYXQgaW4gb25saW5lIA0KCQlwcm92aXNpb25pbmcgcHJvdG9jb2xz IHN1Y2ggYXMgPHhyZWYgdGFyZ2V0PSJEU0tQUCIvPjwvdD4NCgkJCQkJPHQ+VGhlIGZvcm1hdCBT SE9VTEQgYWxsb3cgYnVsayByZXByZXNlbnRhdGlvbiBvZiBzeW1tZXRyaWMga2V5czwvdD4NCgkJ CQkJPHQ+VGhlIGZvcm1hdCBTSE9VTEQgYWxsb3cgYnVsayByZXByZXNlbnRhdGlvbiBvZiBQSU5z IHJlbGF0ZWQgdG8gc3BlY2lmaWMga2V5czwvdD4NCgkJCQkJPHQ+VGhlIGZvcm1hdCBTSE9VTEQg YmUgcG9ydGFibGUgdG8gdmFyaW91cyBwbGF0Zm9ybXMuIEZ1cnRoZXJtb3JlLCBpdCBTSE9VTEQg YmUgDQoJCWNvbXB1dGF0aW9uYWxseSBlZmZpY2llbnQgdG8gcHJvY2Vzcy48L3Q+DQoJCQkJCTx0 PlRoZSBmb3JtYXQgTVVTVCBwcm92aWRlIGFwcHJvcHJpYXRlIGxldmVsIG9mIHNlY3VyaXR5IGlu IHRlcm1zIG9mIGRhdGEgZW5jcnlwdGlvbiANCgkJYW5kIGRhdGEgaW50ZWdyaXR5LiA8L3Q+DQoJ CQkJCTx0PkZvciBvbmxpbmUgc2NlbmFyaW9zIHRoZSBmb3JtYXQgU0hPVUxEIE5PVCByZWx5IG9u IHRyYW5zcG9ydCBsZXZlbCBzZWN1cml0eSANCgkJKGUuZy4sIFNTTC9UTFMpIGZvciBjb3JlIHNl Y3VyaXR5IHJlcXVpcmVtZW50cy48L3Q+DQoJCQkJCTx0PlRoZSBmb3JtYXQgU0hPVUxEIGJlIGV4 dGVuc2libGUuIEl0IFNIT1VMRCBlbmFibGUgZXh0ZW5zaW9uIHBvaW50cyBhbGxvd2luZyANCgkJ dmVuZG9ycyB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgYXR0cmlidXRlcyBpbiB0aGUgZnV0dXJlLjwv dD4NCgkJCQkJPHQ+VGhlIGZvcm1hdCBTSE9VTEQgYWxsb3cgZm9yIGRpc3RyaWJ1dGlvbiBvZiBr ZXkgZGVyaXZhdGlvbiBkYXRhIHdpdGhvdXQgDQoJCXRoZSBhY3R1YWwgc3ltbWV0cmljIGtleSBp dHNlbGYuIFRoaXMgaXMgdG8gc3VwcG9ydCBzeW1tZXRyaWMga2V5IG1hbmFnZW1lbnQgc2NoZW1l cyANCgkJdGhhdCByZWx5IG9uIGtleSBkZXJpdmF0aW9uIGFsZ29yaXRobXMgYmFzZWQgb24gYSBw cmUtcGxhY2VkIG1hc3RlciBrZXkuIFRoZSBrZXkgDQoJCWRlcml2YXRpb24gZGF0YSB0eXBpY2Fs bHkgY29uc2lzdHMgb2YgYSByZWZlcmVuY2UgdG8gdGhlIGtleSwgcmF0aGVyIHRoYW4gdGhlIGtl eSB2YWx1ZSBpdHNlbGYuPC90Pg0KCQkJCQk8dD5UaGUgZm9ybWF0IFNIT1VMRCBhbGxvdyBmb3Ig YWRkaXRpb25hbCBsaWZlY3ljbGUgbWFuYWdlbWVudCBvcGVyYXRpb25zIA0KCQlzdWNoIGFzIGNv dW50ZXIgcmVzeW5jaHJvbml6YXRpb24uIFN1Y2ggcHJvY2Vzc2VzIHJlcXVpcmUgY29uZmlkZW50 aWFsaXR5IGJldHdlZW4gY2xpZW50IA0KCQlhbmQgc2VydmVyLCB0aHVzIGNvdWxkIHVzZSBhIGNv bW1vbiBzZWN1cmUgY29udGFpbmVyIGZvcm1hdCwgd2l0aG91dCB0aGUgdHJhbnNmZXIgb2Yga2V5 IG1hdGVyaWFsLjwvdD4NCgkJCQkJPHQ+VGhlIGZvcm1hdCBNVVNUIHN1cHBvcnQgdGhlIHVzZSBv ZiBwcmUtc2hhcmVkIHN5bW1ldHJpYyBrZXlzIHRvIGVuc3VyZSBjb25maWRlbnRpYWxpdHkgb2Yg DQoJCXNlbnNpdGl2ZSBkYXRhIGVsZW1lbnRzLiA8L3Q+DQoJCQkJCTx0PlRoZSBmb3JtYXQgTVVT VCBzdXBwb3J0IGEgcGFzc3dvcmQtYmFzZWQgZW5jcnlwdGlvbiAoUEJFKSA8eHJlZiB0YXJnZXQ9 IlBLQ1M1Ii8+IHNjaGVtZSB0byBlbnN1cmUgDQoJCXNlY3VyaXR5IG9mIHNlbnNpdGl2ZSBkYXRh IGVsZW1lbnRzLiBUaGlzIGlzIGEgd2lkZWx5IHVzZWQgbWV0aG9kIGZvciB2YXJpb3VzIHByb3Zp c2lvbmluZyBzY2VuYXJpb3MuPC90Pg0KCQkJCQk8dD5UaGUgZm9ybWF0IFNIT1VMRCBzdXBwb3J0 IGFzeW1tZXRyaWMgZW5jcnlwdGlvbiBhbGdvcml0aG1zIHN1Y2ggYXMgUlNBIHRvIGVuc3VyZSAN CgkJZW5kLXRvLWVuZCBzZWN1cml0eSBvZiBzZW5zaXRpdmUgZGF0YSBlbGVtZW50cy4gVGhpcyBp cyB0byBzdXBwb3J0IHNjZW5hcmlvcyANCgkJd2hlcmUgYSBwcmUtc2V0IHNoYXJlZCBlbmNyeXB0 aW9uIGtleSBpcyBkaWZmaWN1bHQgdG8gdXNlLiA8L3Q+DQoJCQkJPC9saXN0Pg0KCQkJPC90Pg0K CQk8L3NlY3Rpb24+DQoJCTxzZWN0aW9uIHRpdGxlPSJQb3J0YWJsZSBLZXkgY29udGFpbmVyIGRl ZmluaXRpb24iPg0KCQkJPHQ+VGhlIHBvcnRhYmxlIGtleSBjb250YWluZXIgaXMgYmFzZWQgb24g YW4gWE1MIHNjaGVtYSBkZWZpbml0aW9uIGFuZCBjb250YWlucyB0aGUgZm9sbG93aW5nIG1haW4g ZW50aXRpZXM6IA0KCQk8bGlzdCBzdHlsZT0ibnVtYmVycyI+DQoJCQkJCTx0PktleUNvbnRhaW5l ciBlbnRpdHkgYXMgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9IktleUNvbnRhaW5lckVudGl0eSIv Pg0KCQkJCQk8L3Q+DQoJCQkJCTx0PktleVByb3BlcnRpZXMgZW50aXR5IGFzIGRlZmluZWQgaW4g PHhyZWYgdGFyZ2V0PSJLZXlQcm9wZXJ0aWVzRW50aXR5Ii8+DQoJCQkJCTwvdD4NCgkJCQkJPHQ+ RGV2aWNlIGVudGl0eSBhcyBkZWZpbmVkIGluIDx4cmVmIHRhcmdldD0iRGV2aWNlRW50aXR5Ii8+ DQoJCQkJCTwvdD4NCgkJCQkJPHQ+S2V5IGVudGl0eSBhcyBkZWZpbmVkIGluIDx4cmVmIHRhcmdl dD0iS2V5RW50aXR5Ii8+DQoJCQkJCTwvdD4NCgkJCQk8L2xpc3Q+DQoJCQk8L3Q+DQoJCQk8dD5B ZGRpdGlvbmFsbHkgb3RoZXIgWE1MIHNjaGVtYSB0eXBlcyBoYXZlIGJlZW4gZGVmaW5lZCBhbmQg YXJlIGRldGFpbGVkIGluIHRoZSByZWxldmFudCBzdWJzZWN0aW9ucyBvZiB0aGlzIGRvY3VtZW50 PC90Pg0KCQkJPHQ+QSBLZXlDb250YWluZXIgTUFZIGNvbnRhaW4gb25lIG9yIG1vcmUgRGV2aWNl IGVudGl0aWVzLiANCglBIERldmljZSBNQVkgY29udGFpbiBvbmUgb3IgbW9yZSBLZXkgZW50aXRp ZXM8L3Q+DQoJCQk8dD4NCglUaGUgZmlndXJlIGJlbG93IGluZGljYXRlcyBhIHBvc3NpYmxlIHJl bGF0aW9uc2hpcCBkaWFncmFtIG9mIGEgY29udGFpbmVyLg0KCTwvdD4NCgkJCTxmaWd1cmU+DQoJ CQkJPGFydHdvcms+DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KfCBLZXlDb250YWluZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCnwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQp8ICAtLS0tLS0tLS0tLS0tLS0t LS0tLSAgICAgICAgICAgICAgICAgICAgfA0KfCAgfCAgS2V5cHJvcGVydGllcyAxIHwgICAgICAg ICAgICAgICAgICAgIHwNCnwgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICB8DQp8ICAtLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgICAgICAgfA0KfCAgLS0t LS0tLS0tLS0tLS0tLS0tICAgLS0tLS0tLS0tLS0tLS0tLS0gIHwNCnwgIHwgRGV2aWNlIDEgICAg ICAgfCAgIHwgRGV2aWNlIG4gICAgICB8ICB8DQp8ICB8ICAgICAgICAgICAgICAgIHwgICB8ICAg ICAgICAgICAgICAgfCAgfA0KfCAgfCAgLS0tLS0tLS0tLS0tICB8ICAgfCAtLS0tLS0tLS0tLS0g IHwgIHwNCnwgIHwgIHwgS2V5IDEgICAgfCAgfCAgIHwgfCBLZXkgbiAgICB8ICB8ICB8DQp8ICB8 ICAtLS0tLS0tLS0tLS0gIHwgICB8IC0tLS0tLS0tLS0tLSAgfCAgfA0KfCAgfCAgICAgICAgICAg ICAgICB8ICAgfCAgICAgICAgICAgICAgIHwgIHwNCnwgIHwgICAgICAgICAgICAgICAgfCAgIHwg ICAgICAgICAgICAgICB8ICB8DQp8ICB8ICAtLS0tLS0tLS0tLS0gIHwgICB8IC0tLS0tLS0tLS0t LSAgfCAgfA0KfCAgfCAgfCBLZXkgbSAgICB8ICB8ICAgfCB8IEtleSBwICAgIHwgIHwgIHwNCnwg IHwgIC0tLS0tLS0tLS0tLSAgfCAgIHwgLS0tLS0tLS0tLS0tICB8ICB8DQp8ICAtLS0tLS0tLS0t LS0tLS0tLS0gICAtLS0tLS0tLS0tLS0tLS0tLSAgfA0KfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQoJPC9hcnR3b3JrPg0KCQkJPC9maWd1cmU+DQoJCQk8dD5UaGUgZm9sbG93aW5n IHNlY3Rpb25zIGRlc2NyaWJlIGluIGRldGFpbCBhbGwgdGhlIGVudGl0aWVzIGFuZCByZWxhdGVk IFhNTCBzY2hlbWEgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXM6PC90Pg0KCQkJPHNlY3Rpb24gYW5j aG9yPSJLZXlDb250YWluZXJFbnRpdHkiIHRpdGxlPSJLZXlDb250YWluZXIiPg0KCQkJCTx0PlRo ZSBLZXlDb250YWluZXIgcmVwcmVzZW50cyB0aGUga2V5IA0KCWNvbnRhaW5lciBlbnRpdHkuICBB IENvbnRhaW5lciBNQVkgY29udGFpbiBtb3JlIHRoYW4gb25lIERldmljZSBlbnRpdHk7IGVhY2gg RGV2aWNlIA0KCWVudGl0eSBNQVkgY29udGFpbiBtb3JlIHRoYW4gb25lIEtleSBlbnRpdHkuPC90 Pg0KCQkJCTx0PlRoZSBLZXlDb250YWluZXIgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvdD4NCgkJ CQk8ZmlndXJlPg0KCQkJCQk8cHJlYW1ibGUvPg0KCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjx4 czpjb21wbGV4VHlwZSBuYW1lPSJLZXlDb250YWluZXJUeXBlIj4NCgk8eHM6c2VxdWVuY2U+DQoJ CTx4czplbGVtZW50IG5hbWU9IkVuY3J5cHRpb25LZXkiIA0KCQl0eXBlPSJkczpLZXlJbmZvVHlw ZSIgbWluT2NjdXJzPSIwIi8+DQoJCTx4czplbGVtZW50IG5hbWU9Ik1BQ0FsZ29yaXRobSIgDQoJ CXR5cGU9InBza2M6S2V5QWxnb3JpdGhtVHlwZSIgbWluT2NjdXJzPSIwIi8+DQoJCTx4czplbGVt ZW50IG5hbWU9IktleVByb3BlcnRpZXMiIA0KCQl0eXBlPSJwc2tjOktleVByb3BlcnRpZXNUeXBl IiBtaW5PY2N1cnM9IjAiIA0KCQltYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQk8eHM6ZWxlbWVu dCBuYW1lPSJEZXZpY2UiIA0KCQl0eXBlPSJwc2tjOkRldmljZVR5cGUiIG1heE9jY3Vycz0idW5i b3VuZGVkIi8+DQoJCTx4czplbGVtZW50IG5hbWU9IlNpZ25hdHVyZSIgDQoJCXR5cGU9ImRzOlNp Z25hdHVyZVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhl ciIgDQoJCXByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1cnM9IjAiIA0KCQltYXhPY2N1cnM9 InVuYm91bmRlZCIvPg0KCTwveHM6c2VxdWVuY2U+DQoJPHhzOmF0dHJpYnV0ZSBuYW1lPSJWZXJz aW9uIiB0eXBlPSJwc2tjOlZlcnNpb25UeXBlIiANCgl1c2U9InJlcXVpcmVkIi8+DQoJPHhzOmF0 dHJpYnV0ZSBuYW1lPSJLZXlDb250YWluZXJJRCIgdHlwZT0ieHM6SUQiIA0KCXVzZT0ib3B0aW9u YWwiLz4NCjwveHM6Y29tcGxleFR5cGU+DQpdXT48L2FydHdvcms+DQoJCQkJCTxwb3N0YW1ibGUv Pg0KCQkJCTwvZmlndXJlPg0KCQkJCTx0PlRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBLZXlDb250YWlu ZXIgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOg0KCQk8bGlzdCBzdHlsZT0ic3ltYm9scyI+ DQoJCQkJCQkJCTx0PlZlcnNpb24gKE1BTkRBVE9SWSksIHRoZSB2ZXJzaW9uIG51bWJlciBmb3Ig dGhlIHBvcnRhYmxlIGtleSBjb250YWluZXIgZm9ybWF0IA0KCQkJCQkJCSh0aGUgWE1MIHNjaGVt YSBkZWZpbmVkIGluIHRoaXMgZG9jdW1lbnQpLjwvdD4NCgkJCQkJCQkJPHQ+S2V5Q29udGFpbmVy SUQgKE9QVElPTkFMKSwgdGhlIHVuaXF1ZSBJRCBmb3IgdGhpcyBjb250YWluZXIgaW4gY2FzZSBh biBYTUwgZG9jdW1lbnQgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBjb250YWluZXIgYW5kIHdhbnRz IHRvIHJlZmVyIHRvIHRoZW0gdW5pcXVlbHkuPC90Pg0KCQkJCQk8L2xpc3Q+DQoJCQkJPC90Pg0K CQkJCTx0PlRoZSBlbGVtZW50cyBvZiB0aGUgS2V5Q29udGFpbmVyIGhhdmUgdGhlIGZvbGxvd2lu ZyBtZWFuaW5nczoNCgkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJPHQ+Jmx0O0VuY3J5 cHRpb25LZXkgKE9QVElPTkFMKT4sIElkZW50aWZpZXMgdGhlIGVuY3J5cHRpb24ga2V5LCBhbGdv cml0aG0gYW5kIHBvc3NpYmxlIHBhcmFtZXRlcnMgdXNlZCB0byBwcm90ZWN0IHRoZSBTZWNyZXQg S2V5IGRhdGEgaW4gdGhlIGNvbnRhaW5lci4gUGxlYXNlIHNlZSA8eHJlZiB0YXJnZXQ9IkVuY3J5 cHRpb25LZXlEZXNjcmlwdGlvbiIvPiBmb3IgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgaG93IHRv IHByb3RlY3Qga2V5IGRhdGEgaW4gdHJhbnNpdCBhbmQgdGhlIHVzYWdlIG9mIHRoaXMgZWxlbWVu dC4NCgkJCQkJCTwvdD4NCgkJCQkJCTx0PiZsdDtNQUNBbGdvcml0aG0gKE9QVElPTkFMKT4sIElk ZW50aWZpZXMgdGhlIGFsZ29yaXRobSB1c2VkIHRvIGdlbmVyYXRlIGEga2V5ZWQgZGlnZXN0IG9m IHRoZSBTZWNyZXQgS2V5IGRhdGEgdmFsdWVzIHdoZW4gcHJvdGVjdGlvbiBhbGdvcml0aG1zIGFy ZSB1c2VkIHRoYXQgZG8gbm90IGhhdmUgaW50ZWdyaXR5IGNoZWNrcy4gVGhlIGRpZ2VzdCBndWFy YW50ZWVzIHRoZSBpbnRlZ3JpdHkgYW5kIHRoZSBhdXRoZW50aWNpdHkgb2YgdGhlIGtleSBkYXRh LiBmb3IgcHJvZmlsZSBhbmQgdXNhZ2UgcGxlYXNlIHNlZSA8eHJlZiB0YXJnZXQ9IlN5bW1ldHJp Y0tleVByb3RlY3Rpb25EZXNjcmlwdGlvbiIvPg0KCQkJCQkJPC90Pg0KCQkJCQkJPHQ+Jmx0O0tl eVByb3BlcnRpZXMgKE9QVElPTkFMKT4sIG9uZSBvciBtb3JlIGtleSBwcm9wZXJ0eSBlbnRpdGll cyBjb250YWluaW5nIGtleSByZWxhdGVkIHByb3BlcnRpZXMgdGhhdCBhcmUgY29tbW9uIGZvciBr ZXlzIHdpdGhpbiB0aGlzIGNvbnRhaW5lci4gUGxlYXNlIHNlZSA8eHJlZiB0YXJnZXQ9IktleVBy b3BlcnRpZXNFbnRpdHkiLz4gZm9yIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIHRoaXMgZWxlbWVu dC4NCgkJCQkJCTwvdD4NCgkJCQkJCTx0PiZsdDtEZXZpY2U+LCB0aGUgaG9zdCBEZXZpY2UgZm9y IG9uZSBvciBtb3JlIEtleXMgYXMgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9IkRldmljZUVudGl0 eSIvPiBUaGUgS2V5Q29udGFpbmVyIE1BWSBjb250YWluIG11bHRpcGxlIERldmljZSBkYXRhIGVs ZW1lbnRzLCBhbGxvd2luZyBmb3IgYnVsayBwcm92aXNpb25pbmcgb2YgbXVsdGlwbGUgZGV2aWNl cyBlYWNoIGNvbnRhaW5pbmcgbXVsdGlwbGUga2V5cy48L3Q+DQoJCQkJCQk8dD4mbHQ7U2lnbmF0 dXJlIChPUFRJT05BTCk+LCB0aGUgc2lnbmF0dXJlIHZhbHVlIG9mIHRoZSBDb250YWluZXIuICAN CgkJV2hlbiB0aGUgc2lnbmF0dXJlIGlzIGFwcGxpZWQgdG8gdGhlIGVudGlyZSBjb250YWluZXIs IGl0IE1VU1QgdXNlIFhNTCBTaWduYXR1cmUgDQoJCW1ldGhvZHMgYXMgZGVmaW5lZCBpbiA8eHJl ZiB0YXJnZXQ9IlhNTERTSUciLz4uIEl0IE1BWSBiZSBvbWl0dGVkIHdoZW4gYXBwbGljYXRpb24g DQoJCWxheWVyIHByb3Zpc2lvbmluZyBvciB0cmFuc3BvcnQgbGF5ZXIgcHJvdmlzaW9uaW5nIHBy b3RvY29scyBwcm92aWRlIHRoZSBpbnRlZ3JpdHkgYW5kIA0KCQlhdXRoZW50aWNpdHkgb2YgdGhl IHBheWxvYWQgYmV0d2Vlbgl0aGUgc2VuZGVyIGFuZCB0aGUgcmVjaXBpZW50IG9mIHRoZSBjb250 YWluZXIuIA0KCQlXaGVuIHJlcXVpcmVkLCB0aGlzIHNwZWNpZmljYXRpb24gcmVjb21tZW5kcyB1 c2luZyBhIHN5bW1ldHJpYyBrZXkgYmFzZWQgc2lnbmF0dXJlIA0KCQl3aXRoIHRoZSBzYW1lIGtl eSB1c2VkIGluIHRoZSBlbmNyeXB0aW9uIG9mIHRoZSBzZWNyZXQga2V5IGRhdGEuIFRoZSBzaWdu YXR1cmUgaXMgZW52ZWxvcGVkLjwvdD4NCgkJCQkJPC9saXN0Pg0KCQkJCTwvdD4NCgkJCTwvc2Vj dGlvbj4NCgkJCTxzZWN0aW9uIGFuY2hvcj0iS2V5UHJvcGVydGllc0VudGl0eSIgdGl0bGU9Iktl eVByb3BlcnRpZXMiPg0KCQkJCTx0PlRoZSBLZXlQcm9wZXJ0aWVzIHJlcHJlc2VudHMgY29tbW9u IHByb3BlcnRpZXMgc2hhcmVkIGJ5IG1vcmUgdGhhbiBvbmUga2V5IGhlbGQgaW4gdGhlIGNvbnRh aW5lci4gSWYgYSB2YWx1ZSBpcyBzZXQgaW4gdGhlIHByb3BlcnRpZXMgdGhlIEtleSBlbGVtZW50 IGNhbiByZWZlciB0byBpdCB2aWEgS2V5UHJvcGVydGllc0lkIGF0dHJpYnV0ZS4gVmFsdWVzIHRo YXQgYXJlIHByZXNlbnQgaW4gdGhlIEtleSBlbGVtZW50IGl0c2VsZiBNVVNUIHRha2UgcHJlY2Vk ZW5jZSBvdmVyIHZhbHVlcyBzZXQgaW4gS2V5UHJvcGVydGllcy4gVGhlIEtleVByb3BlcnRpZXMg aXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvdD4NCgkJCQk8ZmlndXJlPg0KCQkJCQk8cHJlYW1ibGUv Pg0KCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjx4czpjb21wbGV4VHlwZSBuYW1lPSJLZXlQcm9w ZXJ0aWVzVHlwZSI+DQoJPHhzOnNlcXVlbmNlPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJJc3N1ZXIi IHR5cGU9InhzOnN0cmluZyIgDQoJCW1pbk9jY3Vycz0iMCIvPg0KCQk8eHM6ZWxlbWVudCBuYW1l PSJVc2FnZSIgdHlwZT0icHNrYzpVc2FnZVR5cGUiIA0KCQltaW5PY2N1cnM9IjAiLz4NCgkJPHhz OmVsZW1lbnQgbmFtZT0iS2V5UHJvZmlsZUlkIiB0eXBlPSJ4czpzdHJpbmciIA0KCQltaW5PY2N1 cnM9IjAiLz4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iTWFzdGVyS2V5SWQiIHR5cGU9InhzOnN0cmlu ZyIgDQoJCW1pbk9jY3Vycz0iMCIvPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJEYXRhIiB0eXBlPSJw c2tjOkRhdGFUeXBlIiANCgkJbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0K CQk8eHM6ZWxlbWVudCBuYW1lPSJQSU5Qb2xpY3kiIA0KCQl0eXBlPSJwc2tjOlBJTlBvbGljeVR5 cGUiIG1pbk9jY3Vycz0iMCIvPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJFeHBpcnlEYXRlIiANCgkJ dHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJT dGFydERhdGUiIHR5cGU9InhzOmRhdGVUaW1lIiANCgkJbWluT2NjdXJzPSIwIi8+DQoJCTx4czph bnkgbmFtZXNwYWNlPSIjI290aGVyIiANCgkJcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vy cz0iMCIgDQoJCW1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJPC94czpzZXF1ZW5jZT4NCgk8eHM6 YXR0cmlidXRlIG5hbWU9IktleVByb3BlcnRpZXNJZCIgdHlwZT0ieHM6SUQiIA0KCXVzZT0icmVx dWlyZWQiLz4NCgk8eHM6YXR0cmlidXRlIG5hbWU9IktleUFsZ29yaXRobSIgDQoJdHlwZT0icHNr YzpLZXlBbGdvcml0aG1UeXBlIiB1c2U9Im9wdGlvbmFsIi8+DQo8L3hzOmNvbXBsZXhUeXBlPg0K CV1dPjwvYXJ0d29yaz4NCgkJCQkJPHBvc3RhbWJsZS8+DQoJCQkJPC9maWd1cmU+DQoJCQkJPHQ+ VGhlIGF0dHJpYnV0ZXMgb2YgdGhlIEtleVByb3BlcnRpZXMgZW50aXR5IGhhdmUgdGhlIGZvbGxv d2luZyBtZWFuaW5nczoNCgkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJPHQ+S2V5UHJv cGVydGllc0lkIChNQU5EQVRPUlkpLCBhIHVuaXF1ZSBhbmQgZ2xvYmFsIGlkZW50aWZpZXIgb2Yg c2V0IG9mIEtleVByb3BlcnRpZXMuIFRoZSBpZGVudGlmaWVyIGlzIGRlZmluZWQgYXMgYSBzdHJp bmcgb2YgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuPC90Pg0KCQkJCQkJPHQ+S2V5QWxnb3JpdGht IChPUFRJT05BTCksIHRoZSB1bmlxdWUgVVJJIG9mIHRoZSB0eXBlIG9mIGFsZ29yaXRobSB0byB1 c2Ugd2l0aCB0aGUgc2VjcmV0IGtleSwgZm9yIHByb2ZpbGVzIGFyZSBkZXNjcmliZWQgaW4gPHhy ZWYgdGFyZ2V0PSJLZXlBbGdvcml0aG1BdHRyaWJ1dGUiLz4NCgkJCQkJCTwvdD4NCgkJCQkJPC9s aXN0Pg0KCQkJCTwvdD4NCgkJCQk8dD5TaW5jZSBLZXlQcm9wZXJ0aWVzIGFyZSBhIG1ldGhvZCB0 byBjb21tb25hbGlzZSB0aGUgZWxlbWVudHMgaW4gS2V5IHBsZWFzZSByZWZlciB0byA8eHJlZiB0 YXJnZXQ9IktleUVudGl0eSIvPiBmb3IgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2YgYWxsIGVsZW1l bnRzLg0KCQkJCQk8L3Q+DQoJCQkJCTwvc2VjdGlvbj4NCg0KCQkJPHNlY3Rpb24gYW5jaG9yPSJE ZXZpY2VFbnRpdHkiIHRpdGxlPSJEZXZpY2UiPg0KCQkJCTx0PlRoZSBEZXZpY2UgcmVwcmVzZW50 cyBhbiBleHRlbnNpYmxlIERldmljZSBlbnRpdHkgaW4gdGhlIENvbnRhaW5lci4gDQoJQSBEZXZp Y2UgTUFZIGJlIGJvdW5kIHRvIGEgdXNlciBhbmQgTUFZIGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBr ZXlzLiBBIGtleSBTSE9VTEQgYmUgYm91bmQgdG8gb25seSBvbmUgRGV2aWNlLiBUaGUgRGV2aWNl IGVudGl0eSBhbHNvIGhhcyBhbiBleHRlbnNpb24gcG9pbnQgZGVmaW5lZCBhcyB4czphbnkgdG8g YWxsb3cgZnV0dXJlIGV4dGVuc2liaWxpdHkgb2YgdGhlIGVudGl0eTwvdD4NCgkJCQk8dD5UaGUg RGV2aWNlIGlzIGRlZmluZWQgYXMgZm9sbG93czo8L3Q+DQoJCQkJPGZpZ3VyZT4NCgkJCQkJPHBy ZWFtYmxlLz4NCgkJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQo8eHM6Y29tcGxleFR5cGUgbmFtZT0i RGV2aWNlVHlwZSI+DQogIDx4czpzZXF1ZW5jZT4NCiAgICA8eHM6ZWxlbWVudCBuYW1lPSJEZXZp Y2VJbmZvIiB0eXBlPSJwc2tjOkRldmljZUluZm9UeXBlIiANCiAgICBtaW5PY2N1cnM9IjAiLz4N CiAgICA8eHM6ZWxlbWVudCBuYW1lPSJLZXkiIHR5cGU9InBza2M6S2V5VHlwZSIgDQogICAgbWF4 T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICA8eHM6ZWxlbWVudCBuYW1lPSJVc2VySWQiIHR5cGU9 InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIi8+DQoJPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIi IA0KCXByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3Vu ZGVkIi8+DQogIDwveHM6c2VxdWVuY2U+DQo8L3hzOmNvbXBsZXhUeXBlPg0KCSAgICAgICAgXV0+ PC9hcnR3b3JrPg0KCQkJCQk8cG9zdGFtYmxlLz4NCgkJCQk8L2ZpZ3VyZT4NCgkJCQk8dD5UaGUg ZWxlbWVudHMgb2YgdGhlIERldmljZSBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6DQoJCTxs aXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCTx0PiZsdDtEZXZpY2VJbmZvPiwgYSBzZXQgb2Yg ZWxlbWVudHMgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGV2aWNlLCB3aG9zZSB2 YWx1ZXMgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRldmljZSwgZGVmaW5lZCBpbiA8eHJlZiB0YXJn ZXQ9IkRldmljZUluZm9FbGVtZW50Ii8+DQoJCQkJCQk8L3Q+DQoJCQkJCQk8dD4mbHQ7S2V5Piwg cmVwcmVzZW50cyB0aGUga2V5IGVudGl0eSBhcyBkZWZpbmVkIGluIDx4cmVmIHRhcmdldD0iS2V5 RW50aXR5Ii8+DQoJCQkJCQk8L3Q+DQoJCQkJCQk8dD4mbHQ7VXNlcklkPiwgb3B0aW9uYWxseSBp ZGVudGlmaWVzIHRoZSBvd25lciBvciB0aGUgdXNlciBvZiB0aGUgRGV2aWNlLCBhIHN0cmluZyBy ZXByZXNlbnRhdGlvbiBvZiBhIERpc3Rpbmd1aXNoZWQgTmFtZSBhcyBkZWZpbmVkIGluIDx4cmVm IHRhcmdldD0iUkZDNDUxNCIvPi4gRm9yIGV4YW1wbGUgVUlEPWpzbWl0aCxEQz1leGFtcGxlLERD PW5ldC4gSW4gc3lzdGVtcyB3aGVyZSB1bmlxdWUgdXNlciBJZHMgYXJlIHVzZWQgdGhlIHN0cmlu ZyByZXByZXNlbnRhdGlvbiAnVUlEPVt1bmlxdWVJZF0nIE1VU1QgYmUgdXNlZC48L3Q+DQoJCQkJ CTwvbGlzdD4NCgkJCQk8L3Q+DQoJCQkJPHNlY3Rpb24gYW5jaG9yPSJEZXZpY2VJbmZvRWxlbWVu dCIgdGl0bGU9IkRldmljZUluZm8iPg0KCQkJCQk8dD5UaGUgRGV2aWNlSW5mbyByZXByZXNlbnRz IGFuIGV4dGVuc2libGUgc2V0IG9mIGVsZW1lbnRzIHRoYXQgZm9ybSB0aGUgaWRlbnRpZnlpbmcg Y3JpdGVyaWEgdG8gdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRldmljZSB0aGF0IGNvbnRhaW5zIHRo ZSBhc3NvY2lhdGVkIA0KCWtleXMuIFNpbmNlIGRldmljZXMgY2FuIGNvbWUgaW4gZGlmZmVyZW50 IGZvcm0gZmFjdG9ycyBzdWNoIGFzIGhhcmR3YXJlIHRva2Vucywgc21hcnQtY2FyZHMsIHNvZnQg dG9rZW5zIA0KCWluIGEgbW9iaWxlIHBob25lIG9yIFBDIGV0YyB0aGlzIGVsZW1lbnQgYWxsb3dz IGRpZmZlcmVudCBjcml0ZXJpYSB0byBiZSB1c2VkLiBDb21iaW5lZCB0aG91Z2ggdGhlIGNyaXRl cmlhIE1VU1QgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRldmljZS4gRm9yIGV4YW1wbGUgZm9yIGhh cmR3YXJlIHRva2VucyB0aGUgY29tYmluYXRpb24gb2YgU2VyaWFsTm8gYW5kIE1hbnVmYWN0dXJl ciB3aWxsIHVuaXF1ZWx5IGlkZW50aWZ5IGEgZGV2aWNlIGJ1dCBub3QgU2VyaWFsTm8gYWxvbmUg c2luY2UgdHdvIGRpZmZlcmVudCB0b2tlbiBtYW51ZmFjdHVyZXJzIG1pZ2h0IGlzc3VlIGRldmlj ZXMgd2l0aCB0aGUgc2FtZSBzZXJpYWwgbnVtYmVyIChzaW1pbGFyIHRvIHRoZSBJc3N1ZXJETiBh bmQgc2VyaWFsIG51bWJlciBvZiBhIGNlcnRpZmljYXRlKS4gU3ltbWV0cmljIEtleXMgdXNlZCBp biB0aGUgcGF5bWVudCBpbmR1c3RyeSBhcmUgdXN1YWxseSBzdG9yZWQgb24gSW50ZWdyYXRlZCBD aXJjdWl0IFNtYXJ0IENhcmRzLiBUaGVzZSBjYXJkcyBhcmUgdW5pcXVlbHkgaWRlbnRpZmllZCB2 aWEgdGhlIFByaW1hcnkgQWNjb3VudCBOdW1iZXIgKFBBTiwgdGhlIGxvbmcgbnVtYmVyIHByaW50 ZWQgb24gdGhlIGZyb250IG9mIHRoZSBjYXJkKSBhbmQgYW4gZXhwaXJ5IGRhdGUgb2YgdGhlIGNh cmQuIERldmljZUluZm8gaXMgYW4gZXh0ZW5zaWJsZSB0eXBlIHRoYXQgYWxsb3dzIGFsbCB0aGVz ZSBkaWZmZXJlbnQgd2F5cyB0byB1bmlxdWVseSBpZGVudGlmeSBhIHNwZWNpZmljIGtleSBjb250 YWluaW5nIGRldmljZS48L3Q+DQoJCQkJCTx0PlRoZSBEZXZpY2VJbmZvIGlzIGRlZmluZWQgYXMg Zm9sbG93czo8L3Q+DQoJCQkJCTxmaWd1cmU+DQoJCQkJCQk8cHJlYW1ibGUvPg0KCQkJCQkJPGFy dHdvcms+PCFbQ0RBVEFbDQo8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGV2aWNlSW5mb1R5cGUiPg0K PHhzOnNlcXVlbmNlPg0KICAgIDx4czplbGVtZW50IG5hbWU9Ik1hbnVmYWN0dXJlciIgdHlwZT0i eHM6c3RyaW5nIi8+DQogICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VyaWFsTm8iIHR5cGU9InhzOnN0 cmluZyIvPg0KICAgIDx4czplbGVtZW50IG5hbWU9Ik1vZGVsIiB0eXBlPSJ4czpzdHJpbmciIG1p bk9jY3Vycz0iMCIvPg0KICAgIDx4czplbGVtZW50IG5hbWU9Iklzc3VlTm8iIHR5cGU9InhzOnN0 cmluZyIgbWluT2NjdXJzPSIwIi8+DQogICAgPHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSIg dHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KICAgIDx4czplbGVtZW50IG5hbWU9 IlN0YXJ0RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCTx4czphbnkg bmFtZXNwYWNlPSIjI290aGVyIiANCglwcm9jZXNzQ29udGVudHM9ImxheCIgbWluT2NjdXJzPSIw IiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KPC94czpzZXF1ZW5jZT4NCjwveHM6Y29tcGxleFR5 cGU+DQoJICAgICAgICBdXT48L2FydHdvcms+DQoJCQkJCQk8cG9zdGFtYmxlLz4NCgkJCQkJPC9m aWd1cmU+DQoJCQkJCTx0PlRoZSBlbGVtZW50cyBvZiBEZXZpY2VJbmZvIGhhdmUgdGhlIGZvbGxv d2luZyBtZWFuaW5nczoNCgkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJCTx0PiZsdDtN YW51ZmFjdHVyZXIgKE1BTkRBVE9SWSk+LCB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBkZXZpY2Uu PC90Pg0KCQkJCQkJCTx0PiZsdDtTZXJpYWxObyAoTUFOREFUT1JZKT4sIHRoZSBzZXJpYWwgbnVt YmVyIG9mIHRoZSBkZXZpY2Ugb3IgdGhlIFBBTiAocHJpbWFyeSBhY2NvdW50IG51bWJlcikgDQoJ CWluIGNhc2Ugb2YgcGF5bWVudCBzbWFydCBjYXJkcy48L3Q+DQoJCQkJCQkJPHQ+Jmx0O01vZGVs IChPUFRJT05BTCk+LCB0aGUgbW9kZWwgb2YgdGhlIGRldmljZSAoZS5nLiBvbmUtYnV0dG9uLUhP VFAtdG9rZW4tVjEpPC90Pg0KCQkJCQkJCTx0PiZsdDtJc3N1ZU5vIChPUFRJT05BTCk+LCB0aGUg aXNzdWUgbnVtYmVyIGluIGNhc2Ugb2Ygc21hcnQgY2FyZHMgd2l0aCB0aGUgc2FtZSBQQU4sIGVx dWl2YWxlbnQgdG8gYSANCgkJUFNOIChQQU4gU2VxdWVuY2UgTnVtYmVyKS48L3Q+DQoJCQkJCQkJ PHQ+Jmx0O0V4cGlyeURhdGUgKE9QVElPTkFMKT4sIHRoZSBleHBpcnkgZGF0ZSBvZiBhIGRldmlj ZSAoc3VjaCBhcyB0aGUgb25lIG9uIGEgcGF5bWVudCBjYXJkLCB1c2VkIHdoZW4gaXNzdWUgbnVt YmVycyBhcmUgbm90IHByaW50ZWQgb24gY2FyZHMpLjwvdD4NCgkJCQkJCQk8dD4mbHQ7U3RhcnRE YXRlIChPUFRJT05BTCk+LCB0aGUgc3RhcnQgZGF0ZSBvZiBhIGRldmljZSAoc3VjaCBhcyB0aGUg b25lIG9uIGEgcGF5bWVudCBjYXJkLCB1c2VkIHdoZW4gaXNzdWUgbnVtYmVycyBhcmUgbm90IHBy aW50ZWQgb24gY2FyZHMpLjwvdD4NCgkJCQkJCTwvbGlzdD4NCgkJCQkJPC90Pg0KCQkJCTwvc2Vj dGlvbj4NCgkJCTwvc2VjdGlvbj4NCgkJCQkNCgkJCQ0KCQkJPHNlY3Rpb24gYW5jaG9yPSJLZXlF bnRpdHkiIHRpdGxlPSJLZXkiPg0KCQkJCTx0PlRoZSBLZXkgcmVwcmVzZW50cyB0aGUga2V5IGVu dGl0eSBpbiB0aGUgS2V5Q29udGFpbmVyLiBUaGUgS2V5IGVudGl0eSBhbHNvIGhhcyBhbiBleHRl bnNpb24gcG9pbnQgZGVmaW5lZCBhcyB4czphbnkgdG8gYWxsb3cgZnV0dXJlIGV4dGVuc2liaWxp dHkuIFRoZSBLZXkgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOjwvdD4NCgkJCQk8ZmlndXJlPg0KCQkJ CQk8cHJlYW1ibGUvPg0KCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjx4czpjb21wbGV4VHlwZSBu YW1lPSJLZXlUeXBlIj4NCgk8eHM6c2VxdWVuY2U+DQoJCTx4czplbGVtZW50IG5hbWU9Iklzc3Vl ciIgdHlwZT0ieHM6c3RyaW5nIiANCgkJbWluT2NjdXJzPSIwIi8+DQoJCTx4czplbGVtZW50IG5h bWU9IlVzYWdlIiB0eXBlPSJwc2tjOlVzYWdlVHlwZSIgDQoJCW1pbk9jY3Vycz0iMCIvPg0KCQk8 eHM6ZWxlbWVudCBuYW1lPSJLZXlQcm9maWxlSWQiIHR5cGU9InhzOnN0cmluZyIgDQoJCW1pbk9j Y3Vycz0iMCIvPg0KCQk8eHM6ZWxlbWVudCBuYW1lPSJNYXN0ZXJLZXlJZCIgdHlwZT0ieHM6c3Ry aW5nIiANCgkJbWluT2NjdXJzPSIwIi8+DQoJCTx4czplbGVtZW50IG5hbWU9IkZyaWVuZGx5TmFt ZSIgdHlwZT0ieHM6c3RyaW5nIiANCgkJbWluT2NjdXJzPSIwIi8+DQoJCTx4czplbGVtZW50IG5h bWU9IkRhdGEiIHR5cGU9InBza2M6RGF0YVR5cGUiIA0KCQltaW5PY2N1cnM9IjAiIG1heE9jY3Vy cz0idW5ib3VuZGVkIi8+DQoJCTx4czplbGVtZW50IG5hbWU9IlBJTlBvbGljeSIgDQoJCXR5cGU9 InBza2M6UElOUG9saWN5VHlwZSIgbWluT2NjdXJzPSIwIi8+DQoJCTx4czplbGVtZW50IG5hbWU9 IkV4cGlyeURhdGUiIHR5cGU9InhzOmRhdGVUaW1lIiANCgkJbWluT2NjdXJzPSIwIi8+DQoJCTx4 czplbGVtZW50IG5hbWU9IlN0YXJ0RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIA0KCQltaW5PY2N1 cnM9IjAiLz4NCgkJPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0i bGF4IiANCgkJbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCTwveHM6c2Vx dWVuY2U+DQoJPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlJZCIgdHlwZT0ieHM6c3RyaW5nIiANCgl1 c2U9InJlcXVpcmVkIi8+DQoJPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlBbGdvcml0aG0iIA0KCXR5 cGU9InBza2M6S2V5QWxnb3JpdGhtVHlwZSIgdXNlPSJvcHRpb25hbCIvPg0KCTx4czphdHRyaWJ1 dGUgbmFtZT0iS2V5UHJvcGVydGllc0lkIiB0eXBlPSJ4czpJRFJFRiIgDQoJdXNlPSJvcHRpb25h bCIvPg0KPC94czpjb21wbGV4VHlwZT4NCg0KCV1dPjwvYXJ0d29yaz4NCgkJCQkJPHBvc3RhbWJs ZS8+DQoJCQkJPC9maWd1cmU+DQoJCQkJPHQ+VGhlIGF0dHJpYnV0ZXMgb2YgdGhlIEtleSBlbnRp dHkgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOg0KCQk8bGlzdCBzdHlsZT0ic3ltYm9scyI+ DQoJCQkJCQk8dD5LZXlJZCAoTUFOREFUT1JZKSwgYSB1bmlxdWUgYW5kIGdsb2JhbCBpZGVudGlm aWVyIG9mIHRoZSBzeW1tZXRyaWMga2V5LiBUaGUgaWRlbnRpZmllciANCgkJaXMgZGVmaW5lZCBh cyBhIHN0cmluZyBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycy48L3Q+DQoJCQkJCQk8dD5LZXlB bGdvcml0aG0gKE9QVElPTkFMKSwgdGhlIHVuaXF1ZSBVUkkgb2YgdGhlIHR5cGUgb2YgYWxnb3Jp dGhtIHRvIHVzZSB3aXRoIHRoZSBzZWNyZXQga2V5LCBmb3IgcHJvZmlsZXMgYXJlIGRlc2NyaWJl ZCBpbiA8eHJlZiB0YXJnZXQ9IktleUFsZ29yaXRobUF0dHJpYnV0ZSIvPg0KCQkJCQkJPC90Pg0K CQkJCQkJPHQ+S2V5UHJvcGVydGllc0lkIChPUFRJT05BTCksIHRoZSByZWZlcmVuY2VzIHRvIHRo ZSB1bmlxdWUgaWQgb2YgdGhlIEtleVByb3BlcnRpZXMgd2hvc2UgdmFsdWUgdGhlIGluc3RhbmNl IG9mIHRoaXMga2V5IGluaGVyaXRzLiBJZiB0aGlzIHZhbHVlIGlzIHNldCBpbXBsZW1lbnRhdGlv biBNVVNUIGxvb2t1cCB0aGUgS2V5cHJvcGVydGllcyBlbGVtZW50IHJlZmVycmVkIHRvIGJ5IHRo aXMgdW5pcXVlIElkIGFuZCB0aGlzIGluc3RhbmNlIG9mIGtleSB3aWxsIGluaGVyaXQgYWxsIHZh bHVlcyBmcm9tIHRoZSBLZXlQcm9wZXJ0aWVzLiBWYWx1ZXMgaGVsZCBpbiB0aGUga2V5IGluc3Rh bmNlIGl0IE1VU1QgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdmFsdWVzIGluaGVyaXRlZCBmcm9tIEtl eVByb3BlcnRpZXMuIi8+DQoJCQkJCQk8L3Q+DQoJCQkJCTwvbGlzdD4NCgkJCQk8L3Q+DQoJCQkJ PHQ+VGhlIGVsZW1lbnRzIG9mIHRoZSBLZXkgZW50aXR5IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFu aW5nczoNCgkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJPHQ+Jmx0O0lzc3VlciAoT1BU SU9OQUwpPiwgVGhlIGtleSBpc3N1ZXIgbmFtZSwgdGhpcyBpcyBub3JtYWxseSB0aGUgbmFtZSBv ZiB0aGUgb3JnYW5pemF0aW9uIHRoYXQgaXNzdWVzIHRoZSBrZXkgdG8gdGhlIGVuZCB1c2VyIG9m IHRoZSBrZXkuIEZvciBleGFtcGxlIE15QmFuayBpc3N1aW5nIGhhcmR3YXJlIHRva2VucyB0byB0 aGVpciByZXRhaWwgYmFua2luZyB1c2VycyAnTXlCYW5rJyB3b3VsZCBiZSB0aGUgaXNzdWVyLiBU aGUgSXNzdWVyIGlzIGRlZmluZWQgYXMgYSBTdHJpbmcuPC90Pg0KCQkJCQkJPHQ+Jmx0O1VzYWdl IChNQU5EQVRPUlkpPiwgZGVmaW5lcyB0aGUgaW50ZW5kZWQgdXNhZ2Ugb2YgdGhlIGtleSBhbmQg cmVsYXRlZCBtZXRhZGF0YSBhcyBkZWZpbmVkIGluIDx4cmVmIHRhcmdldD0iVXNhZ2VFbGVtZW50 Ii8+DQoJCQkJCQk8L3Q+DQoJCQkJCQk8dD4mbHQ7S2V5UHJvZmlsZUlkIChPUFRJT05BTCk+LCBB IHVuaXF1ZSBpZGVudGlmaWVyIHVzZWQgYmV0d2VlbiB0aGUgc2VuZGluZyBhbmQgcmVjZWl2aW5n IHBhcnR5IG9mIHRoZSBjb250YWluZXIgdG8gZXN0YWJsaXNoIGEgc2V0IG9mIGNvbnN0YW50IHZh bHVlcyByZWxhdGVkIHRvIGEga2V5IHRoYXQgYXJlIG5vdCB0cmFuc21pdHRlZCB2aWEgdGhlIGNv bnRhaW5lci4gRm9yIGV4YW1wbGUgYSBzbWFydCBjYXJkIGFwcGxpY2F0aW9uIHBlcnNvbmFsaXNh dGlvbiBwcm9maWxlIGlkIHJlbGF0ZWQgdG8gYXR0cmlidXRlcyBwcmVzZW50IG9uIGEgc21hcnQg Y2FyZCBhcHBsaWNhdGlvbiB0aGF0IGhhdmUgaW5mbHVlbmNlIHdoZW4gY29tcHV0aW5nIGEgcmVz cG9uc2UuIEFuIGV4YW1wbGUgY291bGQgYmUgYW4gRU1WIE1hc3RlckNhcmQgQ0FQIDx4cmVmIHRh cmdldD0iQ0FQIi8+IGFwcGxpY2F0aW9uIG9uIGEgY2FyZCBwZXJzb25hbGlzZWQgd2l0aCBkYXRh IGZvciBhIHNwZWNpZmljIGJhdGNoIG9mIGNhcmRzIHN1Y2ggYXM6IA0KCQkJPGxpc3Qgc3R5bGU9 ImhhbmdpbmciPg0KCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5JQUYgIEludGVybmV0IGF1dGhlbnRp Y2F0aW9uIGZsYWcgPC90Pg0KCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5DVk4gIENyeXB0b2dyYW0g dmVyc2lvbiBudW1iZXIsIGZvciBleGFtcGxlIChNQ0hJUDIsIE1DSElQNCwgVklTQSAxMywgVklT QTE0KTwvdD4NCgkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+QUlQIChBcHBsaWNhdGlvbiBJbnRlcmNo YW5nZSBQcm9maWxlKSwgMiBieXRlczwvdD4NCgkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+VFZSIFRl cm1pbmFsIFZlcmlmaWNhdGlvbiBSZXN1bHQsIDUgYnl0ZXM8L3Q+DQoJCQkJCQkJCTx0IGhhbmdU ZXh0PSIiPkNWUiBUaGUgY2FyZCB2ZXJpZmljYXRpb24gcmVzdWx0PC90Pg0KCQkJCQkJCQk8dCBo YW5nVGV4dD0iIj5BbW91bnRPdGhlcjwvdD4NCgkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+VHJhbnNh Y3Rpb25EYXRlPC90Pg0KCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5UZXJtaW5hbENvdW50cnlDb2Rl PC90Pg0KCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5UcmFuc2FjdGlvbkN1cnJlbmN5Q29kZTwvdD4N CgkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+QW1vdW50QXV0aG9yaXNlZDwvdD4NCgkJCQkJCQkJPHQg aGFuZ1RleHQ9IiI+SUlQQjwvdD4NCgkJCQkJCQk8L2xpc3Q+DQpUaGVzZSB2YWx1ZXMgYXJlIG5v dCBjb250YWluZWQgd2l0aGluIGF0dHJpYnV0ZXMgaW4gdGhlIGNvbnRhaW5lciBidXQgDQoJYXJl IHNoYXJlZCBiZXR3ZWVuIHRoZSBtYW51ZmFjdHVyaW5nIGFuZCB0aGUgdmFsaWRhdGlvbiBzZXJ2 aWNlIHRocm91Z2ggdGhpcyB1bmlxdWUgS2V5UHJvZmlsZUlkLiBUaGUgS2V5UHJvZmlsZUlkIGlz IGRlZmluZWQgYXMgYSBTdHJpbmcuPC90Pg0KCQkJCQkJPHQ+Jmx0O01hc3RlcktleUlkIChPUFRJ T05BTCk+LCBUaGUgdW5pcXVlIHJlZmVyZW5jZSB0byBhIG1hc3RlciBrZXkgd2hlbiBrZXkgZGVy aXZhdGlvbiBzY2hlbWVzIGFyZSB1c2VkIGFuZCBubyBzcGVjaWZpYyBrZXkgaXMgdHJhbnNwb3J0 ZWQgYnV0IG9ubHkgdGhlIHJlZmVyZW5jZSB0byB0aGUgbWFzdGVyIGtleSB1c2VkIHRvIGRlcml2 ZSBhIHNwZWNpZmljIGtleSBhbmQgc29tZSBkZXJpdmF0aW9uIGRhdGEuPC90Pg0KCQkJCQkJPHQ+ Jmx0O0ZyaWVuZGx5TmFtZSAoT1BUSU9OQUwpPiwgVGhlIHVzZXIgZnJpZW5kbHkgbmFtZSB0aGF0 IGlzIGFzc2lnbmVkIHRvIHRoZSBzZWNyZXQga2V5IGZvciBlYXN5IHJlZmVyZW5jZS4gVGhlIEZy aWVuZGx5TmFtZSBpcyBkZWZpbmVkIGFzIGEgU3RyaW5nLjwvdD4NCgkJCQkJCTx0PiZsdDtEYXRh IChPUFRJT05BTCk+LCB0aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgZGF0YSByZWxhdGVkIHRvIHRo ZSBrZXkgYXMgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9IkRhdGFBdHRyaWJ1dGUiLz4NCgkJCQkJ CTwvdD4NCgkJCQkJCTx0PiZsdDtQSU5Qb2xpY3kgKE9QVElPTkFMKT4sIHRoZSBwb2xpY3kgb2Yg dGhlIFBJTiByZWxhdGluZyB0byB0aGUgdXNhZ2Ugb2YgdGhpcyBrZXkgYXMgZGVmaW5lZCBpbiA8 eHJlZiB0YXJnZXQ9IlBJTlBvbGljeUVsZW1lbnQiLz4NCgkJCQkJCTwvdD4NCgkJCQkJCTx0PiZs dDtFeHBpcnlEYXRlIChPUFRJT05BTCk+LCB0aGUgZXhwaXJ5IGRhdGUgb2YgdGhlIGtleSwgaXQg TVVTVCBub3QgYmUgcG9zc2libGUgdG8gdXNlIHRoaXMga2V5IGFmdGVyIHRoaXMgZGF0ZTwvdD4N CgkJCQkJCTx0PiZsdDtTdGFydERhdGUgKE9QVElPTkFMKT4sIHRoZSBzdGFydCBkYXRlIG9mIHRo ZSBrZXksIGl0IE1VU1Qgbm90IGJlIHBvc3NpYmxlIHRvIHVzZSB0aGlzIGtleSBiZWZvcmUgdGhp cyBkYXRlPC90Pg0KCQkJCQk8L2xpc3Q+DQoJCQkJPC90Pg0KCQkJCTxzZWN0aW9uIGFuY2hvcj0i RGF0YUF0dHJpYnV0ZSIgdGl0bGU9IkRhdGEgKE9QVElPTkFMKSI+DQoJCQkJCTx0PkRlZmluZXMg dGhlIGRhdGEgYXR0cmlidXRlcyBvZiB0aGUgc3ltbWV0cmljIGtleS4gRWFjaCBpcyBhIG5hbWUg dmFsdWUgcGFpciB3aGljaCBoYXMgZWl0aGVyIGEgcGxhaW4gdmFsdWUgKGluIGNhc2Ugb2Ygbm8g ZW5jcnlwdGlvbikgb3IgYW4gZW5jcnlwdGVkIHZhbHVlIGFzIGRlZmluZWQgaW4gRW5jcnlwdGVk RGF0YVR5cGUgaW4gWE1MIEVuY3J5cHRpb24uIA0KCQkJCQk8L3Q+DQoJCQkJCTx0PlRoaXMgaXMg YWxzbyB3aGVyZSB0aGUga2V5IHZhbHVlIGlzIHRyYW5zcG9ydGVkLCAgIDx4cmVmIHRhcmdldD0i RGF0YUF0dHJpYnV0ZU5hbWVzIi8+IGRlZmluZXMgYSBsaXN0IG9mIHJlc2VydmVkIGF0dHJpYnV0 ZSBuYW1lcy4gDQoJCQkJCQk8L3Q+DQoJCQkJCTx0PkRhdGEgZWxlbWVudCBpcyBkZWZpbmVkIGFz IGZvbGxvd3M6PC90Pg0KCQkJCQk8ZmlndXJlPg0KCQkJCQkJPHByZWFtYmxlLz4NCgkJCQkJCTxh cnR3b3JrPjwhW0NEQVRBWw0KPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRhdGFUeXBlIj4NCiAgICA8 eHM6c2VxdWVuY2U+DQogICAgPHhzOmNob2ljZT4NCiAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQ bGFpblZhbHVlIiB0eXBlPSJ4czpiYXNlNjRCaW5hcnkiLz4NCiAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJFbmNyeXB0ZWRWYWx1ZSIgdHlwZT0ieGVuYzpFbmNyeXB0ZWREYXRhVHlwZSIvPg0KICAg IDwveHM6Y2hvaWNlPg0KICAgIDx4czplbGVtZW50IG5hbWU9IlZhbHVlTUFDIiB0eXBlPSJ4czpi YXNlNjRCaW5hcnkiIG1pbk9jY3Vycz0iMCIvPgkJCQ0KICAgIDwveHM6c2VxdWVuY2U+DQogICAg PHhzOmF0dHJpYnV0ZSBuYW1lPSJOYW1lIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQi Lz4NCjwveHM6Y29tcGxleFR5cGU+DQoJICAgICAgICBdXT48L2FydHdvcms+DQoJCQkJCQk8cG9z dGFtYmxlLz4NCgkJCQkJPC9maWd1cmU+DQoJCQkJCTx0PlRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBE YXRhIGVsZW1lbnQgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOg0KCQk8bGlzdCBzdHlsZT0i c3ltYm9scyI+DQoJCQkJCQkJPHQ+TmFtZSwgZGVmaW5lcyB0aGUgbmFtZSBvZiB0aGUgbmFtZS12 YWx1ZSBwYWlyLCA8eHJlZiB0YXJnZXQ9IkRhdGFBdHRyaWJ1dGVOYW1lcyIvPiBkZWZpbmVzIGEg bGlzdCBvZiByZXNlcnZlZCBhdHRyaWJ1dGUgbmFtZXM8L3Q+DQoJCQkJCQk8L2xpc3Q+DQoJCQkJ CTwvdD4NCgkJCQkJPHQ+VGhlIGVsZW1lbnRzIG9mIHRoZSBEYXRhIGVsZW1lbnQgaGF2ZSB0aGUg Zm9sbG93aW5nIG1lYW5pbmdzOg0KCQk8bGlzdCBzdHlsZT0ic3ltYm9scyI+DQoJCQkJCQkJPHQ+ VGhlICZsdDtQbGFpblZhbHVlPiBjb252ZXlzIGFuIHVuZW5jcnlwdGVkIHZhbHVlIG9mIHRoZSBu YW1lLXZhbHVlIHBhaXIgaW4gYmFzZSA2NCBlbmNvZGluZy48L3Q+DQoJCQkJCQkJPHQ+VGhlICZs dDtFbmNyeXB0ZWRWYWx1ZT4gZWxlbWVudCBpbiB0aGUgRGF0YVR5cGUgY29udmV5cyBhbiBlbmNy eXB0ZWQgdmFsdWUgb2YgdGhlIG5hbWUtdmFsdWUgcGFpciBpbnNpZGUgYW4gRW5jcnlwdGVkRGF0 YVR5cGUgYXMgZGVmaW5lZCBpbiBYTUwgRW5jcnlwdGlvbi48L3Q+DQoJCQkJCQkJPHQ+VGhlICZs dDtWYWx1ZU1BQyAoT1BUSU9OQUwpPiBlbGVtZW50IGluIHRoZSBEYXRhVHlwZSBjb252ZXlzIGEg a2V5ZWQgTUFDIHZhbHVlIG9mIHRoZSB1bmVuY3J5cHRlZCBkYXRhIGZvciB0aGUgY2FzZXMgd2hl cmUgdGhlIGFsZ29yaXRobSB0byBwcm90ZWN0IGtleSBkYXRhIGluIHRyYW5zaXQsIGFzIGRlc2Ny aWJlZCBpbiA8eHJlZiB0YXJnZXQ9IlN5bW1ldHJpY0tleVByb3RlY3Rpb25EZXNjcmlwdGlvbiIv PiAsZG9lcyBub3Qgc3VwcG9ydCBpbnRlZ3JpdHkgY2hlY2tzLjwvdD4NCgkJCQkJCTwvbGlzdD4N CgkJCQkJPC90Pg0KCQkJCTwvc2VjdGlvbj4NCgkJCQk8c2VjdGlvbiBhbmNob3I9IlVzYWdlRWxl bWVudCIgdGl0bGU9IlVzYWdlIChNQU5EQVRPUlkpIj4NCgkJCQkJPHQ+VGhlIFVzYWdlIGVsZW1l bnQgZGVmaW5lcyB0aGUgdXNhZ2UgYXR0cmlidXRlKHMpIG9mIHRoZSBrZXkgZW50aXR5LiBUaGUg VXNhZ2UgZWxlbWVudCBhbHNvIGhhcyBhbiBleHRlbnNpb24gcG9pbnQgZGVmaW5lZCBhcyB4czph bnkgdG8gYWxsb3cgZnV0dXJlIGV4dGVuc2liaWxpdHkgVXNhZ2UgaXMgZGVmaW5lZCBhcyBmb2xs b3dzOjwvdD4NCgkJCQkJPGZpZ3VyZT4NCgkJCQkJCTxwcmVhbWJsZS8+DQoJCQkJCQk8YXJ0d29y az48IVtDREFUQVsNCjx4czpjb21wbGV4VHlwZSBuYW1lPSJVc2FnZVR5cGUiPg0KCTx4czpzZXF1 ZW5jZT4NCgkJPHhzOmVsZW1lbnQgbmFtZT0iQ2hhbGxlbmdlRm9ybWF0IiBtaW5PY2N1cnM9IjAi Pg0KCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJICA8eHM6YXR0cmlidXRlIG5hbWU9IkZvcm1hdCIg DQoJCQkgIHR5cGU9InBza2M6VmFsdWVGb3JtYXRUeXBlIiANCgkJCSAgdXNlPSJyZXF1aXJlZCIv Pg0KCQkJICA8eHM6YXR0cmlidXRlIG5hbWU9Ik1pbiIgDQoJCQkgIHR5cGU9InhzOnVuc2lnbmVk SW50IiB1c2U9InJlcXVpcmVkIi8+DQoJCQkgIDx4czphdHRyaWJ1dGUgbmFtZT0iTWF4IiANCgkJ CSAgdHlwZT0ieHM6dW5zaWduZWRJbnQiIHVzZT0icmVxdWlyZWQiLz4NCgkJCSAgPHhzOmF0dHJp YnV0ZSBuYW1lPSJDaGVja0RpZ2l0cyINCgkJCSAgdHlwZT0ieHM6Ym9vbGVhbiIgZGVmYXVsdD0i ZmFsc2UiLz4NCgkJCTwveHM6Y29tcGxleFR5cGU+DQoJCTwveHM6ZWxlbWVudD4NCgkJPHhzOmVs ZW1lbnQgbmFtZT0iUmVzcG9uc2VGb3JtYXQiPg0KCQkJPHhzOmNvbXBsZXhUeXBlPg0KCQkJICA8 eHM6YXR0cmlidXRlIG5hbWU9IkZvcm1hdCINCgkJCSAgdHlwZT0icHNrYzpWYWx1ZUZvcm1hdFR5 cGUiIA0KCQkJICB1c2U9InJlcXVpcmVkIi8+DQoJCQkgIDx4czphdHRyaWJ1dGUgbmFtZT0iTGVu Z3RoIg0KCQkJICB0eXBlPSJ4czp1bnNpZ25lZEludCIgdXNlPSJyZXF1aXJlZCIvPg0KICAJCQkg IDx4czphdHRyaWJ1dGUgbmFtZT0iQ2hlY2tEaWdpdHMiIA0KICAJCQkgIHR5cGU9InhzOmJvb2xl YW4iIGRlZmF1bHQ9ImZhbHNlIi8+DQoJCQk8L3hzOmNvbXBsZXhUeXBlPg0KCQk8L3hzOmVsZW1l bnQ+DQoJCTx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIg DQoJCW1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCgk8L3hzOnNlcXVlbmNl Pg0KCTx4czphdHRyaWJ1dGUgbmFtZT0iT1RQIiB0eXBlPSJ4czpib29sZWFuIiANCglkZWZhdWx0 PSJmYWxzZSIvPg0KCTx4czphdHRyaWJ1dGUgbmFtZT0iQ1IiIHR5cGU9InhzOmJvb2xlYW4iIA0K CWRlZmF1bHQ9ImZhbHNlIi8+DQoJPHhzOmF0dHJpYnV0ZSBuYW1lPSJJbnRlZ3JpdHkiIHR5cGU9 InhzOmJvb2xlYW4iIA0KCWRlZmF1bHQ9ImZhbHNlIi8+DQoJPHhzOmF0dHJpYnV0ZSBuYW1lPSJF bmNyeXB0IiB0eXBlPSJ4czpib29sZWFuIiANCglkZWZhdWx0PSJmYWxzZSIvPg0KCTx4czphdHRy aWJ1dGUgbmFtZT0iVW5sb2NrIiB0eXBlPSJ4czpib29sZWFuIiANCglkZWZhdWx0PSJmYWxzZSIv Pg0KCTx4czphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIi8+DQo8L3hzOmNvbXBsZXhU eXBlPg0KCV1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCQk8L2ZpZ3VyZT4N CgkJCQkJPHQ+VGhlIGF0dHJpYnV0ZXMgb2YgdGhlIFVzYWdlIGVsZW1lbnQgZGVmaW5lIHRoZSBp bnRlbmRlZCB1c2FnZSBvZiB0aGUga2V5LiBUaGlzIGxpc3Qgb2YgYXR0cmlidXRlcyBpcyBleHRl bnNpYmxlIGZvciBmdXR1cmUgbmVlZHMuIA0KCQkJCQlUaGV5IGFyZSBhIGNvbWJpbmF0aW9uIG9m IG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgKHNldCB0byB0cnVlKToNCgkJCTxsaXN0IHN0 eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD5PVFAsIHRoZSBrZXkgd2lsbCBiZSB1c2VkIGZvciBP VFAgZ2VuZXJhdGlvbjwvdD4NCgkJCQkJCQk8dD5DUiwgdGhlIGtleSB3aWxsIGJlIHVzZWQgZm9y IENoYWxsZW5nZS9SZXNwb25zZSBwdXJwb3NlczwvdD4NCgkJCQkJCQk8dD5FbmNyeXB0LCB0aGUg a2V5IHdpbGwgYmUgdXNlZCBmb3IgZGF0YSBlbmNyeXB0aW9uIHB1cnBvc2VzPC90Pg0KCQkJCQkJ CTx0PkludGVncml0eSwgdGhlIGtleSB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSBrZXllZCBt ZXNzYWdlIGRpZ2VzdCBmb3IgZGF0YSBpbnRlZ3JpdHkgb3IgYXV0aGVudGljYXRpb24gcHVycG9z ZXMuPC90Pg0KCQkJCQkJCTx0PlVubG9jaywgdGhlIGtleSB3aWxsIGJlIHVzZWQgZm9yIGFuIGlu dmVyc2UgY2hhbGxlbmdlIHJlc3BvbnNlIGluIHRoZQ0KCQkJY2FzZSBhIHVzZXIgaGFzIGxvY2tl ZCB0aGUgZGV2aWNlIGJ5IGVudGVyaW5nIGEgd3JvbmcgUElOIHRvbyBtYW55IHRpbWVzIA0KCQkJ KGZvciBkZXZpY2VzIHdpdGggUElOLWlucHV0IGNhcGFiaWxpdHkpPC90Pg0KCQkJCQkJPC9saXN0 Pg0KCQkJCQk8L3Q+DQoJCQkJCTxzZWN0aW9uIHRpdGxlPSJPVFAgYW5kIENSIHNwZWNpZmljIFVz YWdlIGVsZW1lbnRzIChPUFRJT05BTCkiPg0KCQkJCQkJPHQ+V2hlbiB0aGUgaW50ZW5kZWQgdXNh Z2Ugb2YgYSBrZXkgdXNhZ2UgaXMgT1RQIGFuZC9vciBDUiwgDQoJCXRoZSBmb2xsb3dpbmcgYWRk aXRpb25hbCBlbGVtZW50cyBNVVNUIGJlIHByb3ZpZGVkIHdpdGhpbiB0aGUgVXNhZ2UgZWxlbWVu dCB0byBzdXBwb3J0IHRoZSBPVFAgYW5kL29yIHRoZSANCgkJcmVzcG9uc2UgY29tcHV0YXRpb24g YXMgcmVxdWlyZWQgYnkgdGhlIHVuZGVybHlpbmcgYWxnb3JpdGhtLiBUaGVzZSBlbGVtZW50cyBh bHNvIGFsbG93IGN1c3RvbWl6aW5nIG9yIA0KCQljb25maWd1cmluZyB0aGUgcmVzdWx0IG9mIHRo ZSBjb21wdXRhdGlvbiAoZS5nLiBmb3JtYXQsIGxlbmd0aCkuPC90Pg0KCQkJCQkJPHNlY3Rpb24g dGl0bGU9IkNoYWxsZW5nZUZvcm1hdCBlbGVtZW50IChNQU5EQVRPUlkpIj4NCgkJCQkJCQk8dD5U aGUgQ2hhbGxlbmdlRm9ybWF0IGVsZW1lbnQgZGVmaW5lcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9m IHRoZSBjaGFsbGVuZ2UgaW4gYSBDUiB1c2FnZSBzY2VuYXJpby4gDQoJCVRoZSBDaGFsbGVuZ2Ug ZWxlbWVudCBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczogDQoJCQ0KCQk8 bGlzdCBzdHlsZT0ic3ltYm9scyI+DQoJCQkJCQkJCQk8dD5Gb3JtYXQgKE1BTkRBVE9SWSkNCgkJ CTxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCgkJCQkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+RGVmaW5l cyB0aGUgZm9ybWF0IG9mIHRoZSBjaGFsbGVuZ2UgYWNjZXB0ZWQgYnkgDQoJCQkJdGhlIGRldmlj ZSBhbmQgTVVTVCBiZSBvbmUgb2YgdGhlIHZhbHVlcyBkZWZpbmVkIGluIDx4cmVmIHRhcmdldD0i VmFsdWVGb3JtYXQiLz4NCgkJCQkJCQkJCQkJPC90Pg0KCQkJCQkJCQkJCTwvbGlzdD4NCgkJCQkJ CQkJCTwvdD4NCgkJCQkJCQkJCTx0PkNoZWNrRGlnaXQgKE9QVElPTkFMKQ0KCQkJPGxpc3Qgc3R5 bGU9ImhhbmdpbmciPg0KCQkJCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5EZWZpbmVzIGlmIHRoZSBk ZXZpY2UgbmVlZHMgdG8gY2hlY2sgdGhlIGFwcGVuZGVkIEx1aG4gY2hlY2sgDQoJCQkJZGlnaXQg Y29udGFpbmVkIGluIGEgcHJvdmlkZWQgY2hhbGxlbmdlLiBUaGlzIGlzIG9ubHkgdmFsaWQgaWYg dGhlIEZvcm1hdCBhdHRyaWJ1dGUgaXMgJ0RFQ0lNQUwnLiBWYWx1ZSBNVVNUIGJlOg0KCQkJCTxs aXN0IHN0eWxlPSJoYW5naW5nIj4NCgkJCQkJCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5UUlVFIGRl dmljZSB3aWxsIGNoZWNrIHRoZSBhcHBlbmRlZCBMdWhuIGNoZWNrIGRpZ2l0IGluIGEgcHJvdmlk ZWQgY2hhbGxlbmdlIDwvdD4NCgkJCQkJCQkJCQkJCQk8dCBoYW5nVGV4dD0iIj5GQUxTRSBkZXZp Y2Ugd2lsbCBub3QgY2hlY2sgYXBwZW5kZWQgTHVobiBjaGVjayBkaWdpdCBpbiBjaGFsbGVuZ2U8 L3Q+DQoJCQkJCQkJCQkJCQk8L2xpc3Q+DQoJCQkJCQkJCQkJCTwvdD4NCgkJCQkJCQkJCQk8L2xp c3Q+DQoJCQkJCQkJCQk8L3Q+DQoJCQkJCQkJCQk8dD5NaW4gKE1BTkRBVE9SWSkNCgkJCTxsaXN0 IHN0eWxlPSJoYW5naW5nIj4NCgkJCQkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+RGVmaW5lcyB0aGUg bWluaW11bSBzaXplIG9mIHRoZSBjaGFsbGVuZ2UgYWNjZXB0ZWQgYnkgdGhlIGRldmljZSBmb3Ig Q1IgbW9kZS48L3Q+DQoJCQkJCQkJCQkJCTx0PklmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdE RUNJTUFMJywgJ0hFWEFERUNJTUFMJyBvciAnQUxQSEFOVU1FUklDJyB0aGlzIHZhbHVlIGluZGlj YXRlcyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzL2NoYXJhY3RlcnMuPC90Pg0KCQkJCQkJ CQkJCQk8dD5JZiB0aGUgRm9ybWF0IGF0dHJpYnV0ZSBpcyAnQkFTRTY0JyBvciAnQklOQVJZJywg dGhpcyB2YWx1ZSBpbmRpY2F0ZXMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIG9mIHRoZSB1 bmVuY29kZWQgdmFsdWUuPC90Pg0KCQkJCQkJCQkJCQk8dD5WYWx1ZSBNVVNUIGJlOjwvdD4NCgkJ CQkJCQkJCQkJPHQ+DQoJCQkJCQkJCQkJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJ CQkJCQkJPHQgaGFuZ1RleHQ9IiI+VW5zaWduZWQgaW50ZWdlci48L3Q+DQoJCQkJCQkJCQkJCQk8 L2xpc3Q+DQoJCQkJCQkJCQkJCTwvdD4NCgkJCQkJCQkJCQk8L2xpc3Q+DQoJCQkJCQkJCQk8L3Q+ DQoJCQkJCQkJCQk8dD5NYXggKE1BTkRBVE9SWSkNCgkJCTxsaXN0IHN0eWxlPSJoYW5naW5nIj4N CgkJCQkJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+RGVmaW5lcyB0aGUgbWF4aW11bSBzaXplIG9mIHRo ZSBjaGFsbGVuZ2UgYWNjZXB0ZWQgYnkgdGhlIGRldmljZSBmb3IgQ1IgbW9kZS48L3Q+DQoJCQkJ CQkJCQkJCTx0PklmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdERUNJTUFMJywgJ0hFWEFERUNJ TUFMJyBvciAnQUxQSEFOVU1FUklDJyB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgbWF4aW11bSBu dW1iZXIgb2YgZGlnaXRzL2NoYXJhY3RlcnMuPC90Pg0KCQkJCQkJCQkJCQk8dD5JZiB0aGUgRm9y bWF0IGF0dHJpYnV0ZSBpcyAnQkFTRTY0JyBvciAnQklOQVJZJywgdGhpcyB2YWx1ZSBpbmRpY2F0 ZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIG9mIHRoZSB1bmVuY29kZWQgdmFsdWUuPC90 Pg0KCQkJCQkJCQkJCQk8dD5WYWx1ZSBNVVNUIGJlOjwvdD4NCgkJCQkJCQkJCQkJPHQ+DQoJCQkJ CQkJCQkJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJCQkJCQkJPHQgaGFuZ1RleHQ9 IiI+VW5zaWduZWQgaW50ZWdlci48L3Q+DQoJCQkJCQkJCQkJCQk8L2xpc3Q+DQoJCQkJCQkJCQkJ CTwvdD4NCgkJCQkJCQkJCQk8L2xpc3Q+DQoJCQkJCQkJCQk8L3Q+DQoJCQkJCQkJCTwvbGlzdD4N CgkJCQkJCQk8L3Q+DQoJCQkJCQk8L3NlY3Rpb24+DQoJCQkJCQk8c2VjdGlvbiB0aXRsZT0iUmVz cG9uc2VGb3JtYXQgZWxlbWVudCAoTUFOREFUT1JZKSI+DQoJCQkJCQkJPHQ+VGhlIFJlc3BvbnNl Rm9ybWF0IGVsZW1lbnQgZGVmaW5lcyB0aGUgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSByZXN1bHQg b2YgDQoJCWEgY29tcHV0YXRpb24uIFRoaXMgZGVmaW5lcyB0aGUgZm9ybWF0IG9mIHRoZSBPVFAg b3Igb2YgdGhlIHJlc3BvbnNlIHRvIGEgY2hhbGxlbmdlLiBGb3IgY2FzZXMgd2hlcmUgdGhlIGtl eSBpcyBhIFBJTiB2YWx1ZSwgdGhpcyBlbGVtZW50IGNvbnRhaW5zIHRoZSBmb3JtYXQgb2YgdGhl IFBJTiBpdHNlbGYgKGUuZy4gREVDSU1BTCwgbGVuZ3RoIDQgZm9yIGEgNCBkaWdpdCBQSU4pLiAN CgkJVGhlIFJlc3BvbnNlIGF0dHJpYnV0ZSBpcyBkZWZpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgYXR0 cmlidXRlczogDQoJCQ0KCQk8bGlzdCBzdHlsZT0ic3ltYm9scyI+DQoJCQkJCQkJCQk8dD5Gb3Jt YXQgKE1BTkRBVE9SWSkNCgkJCTxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCgkJCQkJCQkJCQkJPHQg aGFuZ1RleHQ9IiI+RGVmaW5lcyB0aGUgZm9ybWF0IG9mIHRoZSByZXNwb25zZSBnZW5lcmF0ZWQg YnkgDQoJCQkJdGhlIGRldmljZSBhbmQgTVVTVCBiZSBvbmUgb2YgdGhlIHZhbHVlcyBkZWZpbmVk IGluIDx4cmVmIHRhcmdldD0iVmFsdWVGb3JtYXQiLz4NCgkJCQkJCQkJCQkJPC90Pg0KCQkJCQkJ CQkJCTwvbGlzdD4NCgkJCQkJCQkJCTwvdD4NCgkJCQkJCQkJCTx0PkNoZWNrRGlnaXQgKE9QVElP TkFMKQ0KCQkJPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0KCQkJCQkJCQkJCQk8dCBoYW5nVGV4dD0i Ij5EZWZpbmVzIGlmIHRoZSBkZXZpY2UgbmVlZHMgdG8gYXBwZW5kIGEgTHVobiBjaGVjayANCgkJ CQlkaWdpdCB0byB0aGUgcmVzcG9uc2UuIFRoaXMgaXMgb25seSB2YWxpZCBpZiB0aGUgRm9ybWF0 IGF0dHJpYnV0ZSBpcyAnREVDSU1BTCcuIFZhbHVlIE1VU1QgYmU6DQoJCQkJPGxpc3Qgc3R5bGU9 ImhhbmdpbmciPg0KCQkJCQkJCQkJCQkJCTx0IGhhbmdUZXh0PSIiPlRSVUUgZGV2aWNlIHdpbGwg YXBwZW5kIGEgTHVobiBjaGVjayBkaWdpdCB0byB0aGUgcmVzcG9uc2UuIDwvdD4NCgkJCQkJCQkJ CQkJCQk8dCBoYW5nVGV4dD0iIj5GQUxTRSBkZXZpY2Ugd2lsbCBub3QgYXBwZW5kIGEgTHVobiBj aGVjayBkaWdpdCB0byB0aGUgcmVzcG9uc2UuPC90Pg0KCQkJCQkJCQkJCQkJPC9saXN0Pg0KCQkJ CQkJCQkJCQk8L3Q+DQoJCQkJCQkJCQkJPC9saXN0Pg0KCQkJCQkJCQkJPC90Pg0KCQkJCQkJCQkJ PHQ+TGVuZ3RoIChNQU5EQVRPUlkpDQoJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJ CQkJCTx0IGhhbmdUZXh0PSIiPkRlZmluZXMgdGhlIGxlbmd0aCBvZiB0aGUgcmVzcG9uc2UgZ2Vu ZXJhdGVkIGJ5IHRoZSBkZXZpY2UuPC90Pg0KCQkJCQkJCQkJCQk8dD5JZiB0aGUgRm9ybWF0IGF0 dHJpYnV0ZSBpcyAnREVDSU1BTCcsICdIRVhBREVDSU1BTCcgb3IgJ0FMUEhBTlVNRVJJQycgdGhp cyB2YWx1ZSBpbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBkaWdpdHMvY2hhcmFjdGVycy48L3Q+DQoJ CQkJCQkJCQkJCTx0PklmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdCQVNFNjQnIG9yICdCSU5B UlknLCB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIG9mIHRoZSB1bmVu Y29kZWQgdmFsdWUuPC90Pg0KCQkJCQkJCQkJCQk8dD5WYWx1ZSBNVVNUIGJlOjwvdD4NCgkJCQkJ CQkJCQkJPHQ+DQoJCQkJCQkJCQkJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJCQkJ CQkJPHQgaGFuZ1RleHQ9IiI+VW5zaWduZWQgaW50ZWdlci4gPC90Pg0KCQkJCQkJCQkJCQkJPC9s aXN0Pg0KCQkJCQkJCQkJCQk8L3Q+DQoJCQkJCQkJCQkJPC9saXN0Pg0KCQkJCQkJCQkJPC90Pg0K CQkJCQkJCQk8L2xpc3Q+DQoJCQkJCQkJPC90Pg0KCQkJCQkJPC9zZWN0aW9uPg0KCQkJCQk8L3Nl Y3Rpb24+DQoJCQkJPC9zZWN0aW9uPg0KCQkJCTxzZWN0aW9uIGFuY2hvcj0iVmFsdWVGb3JtYXQi IHRpdGxlPSJWYWx1ZUZvcm1hdCI+DQoJCQkJCTx0PlRoZSBWYWx1ZUZvcm1hdCBlbGVtZW50IGRl ZmluZXMgYWxsb3dlZCBmb3JtYXRzIGZvciBjaGFsbGVuZ2VzIG9yIHJlc3BvbnNlcyBpbiBPVFAg YWxnb3JpdGhtcy48L3Q+DQoJCQkJCTx0PlZhbHVlRm9ybWF0IGlzIGRlZmluZWQgYXMgZm9sbG93 czo8L3Q+DQoJCQkJCTxmaWd1cmU+DQoJCQkJCQk8cHJlYW1ibGUvPg0KCQkJCQkJPGFydHdvcms+ PCFbQ0RBVEFbDQo8c2ltcGxlVHlwZSBuYW1lPSJWYWx1ZUZvcm1hdCI+DQogIDxyZXN0cmljdGlv biBiYXNlPSJzdHJpbmciPg0KICAgIDxlbnVtZXJhdGlvbiB2YWx1ZT0iREVDSU1BTCIvPg0KICAg IDxlbnVtZXJhdGlvbiB2YWx1ZT0iSEVYQURFQ0lNQUwiLz4NCiAgICA8ZW51bWVyYXRpb24gdmFs dWU9IkFMUEhBTlVNRVJJQyIvPg0KICAgIDxlbnVtZXJhdGlvbiB2YWx1ZT0iQkFTRTY0Ii8+DQog ICAgPGVudW1lcmF0aW9uIHZhbHVlPSJCSU5BUlkiLz4NCiAgPC9yZXN0cmljdGlvbj4NCjwvc2lt cGxlVHlwZT4NCl1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCQk8L2ZpZ3Vy ZT4NCgkJCQkJPHQ+DQoJCQkJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJPHQgaGFu Z1RleHQ9IiI+REVDSU1BTCwgT25seSBudW1lcmljYWwgZGlnaXRzPC90Pg0KCQkJCQkJCTx0IGhh bmdUZXh0PSIiPkhFWEFERUNJTUFMLCBIZXhhZGVjaW1hbCByZXNwb25zZTwvdD4NCgkJCQkJCQk8 dCBoYW5nVGV4dD0iIj5BTFBIQU5VTUVSSUMsIEFsbCBsZXR0ZXJzIGFuZCBudW1iZXJzIChjYXNl IHNlbnNpdGl2ZSk8L3Q+DQoJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+QkFTRTY0LCBCYXNlIDY0IGVu Y29kZWQ8L3Q+DQoJCQkJCQkJPHQgaGFuZ1RleHQ9IiI+QklOQVJZLCBCaW5hcnkgZGF0YSwgdGhp cyBpcyBtYWlubHkgdXNlZCBpbiBjYXNlIG9mIGNvbm5lY3RlZCBkZXZpY2VzPC90Pg0KCQkJCQkJ PC9saXN0Pg0KCQkJCQk8L3Q+DQoJCQkJPC9zZWN0aW9uPg0KCQkJCTxzZWN0aW9uIGFuY2hvcj0i UElOUG9saWN5RWxlbWVudCIgdGl0bGU9IlBJTlBvbGljeSI+DQoJCQkJCTx0PlRoZSBQSU5Qb2xp Y3kgZWxlbWVudCBwcm92aWRlcyBhbiBleHRlbnNpYmxlIG1lYW4gdG8gZGVmaW5lIGhvdyB0aGUg dXNhZ2Ugb2YgYSBzcGVjaWZpYyBrZXkgaXMgcHJvdGVjdGVkIGJ5IGEgUElOLiBUaGUgUElOIGl0 c2VsZiBjYW4gYmUgdHJhbnNtaXR0ZWQgYXMgYSBrZXkgdXNpbmcgdGhlIGNvbnRhaW5lci48L3Q+ DQoJCQkJCTx0PklmIHRoZSBQSU5Qb2xpY3kgZWxlbWVudCBpcyBwcmVzZW50IGluIHRoZSBLZXkg ZWxlbWVudCB0aGVuIHRoZSBrZXkgaXMgcHJvdGVjdGVkIHdpdGggYSBQSU4gYXMgZGVmaW5lZCB3 aXRoaW4gdGhlIFBJTlBvbGljeSBlbGVtZW50LiBUaGUgUElOUG9saWN5IGVsZW1lbnQgYWxzbyBo YXMgYW4gZXh0ZW5zaW9uIHBvaW50IGRlZmluZWQgYXMgeHM6YW55IHRvIGFsbG93IGZ1dHVyZSBl eHRlbnNpYmlsaXR5IDwvdD4NCgkJCQkJPHQ+UElOUG9saWN5IGlzIGRlZmluZWQgYXMgZm9sbG93 czo8L3Q+DQoJCQkJCTxmaWd1cmU+DQoJCQkJCQk8cHJlYW1ibGUvPg0KCQkJCQkJPGFydHdvcms+ PCFbQ0RBVEFbDQo8eHM6Y29tcGxleFR5cGUgbmFtZT0iUElOUG9saWN5VHlwZSI+DQogICAgPHhz OnNlcXVlbmNlPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQSU5Vc2FnZU1vZGUiIHR5cGU9 InBza2M6UElOVXNhZ2VNb2RlVHlwZSIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNYXhG YWlsZWRBdHRlbXB0cyIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIA0KICAgICAgICAgIG1pbk9jY3Vy cz0iMCIvPg0KCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJs YXgiIA0KCQltaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgPC94czpz ZXF1ZW5jZT4NCgk8eHM6YXR0cmlidXRlIG5hbWU9IlBJTlBvbGljeUlkIiB0eXBlPSJ4czpJRCIg dXNlPSJvcHRpb25hbCIvPg0KICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iUElOS2V5SWQiIHR5cGU9 InhzOnN0cmluZyIgdXNlPSJvcHRpb25hbCIvPg0KPC94czpjb21wbGV4VHlwZT4NCl1dPjwvYXJ0 d29yaz4NCgkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCQk8L2ZpZ3VyZT4NCgkJCQkJPHQ+IFRoZSBh dHRyaWJ1dGVzIG9mIFBJTlBvbGljeSBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZw0KCQkJCTxs aXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD5QSU5Qb2xpY3lJZCAoT1BUSU9OQUwpLCB0 aGUgdW5pcXVlIElkIG9mIHRoaXMgUElOUG9saWN5IHdpdGhpbiB0aGlzIGNvbnRhaW5lciA8L3Q+ DQoJCQkJCQkJPHQ+UElOS2V5SWQgKE9QVElPTkFMKSwgdGhlIHVuaXF1ZSBrZXkgSWQgd2l0aGlu IHRoaXMgY29udGFpbmVyIHRoYXQgY29udGFpbnMgdGhlIHZhbHVlIG9mIHRoZSBQSU4gdGhhdCBw cm90ZWN0cyB0aGUga2V5PC90Pg0KCQkJCQkJPC9saXN0Pg0KCQkJCQk8L3Q+DQoJCQkJCTx0PiBU aGUgZWxlbWVudHMgb2YgUElOUG9saWN5IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nDQoJCQkJ PGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJCTx0PiZsdDtQSU5Vc2FnZU1vZGUgKE1BTkRB VE9SWSk+ICwgdGhlIHdheSB0aGUgUElOIGlzIHVzZWQgZHVyaW5nIHRoZSB1c2FnZSBvZiB0aGUg a2V5IGFzIGRlZmluZWQgaW4gPHhyZWYgdGFyZ2V0PSJQSU5Vc2FnZU1vZGVFbGVtZW50Ii8+PC90 Pg0KCQkJCQkJCTx0PiZsdDtNYXhGYWlsZWRBdHRlbXB0cyAoT1BUSU9OQUwpPiwgdGhlIG1heGlt dW0gbnVtYmVyIG9mIHRpbWVzIHRoZSBQSU4gY2FuIGJlIGVudGVyZWQgd3JvbmdseSBiZWZvcmUg aXQgTVVTVCBub3QgYmUgcG9zc2libGUgdG8gdXNlIHRoZSBrZXkgYW55bW9yZTwvdD4NCgkJCQkJ CQkNCgkJCQkJCTwvbGlzdD4NCgkJCQkJPC90Pg0KCQkJCQk8c2VjdGlvbiBhbmNob3I9IlBJTlVz YWdlTW9kZUVsZW1lbnQiIHRpdGxlPSJQSU5Vc2FnZU1vZGUiPg0KCQkJCQkJPHQ+VGhlIFBJTlVz YWdlTW9kZSBlbGVtZW50IGRlZmluZXMgaG93IHRoZSBQSU4gaXMgdXNlZCB3aXRoIGEgc3BlY2lm aWMga2V5LiBUaGUgUElOVXNhZ2VNb2RlIGVsZW1lbnQgYWxzbyBoYXMgYW4gZXh0ZW5zaW9uIHBv aW50IGRlZmluZWQgYXMgeHM6YW55IHRvIGFsbG93IGZ1dHVyZSBleHRlbnNpYmlsaXR5IDwvdD4N CgkJCQkJCTx0PlBJTlVzYWdlTW9kZSBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6PC90Pg0KCQkJCQkJ PGZpZ3VyZT4NCgkJCQkJCQk8cHJlYW1ibGUvPg0KCQkJCQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0K PHhzOmNvbXBsZXhUeXBlIG5hbWU9IlBJTlVzYWdlTW9kZVR5cGUiPg0KICAgIDx4czpjaG9pY2Ug bWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJMb2NhbCIv Pg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQcmVwZW5kIi8+DQogICAgICAgIDx4czplbGVt ZW50IG5hbWU9IkFsZ29yaXRobWljIi8+DQogICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290 aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIgDQogICAgICAgIG1pbk9jY3Vycz0iMCIgbWF4T2Nj dXJzPSJ1bmJvdW5kZWQiLz4NCiAgICA8L3hzOmNob2ljZT4NCjwveHM6Y29tcGxleFR5cGU+DQpd XT48L2FydHdvcms+DQoJCQkJCQkJPHBvc3RhbWJsZS8+DQoJCQkJCQk8L2ZpZ3VyZT4NCgkJCQkJ CTx0PiBUaGUgZWxlbWVudHMgb2YgUElOUG9saWN5IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5n DQoJCQkJPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJCQk8dD4mbHQ7TG9jYWw+LCB0aGUg UElOIGlzIGNoZWNrZWQgbG9jYWxseSBvbiB0aGUgZGV2aWNlIGJlZm9yZSBhbGxvd2luZyB0aGUg a2V5IHRvIGJlIHVzZWQgaW4gZXhlY3V0aW5nIHRoZSBhbGdvcml0aG08L3Q+DQoJCQkJCQkJCTx0 PiZsdDtQcmVwZW5kPiwgdGhlIFBJTiBpcyBwcmVwZW5kZWQgdG8gdGhlIE9UUCBvciByZXNwb25z ZSBoZW5jZSBpdCBNVVNUIGJlIGNoZWNrZWQgYnkgdGhlIHZhbGlkYXRpb24gc2VydmVyPC90Pg0K CQkJCQkJCQk8dD4mbHQ7QWxnb3JpdGhtaWM+LCB0aGUgUElOIGlzIHVzZWQgYXMgcGFydCBvZiB0 aGUgYWxnb3JpdGhtIGNvbXB1dGF0aW9uPC90Pg0KCQkJCQkJCTwvbGlzdD4NCgkJCQkJCTwvdD4N CgkJCQkJPC9zZWN0aW9uPg0KCQkJCTwvc2VjdGlvbj4NCgkJCTwvc2VjdGlvbj4NCgkJPC9zZWN0 aW9uPg0KCQk8c2VjdGlvbiBhbmNob3I9IlNlY3VyaXR5QWxnb3JpdGhtRGVzY3JpcHRpb24iIHRp dGxlPSJVc2FnZSBhbmQgcHJvZmlsZSBvZiBhbGdvcml0aG1zIGZvciB0aGUgcG9ydGFibGUgc3lt bWV0cmljIGtleSBjb250YWluZXIiPg0KCQkJPHQ+VGhpcyBzZWN0aW9uIGRldGFpbHMgdGhlIHVz ZSBvZiB0aGUgWE1MIGVuY3J5cHRpb24gYW5kIFhNTCBzaWduYXR1cmUgZWxlbWVudHMgdG8gcHJv dGVjdCB0aGUga2V5cyB0cmFuc3BvcnRlZCBpbiB0aGUgY29udGFpbmVyLiBJdCBhbHNvIHByb2Zp bGVzIHRoZSBudW1iZXIgb2YgYWxnb3JpdGhtcyBzdXBwb3J0ZWQgYnkgWE1MIGVuY3J5cHRpb24g YW5kIFhNTCBzaWduYXR1cmUgdG8gYSBtYW5kYXRvcnkgc3Vic2V0IGZvciBpbnRlcm9wZXJhYmls aXR5Lg0KCQkJCTwvdD4NCgkJCTx0PldoZW4gbm8gYWxnb3JpdGhtIGlzIHByb3ZpZGVkIHRoZSB2 YWx1ZXMgd2l0aGluIHRoZSBjb250YWluZXIgYXJlIHVuZW5jcnlwdGVkLCBpbXBsZW1lbnRhdGlv bnMgU0hBTEwgZW5zdXJlIHRoZSBwcml2YWN5IG9mIHRoZSBrZXkgZGF0YSB0aHJvdWdoIG90aGVy IHN0YW5kYXJkIG1lY2hhbmlzbXMgZS5nLiB0cmFuc3BvcnQgbGV2ZWwgZW5jcnlwdGlvbi48L3Q+ DQoJCQk8c2VjdGlvbiBhbmNob3I9IkVuY3J5cHRpb25LZXlEZXNjcmlwdGlvbiIgdGl0bGU9IlVz YWdlIG9mIEVuY3J5cHRpb25LZXkgdG8gcHJvdGVjdCBrZXlzIGluIHRyYW5zaXQiPg0KCQkJCTx0 PlRoZSBFbmNyeXB0aW9uS2V5IGVsZW1lbnQgaW4gdGhlIEtleUNvbnRhaW5lciBkZWZpbmVzIHRo ZSBrZXksIGFsZ29yaXRobSBhbmQgcGFyYW1ldGVycyB1c2VkIHRvIGVuY3J5cHQgDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIFNlY3JldCBLZXkgZGF0YSBhdHRy aWJ1dGVzIGluIHRoZSBDb250YWluZXIuIFRoZSBzdGFuZGFyZCBzY2hlbWEgPHhyZWYgdGFyZ2V0 PSJYTUxFTkMiLz4gaXMgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YWRvcHRlZCBpbiBjYXJyeSBzdWNoIGluZm9ybWF0aW9uIGFuZCBhbiBlbmNyeXB0ZWQgdmFsdWUu IFRoZSBlbmNyeXB0aW9uIGlzIGFwcGxpZWQgb24gZWFjaCANCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmRpdmlkdWFsIFNlY3JldCBLZXkgZGF0YSBpbiB0aGUgQ29u dGFpbmVyLiBUaGUgZW5jcnlwdGlvbiBtZXRob2QgTVVTVCBiZSB0aGUgDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtZSBmb3IgYWxsIFNlY3JldCBLZXkgZGF0YSBp biB0aGUgY29udGFpbmVyLiA8L3Q+DQoJCQkJPHQ+VGhlIGZvbGxvd2luZyBzZWN0aW9ucyBkZWZp bmUgc3BlY2lmaWNhbGx5IHRoZSBkaWZmZXJlbnQgc3VwcG9ydGVkIG1lYW5zIHRvIHByb3RlY3Qg dGhlIGtleXM6DQogICAgICAgICAgICAgICAgICAgICA8L3Q+DQoJCQkJPHNlY3Rpb24gYW5jaG9y PSJTeW1tZXRyaWNLZXlQcm90ZWN0aW9uRGVzY3JpcHRpb24iIHRpdGxlPSJQcm90ZWN0aW5nIGtl eXMgdXNpbmcgYSBwcmUtc2hhcmVkIGtleSB2aWEgc3ltbWV0cmljIGFsZ29yaXRobXMiPg0KCQkJ CQk8dD5XaGVuIHByb3RlY3RpbmcgdGhlIHBheWxvYWQgd2l0aCBwcmUtc2hhcmVkIGtleXMgaW1w bGVtZW50YXRpb25zIFNIT1VMRCBzZXQgdGhlIG5hbWUgb2YgdGhlIHNwZWNpZmljIHByZS1zaGFy ZWQga2V5IGluIHRoZSBLZXlOYW1lIGVsZW1lbnQgb2YgdGhlIEVuY3J5cHRpb25LZXkgb2YgdGhl IEtleUNvbnRhaW5lci4NCgkJCQkJRm9yIGV4YW1wbGU6DQoJCQkJCTxmaWd1cmU+DQoJCQkJCQkJ PHByZWFtYmxlLz4NCgkJCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjxLZXlDb250YWluZXIgVmVy c2lvbj0iMS4wIiANCiAgeG1sbnM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tj OjEuMCIgDQogIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiAN CiAgeG1sbnM6eGVuYz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjIj4NCiAgICA8 RW5jcnlwdGlvbktleT4NCiAgICAgICAgPGRzOktleU5hbWU+UFJFX1NIQVJFRF9LRVk8L2RzOktl eU5hbWU+DQogICAgPC9FbmNyeXB0aW9uS2V5Pg0KICAgIC4uLi4NCgkgICAgICAgIF1dPjwvYXJ0 d29yaz4NCgkJCQkJCQk8cG9zdGFtYmxlLz4NCgkJCQkJCTwvZmlndXJlPgkJCQkJDQoJCQkJCTwv dD4NCgkJCQkJPHQ+CQkJCQ0KCQkJCQlUaGUgZm9sbG93aW5nIGlzIHRoZSBsaXN0IG9mIHN5bW1l dHJpYyBrZXkgZW5jcnlwdGlvbiBhbGdvcml0aG0gYW5kIHBvc3NpYmxlIHBhcmFtZXRlcnMgdXNl ZCB0byBwcm90ZWN0IHRoZSBTZWNyZXQgS2V5IGRhdGEgaW4gdGhlIGNvbnRhaW5lci4gU3lzdGVt cyBpbXBsZW1lbnRpbmcgUFNLQyBNVVNUIHN1cHBvcnQgdGhlIE1BTkRBVE9SWSBhbGdvcml0aG1z IGRldGFpbGVkIGJlbG93LjwvdD4NCgkJCQkJPHQ+VGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIFVS SSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcuDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD5odHRw Oi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyN0cmlwbGVkZXMtY2JjIC0gTUFOREFUT1JZPC90 Pg0KCQkJCQkJCTx0Pmh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2FlczEyOC1jYmMg LSBNQU5EQVRPUlk8L3Q+DQoJCQkJCQkJPHQ+aHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxl bmMjYWVzMTkyLWNiYyAtIE9QVElPTkFMPC90Pg0KCQkJCQkJCTx0Pmh0dHA6Ly93d3cudzMub3Jn LzIwMDEvMDQveG1sZW5jI2FlczI1Ni1jYmMgLSBNQU5EQVRPUlk8L3Q+DQoJCQkJCQkJPHQ+aHR0 cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMja3ctdHJpcGxlZGVzIC0gTUFOREFUT1JZPC90 Pg0KCQkJCQkJCTx0Pmh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2t3LWFlczEyOCAt IE1BTkRBVE9SWTwvdD4NCgkJCQkJCQk8dD5odHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVu YyNrdy1hZXMyNTYgLSBNQU5EQVRPUlk8L3Q+DQoJCQkJCQkJPHQ+aHR0cDovL3d3dy53My5vcmcv MjAwMS8wNC94bWxlbmMja3ctYWVzNTEyIC0gT1BUSU9OQUw8L3Q+DQoJCQkJCQk8L2xpc3Q+DQoJ CQkJCTwvdD4NCgkJCQkJPHQ+V2hlbiBhbGdvcml0aG1zIHdpdGhvdXQgaW50ZWdyaXR5IGNoZWNr cyBhcmUgdXNlZCAoZS5nLiBodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNhZXMyNTYt Y2JjKSBhIGtleWVkIE1BQyB2YWx1ZSB1c2luZyB0aGUgc2FtZSBrZXkgYXMgdGhlIGVuY3J5cHRp b24ga2V5IFNIT1VMRCBiZSBwbGFjZWQgaW4gdGhlIFZhbHVlTUFDIGVsZW1lbnQgb2YgdGhlIERh dGEgZWxlbWVudC4NCkluIHRoaXMgY2FzZSB0aGUgTUFDIGFsZ29yaXRobSB0eXBlIE1VU1QgYmUg c2V0IGluIHRoZSBNQUNBbGdvcml0aG0gZWxlbWVudCBpbiB0aGUga2V5IGNvbnRhaW5lciBlbnRp dHkgYXMgZGVmaW5lZCBpbiA8eHJlZiB0YXJnZXQ9IktleUNvbnRhaW5lckVudGl0eSIvPi4NCklt cGxlbWVudGF0aW9ucyBvZiBQU0tDIE1VU1Qgc3VwcG9ydCB0aGUgTUFOREFUT1JZIE1BQyBhbGdv cml0aG1zIGRldGFpbGVkIGJlbG93LiBUaGUgTUFDQWxnb3JpdGhtIFVSSSBjYW4gYmUgb25lIG9m IHRoZSBmb2xsb3dpbmc6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD5odHRwOi8vd3d3LnczLm9yZy8y MDAwLzA5L3htbGRzaWcjaG1hYy1zaGExICAtIE1BTkRBVE9SWTwvdD4NCgkJCQkJCTwvbGlzdD4N Cg0KRm9yIGV4YW1wbGU6DQoJCQkJCTxmaWd1cmU+DQoJCQkJCQkJPHByZWFtYmxlLz4NCgkJCQkJ CQk8YXJ0d29yaz48IVtDREFUQVsNCjxLZXlDb250YWluZXIgVmVyc2lvbj0iMS4wIiANCiAgeG1s bnM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tjOjEuMCIgDQogIHhtbG5zOmRz PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiANCiAgeG1sbnM6eGVuYz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjIj4NCiAgICA8RW5jcnlwdGlvbktleT4NCiAg ICAgICAgPGRzOktleU5hbWU+UFJFX1NIQVJFRF9LRVk8L2RzOktleU5hbWU+DQogICAgPC9FbmNy eXB0aW9uS2V5Pg0KICAgIDxNQUNBbGdvcml0aG0+aHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94 bWxkc2lnI2htYWMtc2hhMQ0KICAgIDwvTUFDQWxnb3JpdGhtPg0KICAgIC4uLi4uDQoJICAgICAg ICBdXT48L2FydHdvcms+DQoJCQkJCQkJPHBvc3RhbWJsZS8+DQoJCQkJCQk8L2ZpZ3VyZT4NCgkJ CQkJPC90Pg0KCQkJCTwvc2VjdGlvbj4NCgkJCQk8c2VjdGlvbiB0aXRsZT0iUHJvdGVjdGluZyBr ZXlzIHVzaW5nIHBhc3NwaHJhc2UgYmFzZWQgZW5jcnlwdGlvbiBrZXlzIj4NCgkJCQkJPHQ+VG8g YmUgYWJsZSB0byBzdXBwb3J0IHBhc3NwaHJhc2UgYmFzZWQgZW5jcnlwdGlvbiBrZXlzIGFzIGRl ZmluZWQgaW4gUEtDUyM1IHRoZSBmb2xsb3dpbmcgWE1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBQ QkUgcmVsYXRlcyBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkIGluIHRoZSBzY2hlbWEu IEFsdGhvdWdoIHRoZSBhcHByb2FjaCBpcyBleHRlbnNpYmxlIGltcGxlbWVudGF0aW9ucyBvZiBQ U0tDIE1VU1Qgc3VwcG9ydCB0aGUgS2V5RGVyaXZhdGlvbk1ldGhvZCBhbGdvcml0aG0gVVJJIG9m IGh0dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy9zY2hlbWFzL3BrY3MtNSNw YmtkZjIuDQoJCQkJCTwvdD4NCgkJCQkJPGZpZ3VyZT4NCgkJCQkJCTxwcmVhbWJsZS8+DQoJCQkJ CQk8YXJ0d29yaz48IVtDREFUQVsNCjx4czpjb21wbGV4VHlwZSBuYW1lPSJEZXJpdmVkS2V5VHlw ZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJLZXlEZXJp dmF0aW9uTWV0aG9kIiANCiAgICAgICAgICB0eXBlPSJwc2tjOktleURlcml2YXRpb25NZXRob2RU eXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJ4ZW5jOlJlZmVy ZW5jZUxpc3QiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJDYXJy aWVkS2V5TmFtZSIgdHlwZT0ieHM6c3RyaW5nIiANCiAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4N CiAgICA8L3hzOnNlcXVlbmNlPg0KICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iSWQiIHR5cGU9Inhz OklEIiB1c2U9Im9wdGlvbmFsIi8+DQogICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJUeXBlIiB0eXBl PSJ4czphbnlVUkkiIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAg IDx4czpjb21wbGV4VHlwZSBuYW1lPSJLZXlEZXJpdmF0aW9uTWV0aG9kVHlwZSI+DQogICAgPHhz OnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIG1pbk9j Y3Vycz0iMCIgDQogICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgPC94 czpzZXF1ZW5jZT4NCiAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkFsZ29yaXRobSIgdHlwZT0ieHM6 YW55VVJJIiANCiAgICB1c2U9InJlcXVpcmVkIi8+DQo8L3hzOmNvbXBsZXhUeXBlPg0KCSAgICAg ICAgXV0+PC9hcnR3b3JrPg0KCQkJCQkJPHBvc3RhbWJsZS8+DQoJCQkJCTwvZmlndXJlPg0KCQkJ CQkJPHQ+VGhlIGF0dHJpYnV0ZXMgb2YgdGhlIERlcml2ZWRLZXkgaGF2ZSB0aGUgZm9sbG93aW5n IG1lYW5pbmdzOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaXN0 IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCQk8dD5JRCAoT1BUSU9OQUwpLCB0aGUgdW5pcXVlIElE IGZvciB0aGlzIGtleTwvdD4NCgkJCQkJCQk8dD5UeXBlIChPUFRJT05BTCksIFRoaXMgYXR0cmli dXRlIHdhcyBpbmNsdWRlZCBmb3IgY29uZm9ybWFuY2Ugd2l0aCB4bWwgZW5jcnlwdGlvbiwgaXQg aXMgYW4gb3B0aW9uYWwgYXR0cmlidXRlIGlkZW50aWZ5aW5nIHR5cGUgaW5mb3JtYXRpb24gYWJv dXQgdGhlIHBsYWludGV4dCBmb3JtIG9mIHRoZSBlbmNyeXB0ZWQgY29udGVudC4gUGxlYXNlIHNl ZSA8eHJlZiB0YXJnZXQ9IlhNTEVOQyIvPiBzZWN0aW9uIDMuMSBUeXBlIGZvciBtb3JlIGRldGFp bHMuPC90Pg0KCQkJCQkJPC9saXN0Pg0KCQkJCQk8L3Q+CQkJCTx0PlRoZSBlbGVtZW50cyBvZiB0 aGUgRGVyaXZlZEtleSBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpc3Qgc3R5bGU9InN5bWJvbHMiPg0KCQkJCQkJ CTx0PiZsdDtLZXlEZXJpdmF0aW9uTWV0aG9kPjogVVJJIG9mIHRoZSBhbGdvcml0aG1zIHVzZWQg dG8gZGVyaXZlIHRoZSBrZXkgZS5nLiAoaHR0cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcnNhbGFi cy9wa2NzL3NjaGVtYXMvcGtjcy01I3Bia2RmMik8L3Q+DQoJCQkJCQkJPHQ+Jmx0O1JlZmVyZW5j ZUxpc3QgKE9QVElPTkFMKT46IGEgbGlzdCBvZiBJRHMgb2YgdGhlIGVsZW1lbnRzIHRoYXQgaGF2 ZSBiZWVuIGVuY3J5cHRlZCBieSB0aGlzIGtleTwvdD4NCgkJCQkJCQk8dD4mbHQ7Q2FycmllZEtl eU5hbWUgKE9QVElPTkFMKT46IGZyaWVuZGx5IG5hbWUgb2YgdGhlIGtleTwvdD4NCgkJCQkJCTwv bGlzdD4NCgkJCQkJPC90Pg0KCQkJCQk8dD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgV2hlbiB1c2luZyB0aGUgUEtDUzUgUEJFIGFsZ29yaXRobSAoVVJJPWh0 dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy9zY2hlbWFzL3BrY3MtNSNwYmVz MikgYW5kIHJlbGF0ZWQgcGFyYW1ldGVycywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhlIERlcml2ZWRLZXkgZWxlbWVudCBNVVNUIGJlIHVzZWQgd2l0aGlu IHRoZSBFbmNyeXB0aW9uS2V5IGVsZW1lbnQgb2YgdGhlIEtleUNvbnRhaW5lciBpbiBleGFjdGx5 IHRoZSBmb3JtIGFzIHNob3duIGJlbG93Og0KCQkJCQk8ZmlndXJlPg0KCQkJCQkJCTxwcmVhbWJs ZS8+DQoJCQkJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k aW5nPSJVVEYtOCI/Pg0KPEtleUNvbnRhaW5lcg0KICB4bWxucz0idXJuOmlldGY6cGFyYW1zOnht bDpuczprZXlwcm92OnBza2M6MS4wIg0KICB4bWxuczpwa2NzLTU9DQogICAgImh0dHA6Ly93d3cu cnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy9zY2hlbWFzL3BrY3MtNXYyLTAjIg0KICB4bWxu czp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIg0KICB4bWxu czpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyINCiAgeG1sbnM6eGVuYz0i aHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjIg0KICBWZXJzaW9uPSIxLjAiPg0KICAg IDxFbmNyeXB0aW9uS2V5Pg0KICAgICAgPERlcml2ZWRLZXkgSWQ9IiNQYXNzcGhyYXNlMSI+DQog ICAgICAgIDxDYXJyaWVkS2V5TmFtZT5QYXNzcGhyYXNlMTwvQ2FycmllZEtleU5hbWU+DQogICAg ICAgIDxLZXlEZXJpdmF0aW9uTWV0aG9kDQogICAgICAgICAgQWxnb3JpdGhtPQ0KICAgICAiaHR0 cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcnNhbGFicy9wa2NzL3NjaGVtYXMvcGtjcy01I3Bia2Rm MiI+DQogICAgICAgICAgPFBhcmFtZXRlcnMgeHNpOnR5cGU9InBrY3MtNTpQQktERjJQYXJhbWV0 ZXJUeXBlIj4NCiAgICAgICAgICAgIDxTYWx0Pg0KICAgICAgICAgICAgICA8U3BlY2lmaWVkPkRm M2RSQWhqR2g4PTwvU3BlY2lmaWVkPg0KICAgICAgICAgICAgPC9TYWx0Pg0KICAgICAgICAgICAg PEl0ZXJhdGlvbkNvdW50PjIwMDA8L0l0ZXJhdGlvbkNvdW50Pg0KICAgICAgICAgICAgPEtleUxl bmd0aD4xNjwvS2V5TGVuZ3RoPg0KICAgICAgICAgICAgPFBSRi8+DQogICAgICAgICAgPC9QYXJh bWV0ZXJzPg0KICAgICAgICA8L0tleURlcml2YXRpb25NZXRob2Q+DQogICAgICA8L0Rlcml2ZWRL ZXk+DQogICAgPC9FbmNyeXB0aW9uS2V5PiAgDQouLi4uDQoJICAgICAgICBdXT48L2FydHdvcms+ DQoJCQkJCQkJPHBvc3RhbWJsZS8+DQoJCQkJCQk8L2ZpZ3VyZT4NCgkJCQkJPC90Pg0KCQkJCTwv c2VjdGlvbj4NCgkJCTwvc2VjdGlvbj4NCgkJCTxzZWN0aW9uIHRpdGxlPSJQcm90ZWN0aW5nIGtl eXMgdXNpbmcgYXN5bW1ldHJpYyBhbGdvcml0aG1zIj4NCgkJCQk8dD5UaGUgZm9sbG93aW5nIGlz IHRoZSBsaXN0IG9mIGFzeW1tZXRyaWMga2V5IGVuY3J5cHRpb24gYWxnb3JpdGhtIGFuZCBwb3Nz aWJsZSBwYXJhbWV0ZXJzIHVzZWQgdG8gcHJvdGVjdCB0aGUgU2VjcmV0IEtleSBkYXRhIGluIHRo ZSBjb250YWluZXIuIFN5c3RlbXMgaW1wbGVtZW50aW5nIFBTS0MgTVVTVCBzdXBwb3J0IHRoZSBN QU5EQVRPUlkgYWxnb3JpdGhtcyBkZXRhaWxlZCBiZWxvdy4gVGhlIGVuY3J5cHRpb24gYWxnb3Jp dGhtIFVSSSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcuDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCTx0 Pmh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYS0xXzUgLSBNQU5EQVRPUlk8L3Q+ DQoJCQkJCQk8dD5odHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNyc2Etb2FlcC1tZ2Yx cCAtIE9QVElPTkFMPC90Pg0KCQkJCQk8L2xpc3Q+DQoJCQkJPC90Pg0KCQkJCTx0Pg0KDQpGb3Ig ZXhhbXBsZToNCgkJCQkJPGZpZ3VyZT4NCgkJCQkJCTxwcmVhbWJsZS8+DQoJCQkJCQk8YXJ0d29y az48IVtDREFUQVsNCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQoNCjxw c2tjOktleUNvbnRhaW5lciBWZXJzaW9uPSIxLjAiDQogIHhtbG5zOnBza2M9InVybjppZXRmOnBh cmFtczp4bWw6bnM6a2V5cHJvdjpwc2tjOjEuMCINCiAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMu b3JnLzIwMDAvMDkveG1sZHNpZyMiDQogIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIw MDEvMDQveG1sZW5jIyI+DQogICAgPHBza2M6RW5jcnlwdGlvbktleT4NCiAgICAgICAgPGRzOlg1 MDlEYXRhPg0KICAgICAgICAgICAgPGRzOlg1MDlDZXJ0aWZpY2F0ZT5taWliPC9kczpYNTA5Q2Vy dGlmaWNhdGU+DQogICAgICAgIDwvZHM6WDUwOURhdGE+DQogICAgPC9wc2tjOkVuY3J5cHRpb25L ZXk+DQogICAgPHBza2M6RGV2aWNlPg0KICAgICAgICA8cHNrYzpEZXZpY2VJbmZvPg0KICAgICAg ICAgICAgPHBza2M6TWFudWZhY3R1cmVyPkFDTUU8L3Bza2M6TWFudWZhY3R1cmVyPg0KICAgICAg ICAgICAgPHBza2M6U2VyaWFsTm8+MDc1NTIyNTI2NjwvcHNrYzpTZXJpYWxObz4NCiAgICAgICAg PC9wc2tjOkRldmljZUluZm8+DQogICAgICAgIDxwc2tjOktleSBLZXlBbGdvcml0aG09DQogICAg ICAgICAiaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92L3Bza2MjaG90cCIgDQogICAgICAgICBL ZXlJZD0iMDc1NTIyNTI2NiI+DQogICAgICAgICAgICA8cHNrYzpJc3N1ZXI+QW5Jc3N1ZXI8L3Bz a2M6SXNzdWVyPg0KICAgICAgICAgICAgPHBza2M6VXNhZ2UgT1RQPSJ0cnVlIj4NCiAgICAgICAg ICAgICAgICA8cHNrYzpSZXNwb25zZUZvcm1hdCBMZW5ndGg9IjgiIA0KICAgICAgICAgICAgICAg IEZvcm1hdD0iREVDSU1BTCIvPg0KICAgICAgICAgICAgPC9wc2tjOlVzYWdlPg0KICAgICAgICAg ICAgPHBza2M6RGF0YSBOYW1lPSJDT1VOVEVSIj4NCiAgICAgICAgICAgICAgICA8cHNrYzpQbGFp blZhbHVlPkFwcmt1QT09PC9wc2tjOlBsYWluVmFsdWU+DQogICAgICAgICAgICA8L3Bza2M6RGF0 YT4NCiAgICAgICAgICAgIDxwc2tjOkRhdGEgTmFtZT0iU0VDUkVUIj4NCiAgICAgICAgICAgICAg PHBza2M6RW5jcnlwdGVkVmFsdWUgSWQ9IkVEIj4NCiAgICAgICAgICAgICAgICA8eGVuYzpFbmNy eXB0aW9uTWV0aG9kDQogICAgICAgICAgICAgICAgICBBbGdvcml0aG09DQogICAgICAgICAgICAg ICAgICAiaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjcnNhXzFfNSIvPg0KICAgICAg ICAgICAgICAgIDx4ZW5jOkNpcGhlckRhdGE+DQogICAgICAgICAgICAgICAgICA8eGVuYzpDaXBo ZXJWYWx1ZT5yZjRkeDNydkVQTzB2S3RLTDE0TmJlVnU4bms9DQogICAgICAgICAgICAgICAgICA8 L3hlbmM6Q2lwaGVyVmFsdWU+DQogICAgICAgICAgICAgICAgPC94ZW5jOkNpcGhlckRhdGE+DQog ICAgICAgICAgICAgIDwvcHNrYzpFbmNyeXB0ZWRWYWx1ZT4NCiAgICAgICAgICAgIDwvcHNrYzpE YXRhPg0KICAgICAgICA8L3Bza2M6S2V5Pg0KICAgIDwvcHNrYzpEZXZpY2U+DQo8L3Bza2M6S2V5 Q29udGFpbmVyPl1dPjwvYXJ0d29yaz4NCgkJCQkJCTxwb3N0YW1ibGUvPg0KCQkJCQk8L2ZpZ3Vy ZT4NCgkJCQk8L3Q+DQoJCQk8L3NlY3Rpb24+DQoJCQk8c2VjdGlvbiBhbmNob3I9IktleUFsZ29y aXRobUF0dHJpYnV0ZSIgdGl0bGU9IlByb2ZpbGUgb2YgS2V5IEFsZ29yaXRobSI+DQoJCQkJPHQ+ VGhpcyBzZWN0aW9uIHByb2ZpbGVzIHRoZSB0eXBlKHMpIG9mIGFsZ29yaXRobSBvZiB0aGF0IGNh biBiZSB1c2VkIGJ5IHRoZSBrZXkocykgdHJhbnNwb3J0ZWQgaW4gdGhlIGNvbnRhaW5lci4gVGhl IGZvbGxvd2luZyBhbGdvcml0aG0gVVJJcyBhcmUgYW1vbmcgdGhlIGRlZmF1bHQgc3VwcG9ydCBs aXN0Lg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlzdCBz dHlsZT0ic3ltYm9scyI+DQoJCQkJCQk8dD5odHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVu YyN0cmlwbGVkZXMtY2JjPC90Pg0KCQkJCQkJPHQ+aHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94 bWxlbmMjYWVzMTI4LWNiYzwvdD4NCgkJCQkJCTx0Pmh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQv eG1sZW5jI2FlczE5Mi1jYmM8L3Q+DQoJCQkJCQk8dD5odHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0 L3htbGVuYyNhZXMyNTYtY2JjPC90Pg0KCQkJCQkJPHQ+aHR0cDovL3d3dy5pZXRmLm9yZy9rZXlw cm92L3Bza2MjaG90cDwvdD4NCgkJCQkJCTx0Pmh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9w c2tjI3BpbjwvdD4NCgkJCQkJPC9saXN0Pg0KCQkJCTwvdD4NCgkJCQk8c2VjdGlvbiBhbmNob3I9 Ik9UUEFsZ29yaXRobSIgdGl0bGU9Ik9UUCBLZXkgQWxnb3JpdGhtIElkZW50aWZpZXJzIj4NCgkJ CQkJPHQ+T1RQIGtleSBhbGdvcml0aG0gVVJJcyBoYXZlIG5vdCBiZWVuIGRlZmluZWQgaW4gYSBj b21tb25seSBhdmFpbGFibGUgc3RhbmRhcmQgc3BlY2lmaWNhdGlvbi4NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBkb2N1bWVudCBkZWZpbmVzIHRoZSBm b2xsb3dpbmcgVVJJcyBmb3IgdGhlIHN0YW5kYXJkIE9UUCBhbGdvcml0aG1zIGRlZmluZWQNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gPHhyZWYgdGFyZ2V0 PSJIT1RQIi8+LjwvdD4NCgkJCQkJPHNlY3Rpb24gYW5jaG9yPSJIT1RQT1RQQWxnb3JpdGhtIiB0 aXRsZT0iSE9UUCI+DQoJCQkJCQk8dD5TdGFuZGFyZCBkb2N1bWVudDogUkZDNDIyNjwvdD4NCgkJ CQkJCTx0PklkZW50aWZpZXI6IGh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHA8 L3Q+DQoJCQkJCQk8dD5Ob3RlIHRoYXQgdGhlIGFjdHVhbCBVUkwgd2lsbCBiZSBmaW5hbGl6ZWQg b25jZSBhIFVSTCBmb3IgdGhpcyBkb2N1bWVudCBpcyBkZXRlcm1pbmVkLjwvdD4NCgkJCQkJPC9z ZWN0aW9uPg0KCQkJCQk8c2VjdGlvbiBhbmNob3I9IlZlbmRvck9UUEFsZ29yaXRobSIgdGl0bGU9 Ik90aGVyIE9UUCBBbGdvcml0aG1zIj4NCgkJCQkJCTx0PkFuIGltcGxlbWVudGF0aW9uIHNob3Vs ZCByZWZlciB0byAgdmVuZG9yIHJlZ2lzdGVyZWQgT1RQIGtleSBhbGdvcml0aG0gVVJJcyBmb3IN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyIGV4 aXN0aW5nIE9UUCBhbGdvcml0aG1zLCBmb3IgZXhhbXBsZSwgdGhlIFJTQSBTZWN1cklEIE9UUCBh bGdvcml0aG0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhcyBmb2xsb3dzLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxsaXN0IHN0eWxlPSJzeW1ib2xzIj4NCgkJCQkJCSAgICAgPHQ+aHR0cDovL3d3dy5y c2EuY29tL3JzYWxhYnMvb3Rwcy9zY2hlbWFzLzIwMDUvMDkvb3Rwcy13c3QjU2VjdXJJRC1BRVM8 L3Q+CQkJCQkJDQoJCQkJCSAgICAgICAgIDwvbGlzdD4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDwvdD4NCgkJCQkJPC9zZWN0aW9uPg0KCQkJCTwvc2Vj dGlvbj4NCgkJCQk8c2VjdGlvbiBhbmNob3I9IlZhbHVlQ29tcGFyZUFsZ29yaXRobSIgdGl0bGU9 IlBJTiBrZXkgdmFsdWUgY29tcGFyZSBhbGdvcml0aG0gaWRlbnRpZmllciI+DQoJCQkJCTx0PlBJ TiBrZXkgYWxnb3JpdGhtIFVSSXMgaGF2ZSBub3QgYmVlbiBkZWZpbmVkIGluIGEgY29tbW9ubHkg YXZhaWxhYmxlIHN0YW5kYXJkIHNwZWNpZmljYXRpb24uDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRoaXMgZG9jdW1lbnQgZGVmaW5lcyB0aGUgZm9sbG93aW5n IFVSSXMgZm9yIGEgc3RyYWlnaHQgdmFsdWUgY29tcGFyaXNvbiBvZiB0aGUgdHJhbnNwb3J0ZWQg c2VjcmV0IGtleSBkYXRhIGFzIHdoZW4gcmVxdWlyZWQgdG8gY29tcGFyZSBhIFBJTi48L3Q+DQoJ CQkJCQk8dD5JZGVudGlmaWVyOiBodHRwOi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNrYyNwaW48 L3Q+DQoJCQkJCQk8dD5Ob3RlIHRoYXQgdGhlIGFjdHVhbCBVUkwgd2lsbCBiZSBmaW5hbGl6ZWQg b25jZSBhIFVSTCBmb3IgdGhpcyBkb2N1bWVudCBpcyBkZXRlcm1pbmVkLjwvdD4NCgkJCQk8L3Nl Y3Rpb24+DQoJCQk8L3NlY3Rpb24+DQoJCTwvc2VjdGlvbj4NCgkJPHNlY3Rpb24gYW5jaG9yPSJE YXRhQXR0cmlidXRlTmFtZXMiIHRpdGxlPSJSZXNlcnZlZCBkYXRhIGF0dHJpYnV0ZSBuYW1lcyI+ DQoJCQk8dD5UaGUgZm9sbG93aW5nIGtleSBkYXRhIGF0dHJpYnV0ZSBuYW1lcyBoYXZlIGJlZW4g cmVzZXJ2ZWQ6DQoJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCTx0IGhhbmdUZXh0PSIi PlNFQ1JFVDogdGhlIHNoYXJlZCBzZWNyZXQga2V5IHZhbHVlIGluIGJpbmFyeSwgYmFzZTY0IGVu Y29kZWQ8L3Q+DQoJCQkJCTx0IGhhbmdUZXh0PSIiPkNPVU5URVI6IHRoZSBldmVudCBjb3VudGVy IGZvciBldmVudCBiYXNlZCBPVFAgYWxnb3JpdGhtcy4gOCBieXRlcyB1bnNpZ25lZCBpbnRlZ2Vy DQppbiBiaWcgZW5kaWFuIChpLmUuIG5ldHdvcmsgYnl0ZSBvcmRlcikgZm9ybSBiYXNlNjQgZW5j b2RlZDwvdD4NCgkJCQkJPHQgaGFuZ1RleHQ9IiI+VElNRTogdGhlIHRpbWUgZm9yIHRpbWUgYmFz ZWQgT1RQIGFsZ29yaXRobXMuIDggYnl0ZXMgdW5zaWduZWQgaW50ZWdlcg0KaW4gYmlnIGVuZGlh biAoaS5lLiBuZXR3b3JrIGJ5dGUgb3JkZXIpIGZvcm0gYmFzZTY0IGVuY29kZWQgKE51bWJlciBv ZiBzZWNvbmRzIHNpbmNlIDE5NzApPC90Pg0KCQkJCQk8dCBoYW5nVGV4dD0iIj5USU1FX0lOVEVS VkFMOiB0aGUgdGltZSBpbnRlcnZhbCB2YWx1ZSBmb3IgdGltZSBiYXNlZCBPVFAgYWxnb3JpdGht cy4gOCBieXRlcyB1bnNpZ25lZCBpbnRlZ2VyDQppbiBiaWcgZW5kaWFuIChpLmUuIG5ldHdvcmsg Ynl0ZSBvcmRlcikgZm9ybSBiYXNlNjQgZW5jb2RlZC48L3Q+DQoJCQkJCTx0IGhhbmdUZXh0PSIi PlRJTUVfRFJJRlQ6IHRoZSBkZXZpY2UgY2xvY2sgZHJpZnQgdmFsdWUgZm9yIHRpbWUgYmFzZWQg T1RQIGFsZ29yaXRobXMuIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgaW5kaWNhdGVzIG51bWJlciBvZiBzZWNvbmRzIHRo YXQgdGhlIGRldmljZSBjbG9jayBtYXkgZHJpZnQgZWFjaCBkYXkuIA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyIGJ5dGVzIHVuc2lnbmVk IGludGVnZXIgaW4gYmlnIGVuZGlhbiAoaS5lLiBuZXR3b3JrIGJ5dGUgb3JkZXIpIGZvcm0gYmFz ZTY0IGVuY29kZWQuPC90Pg0KCQkJCTwvbGlzdD4NCgkJCTwvdD4NCgkJPC9zZWN0aW9uPg0KCQk8 c2VjdGlvbiBhbmNob3I9InNjaGVtYSIgdGl0bGU9IkZvcm1hbCBTeW50YXgiPg0KCQkJPHQ+VGhl IGZvbGxvd2luZyBzeW50YXggc3BlY2lmaWNhdGlvbiB1c2VzIHRoZSB3aWRlbHkgYWRvcHRlZCBY TUwgc2NoZW1hIGZvcm1hdCBhcyBkZWZpbmVkIGJ5IGEgVzNDIA0KCXJlY29tbWVuZGF0aW9uICho dHRwOi8vd3d3LnczLm9yZy9UUi94bWxzY2hlbWEtMC8pLiBJdCBpcyBhIGNvbXBsZXRlIHN5bnRh eCBkZWZpbml0aW9uIGluIHRoZSBYTUwgDQoJU2NoZW1hIERlZmluaXRpb24gZm9ybWF0IChYU0Qp PC90Pg0KCQkJPHQ+QWxsIGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIHN0YW5kYXJkIG11c3QgY29t cGx5IHdpdGggdGhlIHNjaGVtYSBiZWxvdy48L3Q+DQoJCQk8ZmlndXJlPg0KCQkJCTxwcmVhbWJs ZS8+DQoJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQo8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n PSJVVEYtOCI/Pg0KPHhzOnNjaGVtYSB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9Y TUxTY2hlbWEiIA0KICB4bWxuczpwc2tjPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6 cHNrYzoxLjAiIA0KICB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2ln IyIgDQogIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyIgDQog IHRhcmdldE5hbWVzcGFjZT0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OnBza2M6MS4w IiANCiAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQiIGF0dHJpYnV0ZUZvcm1EZWZhdWx0 PSJ1bnF1YWxpZmllZCIgDQogIHZlcnNpb249IjEuMCI+DQogICAgPHhzOmltcG9ydCBuYW1lc3Bh Y2U9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiDQogICAgICBzY2hlbWFMb2Nh dGlvbj0NCiAgICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAyL1JFQy14bWxkc2lnLWNvcmUt MjAwMjAyMTIvDQogICAgICB4bWxkc2lnLWNvcmUtc2NoZW1hLnhzZCIvPg0KICAgIDx4czppbXBv cnQgbmFtZXNwYWNlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiIA0KICAgICAg c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3JnL1RSLw0KICAgICAgeG1sZW5jLWNvcmUv eGVuYy1zY2hlbWEueHNkIi8+DQogICAgICANCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iS2V5 Q29udGFpbmVyVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJFbmNyeXB0aW9uS2V5IiB0eXBlPSJkczpLZXlJbmZvVHlwZSIgDQogICAgICAgICAgbWlu T2NjdXJzPSIwIi8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1BQ0FsZ29yaXRobSIgdHlw ZT0icHNrYzpLZXlBbGdvcml0aG1UeXBlIiANCiAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAg ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iS2V5UHJvcGVydGllcyIgDQogICAgICAgIHR5cGU9InBz a2M6S2V5UHJvcGVydGllc1R5cGUiIG1pbk9jY3Vycz0iMCIgDQogICAgICAgIG1heE9jY3Vycz0i dW5ib3VuZGVkIi8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRldmljZSIgdHlwZT0icHNr YzpEZXZpY2VUeXBlIiANCiAgICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAg ICA8eHM6ZWxlbWVudCBuYW1lPSJTaWduYXR1cmUiIHR5cGU9ImRzOlNpZ25hdHVyZVR5cGUiIA0K ICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNv dGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIA0KICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9j Y3Vycz0idW5ib3VuZGVkIi8+ICANCiAgICA8L3hzOnNlcXVlbmNlPg0KICAgIDx4czphdHRyaWJ1 dGUgbmFtZT0iVmVyc2lvbiIgdHlwZT0icHNrYzpWZXJzaW9uVHlwZSIgDQogICAgICB1c2U9InJl cXVpcmVkIi8+DQogICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlDb250YWluZXJJRCIgDQogICAg dHlwZT0ieHM6SUQiIHVzZT0ib3B0aW9uYWwiLz4gIA0KICAgIDwveHM6Y29tcGxleFR5cGU+DQog ICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iVmVyc2lvblR5cGUiIGZpbmFsPSJyZXN0cmljdGlvbiI+ DQogICAgICAgICAgICA8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6c3RyaW5nIj4NCiAgICAgICAg ICAgICAgICAgICAgPHhzOnBhdHRlcm4gdmFsdWU9IlxkezEsMn1cLlxkezEsM30iLz4NCiAgICAg ICAgICAgIDwveHM6cmVzdHJpY3Rpb24+DQogICAgPC94czpzaW1wbGVUeXBlPg0KCTx4czpjb21w bGV4VHlwZSBuYW1lPSJLZXlQcm9wZXJ0aWVzVHlwZSI+DQoJCTx4czpzZXF1ZW5jZT4NCgkJCTx4 czplbGVtZW50IG5hbWU9Iklzc3VlciIgDQoJCQl0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0i MCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iVXNhZ2UiIA0KCQkJdHlwZT0icHNrYzpVc2FnZVR5 cGUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iS2V5UHJvZmlsZUlkIiAN CgkJCXR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1l PSJNYXN0ZXJLZXlJZCIgDQoJCQl0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJ PHhzOmVsZW1lbnQgbmFtZT0iRGF0YSIgdHlwZT0icHNrYzpEYXRhVHlwZSIgDQoJCQltaW5PY2N1 cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJQSU5Q b2xpY3kiIA0KCQkJdHlwZT0icHNrYzpQSU5Qb2xpY3lUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCgkJ CTx4czplbGVtZW50IG5hbWU9IkV4cGlyeURhdGUiIA0KCQkJdHlwZT0ieHM6ZGF0ZVRpbWUiIG1p bk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iU3RhcnREYXRlIiANCgkJCXR5cGU9 InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgIDx4czphbnkgbmFtZXNw YWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIgDQogICAgICAgICAgICBtaW5PY2N1 cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+ICANCgkJPC94czpzZXF1ZW5jZT4NCgkJPHhz OmF0dHJpYnV0ZSBuYW1lPSJLZXlQcm9wZXJ0aWVzSWQiIA0KCQl0eXBlPSJ4czpJRCIgdXNlPSJy ZXF1aXJlZCIvPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IktleUFsZ29yaXRobSIgDQoJCXR5cGU9 InBza2M6S2V5QWxnb3JpdGhtVHlwZSIgDQoJCXVzZT0ib3B0aW9uYWwiLz4NCgk8L3hzOmNvbXBs ZXhUeXBlPiAgICANCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iS2V5VHlwZSI+DQogICAgICAg IDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Iklzc3VlciIgDQog ICAgICAgICAgICB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAg PHhzOmVsZW1lbnQgbmFtZT0iVXNhZ2UiIA0KICAgICAgICAgICAgdHlwZT0icHNrYzpVc2FnZVR5 cGUiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IktleVByb2ZpbGVJZCIgDQoJCQl0eXBlPSJ4czpz dHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iTWFzdGVyS2V5SWQi IA0KCQkJdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgIDx4czpl bGVtZW50IG5hbWU9IkZyaWVuZGx5TmFtZSIgDQogICAgICAgICAgICB0eXBlPSJ4czpzdHJpbmci IG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YSIgdHlw ZT0icHNrYzpEYXRhVHlwZSIgDQogICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0i dW5ib3VuZGVkIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQSU5Qb2xpY3kiIA0K ICAgICAgICAgICAgdHlwZT0icHNrYzpQSU5Qb2xpY3lUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAg ICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkV4cGlyeURhdGUiIA0KICAgICAgICAgICAgdHlw ZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQg bmFtZT0iU3RhcnREYXRlIiANCiAgICAgICAgICAgIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1 cnM9IjAiLz4NCiAgICAgICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNz Q29udGVudHM9ImxheCIgDQogICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5i b3VuZGVkIi8+DQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICAgIDx4czphdHRyaWJ1dGUg bmFtZT0iS2V5SWQiIA0KICAgICAgICB0eXBlPSJ4czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4N CiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlBbGdvcml0aG0iIA0KICAgICAgICB0eXBl PSJwc2tjOktleUFsZ29yaXRobVR5cGUiIA0KICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAg ICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlQcm9wZXJ0aWVzSWQiIA0KICAgICAgICB0eXBl PSJ4czpJRFJFRiIgdXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAg PHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRlcml2ZWRLZXlUeXBlIj4NCiAgICAgICAgPHhzOnNlcXVl bmNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iS2V5RGVyaXZhdGlvbk1ldGhvZCIg DQogICAgICAgICAgICAgIHR5cGU9InBza2M6S2V5RGVyaXZhdGlvbk1ldGhvZFR5cGUiIG1pbk9j Y3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgcmVmPSJ4ZW5jOlJlZmVyZW5jZUxp c3QiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ2Fycmll ZEtleU5hbWUiIHR5cGU9InhzOnN0cmluZyIgDQogICAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIv Pg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9Iklk IiB0eXBlPSJ4czpJRCIgdXNlPSJvcHRpb25hbCIvPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5h bWU9IlR5cGUiIHR5cGU9InhzOmFueVVSSSIgdXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29t cGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IktleURlcml2YXRpb25NZXRob2RU eXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3Bh Y2U9IiMjb3RoZXIiIG1pbk9jY3Vycz0iMCIgDQogICAgICAgICAgICBtYXhPY2N1cnM9InVuYm91 bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5h bWU9IkFsZ29yaXRobSIgdHlwZT0ieHM6YW55VVJJIiANCiAgICAgICAgdXNlPSJyZXF1aXJlZCIv Pg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IlBJTlBv bGljeVR5cGUiPg0KICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6ZWxlbWVu dCBuYW1lPSJQSU5Vc2FnZU1vZGUiIA0KICAgICAgICAgICAgICB0eXBlPSJwc2tjOlBJTlVzYWdl TW9kZVR5cGUiLz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1heEZhaWxlZEF0dGVt cHRzIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgDQogICAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIv Pg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50 cz0ibGF4IiANCiAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQi Lz4gCQkJDQogICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICAgIDx4czphdHRyaWJ1dGUgbmFt ZT0iUElOUG9saWN5SWQiIHR5cGU9InhzOklEIiANCiAgICAgICAgdXNlPSJvcHRpb25hbCIvPg0K ICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IlBJTktleUlkIiB0eXBlPSJ4czpzdHJpbmciIA0K ICAgICAgICAgIHVzZT0ib3B0aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4 czpjb21wbGV4VHlwZSBuYW1lPSJQSU5Vc2FnZU1vZGVUeXBlIj4NCiAgICAgICAgICAgIDx4czpj aG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KICAgICAgICAgICAgICAgICAgICA8eHM6ZWxl bWVudCBuYW1lPSJMb2NhbCIvPg0KICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1l PSJQcmVwZW5kIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkFsZ29y aXRobWljIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290aGVy IiANCiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0i MCIgDQogICAgICAgICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAg ICAgICA8L3hzOmNob2ljZT4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4 VHlwZSBuYW1lPSJEZXZpY2VJbmZvVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg ICAgPHhzOmVsZW1lbnQgbmFtZT0iTWFudWZhY3R1cmVyIiB0eXBlPSJ4czpzdHJpbmciLz4NCiAg ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2VyaWFsTm8iIHR5cGU9InhzOnN0cmluZyIvPg0KICAg ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNb2RlbCIgdHlwZT0ieHM6c3RyaW5nIiANCiAgICAgICAg bWluT2NjdXJzPSIwIi8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9Iklzc3VlTm8iIHR5cGU9 InhzOnN0cmluZyIgDQogICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6ZWxlbWVu dCBuYW1lPSJFeHBpcnlEYXRlIiB0eXBlPSJ4czpkYXRlVGltZSIgDQogICAgICAgIG1pbk9jY3Vy cz0iMCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTdGFydERhdGUiIHR5cGU9InhzOmRh dGVUaW1lIiANCiAgICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgIDx4czphbnkgbmFtZXNw YWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIgDQogICAgICAgIG1pbk9jY3Vycz0i MCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICA8 L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZXZpY2VUeXBlIj4N CiAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGV2aWNlSW5m byIgdHlwZT0icHNrYzpEZXZpY2VJbmZvVHlwZSIgDQogICAgICAgICAgbWluT2NjdXJzPSIwIi8+ DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IktleSIgdHlwZT0icHNrYzpLZXlUeXBlIiANCiAg ICAgICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1l PSJVc2VySWQiIHR5cGU9InhzOnN0cmluZyIgDQogICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAg ICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIA0K ICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICA8L3hz OnNlcXVlbmNlPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5h bWU9IlVzYWdlVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czpl bGVtZW50IG5hbWU9IkNoYWxsZW5nZUZvcm1hdCIgbWluT2NjdXJzPSIwIj4NCiAgICAgICAgICAg ICAgICA8eHM6Y29tcGxleFR5cGU+DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUg bmFtZT0iRm9ybWF0IiANCiAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJwc2tjOlZhbHVlRm9y bWF0VHlwZSIgdXNlPSJyZXF1aXJlZCIvPg0KICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmli dXRlIG5hbWU9Ik1pbiIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIA0KICAgICAgICAgICAgICAgICAg ICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBu YW1lPSJNYXgiIHR5cGU9InhzOnVuc2lnbmVkSW50IiANCiAgICAgICAgICAgICAgICAgICAgICB1 c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0i Q2hlY2tEaWdpdHMiIHR5cGU9InhzOmJvb2xlYW4iIA0KICAgICAgICAgICAgICAgICAgICAgIGRl ZmF1bHQ9ImZhbHNlIi8+DQogICAgICAgICAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCiAgICAg ICAgICAgIDwveHM6ZWxlbWVudD4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3Bv bnNlRm9ybWF0Ij4NCiAgICAgICAgICAgICAgICA8eHM6Y29tcGxleFR5cGU+DQogICAgICAgICAg ICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iRm9ybWF0IiANCiAgICAgICAgICAgICAgICAg ICAgICB0eXBlPSJwc2tjOlZhbHVlRm9ybWF0VHlwZSIgdXNlPSJyZXF1aXJlZCIvPg0KICAgICAg ICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9Ikxlbmd0aCIgdHlwZT0ieHM6dW5zaWdu ZWRJbnQiIA0KICAgICAgICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAg ICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJDaGVja0RpZ2l0cyIgdHlwZT0ieHM6Ym9v bGVhbiIgDQogICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0iZmFsc2UiLz4NCiAgICAgICAg ICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgICAgICAgICAgPC94czplbGVtZW50Pg0KICAg ICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4 IiANCiAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAg ICAgICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9 Ik9UUCIgdHlwZT0ieHM6Ym9vbGVhbiIgZGVmYXVsdD0iZmFsc2UiLz4NCiAgICAgICAgICAgIDx4 czphdHRyaWJ1dGUgbmFtZT0iQ1IiIHR5cGU9InhzOmJvb2xlYW4iIGRlZmF1bHQ9ImZhbHNlIi8+ DQogICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkludGVncml0eSIgdHlwZT0ieHM6Ym9v bGVhbiIgDQogICAgICAgICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAgICAgICAgICA8eHM6 YXR0cmlidXRlIG5hbWU9IkVuY3J5cHQiIHR5cGU9InhzOmJvb2xlYW4iIA0KICAgICAgICAgICAg ICBkZWZhdWx0PSJmYWxzZSIvPg0KICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJVbmxv Y2siIHR5cGU9InhzOmJvb2xlYW4iIA0KICAgICAgICAgICAgICBkZWZhdWx0PSJmYWxzZSIvPg0K ICAgICAgICAgICAgIDx4czphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIi8+DQogICAg PC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iRGF0YVR5cGUiPg0K ICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAgICAgICA8eHM6Y2hvaWNlPg0KICAgICAgICAg ICAgICAgIDx4czplbGVtZW50IG5hbWU9IlBsYWluVmFsdWUiIHR5cGU9InhzOmJhc2U2NEJpbmFy eSIvPg0KICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkVuY3J5cHRlZFZhbHVlIiAN CiAgICAgICAgICAgICAgICAgIHR5cGU9InhlbmM6RW5jcnlwdGVkRGF0YVR5cGUiLz4NCiAgICAg ICAgICAgIDwveHM6Y2hvaWNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVmFsdWVN QUMiIHR5cGU9InhzOmJhc2U2NEJpbmFyeSIgDQogICAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIv Pg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9Ik5h bWUiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIvPg0KICAgIDwveHM6Y29tcGxleFR5 cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iS2V5QWxnb3JpdGhtVHlwZSI+DQogICAgICAg IDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czphbnlVUkkiLz4NCiAgICA8L3hzOnNpbXBsZVR5cGU+ DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iVmFsdWVGb3JtYXRUeXBlIj4NCiAgICAgICAgPHhz OnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQogICAgICAgICAgICA8eHM6ZW51bWVyYXRp b24gdmFsdWU9IkRFQ0lNQUwiLz4NCiAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0i SEVYQURFQ0lNQUwiLz4NCiAgICAgICAgICAgIDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iQUxQSEFO VU1FUklDIi8+DQogICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkJBU0U2NCIvPg0K ICAgICAgICAgICAgPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJCSU5BUlkiLz4NCiAgICAgICAgPC94 czpyZXN0cmljdGlvbj4NCiAgICA8L3hzOnNpbXBsZVR5cGU+DQogICAgPHhzOmVsZW1lbnQgbmFt ZT0iS2V5Q29udGFpbmVyIiB0eXBlPSJwc2tjOktleUNvbnRhaW5lclR5cGUiLz4NCjwveHM6c2No ZW1hPg0KCQkJCQ0KCQkJCQ0KXV0+PC9hcnR3b3JrPg0KCQkJCTxwb3N0YW1ibGUvPg0KCQkJPC9m aWd1cmU+DQoJCTwvc2VjdGlvbj4NCgkJDQoNCgkJPHNlY3Rpb24gYW5jaG9yPSJpYW5hIiB0aXRs ZT0iSUFOQSBDb25zaWRlcmF0aW9ucyI+DQoNCgkJCTxzZWN0aW9uIHRpdGxlPSJDb250ZW50LXR5 cGUgcmVnaXN0cmF0aW9uIGZvciAnYXBwbGljYXRpb24vcHNrYyt4bWwnIj4NCg0KCQkJCTx0PlRo aXMgc3BlY2lmaWNhdGlvbiByZXF1ZXN0cyB0aGUgcmVnaXN0cmF0aW9uIG9mIGEgbmV3IE1JTUUg dHlwZSBhY2NvcmRpbmcgdG8gdGhlDQoJCQkJCXByb2NlZHVyZXMgb2YgUkZDIDQyODggPHhyZWYg dGFyZ2V0PSJSRkM0Mjg4Ii8+IGFuZCBndWlkZWxpbmVzIGluIFJGQyAzMDIzIDx4cmVmDQoJCQkJ CQl0YXJnZXQ9IlJGQzMwMjMiLz4uPC90Pg0KDQoJCQkJPHQ+DQoJCQkJCTxsaXN0IHN0eWxlPSJo YW5naW5nIj4NCgkJCQkJCTx0IGhhbmdUZXh0PSJNSU1FIG1lZGlhIHR5cGUgbmFtZToiPmFwcGxp Y2F0aW9uIA0KCQkJCQkJPC90Pg0KDQoJCQkJCQk8dCBoYW5nVGV4dD0iTUlNRSBzdWJ0eXBlIG5h bWU6Ij5wc2tjK3htbCANCgkJCQkJCTwvdD4NCg0KCQkJCQkJPHQgaGFuZ1RleHQ9Ik1hbmRhdG9y eSBwYXJhbWV0ZXJzOiI+bm9uZQ0KCQkJCQkJPC90Pg0KDQoJCQkJCQk8dCBoYW5nVGV4dD0iT3B0 aW9uYWwgcGFyYW1ldGVyczoiPmNoYXJzZXQ8dnNwYWNlIGJsYW5rTGluZXM9IjEiLz4gSW5kaWNh dGVzDQoJCQkJCQkJdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiBlbmNsb3NlZCBYTUwuDQoJCQkJ CQk8L3Q+DQoNCgkJCQkJCTx0IGhhbmdUZXh0PSJFbmNvZGluZyBjb25zaWRlcmF0aW9uczoiPiBV c2VzIFhNTCwgd2hpY2ggY2FuIGVtcGxveSA4LWJpdA0KCQkJCQkJCWNoYXJhY3RlcnMsIGRlcGVu ZGluZyBvbiB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQuIFNlZSBSRkMgMzAyMyA8eHJlZg0K CQkJCQkJCQl0YXJnZXQ9IlJGQzMwMjMiLz4sIFNlY3Rpb24gMy4yLjwvdD4NCg0KCQkJCQkJPHQg aGFuZ1RleHQ9IlNlY3VyaXR5IGNvbnNpZGVyYXRpb25zOiI+IFRoaXMgY29udGVudCB0eXBlIGlz IGRlc2lnbmVkIHRvDQoJCQkJCQkJY2FycnkgUFNLQyBwcm90b2NvbCBwYXlsb2Fkcy48L3Q+DQoN CgkJCQkJCTx0IGhhbmdUZXh0PSJJbnRlcm9wZXJhYmlsaXR5IGNvbnNpZGVyYXRpb25zOiI+Tm9u ZTwvdD4NCg0KCQkJCQkJPHQgaGFuZ1RleHQ9IlB1Ymxpc2hlZCBzcGVjaWZpY2F0aW9uOiI+UkZD WFhYWCBbTk9URSBUTyBJQU5BL1JGQy1FRElUT1I6DQoJCQkJCQkJUGxlYXNlIHJlcGxhY2UgWFhY WCB3aXRoIHRoZSBSRkMgbnVtYmVyIG9mIHRoaXMgc3BlY2lmaWNhdGlvbi5dDQoJCQkJCQk8L3Q+ DQoNCgkJCQkJCTx0IGhhbmdUZXh0PSJBcHBsaWNhdGlvbnMgd2hpY2ggdXNlIHRoaXMgbWVkaWEg dHlwZToiPiBUaGlzIE1JTUUgdHlwZSBpcw0KCQkJCQkJCWJlaW5nIHVzZWQgYXMgYSBzeW1tZXRy aWMga2V5IGNvbnRhaW5lciBmb3JtYXQgZm9yIHRyYW5zcG9ydCBhbmQNCgkJCQkJCQlwcm92aXNp b25pbmcgb2Ygc3ltbWV0cmljIGtleXMgKE9uZSBUaW1lIFBhc3N3b3JkIChPVFApIHNoYXJlZCBz ZWNyZXRzDQoJCQkJCQkJb3Igc3ltbWV0cmljIGNyeXB0b2dyYXBoaWMga2V5cykgdG8gZGlmZmVy ZW50IHR5cGVzIG9mIHN0cm9uZw0KCQkJCQkJCWF1dGhlbnRpY2F0aW9uIGRldmljZXMuIEFzIHN1 Y2gsIGl0IGlzIHVzZWQgZm9yIGtleSBwcm92aXNpb25pbmcNCgkJCQkJCQlzeXN0ZW1zLiANCgkJ CQkJCTwvdD4NCg0KCQkJCQkJPHQgaGFuZ1RleHQ9IkFkZGl0aW9uYWwgaW5mb3JtYXRpb246Ij4N CgkJCQkJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQkJCTx0IGhhbmdUZXh0PSJNYWdp YyBOdW1iZXI6Ij5Ob25lDQoJCQkJCQkJCTwvdD4NCg0KCQkJCQkJCQk8dCBoYW5nVGV4dD0iRmls ZSBFeHRlbnNpb246Ij4ucHNrY3htbA0KCQkJCQkJCQk8L3Q+DQoNCgkJCQkJCQkJPHQgaGFuZ1Rl eHQ9Ik1hY2ludG9zaCBmaWxlIHR5cGUgY29kZToiPidURVhUJw0KCQkJCQkJCQk8L3Q+DQoJCQkJ CQkJPC9saXN0Pg0KCQkJCQkJPC90Pg0KDQoJCQkJCQk8dCBoYW5nVGV4dD0iUGVyc29uYWwgYW5k IGVtYWlsIGFkZHJlc3MgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb246Ij5QaGlsaXAgSG95ZXIsIA0K CQkJCQkJCVBoaWxpcC5Ib3llckBhY3RpdmlkZW50aXR5LmNvbQ0KCQkJCQkJPC90Pg0KDQoJCQkJ CQk8dCBoYW5nVGV4dD0iSW50ZW5kZWQgdXNhZ2U6Ij5MSU1JVEVEIFVTRQ0KCQkJCQkJPC90Pg0K DQoJCQkJCQk8dCBoYW5nVGV4dD0iQXV0aG9yOiI+DQoJCQkJCQkJIFRoaXMgc3BlY2lmaWNhdGlv biBpcyBhIHdvcmsgaXRlbSBvZiB0aGUgSUVURg0KCQkJCQkJCUtFWVBST1Ygd29ya2luZyBncm91 cCwgd2l0aCBtYWlsaW5nIGxpc3QgYWRkcmVzcw0KCQkJCQkJCQkmbHQ7a2V5cHJvdkBpZXRmLm9y ZyZndDsuDQoJCQkJCQk8L3Q+DQoJCQkJCQk8dCBoYW5nVGV4dD0iQ2hhbmdlIGNvbnRyb2xsZXI6 Ij4NCgkJCQkJCQlUaGUgSUVTRyAmbHQ7aWVzZ0BpZXRmLm9yZyZndDsgPC90Pg0KCQkJCQk8L2xp c3Q+DQoJCQkJPC90Pg0KCQkJPC9zZWN0aW9uPg0KDQoJCQk8c2VjdGlvbiB0aXRsZT0iWE1MIFNj aGVtYSBSZWdpc3RyYXRpb24iPg0KDQoJCQkJPHQ+IFRoaXMgc2VjdGlvbiByZWdpc3RlcnMgYW4g WE1MIHNjaGVtYSBhcyBwZXIgdGhlIGd1aWRlbGluZXMgaW4gPHhyZWYNCgkJCQkJCXRhcmdldD0i UkZDMzY4OCIvPi48L3Q+DQoJCQkJPHQ+DQoJCQkJCTxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCgkJ CQkJCTx0IGhhbmdUZXh0PSJVUkk6Ij51cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6cHNr YzoxLjA8L3Q+DQoJCQkJCQk8dCBoYW5nVGV4dD0iUmVnaXN0cmFudCBDb250YWN0OiI+SUVURiBL RVlQUk9WIFdvcmtpbmcgR3JvdXAsIFBoaWxpcCBIb3llcg0KCQkJCQkJCShQaGlsaXAuSG95ZXJA YWN0aXZpZGVudGl0eS5jb20pLjwvdD4NCgkJCQkJCTx0IGhhbmdUZXh0PSJYTUwgU2NoZW1hOiI+ VGhlIFhNTCBzY2hlbWEgdG8gYmUgcmVnaXN0ZXJlZCBpcyBjb250YWluZWQgaW4NCgkJCQkJCQkJ PHhyZWYgdGFyZ2V0PSJzY2hlbWEiLz4uIEl0cyBmaXJzdCBsaW5lIGlzIDxmaWd1cmU+DQoJCQkJ CQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0KPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRG LTgiPz4NCl1dPjwvYXJ0d29yaz4NCgkJCQkJCQk8L2ZpZ3VyZT4gYW5kIGl0cyBsYXN0IGxpbmUg aXM8ZmlndXJlPg0KCQkJCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjwveHM6c2NoZW1hPg0KXV0+ PC9hcnR3b3JrPg0KCQkJCQkJCTwvZmlndXJlPg0KCQkJCQkJPC90Pg0KCQkJCQk8L2xpc3Q+DQoJ CQkJPC90Pg0KCQkJPC9zZWN0aW9uPg0KDQoJCQk8c2VjdGlvbiB0aXRsZT0iVVJOIFN1Yi1OYW1l c3BhY2UgUmVnaXN0cmF0aW9uIGZvciB1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6cHNr YzoxLjAiPg0KDQoJCQkJPHQ+IFRoaXMgc2VjdGlvbiByZWdpc3RlcnMgYSBuZXcgWE1MIG5hbWVz cGFjZSwgInVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tjOjEuMCIsIHBlcg0KCQkJ CQl0aGUgZ3VpZGVsaW5lcyBpbiA8eHJlZiB0YXJnZXQ9IlJGQzM2ODgiLz4uIDwvdD4NCg0KCQkJ CTx0Pg0KCQkJCQk8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQoJCQkJCQk8dCBoYW5nVGV4dD0iVVJJ OiI+dXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OnBza2M6MS4wPC90Pg0KDQoJCQkJCQk8 dCBoYW5nVGV4dD0iUmVnaXN0cmFudCBDb250YWN0OiI+SUVURiBLRVlQUk9WIFdvcmtpbmcgR3Jv dXAsIFBoaWxpcCBIb3llcg0KCQkJCQkJCShQaGlsaXAuSG95ZXJAYWN0aXZpZGVudGl0eS5jb20p LjwvdD4NCg0KCQkJCQkJPHQgaGFuZ1RleHQ9IlhNTDoiPg0KCQkJCQkJCTxmaWd1cmU+DQoJCQkJ CQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0KQkVHSU4NCjw/eG1sIHZlcnNpb249IjEuMCI/Pg0KPCFE T0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCBCYXNpYyAxLjAvL0VOIg0KICAi aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwtYmFzaWMveGh0bWwtYmFzaWMxMC5kdGQiPg0KPGh0 bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQogIDxtZXRh IGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSINCiAgICAgICAgY29udGVudD0idGV4dC9odG1sO2No YXJzZXQ9aXNvLTg4NTktMSIvPg0KICA8dGl0bGU+UFNLQyBOYW1lc3BhY2U8L3RpdGxlPg0KPC9o ZWFkPg0KPGJvZHk+DQogIDxoMT5OYW1lc3BhY2UgZm9yIFBTS0M8L2gxPg0KICA8aDI+dXJuOmll dGY6cGFyYW1zOnhtbDpuczprZXlwcm92OnBza2M6MS4wPC9oMj4NCjxwPlNlZSA8YSBocmVmPSJb VVJMIG9mIHB1Ymxpc2hlZCBSRkNdIj5SRkNYWFhYDQogICAgW05PVEUgVE8gSUFOQS9SRkMtRURJ VE9SOg0KICAgICBQbGVhc2UgcmVwbGFjZSBYWFhYIHdpdGggdGhlIFJGQyBudW1iZXIgb2YgdGhp cw0KICAgIHNwZWNpZmljYXRpb24uXTwvYT4uPC9wPg0KPC9ib2R5Pg0KPC9odG1sPg0KRU5EDQpd XT48L2FydHdvcms+DQoJCQkJCQkJPC9maWd1cmU+DQoJCQkJCQk8L3Q+DQoJCQkJCTwvbGlzdD4N CgkJCQk8L3Q+DQoJCQk8L3NlY3Rpb24+DQoNCg0KICAgIDxzZWN0aW9uIHRpdGxlPSJTeW1tZXRy aWMgS2V5IEFsZ29yaXRobSBJZGVudGlmaWVyIFJlZ2lzdHJ5Ij4NCiAgICAgIDx0ID4NCiAgICAg ICAgVGhpcyBzcGVjaWZpY2F0aW9uIHJlcXVlc3RzIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBJQU5B IHJlZ2lzdHJ5IGZvcg0KICAgICAgICBzeW1tZXRyaWMga2V5IGNyeXB0b2dyYXBoaWMgYWxnb3Jp dGhtIGlkZW50aWZpZXJzIGluIGFjY29yZGFuY2Ugd2l0aA0KICAgICAgICB0aGUgcHJpbmNpcGxl cyBzZXQgb3V0IGluIDx4cmVmIHRhcmdldD0iUkZDMjQzNCI+UkZDIDI0MzQ8L3hyZWY+YXMNCiAg ICAgICAgZm9sbG93czoNCiAgICAgIDwvdD4NCg0KICAgICAgPHNlY3Rpb24gdGl0bGU9IkFwcGxp Y2FiaWxpdHkiPg0KICAgICAgICA8dD4NCiAgICAgICAgICBUaGUgdXNlIG9mIFVSSXMgYXMgYWxn b3JpdGhtIGlkZW50aWZpZXJzIHByb3ZpZGVzIGFuIGVmZmVjdGl2ZWx5DQogICAgICAgICAgdW5s aW1pdGVkIG5hbWVzcGFjZS4gV2hpbGUgdGhpcyBlbGltaW5hdGVzIHRoZSBwb3NzaWJpbGl0eSBv Zg0KICAgICAgICAgIG5hbWVzcGFjZSBleGhhdXN0aW9uIGl0IGNyZWF0ZXMgYSBuZXcgY29uY2Vy biwgdGhhdCBkaXZlcmdlbnQNCiAgICAgICAgICBpZGVudGlmaWVycyB3aWxsIGJlIGVtcGxveWVk IGZvciB0aGUgc2FtZSBwdXJwb3NlIGluIGRpZmZlcmVudA0KICAgICAgICAgIGNvbnRleHRzLg0K ICAgICAgICA8L3Q+DQogICAgICAgIDx0Pg0KICAgICAgICAgIFRoZSBrZXkgYWxnb3JpdGhtIHJl Z2lzdHJ5IGlzIGludGVuZGVkIHRvIHByb3ZpZGUNCiAgICAgICAgICBhIG1lYW5zIG9mIHNwZWNp ZnlpbmcgdGhlIGNhbm9uaWNhbCBpZGVudGlmaWVyIHRvIGJlIHVzZWQgZm9yDQogICAgICAgICAg YSBnaXZlbiBhbGdvcml0aG0uIElmIGFuIGFsZ29yaXRobSBoYXMgYW4gaWRlbnRpZmllciBzcGVj aWZpZWQgaW4NCiAgICAgICAgICB0aGUgcmVnaXN0cnkgYW4gYXBwbGljYXRpb24gdGhhdCBpcyBj b25mb3JtYW50IHRvIGEgcHJvdG9jb2wNCiAgICAgICAgICBzcGVjaWZpY2F0aW9uIHRoYXQgc3Bl Y2lmaWVzIHVzZSBvZiB0aGF0IHJlZ2lzdHJ5IHRvIGRlZmluZQ0KICAgICAgICAgIGlkZW50aWZp ZXJzIFNIT1VMRCBhbHdheXMgdXNlIHRoYXQgcGFydGljdWxhciBmb3JtIG9mIHRoZQ0KICAgICAg ICAgIGlkZW50aWZpZXIgd2hlbiBvcmlnaW5hdGluZyBkYXRhLiBBIGNvbmZvcm1hbnQgYXBwbGlj YXRpb24NCiAgICAgICAgICBNQVkgYWNjZXB0IG90aGVyIGlkZW50aWZpZXJzIGluIGRhdGEgdGhh dCBpcyByZWNlaXZlZC4NCiAgICAgICAgPC90Pg0KICAgICAgICA8dD4NCiAgICAgICAgICBGb3Ig dGhlIHNha2Ugb2YgZXhwZWRpZW5jeSwgdGhlIGluaXRpYWwgcmVnaXN0cnkgb25seSBkZWZpbmVz DQogICAgICAgICAgYWxnb3JpdGhtIGNsYXNzZXMgZm9yIHN5bW1ldHJpYyBhbGdvcml0aG1zIHBs dXMgY3J5cHRvZ3JhcGhpYw0KICAgICAgICAgIG1lc3NhZ2UgZGlnZXN0IGZ1bmN0aW9ucyAob25l LXdheSBoYXNoKS4gV2hpbGUgdGhlIHNhbWUgcHJpbmNpcGxlcw0KICAgICAgICAgIG1heSBiZSBl eHRlbmRlZCB0byBhc3ltbWV0cmljIGFsZ29yaXRobXMsIGRvaW5nIHNvIHdvdWxkIHJlcXVpcmUN CiAgICAgICAgICBtdWNoIGdyZWF0ZXIgY29uc2lkZXJhdGlvbiBvZiBpc3N1ZXMgc3VjaCBhcyBr ZXkgbGVuZ3RoIGFuZA0KICAgICAgICAgIHRyZWF0bWVudCBvZiBwYXJhbWV0ZXJzLCBwYXJ0aWN1 bGFybHkgd2hlcmUgZWxsaXB0aWMgY3VydmUNCiAgICAgICAgICBjcnlwdG9ncmFwaHkgYWxnb3Jp dGhtcyBhcmUgY29uY2VybmVkLg0KICAgICAgICA8L3Q+DQogICAgICAgIDx0Pg0KICAgICAgICAg IEFzIHBhcnQgb2YgdGhpcyByZWdpc3RyeSB0aGUgSUFOQSB3aWxsIG1haW50YWluIHRoZSBmb2xs b3dpbmcNCiAgICAgICAgICBpbmZvcm1hdGlvbjoNCiAgICAgICAgPC90Pg0KICAgICAgICA8dD4N CiAgICAgICAgICA8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQogICAgICAgICAgPHQgaGFuZ1RleHQ9 IkNvbW1vbiBOYW1lIj4NCiAgICAgICAgICAgIFRoZSBuYW1lIGJ5IHdoaWNoIHRoZSBhbGdvcml0 aG0gaXMgZ2VuZXJhbGx5IHJlZmVycmVkLg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgICA8dCBo YW5nVGV4dD0iQ2xhc3MiPg0KICAgICAgICAgICAgVGhlIHR5cGUgb2YgYWxnb3JpdGhtLCBlbmNy eXB0aW9uLCBNZXNzYWdlIEF1dGhlbnRpY2F0aW9uIENvZGUgKE1BQyksDQogICAgICAgICAgICBP bmUgVGltZSBQYXNzd29yZCAoT1RQKSwgRGlnZXN0LCBldGMuDQogICAgICAgICAgPC90Pg0KICAg ICAgICAgIDx0IGhhbmdUZXh0PSJDYW5vbmljYWwgVVJJIj4NCiAgICAgICAgICAgIFRoZSBjYW5v bmljYWwgVVJJIHRvIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFsZ29yaXRobS4NCiAgICAgICAg ICA8L3Q+DQogICAgICAgICAgPHQgaGFuZ1RleHQ9IkFsZ29yaXRobSBEZWZpbml0aW9uIj4NCiAg ICAgICAgICAgIEEgcmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgYWxnb3Jp dGhtIGRlc2NyaWJlZA0KICAgICAgICAgICAgYnkgdGhlIGlkZW50aWZpZXIgaXMgZGVmaW5lZC4N CiAgICAgICAgICA8L3Q+DQogICAgICAgICAgPHQgaGFuZ1RleHQ9IklkZW50aWZpZXIgRGVmaW5p dGlvbiI+DQogICAgICAgICAgICBBIHJlZmVyZW5jZSB0byB0aGUgZG9jdW1lbnQgaW4gd2hpY2gg dGhlIHVzZSBvZiB0aGUgaWRlbnRpZmllcg0KICAgICAgICAgICAgdG8gcmVmZXIgdG8gdGhlIGFs Z29yaXRobSBpcyBkZXNjcmliZWQuIFRoaXMgd291bGQgaWRlYWxseQ0KICAgICAgICAgICAgYmUg dGhlIGRvY3VtZW50IGluIHdoaWNoIHRoZSBhbGdvcml0aG0gaXMgZGVmaW5lZC4NCiAgICAgICAg ICA8L3Q+DQogICAgICAgICAgPHQ+DQogICAgICAgICAgICA8IS0tIFRoZSBJQU5BIHdpbGwgcmVn aXN0ZXIgYW55IFVSSSBidXQgaXQgYXBwZWFycyB0aGF0IGl0IHdpbGwgb25seQ0KICAgICAgICBB U1NJR04gaWRlbnRpZmllcnMgaW4gVVJOIHNwYWNlIC0tPg0KICAgICAgICAgICAgSW4gdGhlIGNh c2Ugd2hlcmUgdGhlIHJlZ2lzdHJhbnQgZG9lcyBub3QgcmVxdWVzdCBhIHBhcnRpY3VsYXIgVVJJ LA0KICAgICAgICAgICAgdGhlIElBTkEgd2lsbCBhc3NpZ24gaXQgYSBVbmlmb3JtIFJlc291cmNl IE5hbWUgKFVSTikgdGhhdCBmb2xsb3dzDQogICAgICAgICAgICA8eHJlZiB0YXJnZXQ9IlJGQzM1 NTMiPlJGQyAzNTUzPC94cmVmPi4NCiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvbGlzdD4NCiAg ICAgICAgPC90Pg0KICAgICAgICA8dD4NCiAgICAgICAgICBOb3RlIHRoYXQgd2hlcmUgYSBzaW5n bGUgYWxnb3JpdGhtIGhhcyBkaWZmZXJlbnQgZm9ybXMgZGlzdGluZ3Vpc2hlZA0KICAgICAgICAg IGJ5IHBhcmFtZXRlcnMgc3VjaCBhcyBrZXkgbGVuZ3RoLCB0aGUgYWxnb3JpdGhtIGNsYXNzIGFu ZCBlYWNoDQogICAgICAgICAgY29tYmluYXRpb24gb2YgYWxnb3JpdGhtDQogICAgICAgICAgcGFy YW1ldGVycyBtYXkgYmUgY29uc2lkZXJlZCBhIGRpc3RpbmN0IGFsZ29yaXRobSBmb3IgdGhlIHB1 cnBvc2UNCiAgICAgICAgICBvZiBhc3NpZ25pbmcgaWRlbnRpZmllcnMuDQogICAgICAgIDwvdD4N CiAgICAgIDwvc2VjdGlvbj4NCiAgICAgIDxzZWN0aW9uIHRpdGxlPSJSZWdpc3RlcmFibGUgQWxn b3JpdGhtcyI+DQoNCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9IkFzc2lnbmVkIFVSSXMiPg0KICAg ICAgICAgIDx0Pg0KICAgICAgICAgICAgSWYgdGhlIHJlZ2lzdHJhbnQgd2lzaGVzIHRvDQogICAg ICAgICAgICBoYXZlIGEgVVJJIGFzc2lnbmVkLCB0aGVuIGEgVVJOIG9mIHRoZSBmb3JtDQogICAg ICAgICAgPC90Pg0KDQogICAgICAgICAgPHQ+DQogICAgICAgICAgICB1cm46aWV0ZjpwYXJhbXM6 eG1sOiZsdDtjbGFzcyZndDs6Jmx0O2lkJmd0Ow0KICAgICAgICAgIDwvdD4NCg0KICAgICAgICAg IDx0Pg0KICAgICAgICAgICAgd2lsbCBiZSBhc3NpZ25lZCB3aGVyZSAmbHQ7Y2xhc3MmZ3Q7IGlz IHRoZSB0eXBlIG9mIHRoZSBhbGdvcml0aG0gYmVpbmcNCiAgICAgICAgICAgIGlkZW50aWZpZWQg KHNlZSBiZWxvdykuICZsdDtpZCZndDsgaXMgYSB1bmlxdWUgaWQgc3BlY2lmaWVkIGJ5IHRoZSBw YXJ0eSBtYWtpbmcNCiAgICAgICAgICAgIHRoZSByZXF1ZXN0IGFuZCB3aWxsIG5vcm1hbGx5IGJl IGVpdGhlciB0aGUgY29tbW9uIG5hbWUgb2YgdGhlIGFsZ29yaXRobQ0KICAgICAgICAgICAgb3Ig YW4gYWJicmV2aWF0aW9uIHRoZXJlb2YuDQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0K ICAgICAgICAgICAgTk9URTogaW4gb3JkZXIgZm9yIGEgVVJOIG9mIHRoaXMgdHlwZSB0byBiZQ0K ICAgICAgICAgICAgYXNzaWduZWQsIHRoZSBpdGVtIGJlaW5nIHJlZ2lzdGVyZWQgTVVTVCBoYXZl IGJlZW4gdGhyb3VnaCB0aGUgSUVURg0KICAgICAgICAgICAgY29uc2Vuc3VzIHByb2Nlc3MuICBC YXNpY2FsbHksIHRoaXMgbWVhbnMgdGhhdCBpdCBtdXN0IGJlIGRvY3VtZW50ZWQNCiAgICAgICAg ICAgIGluIGEgUkZDLg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAg IE5PVEU6IEV4cGVydCBSZXZpZXcgaXMgc3VmZmljaWVudCBpbiBjYXNlcyB3aGVyZSB0aGUgcmVx dWVzdCBkb2VzIG5vdA0KICAgICAgICAgICAgcmVxdWlyZSBhIFVSTiBhc3NpZ25tZW50IGluIHRo ZSBJRVRGIG5hbWVzcGFjZS4gSUVURiBjb25zZW5zdXMgaXMgbm90DQogICAgICAgICAgICByZXF1 aXJlZC4NCiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCg0KICAgICAgICA8c2Vj dGlvbiB0aXRsZT0iQXNzaWduZWQgQ2xhc3NlcyI+DQogICAgICAgICAgPHQ+DQogICAgICAgICAg ICBFYWNoIGFsZ29yaXRobSBNVVNUIGJlbG9uZyB0byBhbiBhc3NpZ25lZCBhbGdvcml0aG0gY2xh c3MuDQogICAgICAgICAgICBJbiB0aGUgY2FzZSB0aGF0IGFkZGl0aW9uYWwgY2xhc3NlcyBhcmUg cmVxdWlyZWQgdGhlc2UgYXJlIHRvDQogICAgICAgICAgICBiZSBzcGVjaWZpZWQgYnkgSUVURiBD b25zZW5zdXMgYWN0aW9uLg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgICA8dD4NCiAgICAgICAg ICAgIFRoZSBpbml0aWFsIGFzc2lnbmVkIGNsYXNzZXMgYXJlOg0KICAgICAgICAgIDwvdD4NCiAg ICAgICAgICA8dD4gICAgICAgICAgDQogICAgICAgICAgICA8bGlzdCBzdHlsZT0iaGFuZ2luZyI+ DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJEaWdlc3QiPg0KICAgICAgICAgICAgICAgIEEg Y3J5cHRvZ3JhcGhpYyBEaWdlc3QgYWxnb3JpdGhtLg0KICAgICAgICAgICAgICA8L3Q+DQogICAg ICAgICAgICAgIDx0IGhhbmdUZXh0PSJNQUMiPg0KICAgICAgICAgICAgICAgIEEgTWVzc2FnZSBB dXRoZW50aWNhdGlvbiBDb2RlIGFsZ29yaXRobS4NCiAgICAgICAgICAgICAgPC90Pg0KICAgICAg ICAgICAgICA8dCBoYW5nVGV4dD0iU3ltbWV0cmljIj4NCiAgICAgICAgICAgICAgICBBIHN5bW1l dHJpYyBlbmNyeXB0aW9uIGFsZ29yaXRobS4NCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAg ICAgICA8dCBoYW5nVGV4dD0iT1RQIj4NCiAgICAgICAgICAgICAgICBBIG9uZSB0aW1lIHBhc3N3 b3JkIChPVFApIGFsZ29yaXRobS4NCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgPC9s aXN0Pg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgPC9zZWN0aW9uPg0KDQogICAgICA8L3NlY3Rp b24+DQogICAgICA8c2VjdGlvbiB0aXRsZT0iUmVnaXN0cmF0aW9uIFByb2NlZHVyZXMiPg0KICAg ICAgICA8c2VjdGlvbiB0aXRsZT0iUmV2aWV3Ij4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAg IEFsZ29yaXRobSBpZGVudGlmaWVyIHJlZ2lzdHJhdGlvbnMgYXJlIHRvIGJlIHN1YmplY3QgdG8g RXhwZXJ0IFJldmlldw0KICAgICAgICAgICAgYXMgcGVyIDx4cmVmIHRhcmdldD0iUkZDMjQzNCI+ UkZDIDI0MzQ8L3hyZWY+Lg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgICA8dD4NCiAgICAgICAg ICAgIFRoZSBuZWVkIGZvciBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24gZm9yIHRoZSByZWdpc3Ry YXRpb24gZGVwZW5kcw0KICAgICAgICAgICAgb24gdGhlIG5hdHVyZSBvZiB0aGUgcmVxdWVzdC4g SW4gdGhlIGNhc2Ugb2YgYSBjcnlwdG9ncmFwaGljIGFsZ29yaXRobQ0KICAgICAgICAgICAgdGhh dCBpcyBiZWluZyBkZXNjcmliZWQgZm9yIHB1YmxpY2F0aW9uIGFzIGFuIFJGQywgdGhlIHJlcXVl c3QNCiAgICAgICAgICAgIGZvciBhIFVSSSBhbGxvY2F0aW9uIHdvdWxkIG5vcm1hbGx5IGFwcGVh ciB3aXRoaW4gdGhlIFJGQyBpdHNlbGYuDQogICAgICAgICAgICBJbiB0aGUgY2FzZSBvZiBhIGNy eXB0b2dyYXBoaWMgYWxnb3JpdGhtIHRoYXQgaXMgZnVsbHkgYW5kIGNvbXByZWhlbnNpdmVseQ0K ICAgICAgICAgICAgZGVmaW5lZCBpbiBhbm90aGVyIGZvcm0sIGl0IHdvdWxkIG5vdCBiZSBuZWNl c3NhcnkgdG8gZHVwbGljYXRlIHRoZQ0KICAgICAgICAgICAgaW5mb3JtYXRpb24gZm9yIHRoZSBz YWtlIG9mIGlzc3VpbmcgdGhlIGluZm9ybWF0aW9uIGluIHRoZSBSRkMgc2VyaWVzLg0KICAgICAg ICAgICAgSW4gb3RoZXIgY2FzZXMgYW4gUkZDIG1heSBiZSByZXF1aXJlZCBpbiBvcmRlciB0byBl bnN1cmUgdGhhdCBjZXJ0YWluDQogICAgICAgICAgICBhbGdvcml0aG0gcGFyYW1ldGVycyBhcmUg c3VmZmljaWVudGx5IGFuZCB1bmFtYmlndW91c2x5IGRlZmluZWQuDQogICAgICAgICAgPC90Pg0K ICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgVGhlIHNjb3BlIG9mIHN1Y2ggZXhwZXJ0IHJldmll dyBpcyB0byBiZSBzdHJpY3RseSBsaW1pdGVkIHRvDQogICAgICAgICAgICBpZGVudGlmeWluZyBw b3NzaWJsZSBhbWJpZ3VpdHkgYW5kL29yIGR1cGxpY2F0aW9uIG9mIGV4aXN0aW5nDQogICAgICAg ICAgICBpZGVudGlmaWVycy4gVGhlIGV4cGVydCByZXZpZXcgTVVTVCBOT1QgY29uc2lkZXIgdGhl IGNyeXB0b2dyYXBoaWMNCiAgICAgICAgICAgIHByb3BlcnRpZXMsIGludGVsbGVjdHVhbCBwcm9w ZXJ0eSBjb25zaWRlcmF0aW9ucyBvciBhbnkgb3RoZXIgZmFjdG9yDQogICAgICAgICAgICBub3Qg cmVsYXRlZCB0byB0aGUgdXNlIG9mIHRoZSBpZGVudGlmaWVyLg0KICAgICAgICAgIDwvdD4NCiAg ICAgICAgICA8dD4NCiAgICAgICAgICAgIEluIHJldmlld2luZyBhIHJlcXVlc3QsIHRoZSBleHBl cnQgc2hvdWxkIGNvbnNpZGVyIHdoZXRoZXIgb3RoZXINCiAgICAgICAgICAgIFVSSSBpZGVudGlm aWVycyBhcmUgYWxyZWFkeSBkZWZpbmVkIGZvciBhIGdpdmVuIGFsZ29yaXRobS4gSW4gc3VjaCBj YXNlcw0KICAgICAgICAgICAgaXQgaXMgdGhlIGR1dHkgb2YgdGhlIGV4cGVydCB0byBicmluZyB0 aGUgcG90ZW50aWFsIGR1cGxpY2F0aW9uIHRvDQogICAgICAgICAgICB0aGUgbm90aWNlIG9mIHRo ZSBwcm9wb3NlcnMgb2YgdGhlIHJlZ2lzdHJhdGlvbiBhbmQgdGhlIFNlY3VyaXR5DQogICAgICAg ICAgICBBcmVhIERpcmVjdG9ycy4gSWYgdGhlIHByb3Bvc2VycyBhcmUgbm90IHdpbGxpbmcgdG8g YWNjZXB0DQogICAgICAgICAgICByZWdpc3RyYXRpb24gb2YgdGhlIGV4aXN0aW5nIGlkZW50aWZp ZXIgdGhlIElFVEYgQ29uc2Vuc3VzIHBvbGljeQ0KICAgICAgICAgICAgaXMgdG8gYXBwbHkuDQog ICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgSW4gcmV2aWV3aW5nIGEg cmVxdWVzdCwgdGhlIGV4cGVydCBzaG91bGQgY29uc2lkZXIgd2hldGhlciB0aGUNCiAgICAgICAg ICAgIGFsZ29yaXRobSBpcyBzdWZmaWNpZW50bHkgZGVmaW5lZCB0byBhbGxvdyBzdWNjZXNzZnVs IGludGVyb3BlcmF0aW9uLg0KICAgICAgICAgICAgSW4gcGFydGljdWxhciB0aGUgZXhwZXJ0IHNo b3VsZCBjb25zaWRlciB3aGV0aGVyIGlzc3VlcyBzdWNoIGFzDQogICAgICAgICAgICBrZXkgc2l6 ZXMgYW5kIGJ5dGUgb3JkZXIgYXJlIHN1ZmZpY2llbnRseSBkZWZpbmVkIHRvIGFsbG93IGZvcg0K ICAgICAgICAgICAgaW50ZXJvcGVyYXRpb24uDQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0 Pg0KICAgICAgICAgICAgV2hpbGUgdGhlIGRlZmluaXRpb24gcmVxdWlyZW1lbnQgTUFZIGJlIHNh dGlzZmVkIGJ5IGEgY29tcHJlaGVuc2l2ZQ0KICAgICAgICAgICAgc3BlY2lmaWNhdGlvbiBvZiB0 aGUgYWxnb3JpdGhtLCBkaXNjbG9zdXJlIG9mIHRoZSBhbGdvcml0aG0gaXMgbm90DQogICAgICAg ICAgICBtYW5kYXRvcnkuDQogICAgICAgICAgPC90Pg0KICAgICAgICA8L3NlY3Rpb24+DQogICAg ICAgIDxzZWN0aW9uIHRpdGxlPSJDYW5vbmljYWwgVVJJIj4NCiAgICAgICAgICA8dD4NCiAgICAg ICAgICAgIFVudGlsIHRoZSBJQU5BIHJlcXVlc3RzIG9yIGltcGxlbWVudHMgYW4gYXV0b21hdGVk IHByb2Nlc3MgZm9yIHRoZQ0KICAgICAgICAgICAgcmVnaXN0cmF0aW9uIG9mIHRoZXNlIGVsZW1l bnRzLCBhbnkgc3BlY2lmaWNhdGlvbnMgbXVzdCBtYWtlIHRoYXQNCiAgICAgICAgICAgIHJlcXVl c3QgcGFydCBvZiB0aGUgSUFOQSBjb25zaWRlcmF0aW9ucyBzZWN0aW9uIG9mIHRoZWlyIHJlc3Bl Y3RpdmUNCiAgICAgICAgICAgIGRvY3VtZW50cy4gIFRoYXQgcmVxdWVzdCBtdXN0IGJlIGluIHRo ZSBmb3JtIG9mIHRoZSBmb2xsb3dpbmcNCiAgICAgICAgICAgIHRlbXBsYXRlOg0KICAgICAgICAg IDwvdD4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4N CiAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDb21tb24gTmFtZSI+DQogICAgICAgICAgICAgIFRo ZSBuYW1lIGJ5IHdoaWNoIHRoZSBhbGdvcml0aG0gaXMgZ2VuZXJhbGx5IHJlZmVycmVkLg0KICAg ICAgICAgICAgPC90Pg0KICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNsYXNzIj4NCiAgICAgICAg ICAgICAgVGhlIHR5cGUgb2YgYWxnb3JpdGhtLCBlbmNyeXB0aW9uLCBNZXNzYWdlIEF1dGhlbnRp Y2F0aW9uIENvZGUgKE1BQyksDQogICAgICAgICAgICAgIE9uZSBUaW1lIFBhc3N3b3JkIChPVFAp LCBEaWdlc3QsIGV0Yy4gQXMgc3BlY2lmaWVkIGJ5DQogICAgICAgICAgICAgIGEgZGVmaW5lZCBh bGdvcml0aG0gY2xhc3MuDQogICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICA8dCBoYW5nVGV4 dD0iVVJJIj4NCiAgICAgICAgICAgICAgVGhlIGNhbm9uaWNhbCBVUkkgdG8gYmUgdXNlZCB0byBp ZGVudGlmeSB0aGUgYWxnb3JpdGhtLg0KICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgPHQg aGFuZ1RleHQ9IkFsZ29yaXRobSBEZWZpbml0aW9uIj4NCiAgICAgICAgICAgICAgQSByZWZlcmVu Y2UgdG8gdGhlIGRvY3VtZW50IGluIHdoaWNoIHRoZSBhbGdvcml0aG0gZGVzY3JpYmVkDQogICAg ICAgICAgICAgIGJ5IHRoZSBpZGVudGlmaWVyIGlzIGRlZmluZWQuDQogICAgICAgICAgICA8L3Q+ DQogICAgICAgICAgICA8dCBoYW5nVGV4dD0iSWRlbnRpZmllciBEZWZpbml0aW9uIj4NCiAgICAg ICAgICAgICAgQSByZWZlcmVuY2UgdG8gdGhlIGRvY3VtZW50IGluIHdoaWNoIHRoZSB1c2Ugb2Yg dGhlIGlkZW50aWZpZXINCiAgICAgICAgICAgICAgdG8gcmVmZXIgdG8gdGhlIGFsZ29yaXRobSBp cyBkZXNjcmliZWQuIFRoaXMgd291bGQgaWRlYWxseQ0KICAgICAgICAgICAgICBiZSB0aGUgZG9j dW1lbnQgaW4gd2hpY2ggdGhlIGFsZ29yaXRobSBpcyBkZWZpbmVkLg0KICAgICAgICAgICAgPC90 Pg0KICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IlJlZ2lzdHJhbnQgQ29udGFjdCI+DQogICAgICAg ICAgICAgIEEgcmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgdXNlIG9mIHRo ZSBpZGVudGlmaWVyDQogICAgICAgICAgICAgIHRvIHJlZmVyIHRvIHRoZSBhbGdvcml0aG0gaXMg ZGVzY3JpYmVkLiBUaGlzIHdvdWxkIGlkZWFsbHkNCiAgICAgICAgICAgICAgYmUgdGhlIGRvY3Vt ZW50IGluIHdoaWNoIHRoZSBhbGdvcml0aG0gaXMgZGVmaW5lZC4NCiAgICAgICAgICAgIDwvdD4N CiAgICAgICAgICA8L2xpc3Q+DQogICAgICAgICAgPC90Pg0KICAgICAgICA8L3NlY3Rpb24+DQog ICAgICAgIDxzZWN0aW9uIHRpdGxlPSJBbGlhcyBVUkkiPg0KICAgICAgICAgIDx0Pg0KICAgICAg ICAgICAgSW4gdGhlIGNhc2UgdGhhdCBtdWx0aXBsZSBpZGVudGlmaWVycyBoYXZlIGJlZW4gYXNz aWduZWQgdG8gdGhlIHNhbWUNCiAgICAgICAgICAgIGlkZW50aWZpZXJzLCBhZGRpdGlvbmFsIGlk ZW50aWZpZXJzIE1BWSBiZSByZWdpc3RlcmVkIGFzIGFsaWFzZXMuIEFuDQogICAgICAgICAgICBl bnRyeSBmb3IgYW4gYWxpYXMgY29udGFpbnMgYWxsIHRoZSBlbnRyaWVzIGZvciBhIGNhbm9uaWNh bCBVUkkgd2l0aA0KICAgICAgICAgICAgdGhlIGFkZGl0aW9uIG9mIGEgcmVmZXJlbmNlIHRvIHRo ZSBjYW5vbmljYWwgVVJJIHRvIGJlIHVzZWQ6DQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0 Pg0KICAgICAgICAgICAgPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0KICAgICAgICAgICAgICA8dCBo YW5nVGV4dD0iQWxpYXMgZm9yIFVSSSI+DQogICAgICAgICAgICAgICAgVGhlIGNhbm9uaWNhbCBV UkkgdGhhdCBpZGVudGlmaWVzIHRoZSBhbGdvcml0aG0uIFRoZSBVUkkgcmVmZXJlbmNlZA0KICAg ICAgICAgICAgICAgIE1VU1QgYmUgYSBjYW5vbmljYWwgVVJJLg0KICAgICAgICAgICAgICA8L3Q+ DQogICAgICAgICAgICA8L2xpc3Q+DQogICAgICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0KICAg ICAgICAgICAgSW4gdGhlIGNhc2Ugb2YgZGlzcHV0ZSBhcyB0byB3aGljaCBVUkkgaXMgdG8gYmUg Y29uc2lkZXJlZCBjYW5vbmljYWwNCiAgICAgICAgICAgIHRoZSBtYXR0ZXIgaXMgdG8gYmUgc2V0 dGxlZCBieSBJRVNHIGFjdGlvbi4NCiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4N CiAgICAgIDwvc2VjdGlvbj4NCiAgICAgIDxzZWN0aW9uIHRpdGxlPSJJbml0aWFsIFZhbHVlcyI+ DQogICAgICAgIDx0Pg0KICAgICAgICAgIFRoZSBmb2xsb3dpbmcgaW5pdGlhbCB2YWx1ZXMgYXJl IGRlZmluZWQuIE5vdGUgdGhhdCB0aGVzZSB2YWx1ZXMgYXJlDQogICAgICAgICAgbGltaXRlZCB0 byBpZGVudGlmaWVycyB0aGF0IGFyZSByZXF1aXJlZCBieSBLRVlQUk9WIGJ1dCBub3Qgc3BlY2lm aWVkDQogICAgICAgICAgZWxzZXdoZXJlOg0KICAgICAgICA8L3Q+DQogICAgICAgIDxzZWN0aW9u IHRpdGxlPSJIT1RQIj4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJo YW5naW5nIj4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lOiI+DQogICAg ICAgICAgICAgICAgSE9UUA0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhh bmdUZXh0PSJDbGFzczoiPg0KICAgICAgICAgICAgICAgIE9UUA0KICAgICAgICAgICAgICA8L3Q+ DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJVUkk6Ij4NCiAgICAgICAgICAgICAgICBodHRw Oi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNrYyNob3RwDQogICAgICAgICAgICAgIDwvdD4NCiAg ICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkFsZ29yaXRobSBEZWZpbml0aW9uOiI+DQogICAgICAg ICAgICAgICAgaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjNDIyNi50eHQNCiAgICAgICAgICAg ICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iSWRlbnRpZmllciBEZWZpbml0aW9u Ij4NCiAgICAgICAgICAgICAgICAodGhpcyBSRkMpDQogICAgICAgICAgICAgIDwvdD4NCiAgICAg ICAgICAgICAgPHQgaGFuZ1RleHQ9IlJlZ2lzdHJhbnQgQ29udGFjdDoiPg0KICAgICAgICAgICAg ICAgIElFU0cNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgPC9saXN0Pg0KICAgICAg ICAgIDwvdD4NCiAgICAgICAgPC9zZWN0aW9uPg0KICAgICAgICA8c2VjdGlvbiB0aXRsZT0iSE9U UC1ITUFDLVNIQS0xIj4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJo YW5naW5nIj4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lOiI+DQogICAg ICAgICAgICAgICAgSE9UUC1ITUFDLVNIQS0xDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAg ICAgICAgPHQgaGFuZ1RleHQ9IkNsYXNzOiI+DQogICAgICAgICAgICAgICAgT1RQDQogICAgICAg ICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IlVSSToiPg0KICAgICAgICAg ICAgICAgIGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzQyMjYudHh0I0hPVFAtSE1BQy1TSEEt MQ0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJBbGdvcml0 aG0gRGVmaW5pdGlvbjoiPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZj L3JmYzQyMjYudHh0DQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1Rl eHQ9IklkZW50aWZpZXIgRGVmaW5pdGlvbiI+DQogICAgICAgICAgICAgICAgKHRoaXMgUkZDKQ0K ICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJSZWdpc3RyYW50 IENvbnRhY3Q6Ij4NCiAgICAgICAgICAgICAgICBJRVNHDQogICAgICAgICAgICAgIDwvdD4NCiAg ICAgICAgICAgIDwvbGlzdD4NCiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCiAg ICAgICAgPHNlY3Rpb24gdGl0bGU9IktFWVBST1YtUElOIj4NCiAgICAgICAgICA8dD4NCiAgICAg ICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IkNvbW1vbiBOYW1lOiI+DQogICAgICAgICAgICAgICAgS0VZUFJPVi1QSU4NCiAgICAgICAgICAg ICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ2xhc3M6Ij4NCiAgICAgICAgICAg ICAgICBTeW1tZXRyaWMgc3RhdGljIGNyZWRlbnRpYWwgY29tcGFyaXNvbg0KICAgICAgICAgICAg ICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJVUkk6Ij4NCiAgICAgICAgICAgICAg ICAgaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92L3Bza2MjcGluDQogICAgICAgICAgICAgIDwv dD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkFsZ29yaXRobSBEZWZpbml0aW9uOiI+DQog ICAgICAgICAgICAgICAgKHRoaXMgZG9jdW1lbnQpDQogICAgICAgICAgICAgIDwvdD4NCiAgICAg ICAgICAgICAgPHQgaGFuZ1RleHQ9IklkZW50aWZpZXIgRGVmaW5pdGlvbiI+DQogICAgICAgICAg ICAgICAgKHRoaXMgZG9jdW1lbnQpDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAg PHQgaGFuZ1RleHQ9IlJlZ2lzdHJhbnQgQ29udGFjdDoiPg0KICAgICAgICAgICAgICAgIElFU0cN CiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgPC9saXN0Pg0KICAgICAgICAgIDwvdD4N CiAgICAgICAgPC9zZWN0aW9uPg0KICAgICAgICA8c2VjdGlvbiB0aXRsZT0iU2VjdXJJRC1BRVMi Pg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0KICAg ICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ29tbW9uIE5hbWU6Ij4NCiAgICAgICAgICAgICAgICBT ZWN1cklELUFFUw0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0 PSJDbGFzczoiPg0KICAgICAgICAgICAgICAgIE9UUA0KICAgICAgICAgICAgICA8L3Q+DQogICAg ICAgICAgICAgIDx0IGhhbmdUZXh0PSJVUkk6Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3 LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJzL290cHMvc2NoZW1hcy8yMDA1LzA5L290cHMtd3N0I1Nl Y3VySUQtQUVTDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IkFsZ29yaXRobSBEZWZpbml0aW9uOiI+DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5yc2Eu Y29tL3JzYWxhYnMvbm9kZS5hc3A/aWQ9MjgyMQ0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAg ICAgICAgIDx0IGhhbmdUZXh0PSJJZGVudGlmaWVyIERlZmluaXRpb24iPg0KICAgICAgICAgICAg ICAgIGh0dHA6Ly93d3cucnNhLmNvbS9yc2FsYWJzL25vZGUuYXNwP2lkPTI4MjENCiAgICAgICAg ICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iUmVnaXN0cmFudCBDb250YWN0 OiI+DQogICAgICAgICAgICAgICAgQW5kcmVhIERvaGVydHksIFJTQSB0aGUgU2VjdXJpdHkgRGl2 aXNpb24gb2YgRU1DLCAmbHQ7YW5kcmVhLmRvaGVydHlAcnNhLmNvbSZndDsNCiAgICAgICAgICAg ICAgPC90Pg0KICAgICAgICAgICAgPC9saXN0Pg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgPC9z ZWN0aW9uPg0KICAgICAgICA8c2VjdGlvbiB0aXRsZT0iU2VjdXJJRC1BTEdPUiI+DQogICAgICAg ICAgPHQ+DQogICAgICAgICAgICA8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQogICAgICAgICAgICAg IDx0IGhhbmdUZXh0PSJDb21tb24gTmFtZToiPg0KICAgICAgICAgICAgICAgIFNlY3VySUQtQUxH T1INCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ2xhc3M6 Ij4NCiAgICAgICAgICAgICAgICBPVFANCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAg ICA8dCBoYW5nVGV4dD0iVVJJOiI+DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5yc2FzZWN1 cml0eS5jb20vcnNhbGFicy9vdHBzL3NjaGVtYXMvMjAwNS8wOS9vdHBzLXdzdCNTZWN1cklELUFM R09SDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkFsZ29y aXRobSBEZWZpbml0aW9uOiI+DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5yc2EuY29tL3Jz YWxhYnMvbm9kZS5hc3A/aWQ9MjgyMQ0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAg IDx0IGhhbmdUZXh0PSJJZGVudGlmaWVyIERlZmluaXRpb24iPg0KICAgICAgICAgICAgICAgIGh0 dHA6Ly93d3cucnNhLmNvbS9yc2FsYWJzL25vZGUuYXNwP2lkPTI4MjENCiAgICAgICAgICAgICAg PC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iUmVnaXN0cmFudCBDb250YWN0OiI+DQog ICAgICAgICAgICAgICAgQW5kcmVhIERvaGVydHksIFJTQSB0aGUgU2VjdXJpdHkgRGl2aXNpb24g b2YgRU1DLCAmbHQ7YW5kcmVhLmRvaGVydHlAcnNhLmNvbSZndDsNCiAgICAgICAgICAgICAgPC90 Pg0KICAgICAgICAgICAgPC9saXN0Pg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgPC9zZWN0aW9u Pg0KICAgICAgICA8c2VjdGlvbiB0aXRsZT0iQWN0aXZJZGVudGl0eS0zREVTIj4NCiAgICAgICAg ICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAgICAgICAg PHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lOiI+DQogICAgICAgICAgICAgICAgQWN0aXZJZGVudGl0 eS0zREVTDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNs YXNzOiI+DQogICAgICAgICAgICAgICAgT1RQDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAg ICAgICAgPHQgaGFuZ1RleHQ9IlVSSToiPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYWN0 aXZpZGVudGl0eS5jb20vMjAwOC8wNC9hbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVudGl0 eS0zREVTDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkFs Z29yaXRobSBEZWZpbml0aW9uOiI+DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hY3Rpdmlk ZW50aXR5LmNvbS8yMDA4LzA0L2FsZ29yaXRobXMvYWxnb3JpdGhtcyNBY3RpdklkZW50aXR5LTNE RVMNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iSWRlbnRp ZmllciBEZWZpbml0aW9uIj4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFjdGl2aWRlbnRp dHkuY29tLzIwMDgvMDQvYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHktM0RFUw0K ICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJSZWdpc3RyYW50 IENvbnRhY3Q6Ij4NCiAgICAgICAgICAgICAgICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRlbnRpdHkg SW5jLCAmbHQ7cGhpbGlwLmhveWVyQGFjdGl2aWRlbnRpdHkuY29tJmd0Ow0KICAgICAgICAgICAg ICA8L3Q+DQogICAgICAgICAgICA8L2xpc3Q+DQogICAgICAgICAgPC90Pg0KICAgICAgICA8L3Nl Y3Rpb24+DQogICAgICAgIDxzZWN0aW9uIHRpdGxlPSJBY3RpdklkZW50aXR5LUFFUyI+DQogICAg ICAgICAgPHQ+DQogICAgICAgICAgICA8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQogICAgICAgICAg ICAgIDx0IGhhbmdUZXh0PSJDb21tb24gTmFtZToiPg0KICAgICAgICAgICAgICAgIEFjdGl2SWRl bnRpdHktQUVTDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IkNsYXNzOiI+DQogICAgICAgICAgICAgICAgT1RQDQogICAgICAgICAgICAgIDwvdD4NCiAgICAg ICAgICAgICAgPHQgaGFuZ1RleHQ9IlVSSToiPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cu YWN0aXZpZGVudGl0eS5jb20vMjAwOC8wNC9hbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVu dGl0eS1BRVMNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0i QWxnb3JpdGhtIERlZmluaXRpb246Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFjdGl2 aWRlbnRpdHkuY29tLzIwMDgvMDQvYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHkt QUVTDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IklkZW50 aWZpZXIgRGVmaW5pdGlvbiI+DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hY3RpdmlkZW50 aXR5LmNvbS8yMDA4LzA0L2FsZ29yaXRobXMvYWxnb3JpdGhtcyNBY3RpdklkZW50aXR5LUFFUw0K ICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJSZWdpc3RyYW50 IENvbnRhY3Q6Ij4NCiAgICAgICAgICAgICAgICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRlbnRpdHkg SW5jLCAmbHQ7cGhpbGlwLmhveWVyQGFjdGl2aWRlbnRpdHkuY29tJmd0Ow0KICAgICAgICAgICAg ICA8L3Q+DQogICAgICAgICAgICA8L2xpc3Q+DQogICAgICAgICAgPC90Pg0KICAgICAgICA8L3Nl Y3Rpb24+DQogICAgICAgIDxzZWN0aW9uIHRpdGxlPSJBY3RpdklkZW50aXR5LURFUyI+DQogICAg ICAgICAgPHQ+DQogICAgICAgICAgICA8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQogICAgICAgICAg ICAgIDx0IGhhbmdUZXh0PSJDb21tb24gTmFtZToiPg0KICAgICAgICAgICAgICAgIEFjdGl2SWRl bnRpdHktREVTDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9 IkNsYXNzOiI+DQogICAgICAgICAgICAgICAgT1RQDQogICAgICAgICAgICAgIDwvdD4NCiAgICAg ICAgICAgICAgPHQgaGFuZ1RleHQ9IlVSSToiPg0KICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cu YWN0aXZpZGVudGl0eS5jb20vMjAwOC8wNC9hbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVu dGl0eS1ERVMNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0i QWxnb3JpdGhtIERlZmluaXRpb246Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFjdGl2 aWRlbnRpdHkuY29tLzIwMDgvMDQvYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHkt REVTDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IklkZW50 aWZpZXIgRGVmaW5pdGlvbiI+DQogICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hY3RpdmlkZW50 aXR5LmNvbS8yMDA4LzA0L2FsZ29yaXRobXMvYWxnb3JpdGhtcyNBY3RpdklkZW50aXR5LURFUw0K ICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJSZWdpc3RyYW50 IENvbnRhY3Q6Ij4NCiAgICAgICAgICAgICAgICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRlbnRpdHkg SW5jLCAmbHQ7cGhpbGlwLmhveWVyQGFjdGl2aWRlbnRpdHkuY29tJmd0Ow0KICAgICAgICAgICAg ICA8L3Q+DQogICAgICAgICAgICA8L2xpc3Q+DQogICAgICAgICAgPC90Pg0KICAgICAgICA8L3Nl Y3Rpb24+DQogICAgICAgIDxzZWN0aW9uIHRpdGxlPSJBY3RpdklkZW50aXR5LUVWRU5UIj4NCiAg ICAgICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0eWxlPSJoYW5naW5nIj4NCiAgICAgICAg ICAgICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lOiI+DQogICAgICAgICAgICAgICAgQWN0aXZJ ZGVudGl0eS1FVkVOVA0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAgICAgIDx0IGhhbmdU ZXh0PSJDbGFzczoiPg0KICAgICAgICAgICAgICAgIE9UUA0KICAgICAgICAgICAgICA8L3Q+DQog ICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJVUkk6Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8v d3d3LmFjdGl2aWRlbnRpdHkuY29tLzIwMDgvMDQvYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2 SWRlbnRpdHktRVZFTlQNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5n VGV4dD0iQWxnb3JpdGhtIERlZmluaXRpb246Ij4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3 LmFjdGl2aWRlbnRpdHkuY29tLzIwMDgvMDQvYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRl bnRpdHktRVZFTlQNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4 dD0iSWRlbnRpZmllciBEZWZpbml0aW9uIj4NCiAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFj dGl2aWRlbnRpdHkuY29tLzIwMDgvMDQvYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRp dHktRVZFTlQNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0i UmVnaXN0cmFudCBDb250YWN0OiI+DQogICAgICAgICAgICAgICAgUGhpbGlwIEhveWVyLCBBY3Rp dklkZW50aXR5IEluYywgJmx0O3BoaWxpcC5ob3llckBhY3RpdmlkZW50aXR5LmNvbSZndDsNCiAg ICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgPC9saXN0Pg0KICAgICAgICAgIDwvdD4NCiAg ICAgICAgPC9zZWN0aW9uPg0KICAgICAgICANCiAgICAgICAgDQogICAgICA8L3NlY3Rpb24+DQog ICAgPC9zZWN0aW9uPg0KDQogICAgPHNlY3Rpb24gdGl0bGU9IlhNTCBEYXRhIFRhZyBJZGVudGlm aWVyIFJlZ2lzdHJ5Ij4NCiAgICAgIDx0ID4NCiAgICAgICAgVGhpcyBzcGVjaWZpY2F0aW9uIHJl cXVlc3RzIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBJQU5BIHJlZ2lzdHJ5IGZvcg0KICAgICAgICBY TUwgRGF0YSBUYWcgaWRlbnRpZmllcnMgaW4gYWNjb3JkYW5jZSB3aXRoDQogICAgICAgIHRoZSBw cmluY2lwbGVzIHNldCBvdXQgaW4gPHhyZWYgdGFyZ2V0PSJSRkMyNDM0Ij5SRkMgMjQzNDwveHJl Zj5hcw0KICAgICAgICBmb2xsb3dzOg0KICAgICAgPC90Pg0KDQogICAgICA8dD4NCiAgICAgICAg W01vcmUgZXhwbGFuYXRpb24gb2Ygd2h5IGFuIGVzY2FwZSB0byB0YWcgdmFsdWUgbGlzdHMgaXMg ZGVzaXJhYmxlDQogICAgICAgIHdoZW4gaW5zZXJ0aW5nIHVuc3RydWN0dXJlZCBkYXRhIGludG8g YW4gWE1MIHNjaGVtYV0NCiAgICAgIDwvdD4NCiAgICAgIDxzZWN0aW9uIHRpdGxlPSJBcHBsaWNh YmlsaXR5Ij4NCiAgICAgICAgPHQ+DQoNCiAgICAgICAgPC90Pg0KICAgICAgICA8dD4NCiAgICAg ICAgICBBcyBwYXJ0IG9mIHRoaXMgcmVnaXN0cnkgdGhlIElBTkEgd2lsbCBtYWludGFpbiB0aGUg Zm9sbG93aW5nDQogICAgICAgICAgaW5mb3JtYXRpb246DQogICAgICAgIDwvdD4NCiAgICAgICAg PHQ+DQogICAgICAgICAgPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0KICAgICAgICAgIDx0IGhhbmdU ZXh0PSJDb21tb24gTmFtZSI+DQogICAgICAgICAgICBDb21tb24gbmFtZSBmb3IgYnkgd2hpY2gg dGhlIHRhZyBpcyByZWZlcnJlZCB0bw0KICAgICAgICAgIDwvdD4NCiAgICAgICAgICA8dCBoYW5n VGV4dD0iQ2Fub25pY2FsIFVSSSI+DQogICAgICAgICAgICBUaGUgY2Fub25pY2FsIFVSSSB0byBi ZSBlbXBsb3llZCB3aGVuIGNpdGluZyB0aGUgdGFnLg0KICAgICAgICAgIDwvdD4NCiAgICAgICAg ICA8dCBoYW5nVGV4dD0iRGF0YSBUeXBlIj4NCiAgICAgICAgICAgIFRoZSBkYXRhIHR5cGUgb2Yg dGhlIGRhdGEgdGhhdCBpcyBib3VuZCB0byB0aGUgdGFnLg0KICAgICAgICAgIDwvdD4NCiAgICAg ICAgICAgIDx0IGhhbmdUZXh0PSIgRGVmaW5pdGlvbiI+DQogICAgICAgICAgICAgIEEgcmVmZXJl bmNlIHRvIHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgZGF0YSB0YWcgZGVmaW5lZA0KICAgICAg ICAgICAgICBieSB0aGUgaWRlbnRpZmllciBpcyBkZWZpbmVkLg0KICAgICAgICAgICAgPC90Pg0K ICAgICAgICA8L2xpc3Q+DQogICAgICAgIDwvdD4NCiAgICAgICAgPHQ+DQogICAgICAgICAgPCEt LSBUaGUgSUFOQSB3aWxsIHJlZ2lzdGVyIGFueSBVUkkgYnV0IGl0IGFwcGVhcnMgdGhhdCBpdCB3 aWxsIG9ubHkNCiAgICAgICAgQVNTSUdOIGlkZW50aWZpZXJzIGluIFVSTiBzcGFjZSAtLT4NCiAg ICAgICAgICBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgcmVnaXN0cmFudCBkb2VzIG5vdCByZXF1ZXN0 IGEgcGFydGljdWxhciBVUkksDQogICAgICAgICAgdGhlIElBTkEgd2lsbCBhc3NpZ24gaXQgYSBV bmlmb3JtIFJlc291cmNlIE5hbWUgKFVSTikgdGhhdCBmb2xsb3dzDQogICAgICAgICAgPHhyZWYg dGFyZ2V0PSJSRkMzNTUzIj5SRkMgMzU1MzwveHJlZj4uDQogICAgICAgIDwvdD4NCg0KDQogICAg ICA8L3NlY3Rpb24+DQogICAgICA8c2VjdGlvbiB0aXRsZT0iUmVnaXN0ZXJhYmxlIERhdGEgVGFn cyI+DQoNCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9IkFzc2lnbmVkIFVSSXMiPg0KICAgICAgICAg IDx0Pg0KICAgICAgICAgICAgSWYgdGhlIHJlZ2lzdHJhbnQgd2lzaGVzIHRvDQogICAgICAgICAg ICBoYXZlIGEgVVJJIGFzc2lnbmVkLCB0aGVuIGEgVVJOIG9mIHRoZSBmb3JtDQogICAgICAgICAg PC90Pg0KDQogICAgICAgICAgPHQ+DQogICAgICAgICAgICB1cm46aWV0ZjpwYXJhbXM6eG1sOmRh dGF0YWc6Jmx0O3RhZyZndDsNCiAgICAgICAgICA8L3Q+DQoNCiAgICAgICAgICA8dD4NCiAgICAg ICAgICAgIHdpbGwgYmUgYXNzaWduZWQgd2hlcmUgJmx0O3RhZyZndDsgaXMgYSB1bmlxdWUgaWQg c3BlY2lmaWVkIGJ5IHRoZSBwYXJ0eSBtYWtpbmcNCiAgICAgICAgICAgIHRoZSByZXF1ZXN0IGFu ZCB3aWxsIG5vcm1hbGx5IGJlIGVpdGhlciB0aGUgY29tbW9uIG5hbWUgb2YgdGhlIHRhZw0KICAg ICAgICAgICAgb3IgYW4gYWJicmV2aWF0aW9uIHRoZXJlb2YuDQogICAgICAgICAgPC90Pg0KICAg ICAgICAgIDx0Pg0KICAgICAgICAgICAgTk9URTogaW4gb3JkZXIgZm9yIGEgVVJOIG9mIHRoaXMg dHlwZSB0byBiZQ0KICAgICAgICAgICAgYXNzaWduZWQsIHRoZSBpdGVtIGJlaW5nIHJlZ2lzdGVy ZWQgTVVTVCBoYXZlIGJlZW4gdGhyb3VnaCB0aGUgSUVURg0KICAgICAgICAgICAgY29uc2Vuc3Vz IHByb2Nlc3MuICBCYXNpY2FsbHksIHRoaXMgbWVhbnMgdGhhdCBpdCBtdXN0IGJlIGRvY3VtZW50 ZWQNCiAgICAgICAgICAgIGluIGEgUkZDLg0KICAgICAgICAgIDwvdD4NCiAgICAgICAgICA8dD4N CiAgICAgICAgICAgIE5PVEU6IEV4cGVydCBSZXZpZXcgaXMgc3VmZmljaWVudCBpbiBjYXNlcyB3 aGVyZSB0aGUgcmVxdWVzdCBkb2VzIG5vdA0KICAgICAgICAgICAgcmVxdWlyZSBhIFVSTiBhc3Np Z25tZW50IGluIHRoZSBJRVRGIG5hbWVzcGFjZS4gSUVURiBjb25zZW5zdXMgaXMgbm90DQogICAg ICAgICAgICByZXF1aXJlZC4NCiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCg0K ICAgICAgPC9zZWN0aW9uPg0KICAgICAgPHNlY3Rpb24gdGl0bGU9IlJlZ2lzdHJhdGlvbiBQcm9j ZWR1cmVzIj4NCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9IlJldmlldyI+DQogICAgICAgICAgPHQ+ DQogICAgICAgICAgICBEYXRhIHRhZyByZWdpc3RyYXRpb25zIGFyZSB0byBiZSBzdWJqZWN0IHRv IEV4cGVydCBSZXZpZXcNCiAgICAgICAgICAgIGFzIHBlciA8eHJlZiB0YXJnZXQ9IlJGQzI0MzQi PlJGQyAyNDM0PC94cmVmPi4NCiAgICAgICAgICA8L3Q+DQoNCiAgICAgICAgPC9zZWN0aW9uPg0K ICAgICAgICA8c2VjdGlvbiB0aXRsZT0iRGF0YSBUYWcgRW50cnkiPg0KICAgICAgICAgIDx0Pg0K ICAgICAgICAgICAgVW50aWwgdGhlIElBTkEgcmVxdWVzdHMgb3IgaW1wbGVtZW50cyBhbiBhdXRv bWF0ZWQgcHJvY2VzcyBmb3IgdGhlDQogICAgICAgICAgICByZWdpc3RyYXRpb24gb2YgdGhlc2Ug ZWxlbWVudHMsIGFueSBzcGVjaWZpY2F0aW9ucyBtdXN0IG1ha2UgdGhhdA0KICAgICAgICAgICAg cmVxdWVzdCBwYXJ0IG9mIHRoZSBJQU5BIGNvbnNpZGVyYXRpb25zIHNlY3Rpb24gb2YgdGhlaXIg cmVzcGVjdGl2ZQ0KICAgICAgICAgICAgZG9jdW1lbnRzLiAgVGhhdCByZXF1ZXN0IG11c3QgYmUg aW4gdGhlIGZvcm0gb2YgdGhlIGZvbGxvd2luZw0KICAgICAgICAgICAgdGVtcGxhdGU6DQogICAg ICAgICAgPC90Pg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgPGxpc3Qgc3R5bGU9Imhhbmdp bmciPg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ29tbW9uIE5hbWUiPg0KICAgICAgICAg ICAgICAgIENvbW1vbiBuYW1lIGZvciBieSB3aGljaCB0aGUgdGFnIGlzIHJlZmVycmVkIHRvDQog ICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNhbm9uaWNhbCBV UkkiPg0KICAgICAgICAgICAgICAgIFRoZSBjYW5vbmljYWwgVVJJIHRvIGJlIGVtcGxveWVkIHdo ZW4gY2l0aW5nIHRoZSB0YWcuDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQg aGFuZ1RleHQ9IkRhdGEgVHlwZSI+DQogICAgICAgICAgICAgICAgVGhlIGRhdGEgdHlwZSBvZiB0 aGUgZGF0YSB0aGF0IGlzIGJvdW5kIHRvIHRoZSB0YWcuDQogICAgICAgICAgICAgIDwvdD4NCiAg ICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IiBEZWZpbml0aW9uIj4NCiAgICAgICAgICAgICAgICBB IHJlZmVyZW5jZSB0byB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlIGRhdGEgdGFnIGRlZmluZWQN CiAgICAgICAgICAgICAgICBieSB0aGUgaWRlbnRpZmllciBpcyBkZWZpbmVkLg0KICAgICAgICAg ICAgICA8L3Q+DQoNCiAgICAgICAgICAgIDwvbGlzdD4NCiAgICAgICAgICA8L3Q+DQogICAgICAg IDwvc2VjdGlvbj4NCg0KICAgICAgPC9zZWN0aW9uPg0KICAgICAgPHNlY3Rpb24gdGl0bGU9Iklu aXRpYWwgVmFsdWVzIj4NCiAgICAgICAgPHQ+DQogICAgICAgICAgVGhlIGZvbGxvd2luZyBpbml0 aWFsIHZhbHVlcyBhcmUgZGVmaW5lZC4gTm90ZSB0aGF0IHRoZXNlIHZhbHVlcyBhcmUNCiAgICAg ICAgICBsaW1pdGVkIHRvIGlkZW50aWZpZXJzIHRoYXQgYXJlIHJlcXVpcmVkIGJ5IEtFWVBST1Yg YnV0IG5vdCBzcGVjaWZpZWQNCiAgICAgICAgICBlbHNld2hlcmU6DQogICAgICAgIDwvdD4NCiAg ICAgICAgPHNlY3Rpb24gdGl0bGU9IlNlY3JldCI+DQogICAgICAgICAgPHQ+DQogICAgICAgICAg ICA8bGlzdCBzdHlsZT0iaGFuZ2luZyI+DQogICAgICAgICAgICAgIDx0IGhhbmdUZXh0PSJDb21t b24gTmFtZSI+DQogICAgICAgICAgICAgICAgU2VjcmV0DQogICAgICAgICAgICAgIDwvdD4NCiAg ICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNhbm9uaWNhbCBVUkkiPg0KICAgICAgICAgICAgICAg IHVybjppZXRmOnBhcmFtczp4bWw6ZGF0YXRhZzpzZWNyZXQNCiAgICAgICAgICAgICAgPC90Pg0K ICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iRGF0YSBUeXBlIj4NCiAgICAgICAgICAgICAgICBi aW5hcnksIGJhc2U2NCBlbmNvZGVkDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAg PHQgaGFuZ1RleHQ9IkRlZmluZWQgaW4iPg0KICAgICAgICAgICAgICAgICh0aGlzIGRvY3VtZW50 KQ0KICAgICAgICAgICAgICA8L3Q+ICAgICAgICAgICAgICANCiAgICAgICAgICAgIDwvbGlzdD4N CiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCiAgICAgICAgPHNlY3Rpb24gdGl0 bGU9IkNvdW50ZXIiPg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgPGxpc3Qgc3R5bGU9Imhh bmdpbmciPg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ29tbW9uIE5hbWUiPg0KICAgICAg ICAgICAgICAgIENvdW50ZXINCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBo YW5nVGV4dD0iQ2Fub25pY2FsIFVSSSI+DQogICAgICAgICAgICAgICAgdXJuOmlldGY6cGFyYW1z OnhtbDpkYXRhdGFnOmNvdW50ZXINCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8 dCBoYW5nVGV4dD0iRGF0YSBUeXBlIj4NCiAgICAgICAgICAgICAgICA4IGJ5dGVzDQogICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50ZWdlciBpbiBiaWcgZW5kaWFuIChpLmUuIG5ldHdvcmsgYnl0 ZSBvcmRlcikgZm9ybQ0KICAgICAgICAgICAgICAgIGJhc2U2NCBlbmNvZGVkDQogICAgICAgICAg ICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkRlZmluZWQgaW4iPg0KICAgICAg ICAgICAgICAgICh0aGlzIGRvY3VtZW50KQ0KICAgICAgICAgICAgICA8L3Q+DQogICAgICAgICAg ICA8L2xpc3Q+DQogICAgICAgICAgPC90Pg0KICAgICAgICA8L3NlY3Rpb24+DQogICAgICAgIDxz ZWN0aW9uIHRpdGxlPSJUaW1lIj4NCiAgICAgICAgICA8dD4NCiAgICAgICAgICAgIDxsaXN0IHN0 eWxlPSJoYW5naW5nIj4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNvbW1vbiBOYW1lIj4N CiAgICAgICAgICAgICAgICBUaW1lDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAg PHQgaGFuZ1RleHQ9IkNhbm9uaWNhbCBVUkkiPg0KICAgICAgICAgICAgICAgIHVybjppZXRmOnBh cmFtczp4bWw6ZGF0YXRhZzp0aW1lDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgICAg PHQgaGFuZ1RleHQ9IkRhdGEgVHlwZSI+DQogICAgICAgICAgICAgICAgOCBieXRlcyB1bnNpZ25l ZA0KICAgICAgICAgICAgICAgIGludGVnZXIgaW4gYmlnIGVuZGlhbiAoaS5lLiBuZXR3b3JrIGJ5 dGUgb3JkZXIpIGZvcm0gYmFzZTY0DQogICAgICAgICAgICAgICAgZW5jb2RlZCAoTnVtYmVyIG9m IHNlY29uZHMgc2luY2UgMTk3MCkNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8 dCBoYW5nVGV4dD0iRGVmaW5lZCBpbiI+DQogICAgICAgICAgICAgICAgKHRoaXMgZG9jdW1lbnQp DQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgIDwvbGlzdD4NCiAgICAgICAgICA8L3Q+ DQogICAgICAgIDwvc2VjdGlvbj4NCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9IlRpbWUgSW50ZXJ2 YWwiPg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgPGxpc3Qgc3R5bGU9ImhhbmdpbmciPg0K ICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ29tbW9uIE5hbWUiPg0KICAgICAgICAgICAgICAg IFRpbWUgSW50ZXJ2YWwNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAgICA8dCBoYW5n VGV4dD0iQ2Fub25pY2FsIFVSSSI+DQogICAgICAgICAgICAgICAgdXJuOmlldGY6cGFyYW1zOnht bDpkYXRhdGFnOnRpbWVfaW50ZXJ2YWwNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAgICAg ICA8dCBoYW5nVGV4dD0iRGF0YSBUeXBlIj4NCiAgICAgICAgICAgICAgICA4IGJ5dGVzIHVuc2ln bmVkIGludGVnZXIgaW4gYmlnIGVuZGlhbiAoaS5lLiBuZXR3b3JrDQogICAgICAgICAgICAgICAg Ynl0ZSBvcmRlcikgZm9ybSBiYXNlNjQgZW5jb2RlZC4NCiAgICAgICAgICAgICAgPC90Pg0KICAg ICAgICAgICAgICA8dCBoYW5nVGV4dD0iRGVmaW5lZCBpbiI+DQogICAgICAgICAgICAgICAgKHRo aXMgZG9jdW1lbnQpDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgIDwvbGlzdD4NCiAg ICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4NCiAgICAgICAgPHNlY3Rpb24gdGl0bGU9 IlRpbWUgRHJpZnQiPg0KICAgICAgICAgIDx0Pg0KICAgICAgICAgICAgPGxpc3Qgc3R5bGU9Imhh bmdpbmciPg0KICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iQ29tbW9uIE5hbWUiPg0KICAgICAg ICAgICAgICAgIHVybjppZXRmOnBhcmFtczp4bWw6ZGF0YXRhZzp0aW1lX2RyaWZ0DQogICAgICAg ICAgICAgIDwvdD4NCiAgICAgICAgICAgICAgPHQgaGFuZ1RleHQ9IkNhbm9uaWNhbCBVUkkiPg0K ICAgICAgICAgICAgICAgIFRpbWUgRHJpZnQNCiAgICAgICAgICAgICAgPC90Pg0KICAgICAgICAg ICAgICA8dCBoYW5nVGV4dD0iRGF0YSBUeXBlIj4NCiAgICAgICAgICAgICAgICAyIGJ5dGVzIHVu c2lnbmVkIGludGVnZXIgaW4gYmlnIGVuZGlhbg0KICAgICAgICAgICAgICAgIChpLmUuIG5ldHdv cmsgYnl0ZSBvcmRlcikgZm9ybSBiYXNlNjQgZW5jb2RlZC4NCiAgICAgICAgICAgICAgPC90Pg0K ICAgICAgICAgICAgICA8dCBoYW5nVGV4dD0iRGVmaW5lZCBpbiI+DQogICAgICAgICAgICAgICAg KHRoaXMgZG9jdW1lbnQpDQogICAgICAgICAgICAgIDwvdD4NCiAgICAgICAgICAgIDwvbGlzdD4N CiAgICAgICAgICA8L3Q+DQogICAgICAgIDwvc2VjdGlvbj4gICAgICAgIA0KICAgICAgPC9zZWN0 aW9uPg0KICAgIDwvc2VjdGlvbj4NCg0KDQoJCTwvc2VjdGlvbj4NCg0KDQoJCQ0KCQkNCgkJPHNl Y3Rpb24gdGl0bGU9IlNlY3VyaXR5IENvbnNpZGVyYXRpb25zIj4NCgkJCTx0PlRoZSBwb3J0YWJs ZSBrZXkgY29udGFpbmVyIGNhcnJpZXMgc2Vuc2l0aXZlIGluZm9ybWF0aW9uIChlLmcuLCANCglj cnlwdG9ncmFwaGljIGtleXMpIGFuZCBtYXkgYmUgdHJhbnNwb3J0ZWQgYWNyb3NzIHRoZSBib3Vu ZGFyaWVzIG9mIG9uZSBzZWN1cmUgDQoJcGVyaW1ldGVyIHRvIGFub3RoZXIuIEZvciBleGFtcGxl LCBhIGNvbnRhaW5lciByZXNpZGluZyB3aXRoaW4gdGhlIHNlY3VyZSBwZXJpbWV0ZXIgDQoJb2Yg YSBiYWNrLWVuZCBwcm92aXNpb25pbmcgc2VydmVyIGluIGEgc2VjdXJlIHJvb20gbWF5IGJlIHRy YW5zcG9ydGVkIGFjcm9zcyB0aGUgDQoJaW50ZXJuZXQgdG8gYW4gZW5kLXVzZXIgZGV2aWNlIGF0 dGFjaGVkIHRvIGEgcGVyc29uYWwgY29tcHV0ZXIuIFRoaXMgbWVhbnMgdGhhdCBzcGVjaWFsIA0K CWNhcmUgbXVzdCBiZSB0YWtlbiB0byBlbnN1cmUgdGhlIGNvbmZpZGVudGlhbGl0eSwgaW50ZWdy aXR5LCBhbmQgYXV0aGVudGljaXR5IG9mIA0KCXRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgd2l0 aGluLjwvdD4NCgkJCTxzZWN0aW9uIHRpdGxlPSJQYXlsb2FkIGNvbmZpZGVudGlhbGl0eSI+DQoJ CQkJPHQ+QnkgZGVzaWduLCB0aGUgY29udGFpbmVyIGFsbG93cyB0d28gbWFpbiBhcHByb2FjaGVz IHRvIGd1YXJhbnRlZWluZyB0aGUgY29uZmlkZW50aWFsaXR5IA0KCW9mIHRoZSBpbmZvcm1hdGlv biBpdCBjb250YWlucyB3aGlsZSB0cmFuc3BvcnRlZC4gPC90Pg0KCQkJCTx0PkZpcnN0LCB0aGUg Y29udGFpbmVyIGtleSBkYXRhIHBheWxvYWQgbWF5IGJlIGVuY3J5cHRlZC48L3Q+DQoJCQkJPHQ+ SW4gdGhpcyBjYXNlIG5vIHRyYW5zcG9ydCBsYXllciBzZWN1cml0eSBpcyByZXF1aXJlZC4gSG93 ZXZlciwgc3RhbmRhcmQgc2VjdXJpdHkgYmVzdCANCglwcmFjdGljZXMgYXBwbHkgd2hlbiBzZWxl Y3RpbmcgdGhlIHN0cmVuZ3RoIG9mIHRoZSBjcnlwdG9ncmFwaGljIGFsZ29yaXRobSBmb3IgcGF5 bG9hZCANCgllbmNyeXB0aW9uLiBTeW1tZXRyaWMgY3J5cHRvZ3JhcGhpYyBjaXBoZXIgc2hvdWxk IGJlIHVzZWQgLSB0aGUgbG9uZ2VyIHRoZSBjcnlwdG9ncmFwaGljIA0KCWtleSwgdGhlIHN0cm9u Z2VyIHRoZSBwcm90ZWN0aW9uLiBBdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcgYm90aCAzREVT IGFuZCBBRVMgYXJlIA0KCW1hbmRhdG9yeSBhbGdvcml0aG1zIGJ1dCAzREVTIG1heSBiZSBkcm9w cGVkIGluIHRoZSByZWxhdGl2ZWx5IG5lYXIgZnV0dXJlLiANCglBcHBsaWNhdGlvbnMgY29uY2Vy bmVkIHdpdGggYWxnb3JpdGhtIGxvbmdldml0eSBhcmUgYWR2aXNlZCB0byB1c2UgQUVTLTI1Ni1D QkMuIEluIGNhc2VzIHdoZXJlIA0KCXRoZSBleGNoYW5nZSBvZiBlbmNyeXB0aW9uIGtleXMgYmV0 d2VlbiB0aGUgc2VuZGVyIGFuZCB0aGUgcmVjZWl2ZXIgaXMgbm90IHBvc3NpYmxlLCANCglhc3lt bWV0cmljIGVuY3J5cHRpb24gb2YgdGhlIHNlY3JldCBrZXkgcGF5bG9hZCBtYXkgYmUgZW1wbG95 ZWQuIFNpbWlsYXJseSB0byBzeW1tZXRyaWMga2V5IA0KCWNyeXB0b2dyYXBoeSwgdGhlIHN0cm9u Z2VyIHRoZSBhc3ltbWV0cmljIGtleSwgdGhlIG1vcmUgc2VjdXJlIHRoZSBwcm90ZWN0aW9uIGlz LiA8L3Q+DQoJCQkJPHQ+SWYgdGhlIHBheWxvYWQgaXMgZW5jcnlwdGVkIHdpdGggYSBtZXRob2Qg dGhhdCB1c2VzIG9uZSBvZiB0aGUgcGFzc3dvcmQtYmFzZWQgZW5jcnlwdGlvbiANCgltZXRob2Rz IHByb3ZpZGVkIGFib3ZlLCB0aGUgcGF5bG9hZCBtYXkgYmUgc3ViamVjdGVkIHRvIHBhc3N3b3Jk IGRpY3Rpb25hcnkgYXR0YWNrcyB0byBicmVhayANCgl0aGUgZW5jcnlwdGlvbiBwYXNzd29yZCBh bmQgcmVjb3ZlciB0aGUgaW5mb3JtYXRpb24uIFN0YW5kYXJkIHNlY3VyaXR5IGJlc3QgcHJhY3Rp Y2VzIGZvciANCglzZWxlY3Rpb24gb2Ygc3Ryb25nIGVuY3J5cHRpb24gcGFzc3dvcmRzIGFwcGx5 IDx4cmVmIHRhcmdldD0iU2NobmVpZXIiLz4uPC90Pg0KCQkJCTx0PlByYWN0aWNhbCBpbXBsZW1l bnRhdGlvbnMgc2hvdWxkIHVzZSBQQkVTYWx0IGFuZCBQQkVJdGVyYXRpb25Db3VudCB3aGVuIFBC RSBlbmNyeXB0aW9uIGlzIA0KCXVzZWQuIERpZmZlcmVudCBQQkVTYWx0IHZhbHVlIHBlciBrZXkg Y29udGFpbmVyIHNob3VsZCBiZSB1c2VkIGZvciBiZXN0IHByb3RlY3Rpb24uPC90Pg0KCQkJCTx0 PlRoZSBzZWNvbmQgYXBwcm9hY2ggdG8gcHJvdGVjdGluZyB0aGUgY29uZmlkZW50aWFsaXR5IG9m IHRoZSBwYXlsb2FkIGlzIGJhc2VkIG9uIHVzaW5nIA0KCXRyYW5zcG9ydCBsYXllciBzZWN1cml0 eS4gVGhlIHNlY3VyZSBjaGFubmVsIGVzdGFibGlzaGVkIGJldHdlZW4gdGhlIHNvdXJjZSBzZWN1 cmUgcGVyaW1ldGVyIA0KCSh0aGUgcHJvdmlzaW9uaW5nIHNlcnZlciBmcm9tIHRoZSBleGFtcGxl IGFib3ZlKSBhbmQgdGhlIHRhcmdldCBwZXJpbWV0ZXIgKHRoZSBkZXZpY2UgYXR0YWNoZWQgDQoJ dG8gdGhlIGVuZC11c2VyIGNvbXB1dGVyKSB1dGlsaXplcyBlbmNyeXB0aW9uIHRvIHRyYW5zcG9y dCB0aGUgbWVzc2FnZXMgdGhhdCB0cmF2ZWwgYWNyb3NzLiANCglObyBwYXlsb2FkIGVuY3J5cHRp b24gaXMgcmVxdWlyZWQgaW4gdGhpcyBtb2RlLiBTZWN1cmUgY2hhbm5lbHMgdGhhdCBlbmNyeXB0 IGFuZCBkaWdlc3QgZWFjaCANCgltZXNzYWdlIHByb3ZpZGUgYW4gZXh0cmEgbWVhc3VyZSBvZiBz ZWN1cml0eSwgZXNwZWNpYWxseSB3aGVuIHRoZSBzaWduYXR1cmUgb2YgdGhlIHBheWxvYWQgDQoJ ZG9lcyBub3QgZW5jb21wYXNzIHRoZSBlbnRpcmUgcGF5bG9hZC4gPC90Pg0KCQkJCTx0PkJlY2F1 c2Ugb2YgdGhlIGZhY3QgdGhhdCB0aGUgcGxhaW4gdGV4dCBwYXlsb2FkIGlzIHByb3RlY3RlZCBv bmx5IGJ5IHRoZSB0cmFuc3BvcnQgbGF5ZXIgDQoJc2VjdXJpdHksIHByYWN0aWNhbCBpbXBsZW1l bnRhdGlvbiBtdXN0IGVuc3VyZSBwcm90ZWN0aW9uIGFnYWluc3QgbWFuLWluLXRoZS1taWRkbGUg YXR0YWNrcyA8eHJlZiB0YXJnZXQ9IlNjaG5laWVyIi8+LiANCglWYWxpZGF0aW5nIHRoZSBzZWN1 cmUgY2hhbm5lbCBlbmQtcG9pbnRzIGlzIGNyaXRpY2FsbHkgaW1wb3J0YW50IGZvciBlbGltaW5h dGluZyBpbnRydWRlcnMgDQoJdGhhdCBtYXkgY29tcHJvbWlzZSB0aGUgY29uZmlkZW50aWFsaXR5 IG9mIHRoZSBwYXlsb2FkLjwvdD4NCgkJCTwvc2VjdGlvbj4NCgkJCTxzZWN0aW9uIHRpdGxlPSJQ YXlsb2FkIGludGVncml0eSI+DQoJCQkJPHQ+VGhlIHBvcnRhYmxlIHN5bW1ldHJpYyBrZXkgY29u dGFpbmVyIHByb3ZpZGVzIGEgbWVhbiB0byBndWFyYW50ZWUgdGhlIGludGVncml0eSANCglvZiB0 aGUgaW5mb3JtYXRpb24gaXQgY29udGFpbnMgdGhyb3VnaCBkaWdpdGFsIHNpZ25hdHVyZXMuIEZv ciBiZXN0IHNlY3VyaXR5IHByYWN0aWNlcywgDQoJdGhlIGRpZ2l0YWwgc2lnbmF0dXJlIG9mIHRo ZSBjb250YWluZXIgc2hvdWxkIGVuY29tcGFzcyB0aGUgZW50aXJlIHBheWxvYWQuIFRoaXMgcHJv dmlkZXMgDQoJYXNzdXJhbmNlcyBmb3IgdGhlIGludGVncml0eSBvZiBhbGwgYXR0cmlidXRlcy4g SXQgYWxzbyBhbGxvd3MgdmVyaWZpY2F0aW9uIG9mIHRoZSBpbnRlZ3JpdHkgDQoJb2YgYSBnaXZl biBwYXlsb2FkIGV2ZW4gYWZ0ZXIgdGhlIGNvbnRhaW5lciBpcyBkZWxpdmVyZWQgdGhyb3VnaCB0 aGUgY29tbXVuaWNhdGlvbiBjaGFubmVsIA0KCXRvIHRoZSB0YXJnZXQgcGVyaW1ldGVyIGFuZCBj aGFubmVsIG1lc3NhZ2UgaW50ZWdyaXR5IGNoZWNrIGlzIG5vIGxvbmdlciBwb3NzaWJsZS4gPC90 Pg0KCQkJPC9zZWN0aW9uPg0KCQkJPHNlY3Rpb24gdGl0bGU9IlBheWxvYWQgYXV0aGVudGljaXR5 Ij4NCgkJCQk8dD5UaGUgZGlnaXRhbCBzaWduYXR1cmUgb2YgdGhlIHBheWxvYWQgaXMgdGhlIHBy aW1hcnkgd2F5IG9mIHNob3dpbmcgaXRzIGF1dGhlbnRpY2l0eS4gDQoJVGhlIHJlY2lwaWVudCBv ZiB0aGUgY29udGFpbmVyIG1heSB1c2UgdGhlIHB1YmxpYyBrZXkgYXNzb2NpYXRlZCB3aXRoIHRo ZSBzaWduYXR1cmUgdG8gYXNzZXJ0IAkNCgl0aGUgYXV0aGVudGljaXR5IG9mIHRoZSBzZW5kZXIg YnkgdHJhY2luZyBpdCBiYWNrIHRvIGEgcHJlbG9hZGVkIHB1YmxpYyBrZXkgb3IgY2VydGlmaWNh dGUuIA0KCU5vdGUgdGhhdCB0aGUgZGlnaXRhbCBzaWduYXR1cmUgb2YgdGhlIHBheWxvYWQgY2Fu IGJlIGNoZWNrZWQgZXZlbiBhZnRlciB0aGUgY29udGFpbmVyIGhhcyANCgliZWVuIGRlbGl2ZXJl ZCB0aHJvdWdoIHRoZSBzZWN1cmUgY2hhbm5lbCBvZiBjb21tdW5pY2F0aW9uLjwvdD4NCgkJCQk8 dD5BIHdlYWtlciBwYXlsb2FkIGF1dGhlbnRpY2l0eSBndWFyYW50ZWUgbWF5IGJlIHByb3ZpZGVk IGJ5IHRoZSB0cmFuc3BvcnQgbGF5ZXIgaWYgDQoJaXQgaXMgY29uZmlndXJlZCB0byBkaWdlc3Qg ZWFjaCBtZXNzYWdlIGl0IHRyYW5zcG9ydHMuIEhvd2V2ZXIsIG5vIGF1dGhlbnRpY2l0eSB2ZXJp ZmljYXRpb24gDQoJaXMgcG9zc2libGUgb25jZSB0aGUgY29udGFpbmVyIGlzIGRlbGl2ZXJlZCBh dCB0aGUgcmVjaXBpZW50IGVuZC4gVGhpcyBhcHByb2FjaCBtYXkgYmUgDQoJdXNlZnVsIGluIGNh c2VzIHdoZXJlIHRoZSBkaWdpdGFsIHNpZ25hdHVyZSBvZiB0aGUgY29udGFpbmVyIGRvZXMgbm90 IGVuY29tcGFzcyB0aGUgZW50aXJlIHBheWxvYWQuIDwvdD4NCgkJCTwvc2VjdGlvbj4NCgkJPC9z ZWN0aW9uPg0KCQk8c2VjdGlvbiB0aXRsZT0iQWNrbm93bGVkZ2VtZW50cyI+DQoJCQk8dD4NCgkJ VGhlIGF1dGhvcnMgb2YgdGhpcyBkcmFmdCB3b3VsZCBsaWtlIHRvIHRoYW5rIHRoZSBmb2xsb3dp bmcgcGVvcGxlIGZvciB0aGVpciBjb250cmlidXRpb25zIGFuZCBzdXBwb3J0IA0KCQl0byBtYWtl IHRoaXMgYSBiZXR0ZXIgc3BlY2lmaWNhdGlvbjogQXBvc3RvbCBWYXNzaWxldiwgU2h1aCBDaGFu ZywgSm9uIE1hcnRpbnNvbiwgU2lkZGhhcnQgQmFqYWosIFN0dSBWZWF0aCwNCiAgICAgICAgICAg ICAgICBLZXZpbiBMZXdpcywgUGhpbGlwIEhhbGxhbS1CYWtlciwgSGFubmVzIFRzY2hvZmVuaWcs IEFuZHJlYSBEb2hlcnR5LCBNYWdudXMgTnlzdHJvbSwgVGltIE1vc2VzLCANCiAgICAgICAgICAg ICAgICBhbmQgQW5kZXJzIFJ1bmRncmVuLg0KCQk8L3Q+DQoJCTwvc2VjdGlvbj4NCgkJPHNlY3Rp b24gdGl0bGU9IkFwcGVuZGl4IEEgLSBFeGFtcGxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVycyI+ DQoJCQk8dD4NCgkJQWxsIGV4YW1wbGVzIGFyZSBzeW50YWN0aWNhbGx5IGNvcnJlY3QgYW5kIGNv bXBhdGlibGUgd2l0aCB0aGUgWE1MIHNjaGVtYSBpbiBzZWN0aW9uIDcuIA0KCQk8L3Q+DQoJCQk8 c2VjdGlvbiB0aXRsZT0iU3ltbWV0cmljIEtleSBDb250YWluZXIgd2l0aCBhIHNpbmdsZSBOb24t RW5jcnlwdGVkIEhPVFAgU2VjcmV0IEtleSI+DQoJCQkJPHQ+DQoJCQkJCTxmaWd1cmU+DQoJCQkJ CQk8cHJlYW1ibGUvPg0KCQkJCQkJPGFydHdvcms+PCFbQ0RBVEFbDQo8P3htbCB2ZXJzaW9uPSIx LjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KPEtleUNvbnRhaW5lciBWZXJzaW9uPSIxLjAiIA0KICB4 bWxucz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OnBza2M6MS4wIj4NCiAgICA8RGV2 aWNlPg0KICAgICAgICA8RGV2aWNlSW5mbz4NCiAgICAgICAgICAgIDxNYW51ZmFjdHVyZXI+QUNN RTwvTWFudWZhY3R1cmVyPg0KICAgICAgICAgICAgPFNlcmlhbE5vPjA3NTUyMjUyNjY8L1Nlcmlh bE5vPg0KICAgICAgICA8L0RldmljZUluZm8+DQogICAgICAgIDxLZXkgS2V5QWxnb3JpdGhtPSJo dHRwOi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNrYyNob3RwIiANCiAgICAgICAgICBLZXlJZD0i MDc1NTIyNTI2NiI+DQogICAgICAgICAgICA8SXNzdWVyPkFuSXNzdWVyPC9Jc3N1ZXI+DQogICAg ICAgICAgICA8VXNhZ2UgT1RQPSJ0cnVlIj4NCiAgICAgICAgICAgICAgICA8UmVzcG9uc2VGb3Jt YXQgTGVuZ3RoPSI2IiBGb3JtYXQ9IkRFQ0lNQUwiLz4NCiAgICAgICAgICAgIDwvVXNhZ2U+DQog ICAgICAgICAgICA8RGF0YSBOYW1lPSJDT1VOVEVSIj4NCiAgICAgICAgICAgICAgICA8UGxhaW5W YWx1ZT5BcHJrdUE9PTwvUGxhaW5WYWx1ZT4NCiAgICAgICAgICAgIDwvRGF0YT4NCiAgICAgICAg ICAgIDxEYXRhIE5hbWU9IlNFQ1JFVCI+DQogICAgICAgICAgICAgICAgPFBsYWluVmFsdWU+LzRo M3JPVGVCZWdKd0dwbVRUcTRGK1JsTlIwPTwvUGxhaW5WYWx1ZT4NCiAgICAgICAgICAgIDwvRGF0 YT4NCiAgICAgICAgICAgIDxFeHBpcnlEYXRlPjIwMTItMTItMzFUMDA6MDA6MDA8L0V4cGlyeURh dGU+DQogICAgICAgIDwvS2V5Pg0KICAgIDwvRGV2aWNlPg0KPC9LZXlDb250YWluZXI+CQkJCQkN CgkJCQkJCQ0KXV0+PC9hcnR3b3JrPg0KCQkJCQkJPHBvc3RhbWJsZS8+DQoJCQkJCTwvZmlndXJl Pg0KCQkJCTwvdD4NCgkJCTwvc2VjdGlvbj4NCgkJCTxzZWN0aW9uIHRpdGxlPSJTeW1tZXRyaWMg S2V5IENvbnRhaW5lciB3aXRoIGEgc2luZ2xlIFBJTiBwcm90ZWN0ZWQgTm9uLUVuY3J5cHRlZCBI T1RQIFNlY3JldCBLZXkiPg0KCQkJCTx0Pg0KCQkJCQk8ZmlndXJlPg0KCQkJCQkJPHByZWFtYmxl Lz4NCgkJCQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0KPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu Zz0iVVRGLTgiPz4NCjxLZXlDb250YWluZXIgVmVyc2lvbj0iMS4wIiANCiAgeG1sbnM9InVybjpp ZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tjOjEuMCI+DQogICAgPERldmljZT4NCiAgICAg ICAgPERldmljZUluZm8+DQogICAgICAgICAgICA8TWFudWZhY3R1cmVyPkFDTUU8L01hbnVmYWN0 dXJlcj4NCiAgICAgICAgICAgIDxTZXJpYWxObz4wNzU1MjI1MjY2PC9TZXJpYWxObz4NCiAgICAg ICAgPC9EZXZpY2VJbmZvPg0KICAgICAgICA8S2V5IEtleUFsZ29yaXRobT0iaHR0cDovL3d3dy5p ZXRmLm9yZy9rZXlwcm92L3Bza2MjaG90cCIgDQogICAgICAgICAgS2V5SWQ9IjA3NTUyMjUyNjYi Pg0KICAgICAgICAgICAgPElzc3Vlcj5Bbklzc3VlcjwvSXNzdWVyPg0KICAgICAgICAgICAgPFVz YWdlIE9UUD0idHJ1ZSI+DQogICAgICAgICAgICAgICAgPFJlc3BvbnNlRm9ybWF0IExlbmd0aD0i NiIgRm9ybWF0PSJERUNJTUFMIi8+DQogICAgICAgICAgICA8L1VzYWdlPg0KICAgICAgICAgICAg PERhdGEgTmFtZT0iQ09VTlRFUiI+DQogICAgICAgICAgICAgICAgPFBsYWluVmFsdWU+QXBya3VB PT08L1BsYWluVmFsdWU+DQogICAgICAgICAgICA8L0RhdGE+DQogICAgICAgICAgICA8RGF0YSBO YW1lPSJTRUNSRVQiPg0KICAgICAgICAgICAgICAgIDxQbGFpblZhbHVlPi80aDNyT1RlQmVnSndH cG1UVHE0RitSbE5SMD08L1BsYWluVmFsdWU+DQogICAgICAgICAgICA8L0RhdGE+DQogICAgICAg ICAgICA8UElOUG9saWN5IFBJTktleUlkPSIwNzU1MjI1MjY2MSI+DQogICAgICAgICAgICAgICAg PFBJTlVzYWdlTW9kZT4NCiAgICAgICAgICAgICAgICAgICAgPExvY2FsLz4NCiAgICAgICAgICAg ICAgICA8L1BJTlVzYWdlTW9kZT4NCiAgICAgICAgICAgIDwvUElOUG9saWN5Pg0KICAgICAgICA8 L0tleT4NCiAgICAgICAgPEtleSBLZXlJZD0iMDc1NTIyNTI2NjEiIA0KICAgICAgICAgIEtleUFs Z29yaXRobT0iaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92L3Bza2MjcGluIj4NCiAgICAgICAg ICAgIDxVc2FnZT4NCiAgICAgICAgICAgICAgICA8UmVzcG9uc2VGb3JtYXQgTGVuZ3RoPSI0IiBG b3JtYXQ9IkRFQ0lNQUwiLz4NCiAgICAgICAgICAgIDwvVXNhZ2U+DQogICAgICAgICAgICA8RGF0 YSBOYW1lPSJTRUNSRVQiPg0KICAgICAgICAgICAgICAgIDxQbGFpblZhbHVlPk1USXpOQT09PC9Q bGFpblZhbHVlPg0KICAgICAgICAgICAgPC9EYXRhPg0KICAgICAgICA8L0tleT4NCiAgICA8L0Rl dmljZT4NCjwvS2V5Q29udGFpbmVyPgkJCQkJCQ0KXV0+PC9hcnR3b3JrPg0KCQkJCQkJPHBvc3Rh bWJsZS8+DQoJCQkJCTwvZmlndXJlPg0KCQkJCTwvdD4NCgkJCTwvc2VjdGlvbj4NCgkJCTxzZWN0 aW9uIHRpdGxlPSJTeW1tZXRyaWMgS2V5IENvbnRhaW5lciB3aXRoIGEgc2luZ2xlIEFFUy0yNTYt Q0JDIEVuY3J5cHRlZCBIT1RQIFNlY3JldCBLZXkiPg0KCQkJCTx0Pg0KCQkJCQk8ZmlndXJlPg0K CQkJCQkJPHByZWFtYmxlLz4NCgkJCQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0KPD94bWwgdmVyc2lv bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxLZXlDb250YWluZXIgVmVyc2lvbj0iMS4wIiAN CiAgeG1sbnM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tjOjEuMCIgDQogIHht bG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiANCiAgeG1sbnM6eGVu Yz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjIj4NCiAgICA8RW5jcnlwdGlvbktl eT4NCiAgICAgICAgPGRzOktleU5hbWU+UFJFX1NIQVJFRF9LRVk8L2RzOktleU5hbWU+DQogICAg PC9FbmNyeXB0aW9uS2V5Pg0KICAgIDxNQUNBbGdvcml0aG0+aHR0cDovL3d3dy53My5vcmcvMjAw MC8wOS94bWxkc2lnI2htYWMtc2hhMQ0KICAgIDwvTUFDQWxnb3JpdGhtPg0KICAgIDxEZXZpY2U+ DQogICAgICAgIDxEZXZpY2VJbmZvPg0KICAgICAgICAgICAgPE1hbnVmYWN0dXJlcj5BQ01FPC9N YW51ZmFjdHVyZXI+DQogICAgICAgICAgICA8U2VyaWFsTm8+MDc1NTIyNTI2NjwvU2VyaWFsTm8+ DQogICAgICAgIDwvRGV2aWNlSW5mbz4NCiAgICAgICAgPEtleSBLZXlBbGdvcml0aG09Imh0dHA6 Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHAiIA0KICAgICAgICAgIEtleUlkPSIwNzU1 MjI1MjY2Ij4NCiAgICAgICAgICAgIDxJc3N1ZXI+QW5Jc3N1ZXI8L0lzc3Vlcj4NCiAgICAgICAg ICAgIDxVc2FnZSBPVFA9InRydWUiPg0KICAgICAgICAgICAgICAgIDxSZXNwb25zZUZvcm1hdCBM ZW5ndGg9IjgiIEZvcm1hdD0iREVDSU1BTCIvPg0KICAgICAgICAgICAgPC9Vc2FnZT4NCiAgICAg ICAgICAgIDxEYXRhIE5hbWU9IkNPVU5URVIiPg0KICAgICAgICAgICAgICAgIDxQbGFpblZhbHVl PkFwcmt1QT09PC9QbGFpblZhbHVlPg0KICAgICAgICAgICAgPC9EYXRhPg0KICAgICAgICAgICAg PERhdGEgTmFtZT0iU0VDUkVUIj4NCiAgICAgICAgICAgICAgICA8RW5jcnlwdGVkVmFsdWU+DQog ICAgICAgICAgICAgICAgICAgIDx4ZW5jOkVuY3J5cHRpb25NZXRob2QgDQogICAgICAgICAgICAg ICBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2FlczI1Ni1jYmMi Lz4NCiAgICAgICAgICAgICAgICAgICAgPHhlbmM6Q2lwaGVyRGF0YT4NCiAgICAgICAgICAgICAg ICAgICAgICA8eGVuYzpDaXBoZXJWYWx1ZT4NCiAgICAgICAgICAgICAgICAgICAgICAgIGt5enJX VEp1aEpLUUhoWnRmMkNXYktDNUgzTGRmQVB2S3pISFE4U2R4eUU9DQogICAgICAgICAgICAgICAg ICAgICAgPC94ZW5jOkNpcGhlclZhbHVlPg0KICAgICAgICAgICAgICAgICAgICA8L3hlbmM6Q2lw aGVyRGF0YT4NCiAgICAgICAgICAgICAgICA8L0VuY3J5cHRlZFZhbHVlPg0KICAgICAgICAgICAg ICAgIDxWYWx1ZU1BQz5jd0pJODk4clJwR0J5dFRxQ0FzZWdhUXFQWkE9PC9WYWx1ZU1BQz4NCiAg ICAgICAgICAgIDwvRGF0YT4NCiAgICAgICAgPC9LZXk+DQogICAgPC9EZXZpY2U+DQo8L0tleUNv bnRhaW5lcj4JCQkJDQpdXT48L2FydHdvcms+DQoJCQkJCQk8cG9zdGFtYmxlLz4NCgkJCQkJPC9m aWd1cmU+DQoJCQkJPC90Pg0KCQkJPC9zZWN0aW9uPg0KCQkJPHNlY3Rpb24gdGl0bGU9IlN5bW1l dHJpYyBLZXkgQ29udGFpbmVyIHdpdGggc2lnbmF0dXJlIGFuZCBhIHNpbmdsZSBQYXNzd29yZC1i YXNlZCBFbmNyeXB0ZWQgSE9UUCBTZWNyZXQgS2V5Ij4NCgkJCQk8dD4NCgkJCQkJPGZpZ3VyZT4N CgkJCQkJCTxwcmVhbWJsZS8+DQoJCQkJCQk8YXJ0d29yaz48IVtDREFUQVsNCjw/eG1sIHZlcnNp b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQo8cHNrYzpLZXlDb250YWluZXINCiAgeG1sbnM6 cHNrYz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OnBza2M6MS4wIg0KICB4bWxuczpw a2NzLTU9DQogICAgImh0dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy9zY2hl bWFzL3BrY3MtNXYyLTAjIg0KICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1M U2NoZW1hLWluc3RhbmNlIg0KICB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94 bWxkc2lnIyINCiAgeG1sbnM6eGVuYz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMj Ig0KICBWZXJzaW9uPSIxLjAiPg0KICAgIDxwc2tjOkVuY3J5cHRpb25LZXk+DQogICAgICA8cHNr YzpEZXJpdmVkS2V5IElkPSIjUGFzc3BocmFzZTEiPg0KICAgICAgICA8cHNrYzpDYXJyaWVkS2V5 TmFtZT5QYXNzcGhyYXNlMTwvcHNrYzpDYXJyaWVkS2V5TmFtZT4NCiAgICAgICAgPHBza2M6S2V5 RGVyaXZhdGlvbk1ldGhvZA0KICAgICAgICAgIEFsZ29yaXRobT0NCiAgICAgImh0dHA6Ly93d3cu cnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtjcy9zY2hlbWFzL3BrY3MtNSNwYmtkZjIiPg0KICAg ICAgICAgIDxwa2NzLTU6UGFyYW1ldGVycyB4c2k6dHlwZT0icGtjcy01OlBCS0RGMlBhcmFtZXRl clR5cGUiPg0KICAgICAgICAgICAgPFNhbHQ+DQogICAgICAgICAgICAgIDxTcGVjaWZpZWQ+RGYz ZFJBaGpHaDg9PC9TcGVjaWZpZWQ+DQogICAgICAgICAgICA8L1NhbHQ+DQogICAgICAgICAgICA8 SXRlcmF0aW9uQ291bnQ+MjAwMDwvSXRlcmF0aW9uQ291bnQ+DQogICAgICAgICAgICA8S2V5TGVu Z3RoPjE2PC9LZXlMZW5ndGg+DQogICAgICAgICAgICA8UFJGLz4NCiAgICAgICAgICA8L3BrY3Mt NTpQYXJhbWV0ZXJzPg0KICAgICAgICA8L3Bza2M6S2V5RGVyaXZhdGlvbk1ldGhvZD4NCiAgICAg ICAgPHhlbmM6UmVmZXJlbmNlTGlzdD4NCiAgICAgICAgICA8eGVuYzpEYXRhUmVmZXJlbmNlIFVS ST0iI0VEIi8+DQogICAgICAgIDwveGVuYzpSZWZlcmVuY2VMaXN0Pg0KICAgICAgPC9wc2tjOkRl cml2ZWRLZXk+DQogICAgPC9wc2tjOkVuY3J5cHRpb25LZXk+ICANCiAgPHBza2M6RGV2aWNlPg0K ICAgIDxwc2tjOkRldmljZUluZm8+DQogICAgICA8cHNrYzpNYW51ZmFjdHVyZXI+QUNNRTwvcHNr YzpNYW51ZmFjdHVyZXI+DQogICAgICA8cHNrYzpTZXJpYWxObz4wNzU1MjI1MjY2PC9wc2tjOlNl cmlhbE5vPg0KICAgIDwvcHNrYzpEZXZpY2VJbmZvPg0KICAgICAgICA8cHNrYzpLZXkgS2V5QWxn b3JpdGhtPSJodHRwOi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNrYyNob3RwIiANCiAgICAgICAg ICBLZXlJZD0iMDc1NTIyNTI2NiI+DQogICAgICAgICAgICA8cHNrYzpJc3N1ZXI+QW5Jc3N1ZXI8 L3Bza2M6SXNzdWVyPg0KICAgICAgICAgICAgPHBza2M6VXNhZ2UgT1RQPSJ0cnVlIj4NCiAgICAg ICAgICAgICAgICA8cHNrYzpSZXNwb25zZUZvcm1hdCBMZW5ndGg9IjYiIEZvcm1hdD0iREVDSU1B TCIvPg0KICAgICAgICAgICAgPC9wc2tjOlVzYWdlPg0KICAgICAgICAgICAgPHBza2M6RGF0YSBO YW1lPSJDT1VOVEVSIj4NCiAgICAgICAgICAgICAgICA8cHNrYzpQbGFpblZhbHVlPkFwcmt1QT09 PC9wc2tjOlBsYWluVmFsdWU+DQogICAgICAgICAgICA8L3Bza2M6RGF0YT4NCiAgICAgICAgICAg IDxwc2tjOkRhdGEgTmFtZT0iU0VDUkVUIj4NCgkJPHBza2M6RW5jcnlwdGVkVmFsdWUgSWQ9IkVE Ij4NCgkJICA8eGVuYzpFbmNyeXB0aW9uTWV0aG9kIEFsZ29yaXRobT0NCiAgICAgICAgICAgICAg ICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNrdy1hZXMxMjgiLz4NCgkJICA8 eGVuYzpDaXBoZXJEYXRhPg0KCQkgICAgPHhlbmM6Q2lwaGVyVmFsdWU+cmY0ZHgzcnZFUE8wdkt0 S0wxNE5iZVZ1OG5rPQ0KICAgICAgICAgICAgICAgICAgICA8L3hlbmM6Q2lwaGVyVmFsdWU+DQoJ CSAgPC94ZW5jOkNpcGhlckRhdGE+DQoJCTwvcHNrYzpFbmNyeXB0ZWRWYWx1ZT4NCiAgICAgICAg ICAgIDwvcHNrYzpEYXRhPg0KICAgICAgICA8L3Bza2M6S2V5Pg0KICA8L3Bza2M6RGV2aWNlPg0K ICA8cHNrYzpTaWduYXR1cmU+DQogICAgPGRzOlNpZ25lZEluZm8+DQogICAgICA8ZHM6Q2Fub25p Y2FsaXphdGlvbk1ldGhvZCANCiAgICAgICAgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8y MDAxLzEwL3htbC1leGMtYzE0biMiLz4NCiAgICAgIDxkczpTaWduYXR1cmVNZXRob2QgIA0KICAg ICAgICBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNyc2Etc2hh MSIvPg0KICAgICAgPGRzOlJlZmVyZW5jZSBVUkk9IiI+DQogICAgICAgIDxkczpEaWdlc3RNZXRo b2QgQWxnb3JpdGhtPQ0KICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRz aWcjc2hhMSIvPg0KICAgICAgICA8ZHM6RGlnZXN0VmFsdWU+ajZsd3gzcnZFUE8wdkt0TXVwNE5i ZVZ1OG5rPTwvZHM6RGlnZXN0VmFsdWU+DQogICAgICA8L2RzOlJlZmVyZW5jZT4NCiAgICA8L2Rz OlNpZ25lZEluZm8+DQogICAgPGRzOlNpZ25hdHVyZVZhbHVlPmo2bHd4M3J2RVBPMHZLdE11cDRO YmVWdThuaz08L2RzOlNpZ25hdHVyZVZhbHVlPg0KICAgIDxkczpLZXlJbmZvPg0KICAgICAgPGRz Olg1MDlEYXRhPg0KICAgICAgICA8ZHM6WDUwOUlzc3VlclNlcmlhbD4gDQogICAgICAgICAgPGRz Olg1MDlJc3N1ZXJOYW1lPkNOPUtleVByb3Zpc2lvbmluZydSJ1VzLmNvbSxDPVVTDQogICAgICAg ICAgPC9kczpYNTA5SXNzdWVyTmFtZT4NCiAgICAgICAgICA8ZHM6WDUwOVNlcmlhbE51bWJlcj4x MjM0NTY3ODwvZHM6WDUwOVNlcmlhbE51bWJlcj4NCiAgICAgICAgPC9kczpYNTA5SXNzdWVyU2Vy aWFsPg0KICAgICAgPC9kczpYNTA5RGF0YT4NCiAgICA8L2RzOktleUluZm8+DQogIDwvcHNrYzpT aWduYXR1cmU+ICANCjwvcHNrYzpLZXlDb250YWluZXI+DQoNCl1dPjwvYXJ0d29yaz4NCgkJCQkJ CTxwb3N0YW1ibGUvPg0KCQkJCQk8L2ZpZ3VyZT4NCgkJCQk8L3Q+DQoJCQk8L3NlY3Rpb24+DQoJ CQk8c2VjdGlvbiB0aXRsZT0iU3ltbWV0cmljIEtleSBDb250YWluZXIgd2l0aCBhIHNpbmdsZSBS U0EgMS41IEVuY3J5cHRlZCBIT1RQIFNlY3JldCBLZXkiPg0KCQkJCTx0Pg0KCQkJCQk8ZmlndXJl Pg0KCQkJCQkJPHByZWFtYmxlLz4NCgkJCQkJCTxhcnR3b3JrPjwhW0NEQVRBWw0KPD94bWwgdmVy c2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxwc2tjOktleUNvbnRhaW5lciBWZXJzaW9u PSIxLjAiIA0KICB4bWxuczpwc2tjPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6cHNr YzoxLjAiIA0KICB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIg DQogIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI+DQogICAg PHBza2M6RW5jcnlwdGlvbktleT4gICAgICAgICAgICAgICAgDQogICAgICAgIDxkczpYNTA5RGF0 YT4NCiAgICAgICAgICAgIDxkczpYNTA5Q2VydGlmaWNhdGU+bWlpYjwvZHM6WDUwOUNlcnRpZmlj YXRlPg0KICAgICAgICA8L2RzOlg1MDlEYXRhPiAgICAgICAgICAgDQogICAgPC9wc2tjOkVuY3J5 cHRpb25LZXk+ICANCiAgICA8cHNrYzpEZXZpY2U+DQogICAgICAgIDxwc2tjOkRldmljZUluZm8+ DQogICAgICAgICAgICA8cHNrYzpNYW51ZmFjdHVyZXI+QUNNRTwvcHNrYzpNYW51ZmFjdHVyZXI+ DQogICAgICAgICAgICA8cHNrYzpTZXJpYWxObz4wNzU1MjI1MjY2PC9wc2tjOlNlcmlhbE5vPg0K ICAgICAgICA8L3Bza2M6RGV2aWNlSW5mbz4NCiAgICAgICAgPHBza2M6S2V5IEtleUFsZ29yaXRo bT0iaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92L3Bza2MjaG90cCIgDQogICAgICAgICAgICAg ICAgICBLZXlJZD0iMDc1NTIyNTI2NiI+DQogICAgICAgICAgICA8cHNrYzpJc3N1ZXI+QW5Jc3N1 ZXI8L3Bza2M6SXNzdWVyPg0KICAgICAgICAgICAgPHBza2M6VXNhZ2UgT1RQPSJ0cnVlIj4NCiAg ICAgICAgICAgICAgICA8cHNrYzpSZXNwb25zZUZvcm1hdCBMZW5ndGg9IjgiIEZvcm1hdD0iREVD SU1BTCIvPg0KICAgICAgICAgICAgPC9wc2tjOlVzYWdlPg0KICAgICAgICAgICAgPHBza2M6RGF0 YSBOYW1lPSJDT1VOVEVSIj4NCiAgICAgICAgICAgICAgICA8cHNrYzpQbGFpblZhbHVlPkFwcmt1 QT09PC9wc2tjOlBsYWluVmFsdWU+DQogICAgICAgICAgICA8L3Bza2M6RGF0YT4NCiAgICAgICAg ICAgIDxwc2tjOkRhdGEgTmFtZT0iU0VDUkVUIj4NCiAgICAgICAgICAgICAgPHBza2M6RW5jcnlw dGVkVmFsdWUgSWQ9IkVEIj4NCiAgICAgICAgICAgICAgICA8eGVuYzpFbmNyeXB0aW9uTWV0aG9k IA0KICAgICAgICAgICAgICAgICAgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0 L3htbGVuYyNyc2FfMV81Ii8+DQogICAgICAgICAgICAgICAgPHhlbmM6Q2lwaGVyRGF0YT4NCiAg ICAgICAgICAgICAgICAgIDx4ZW5jOkNpcGhlclZhbHVlPnJmNGR4M3J2RVBPMHZLdEtMMTROYmVW dThuaz0NCiAgICAgICAgICAgICAgICAgIDwveGVuYzpDaXBoZXJWYWx1ZT4NCiAgICAgICAgICAg ICAgICA8L3hlbmM6Q2lwaGVyRGF0YT4NCiAgICAgICAgICAgICAgPC9wc2tjOkVuY3J5cHRlZFZh bHVlPg0KICAgICAgICAgICAgPC9wc2tjOkRhdGE+DQogICAgICAgIDwvcHNrYzpLZXk+DQogICAg PC9wc2tjOkRldmljZT4NCjwvcHNrYzpLZXlDb250YWluZXI+XV0+PC9hcnR3b3JrPg0KCQkJCQkJ PHBvc3RhbWJsZS8+DQoJCQkJCTwvZmlndXJlPg0KCQkJCTwvdD4NCgkJCTwvc2VjdGlvbj4NCgkJ PC9zZWN0aW9uPg0KCTwvbWlkZGxlPg0KCTxiYWNrPg0KCQk8cmVmZXJlbmNlcyB0aXRsZT0iTm9y bWF0aXZlIFJlZmVyZW5jZXMiPg0KCQkJPHJlZmVyZW5jZSBhbmNob3I9IlBLQ1MxIj4NCgkJCQk8 ZnJvbnQ+DQoJCQkJCTx0aXRsZT5SRkMgMjQzNzogUEtDUyAjMTogUlNBIENyeXB0b2dyYXBoeSBT cGVjaWZpY2F0aW9ucyBWZXJzaW9uIDIuMC48L3RpdGxlPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxz PSJCLiBLYWxpc2tpIGFuZCBKLiBTdGFkZG9uLiIgc3VybmFtZT0iS2FsaXNraSIgZnVsbG5hbWU9 IkIuIEthbGlza2kgYW5kIEouIFN0YWRkb24iPg0KCQkJCQkJPG9yZ2FuaXphdGlvbj4NCiAgICAg ICAgICAgICAgICA8L29yZ2FuaXphdGlvbj4NCgkJCQkJPC9hdXRob3I+DQoJCQkJCTxkYXRlIG1v bnRoPSJPY3RvYmVyIiB5ZWFyPSIxOTk4Ii8+DQoJCQkJPC9mcm9udD4NCgkJCQk8c2VyaWVzSW5m byBuYW1lPSJVUkw6IiB2YWx1ZT0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjQzNy50eHQi Lz4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJWZXJzaW9uOiIgdmFsdWU9IjIuMCIvPg0KCQkJCTxm b3JtYXQgdHlwZT0iVFhUIiBvY3RldHM9Ijk0NTA2IiB0YXJnZXQ9ImZ0cDovL2Z0cC5pc2kuZWR1 L2luLW5vdGVzL3JmYzIyMDAudHh0Ii8+DQoJCQk8L3JlZmVyZW5jZT4gICAgICAgICANCgkJCTxy ZWZlcmVuY2UgYW5jaG9yPSJQS0NTNSI+DQoJCQkJPGZyb250Pg0KCQkJCQk8dGl0bGU+UEtDUyAj NTogUGFzc3dvcmQtQmFzZWQgQ3J5cHRvZ3JhcGh5IFN0YW5kYXJkPC90aXRsZT4NCgkJCQkJPGF1 dGhvcj4NCgkJCQkJCTxvcmdhbml6YXRpb24+DQoJCQlSU0EgTGFib3JhdG9yaWVzDQogICAgICAg ICAgICAgICAgPC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8ZGF0ZSBtb250 aD0iTWFyY2giIHllYXI9IjE5OTkiLz4NCgkJCQk8L2Zyb250Pg0KCQkJCTxzZXJpZXNJbmZvIG5h bWU9IlZlcnNpb24iIHZhbHVlPSIyLjAiLz4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJVUkw6IiB2 YWx1ZT0iaHR0cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcnNhbGFicy9wa2NzLyIvPg0KCQkJCTxm b3JtYXQgdHlwZT0iVFhUIiBvY3RldHM9Ijk0NTA2IiB0YXJnZXQ9ImZ0cDovL2Z0cC5pc2kuZWR1 L2luLW5vdGVzL3JmYzIyMDAudHh0Ii8+DQoJCQk8L3JlZmVyZW5jZT4NCgkJCTxyZWZlcmVuY2Ug YW5jaG9yPSJSRkMyMTE5IiB0YXJnZXQ9Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIxMTku dHh0Ij4NCgkJCQk8ZnJvbnQ+DQoJCQkJCTx0aXRsZT5LZXkgd29yZHMgZm9yIHVzZSBpbiBSRkNz IHRvIEluZGljYXRlIFJlcXVpcmVtZW50DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExldmVsczwvdGl0bGU+DQoJCQkJCTxhdXRob3IgZnVsbG5hbWU9IiI+DQoJCQkJCQk8b3JnYW5p emF0aW9uLz4NCgkJCQkJPC9hdXRob3I+DQoJCQkJCTxkYXRlIG1vbnRoPSJNYXJjaCIgeWVhcj0i MTk5NyIvPg0KCQkJCTwvZnJvbnQ+DQoJCQkJPHNlcmllc0luZm8gbmFtZT0iQkNQIiB2YWx1ZT0i MTQiLz4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJSRkMiIHZhbHVlPSIyMTE5Ii8+DQoJCQk8L3Jl ZmVyZW5jZT4NCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJYTUxEU0lHIj4NCgkJCQk8ZnJvbnQ+DQoJ CQkJCTx0aXRsZT5YTUwtU2lnbmF0dXJlIFN5bnRheCBhbmQgUHJvY2Vzc2luZzwvdGl0bGU+DQoJ CQkJCTxhdXRob3IgaW5pdGlhbHM9IkQuLCBhdCBhbC4iIHN1cm5hbWU9IkVhc3RsYWtlIiBmdWxs bmFtZT0iRGF2aWQgRWFzdGxha2UsIGF0IGFsLiI+DQoJCQkJCQk8b3JnYW5pemF0aW9uPg0KICAg ICAgICAgICAgICAgIDwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGRhdGUg bW9udGg9IkZlYnJ1YXJ5IiB5ZWFyPSIyMDAyIi8+DQoJCQkJPC9mcm9udD4NCgkJCQk8c2VyaWVz SW5mbyBuYW1lPSJVUkw6IiB2YWx1ZT0iaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMi9SRUMteG1s ZHNpZy1jb3JlLTIwMDIwMjEyLyIvPg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9IlczQyIgdmFsdWU9 IlJlY29tbWVuZGF0aW9uIi8+DQoJCQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iOTQ1MDYi IHRhcmdldD0iZnRwOi8vZnRwLmlzaS5lZHUvaW4tbm90ZXMvcmZjMjIwMC50eHQiLz4NCgkJCTwv cmVmZXJlbmNlPg0KCQkJPHJlZmVyZW5jZSBhbmNob3I9IlhNTEVOQyI+DQoJCQkJPGZyb250Pg0K CQkJCQk8dGl0bGU+WE1MIEVuY3J5cHRpb24gU3ludGF4IGFuZCBQcm9jZXNzaW5nLjwvdGl0bGU+ DQoJCQkJCTxhdXRob3IgaW5pdGlhbHM9IkQuIEVhc3RsYWtlIGFuZCBKLiBSZWFnbGUuIiBzdXJu YW1lPSJFYXN0bGFrZSIgZnVsbG5hbWU9IkQuIEVhc3RsYWtlIGFuZCBKLiBSZWFnbGUuIj4NCgkJ CQkJCTxvcmdhbml6YXRpb24+DQogICAgICAgICAgICAgICAgPC9vcmdhbml6YXRpb24+DQoJCQkJ CTwvYXV0aG9yPg0KCQkJCQk8ZGF0ZSBtb250aD0iRGVjZW1iZXIiIHllYXI9IjIwMDIiLz4NCgkJ CQk8L2Zyb250Pg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9IlVSTDoiIHZhbHVlPSJodHRwOi8vd3d3 LnczLm9yZy9UUi94bWxlbmMtY29yZS8iLz4NCgkJCQk8Zm9ybWF0IHR5cGU9IlRYVCIgb2N0ZXRz PSI5NDUwNiIgdGFyZ2V0PSJmdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9yZmMyMjAwLnR4dCIv Pg0KCQkJPC9yZWZlcmVuY2U+DQoJCQkNCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJSRkM0Mjg4Ij4N Cg0KCQkJCTxmcm9udD4NCgkJCQkJPHRpdGxlPk1lZGlhIFR5cGUgU3BlY2lmaWNhdGlvbnMgYW5k IFJlZ2lzdHJhdGlvbiBQcm9jZWR1cmVzPC90aXRsZT4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0i Ti4iIHN1cm5hbWU9IkZyZWVkIiBmdWxsbmFtZT0iTi4gRnJlZWQiPg0KCQkJCQkJPG9yZ2FuaXph dGlvbi8+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJKLiIgc3VybmFt ZT0iS2xlbnNpbiIgZnVsbG5hbWU9IkouIEtsZW5zaW4iPg0KCQkJCQkJPG9yZ2FuaXphdGlvbi8+ DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8ZGF0ZSB5ZWFyPSIyMDA1IiBtb250aD0iRGVjZW1iZXIi Lz4NCgkJCQkJPGFic3RyYWN0Pg0KCQkJCQkJPHQ+VGhpcyBkb2N1bWVudCBkZWZpbmVzIHByb2Nl ZHVyZXMgZm9yIHRoZSBzcGVjaWZpY2F0aW9uIGFuZCByZWdpc3RyYXRpb24NCgkJCQkJCQlvZiBt ZWRpYSB0eXBlcyBmb3IgdXNlIGluIE1JTUUgYW5kIG90aGVyIEludGVybmV0IHByb3RvY29scy4g VGhpcw0KCQkJCQkJCWRvY3VtZW50IHNwZWNpZmllcyBhbiBJbnRlcm5ldCBCZXN0IEN1cnJlbnQg UHJhY3RpY2VzIGZvciB0aGUgSW50ZXJuZXQNCgkJCQkJCQlDb21tdW5pdHksIGFuZCByZXF1ZXN0 cyBkaXNjdXNzaW9uIGFuZCBzdWdnZXN0aW9ucyBmb3IgaW1wcm92ZW1lbnRzLjwvdD4NCgkJCQkJ PC9hYnN0cmFjdD4NCgkJCQk8L2Zyb250Pg0KDQoJCQkJPHNlcmllc0luZm8gbmFtZT0iQkNQIiB2 YWx1ZT0iMTMiLz4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJSRkMiIHZhbHVlPSI0Mjg4Ii8+DQoJ CQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iNTI2NjciIHRhcmdldD0iZnRwOi8vZnRwLmlz aS5lZHUvaW4tbm90ZXMvcmZjNDI4OC50eHQiLz4NCgkJCTwvcmVmZXJlbmNlPg0KCQkJDQoJCQk8 cmVmZXJlbmNlIGFuY2hvcj0iUkZDMzAyMyI+DQoNCgkJCQk8ZnJvbnQ+DQoJCQkJCTx0aXRsZT5Y TUwgTWVkaWEgVHlwZXM8L3RpdGxlPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJNLiIgc3VybmFt ZT0iTXVyYXRhIiBmdWxsbmFtZT0iTS4gTXVyYXRhIj4NCgkJCQkJCTxvcmdhbml6YXRpb24vPg0K CQkJCQk8L2F1dGhvcj4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iUy4iIHN1cm5hbWU9IlN0LiBM YXVyZW50IiBmdWxsbmFtZT0iUy4gU3QuIExhdXJlbnQiPg0KCQkJCQkJPG9yZ2FuaXphdGlvbi8+ DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJELiIgc3VybmFtZT0iS29o biIgZnVsbG5hbWU9IkQuIEtvaG4iPg0KCQkJCQkJPG9yZ2FuaXphdGlvbi8+DQoJCQkJCTwvYXV0 aG9yPg0KCQkJCQk8ZGF0ZSB5ZWFyPSIyMDAxIiBtb250aD0iSmFudWFyeSIvPg0KCQkJCTwvZnJv bnQ+DQoNCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJSRkMiIHZhbHVlPSIzMDIzIi8+DQoJCQkJPGZv cm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iODYwMTEiIHRhcmdldD0iZnRwOi8vZnRwLmlzaS5lZHUv aW4tbm90ZXMvcmZjMzAyMy50eHQiLz4NCgkJCTwvcmVmZXJlbmNlPg0KDQoJCQk8cmVmZXJlbmNl IGFuY2hvcj0iUkZDMzY4OCI+DQoNCgkJCQk8ZnJvbnQ+DQoJCQkJCTx0aXRsZT5UaGUgSUVURiBY TUwgUmVnaXN0cnk8L3RpdGxlPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJNLiIgc3VybmFtZT0i TWVhbGxpbmciIGZ1bGxuYW1lPSJNLiBNZWFsbGluZyI+DQoJCQkJCQk8b3JnYW5pemF0aW9uLz4N CgkJCQkJPC9hdXRob3I+DQoJCQkJCTxkYXRlIHllYXI9IjIwMDQiIG1vbnRoPSJKYW51YXJ5Ii8+ DQoJCQkJCTxhYnN0cmFjdD4NCgkJCQkJCTx0PlRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIGFuIElB TkEgbWFpbnRhaW5lZCByZWdpc3RyeSBmb3IgSUVURiBzdGFuZGFyZHMNCgkJCQkJCQl3aGljaCB1 c2UgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UgKFhNTCkgcmVsYXRlZCBpdGVtcyBzdWNoIGFz DQoJCQkJCQkJTmFtZXNwYWNlcywgRG9jdW1lbnQgVHlwZSBEZWNsYXJhdGlvbnMgKERURHMpLCBT Y2hlbWFzLCBhbmQgUmVzb3VyY2UNCgkJCQkJCQlEZXNjcmlwdGlvbiBGcmFtZXdvcmsgKFJERikg U2NoZW1hcy48L3Q+DQoJCQkJCTwvYWJzdHJhY3Q+DQoJCQkJPC9mcm9udD4NCg0KCQkJCTxzZXJp ZXNJbmZvIG5hbWU9IkJDUCIgdmFsdWU9IjgxIi8+DQoJCQkJPHNlcmllc0luZm8gbmFtZT0iUkZD IiB2YWx1ZT0iMzY4OCIvPg0KCQkJCTxmb3JtYXQgdHlwZT0iVFhUIiBvY3RldHM9IjE3MzI1IiB0 YXJnZXQ9ImZ0cDovL2Z0cC5pc2kuZWR1L2luLW5vdGVzL3JmYzM2ODgudHh0Ii8+DQoJCQk8L3Jl ZmVyZW5jZT4NCgkJCQ0KCQkJPHJlZmVyZW5jZSBhbmNob3I9IlJGQzQ1MTQiPg0KDQoJCQkJPGZy b250Pg0KCQkJCQk8dGl0bGU+TGlnaHR3ZWlnaHQgRGlyZWN0b3J5IEFjY2VzcyBQcm90b2NvbCAo TERBUCk6IFN0cmluZyBSZXByZXNlbnRhdGlvbiBvZiBEaXN0aW5ndWlzaGVkIE5hbWVzPC90aXRs ZT4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iSy4iIHN1cm5hbWU9IlplaWxlbmdhIiBmdWxsbmFt ZT0iSy4gWmVpbGVuZ2EiPg0KCQkJCQkJPG9yZ2FuaXphdGlvbi8+DQoJCQkJCTwvYXV0aG9yPg0K CQkJCQk8ZGF0ZSB5ZWFyPSIyMDA2IiBtb250aD0iSnVuZSIvPg0KCQkJCQk8YWJzdHJhY3Q+DQoJ CQkJCQk8dD5UaGUgWC41MDAgRGlyZWN0b3J5IHVzZXMgZGlzdGluZ3Vpc2hlZCBuYW1lcyAoRE5z KSBhcyBwcmltYXJ5IGtleXMgdG8NCiAgIGVudHJpZXMgaW4gdGhlIGRpcmVjdG9yeS4gIFRoaXMg ZG9jdW1lbnQgZGVmaW5lcyB0aGUgc3RyaW5nDQogICByZXByZXNlbnRhdGlvbiB1c2VkIGluIHRo ZSBMaWdodHdlaWdodCBEaXJlY3RvcnkgQWNjZXNzIFByb3RvY29sDQogICAoTERBUCkgdG8gdHJh bnNmZXIgZGlzdGluZ3Vpc2hlZCBuYW1lcy4gIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gaXMN CiAgIGRlc2lnbmVkIHRvIGdpdmUgYSBjbGVhbiByZXByZXNlbnRhdGlvbiBvZiBjb21tb25seSB1 c2VkDQogICBkaXN0aW5ndWlzaGVkIG5hbWVzLCB3aGlsZSBiZWluZyBhYmxlIHRvIHJlcHJlc2Vu dCBhbnkgZGlzdGluZ3Vpc2hlZA0KICAgbmFtZS48L3Q+DQoJCQkJCTwvYWJzdHJhY3Q+DQoJCQkJ PC9mcm9udD4NCg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9IlJGQyIgdmFsdWU9IjQ1MTQiLz4NCgkJ CQk8Zm9ybWF0IHR5cGU9IlRYVCIgdGFyZ2V0PSJodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9y ZmM0NTE0Ii8+DQoJCQk8L3JlZmVyZW5jZT4NCgkJCQ0KCQkJPHJlZmVyZW5jZSBhbmNob3I9IlJG QzM1NTMiPg0KDQoJCQkJPGZyb250Pg0KCQkJCQk8dGl0bGU+QW4gSUVURiBVUk4gU3ViLW5hbWVz cGFjZSBmb3IgUmVnaXN0ZXJlZCBQcm90b2NvbCBQYXJhbWV0ZXJzDQo8L3RpdGxlPg0KCQkJCQk8 YXV0aG9yIGluaXRpYWxzPSJNLiIgc3VybmFtZT0iTWVhbGxpbmciIGZ1bGxuYW1lPSJNLiBNZWFs bGluZyI+DQoJCQkJCQk8b3JnYW5pemF0aW9uLz4NCgkJCQkJPC9hdXRob3I+DQoJCQkJCTxkYXRl IHllYXI9IjIwMDMiIG1vbnRoPSJKdW5lIi8+DQoJCQkJCTxhYnN0cmFjdD4NCgkJCQkJCTx0PlRo aXMgZG9jdW1lbnQgZGVzY3JpYmVzIGEgbmV3IHN1Yi1kZWxlZ2F0aW9uIGZvciB0aGUgJ2lldGYn IFVSTg0KICAgbmFtZXNwYWNlIGZvciByZWdpc3RlcmVkIHByb3RvY29sIGl0ZW1zLiAgVGhlICdp ZXRmJyBVUk4gbmFtZXNwYWNlIGlzDQogICBkZWZpbmVkIGluIFJGQyAyNjQ4IGFzIGEgcm9vdCBm b3IgcGVyc2lzdGVudCBVUklzIHRoYXQgcmVmZXIgdG8NCiAgIElFVEYtZGVmaW5lZCByZXNvdXJj ZXMuPC90Pg0KCQkJCQk8L2Fic3RyYWN0Pg0KCQkJCTwvZnJvbnQ+DQoNCgkJCQk8c2VyaWVzSW5m byBuYW1lPSJSRkMiIHZhbHVlPSIzNTUzIi8+DQoJCQkJPGZvcm1hdCB0eXBlPSJUWFQiIHRhcmdl dD0iaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzU1MyIvPg0KCQkJPC9yZWZlcmVuY2U+ DQoJCQkNCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJSRkMyNDM0Ij4NCg0KCQkJCTxmcm9udD4NCgkJ CQkJPHRpdGxlPkd1aWRlbGluZXMgZm9yIFdyaXRpbmcgYW4gSUFOQSBDb25zaWRlcmF0aW9ucyBT ZWN0aW9uIGluIFJGQ3M8L3RpdGxlPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJULiIgc3VybmFt ZT0iTmFydGVuIiBmdWxsbmFtZT0iVC4gTmFydGVuIj4NCgkJCQkJCTxvcmdhbml6YXRpb24vPg0K CQkJCQk8L2F1dGhvcj4NCgkJCQkJPGRhdGUgeWVhcj0iMTk5OCIgbW9udGg9Ik9jdG9iZXIiLz4N CgkJCQkJPGFic3RyYWN0Pg0KCQkJCQkJPHQ+VGhpcyBkb2N1bWVudCBzcGVjaWZpZXMgYW4gSW50 ZXJuZXQgQmVzdCBDdXJyZW50IFByYWN0aWNlcyBmb3IgdGhlDQogICBJbnRlcm5ldCBDb21tdW5p dHksIGFuZCByZXF1ZXN0cyBkaXNjdXNzaW9uIGFuZCBzdWdnZXN0aW9ucyBmb3INCiAgIGltcHJv dmVtZW50cy4gIERpc3RyaWJ1dGlvbiBvZiB0aGlzIG1lbW8gaXMgdW5saW1pdGVkLjwvdD4NCgkJ CQkJPC9hYnN0cmFjdD4NCgkJCQk8L2Zyb250Pg0KDQoJCQkJPHNlcmllc0luZm8gbmFtZT0iUkZD IiB2YWx1ZT0iMjQzNCIvPg0KCQkJCTxmb3JtYXQgdHlwZT0iVFhUIiB0YXJnZXQ9Imh0dHA6Ly90 b29scy5pZXRmLm9yZy9odG1sL3JmYzI0MzQiLz4NCgkJCTwvcmVmZXJlbmNlPg0KCQkJDQoJCQkN CgkJPC9yZWZlcmVuY2VzPg0KICAgICAgICA8cmVmZXJlbmNlcyB0aXRsZT0iSW5mb3JtYXRpdmUg UmVmZXJlbmNlcyI+DQoJCQk8cmVmZXJlbmNlIGFuY2hvcj0iQ0FQIj4NCgkJCQk8ZnJvbnQ+DQoJ CQkJCTx0aXRsZT5DaGlwIEF1dGhlbnRpY2F0aW9uIFByb2dyYW0gRnVuY3Rpb25hbCBBcmNoaXRl Y3R1cmU8L3RpdGxlPg0KCQkJCQk8YXV0aG9yPg0KCQkJCQkJPG9yZ2FuaXphdGlvbj4NCgkJTWFz dGVyQ2FyZCBJbnRlcm5hdGlvbmFsDQogICAgICAgICAgICAgICAgPC9vcmdhbml6YXRpb24+DQoJ CQkJCTwvYXV0aG9yPg0KCQkJCQk8ZGF0ZSBtb250aD0iU2VwdGVtYmVyIiB5ZWFyPSIyMDA0Ii8+ DQoJCQkJPC9mcm9udD4NCgkJCQk8Zm9ybWF0IHR5cGU9IlRYVCIgb2N0ZXRzPSI5NDUwNiIgdGFy Z2V0PSJmdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9yZmMyMjAwLnR4dCIvPg0KCQkJPC9yZWZl cmVuY2U+DQoJCQk8cmVmZXJlbmNlIGFuY2hvcj0iRFNLUFAiPg0KCQkJCTxmcm9udD4NCgkJCQkJ PHRpdGxlPkR5bmFtaWMgU3ltbWV0cmljIEtleSBQcm92aXNpb25pbmcgUHJvdG9jb2w8L3RpdGxl Pg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJBLiIgc3VybmFtZT0iRG9oZXJ0eSIgZnVsbG5hbWU9 IkFuZHJlYSBEb2hlcnR5Ij4NCgkJCQkJCTxvcmdhbml6YXRpb24+PC9vcmdhbml6YXRpb24+DQoJ CQkJCTwvYXV0aG9yPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yIGluaXRpYWxzPSJNLiIg c3VybmFtZT0iUGVpIiBmdWxsbmFtZT0iTWluZ2xpYW5nIFBlaSI+DQoJCQkJCQk8b3JnYW5pemF0 aW9uPjwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCiAgICAgICAgICAgICAgICAgICAg PGF1dGhvciBpbml0aWFscz0iUy4iIHN1cm5hbWU9Ik1hY2hhbmkiIGZ1bGxuYW1lPSJTYWxhaCBN YWNoYW5pIj4NCgkJCQkJCTxvcmdhbml6YXRpb24+PC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0 aG9yPg0KICAgICAgICAgICAgICAgICAgICA8YXV0aG9yIGluaXRpYWxzPSJNLiIgc3VybmFtZT0i TnlzdHJvbSIgZnVsbG5hbWU9Ik1hZ251cyBOeXN0cm9tIj4NCgkJCQkJCTxvcmdhbml6YXRpb24+ PC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8ZGF0ZSBtb250aD0iRmVicnVh cnkiIHllYXI9IjIwMDgiLz4NCgkJCQk8L2Zyb250Pg0KCQkJCTxzZXJpZXNJbmZvIG5hbWU9Iklu dGVybmV0IERyYWZ0IiB2YWx1ZT0iSW5mb3JtYXRpb25hbCIvPg0KCQkJCTxzZXJpZXNJbmZvIG5h bWU9IlVSTDoiIHZhbHVlPSJodHRwOi8vd3d3LmlldGYub3JnL2ludGVybmV0LWRyYWZ0cy9kcmFm dC1pZXRmLWtleXByb3YtZHNrcHAtMDMudHh0Ii8+DQoJCQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9j dGV0cz0iOTQ1MDYiIHRhcmdldD0iZnRwOi8vZnRwLmlzaS5lZHUvaW4tbm90ZXMvcmZjMjIwMC50 eHQiLz4NCgkJCTwvcmVmZXJlbmNlPg0KCQkJPHJlZmVyZW5jZSBhbmNob3I9IkhPVFAiPg0KCQkJ CTxmcm9udD4NCgkJCQkJPHRpdGxlPkhPVFA6IEFuIEhNQUMtQmFzZWQgT25lIFRpbWUgUGFzc3dv cmQgQWxnb3JpdGhtPC90aXRsZT4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iRC4iIHN1cm5hbWU9 Ik1SYWloaSIgZnVsbG5hbWU9IkRhdmlkIE1SYWloaSI+DQoJCQkJCQk8b3JnYW5pemF0aW9uPjwv b3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iTS4i IHN1cm5hbWU9IkJlbGxhcmUiIGZ1bGxuYW1lPSJNLiBCZWxsYXJlIj4NCgkJCQkJCTxvcmdhbml6 YXRpb24+PC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8YXV0aG9yIGluaXRp YWxzPSJGLiIgc3VybmFtZT0iSG9vcm5hZXJ0IiBmdWxsbmFtZT0iRi4gSG9vcm5hZXJ0Ij4NCgkJ CQkJCTxvcmdhbml6YXRpb24+PC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8 YXV0aG9yIGluaXRpYWxzPSJELiIgc3VybmFtZT0iTmFjY2FjaGUiIGZ1bGxuYW1lPSJELiBOYWNj YWNoZSI+DQoJCQkJCQk8b3JnYW5pemF0aW9uPjwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhv cj4NCgkJCQkJPGF1dGhvciBpbml0aWFscz0iTy4iIHN1cm5hbWU9IlJhbmVuIiBmdWxsbmFtZT0i Ty4gUmFuZW4iPg0KCQkJCQkJPG9yZ2FuaXphdGlvbj48L29yZ2FuaXphdGlvbj4NCgkJCQkJPC9h dXRob3I+DQoJCQkJCTxkYXRlIG1vbnRoPSJEZWNlbWJlciIgeWVhcj0iMjAwNSIvPg0KCQkJCTwv ZnJvbnQ+DQoJCQkJPHNlcmllc0luZm8gbmFtZT0iUkZDIiB2YWx1ZT0iNDIyNiIvPg0KCQkJCTxz ZXJpZXNJbmZvIG5hbWU9IlVSTDoiIHZhbHVlPSJodHRwOi8vcmZjLnN1bnNpdGUuZGsvcmZjL3Jm YzQyMjYuaHRtbCIvPg0KCQkJCTxmb3JtYXQgdHlwZT0iVFhUIiBvY3RldHM9Ijk0NTA2IiB0YXJn ZXQ9ImZ0cDovL2Z0cC5pc2kuZWR1L2luLW5vdGVzL3JmYzIyMDAudHh0Ii8+DQoJCQk8L3JlZmVy ZW5jZT4gICAgICAgICAgICANCgkJCTxyZWZlcmVuY2UgYW5jaG9yPSJOSVNULVNQODAwLTU3Ij4N CgkJCQk8ZnJvbnQ+DQoJCQkJCTx0aXRsZT5SZWNvbW1lbmRhdGlvbiBmb3IgS2V5IE1hbmFnZW1l bnQgLSBQYXJ0IEk6IEdlbmVyYWwgKFJldmlzZWQpPC90aXRsZT4NCgkJCQkJPGF1dGhvcj4NCiAg ICAgICAgICAgICAgICAgICAgICA8b3JnYW5pemF0aW9uPk5hdGlvbmFsIEluc3RpdHV0ZSBvZiBT dGFuZGFyZHMgYW5kIFRlY2hub2xvZ3k8L29yZ2FuaXphdGlvbj4NCgkJCQkJPC9hdXRob3I+DQoJ CQkJCTxkYXRlIG1vbnRoPSJNYXJjaCIgeWVhcj0iMjAwNyIvPg0KCQkJCTwvZnJvbnQ+DQogICAg ICAgICAgICAgICAgPHNlcmllc0luZm8gbmFtZT0iTklTVCIgdmFsdWU9IjgwMC01NyIvPg0KCQkJ CTxzZXJpZXNJbmZvIG5hbWU9IlVSTDoiIHZhbHVlPSJodHRwOi8vY3NyYy5uaXN0Lmdvdi9wdWJs aWNhdGlvbnMvbmlzdHB1YnMvODAwLTU3L3NwODAwLTU3LVBhcnQxLXJldmlzZWQyX01hcjA4LTIw MDcucGRmIi8+DQoJCQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iOTQ1MDYiIHRhcmdldD0i ZnRwOi8vZnRwLmlzaS5lZHUvaW4tbm90ZXMvcmZjMjIwMC50eHQiLz4NCgkJCTwvcmVmZXJlbmNl PiAgICAgICAgICAgIA0KCQkJPHJlZmVyZW5jZSBhbmNob3I9IlBLQ1MxMiI+DQoJCQkJPGZyb250 Pg0KCQkJCQk8dGl0bGU+UEtDUyAjMTI6IFBlcnNvbmFsIEluZm9ybWF0aW9uIEV4Y2hhbmdlIFN5 bnRheCBTdGFuZGFyZDwvdGl0bGU+DQoJCQkJCTxhdXRob3I+DQoJCQkJCQk8b3JnYW5pemF0aW9u Pg0KCQkJUlNBIExhYm9yYXRvcmllcw0KICAgICAgICAgICAgICAgIDwvb3JnYW5pemF0aW9uPg0K CQkJCQk8L2F1dGhvcj4NCgkJCQkJPGRhdGUgeWVhcj0iIi8+DQoJCQkJPC9mcm9udD4NCgkJCQk8 c2VyaWVzSW5mbyBuYW1lPSJWZXJzaW9uIiB2YWx1ZT0iMS4wIi8+DQoJCQkJPHNlcmllc0luZm8g bmFtZT0iVVJMOiIgdmFsdWU9Imh0dHA6Ly93d3cucnNhc2VjdXJpdHkuY29tL3JzYWxhYnMvcGtj cy8iLz4NCgkJCQk8Zm9ybWF0IHR5cGU9IlRYVCIgb2N0ZXRzPSI5NDUwNiIgdGFyZ2V0PSJmdHA6 Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9yZmMyMjAwLnR4dCIvPg0KCQkJPC9yZWZlcmVuY2U+ICAg ICAgICAgICAgDQoJCQk8cmVmZXJlbmNlIGFuY2hvcj0iT0FUSCI+DQoJCQkJPGZyb250Pg0KCQkJ CQk8dGl0bGU+SW5pdGlhdGl2ZSBmb3IgT3BlbiBBdVRIZW50aWNhdGlvbjwvdGl0bGU+DQoJCQkJ CTxhdXRob3I+DQoJCQkJCQk8b3JnYW5pemF0aW9uPg0KICAgICAgICAgICAgICAgIDwvb3JnYW5p emF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJCQkJPGRhdGUgeWVhcj0iIi8+DQoJCQkJPC9mcm9u dD4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJVUkw6IiB2YWx1ZT0iaHR0cDovL3d3dy5vcGVuYXV0 aGVudGljYXRpb24ub3JnIi8+DQoJCQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iOTQ1MDYi IHRhcmdldD0iZnRwOi8vZnRwLmlzaS5lZHUvaW4tbm90ZXMvcmZjMjIwMC50eHQiLz4NCgkJCTwv cmVmZXJlbmNlPg0KCQkJPHJlZmVyZW5jZSBhbmNob3I9Ik9DUkEiPg0KCQkJCTxmcm9udD4NCgkJ CQkJPHRpdGxlPk9DUkE6IE9BVEggQ2hhbGxlbmdlIFJlc3BvbnNlIEFsZ29yaXRobTwvdGl0bGU+ DQoJCQkJCTxhdXRob3IgaW5pdGlhbHM9IkQuIiBzdXJuYW1lPSJNUmFpaGkiIGZ1bGxuYW1lPSJE YXZpZCBNUmFpaGkiPg0KCQkJCQkJPG9yZ2FuaXphdGlvbj48L29yZ2FuaXphdGlvbj4NCgkJCQkJ PC9hdXRob3I+DQoJCQkJCTxhdXRob3IgaW5pdGlhbHM9IkouIiBzdXJuYW1lPSJSeWRlbGwiIGZ1 bGxuYW1lPSJKb2hhbiBSeWRlbGwiPg0KCQkJCQkJPG9yZ2FuaXphdGlvbj48L29yZ2FuaXphdGlv bj4NCgkJCQkJPC9hdXRob3I+DQoJCQkJCTxhdXRob3IgaW5pdGlhbHM9IkQuIiBzdXJuYW1lPSJO YWNjYWNoZSIgZnVsbG5hbWU9IkRhdmlkIE5hY2NhY2hlIj4NCgkJCQkJCTxvcmdhbml6YXRpb24+ PC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8YXV0aG9yIGluaXRpYWxzPSJT LiIgc3VybmFtZT0iTWFjaGFuaSIgZnVsbG5hbWU9IlNhbGFoIE1hY2hhbmkiPg0KCQkJCQkJPG9y Z2FuaXphdGlvbj48L29yZ2FuaXphdGlvbj4NCgkJCQkJPC9hdXRob3I+DQoJCQkJCTxhdXRob3Ig aW5pdGlhbHM9IlMuIiBzdXJuYW1lPSJCYWphaiIgZnVsbG5hbWU9IlNpZGRoYXJ0aCBCYWphaiI+ DQoJCQkJCQk8b3JnYW5pemF0aW9uPjwvb3JnYW5pemF0aW9uPg0KCQkJCQk8L2F1dGhvcj4NCgkJ CQkJPGRhdGUgbW9udGg9IkRlY2VtYmVyIiB5ZWFyPSIyMDA3Ii8+DQoJCQkJPC9mcm9udD4NCgkJ CQk8c2VyaWVzSW5mbyBuYW1lPSJJbnRlcm5ldCBEcmFmdCIgdmFsdWU9IkluZm9ybWF0aW9uYWwi Lz4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSJVUkw6IiB2YWx1ZT0iaHR0cDovL3d3dy5pZXRmLm9y Zy9pbnRlcm5ldC1kcmFmdHMvZHJhZnQtbXJhaWhpLW11dHVhbC1vYXRoLWhvdHAtdmFyaWFudHMt MDYudHh0Ii8+DQoJCQkJPGZvcm1hdCB0eXBlPSJUWFQiIG9jdGV0cz0iOTQ1MDYiIHRhcmdldD0i ZnRwOi8vZnRwLmlzaS5lZHUvaW4tbm90ZXMvcmZjMjIwMC50eHQiLz4NCgkJCTwvcmVmZXJlbmNl Pg0KCQkJPHJlZmVyZW5jZSBhbmNob3I9IlNjaG5laWVyIj4NCgkJCQk8ZnJvbnQ+DQoJCQkJCTx0 aXRsZT5TZWNyZXRzIGFuZCBMaWVzOiBEaWdpdGlhbCBTZWN1cml0eSBpbiBhIE5ldHdvcmtlZCBX b3JsZDwvdGl0bGU+DQoJCQkJCTxhdXRob3IgaW5pdGlhbHM9IkIuIiBzdXJuYW1lPSJTY2huZWll ciIgZnVsbG5hbWU9IkJydWNlIFNjaG5laWVyIj4NCgkJCQkJCTxvcmdhbml6YXRpb24+DQogICAg ICAgICAgICAgICAgPC9vcmdhbml6YXRpb24+DQoJCQkJCTwvYXV0aG9yPg0KCQkJCQk8ZGF0ZSB5 ZWFyPSIyMDAwIi8+DQoJCQkJPC9mcm9udD4NCgkJCQk8c2VyaWVzSW5mbyBuYW1lPSIiIHZhbHVl PSJXaWxleSBDb21wdXRlciBQdWJsaXNoaW5nIi8+DQoJCQkJPHNlcmllc0luZm8gbmFtZT0iSVNC TiIgdmFsdWU9IjAtODQ5My04MjUzLTciLz4NCgkJCQk8Zm9ybWF0IHR5cGU9IlRYVCIgb2N0ZXRz PSI5NDUwNiIgdGFyZ2V0PSJmdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9yZmMyMjAwLnR4dCIv Pg0KCQkJPC9yZWZlcmVuY2U+DQogICAgICAgICAgPC9yZWZlcmVuY2VzPg0KCQ0KCTwvYmFjaz4N CjwvcmZjPg0K ------_=_NextPart_001_01C8D868.7CA86ECF Content-Type: text/plain; name="draft-ietf-keyprov-portable-symmetric-key-container-05_wip_270608.txt" Content-Transfer-Encoding: base64 Content-Description: draft-ietf-keyprov-portable-symmetric-key-container-05_wip_270608.txt Content-Disposition: attachment; filename="draft-ietf-keyprov-portable-symmetric-key-container-05_wip_270608.txt" DQoNCg0Ka2V5cHJvdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFAuIEhveWVyDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGl2SWRlbnRpdHkNCkludGVuZGVkIHN0YXR1czog U3RhbmRhcmRzIFRyYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0uIFBlaQ0K RXhwaXJlczogRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFZlcmlTaWduDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFMuIE1hY2hhbmkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGl2ZXJzaW5ldA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKdW5l IDI3LCAyMDA4DQoNCg0KICAgICAgICAgICAgICAgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5 IENvbnRhaW5lcg0KICAgICAgIGRyYWZ0LWlldGYta2V5cHJvdi1wb3J0YWJsZS1zeW1tZXRyaWMt a2V5LWNvbnRhaW5lci0wNS50eHQNCg0KU3RhdHVzIG9mIHRoaXMgTWVtbw0KDQogICBCeSBzdWJt aXR0aW5nIHRoaXMgSW50ZXJuZXQtRHJhZnQsIGVhY2ggYXV0aG9yIHJlcHJlc2VudHMgdGhhdCBh bnkNCiAgIGFwcGxpY2FibGUgcGF0ZW50IG9yIG90aGVyIElQUiBjbGFpbXMgb2Ygd2hpY2ggaGUg b3Igc2hlIGlzIGF3YXJlDQogICBoYXZlIGJlZW4gb3Igd2lsbCBiZSBkaXNjbG9zZWQsIGFuZCBh bnkgb2Ygd2hpY2ggaGUgb3Igc2hlIGJlY29tZXMNCiAgIGF3YXJlIHdpbGwgYmUgZGlzY2xvc2Vk LCBpbiBhY2NvcmRhbmNlIHdpdGggU2VjdGlvbiA2IG9mIEJDUCA3OS4NCg0KICAgSW50ZXJuZXQt RHJhZnRzIGFyZSB3b3JraW5nIGRvY3VtZW50cyBvZiB0aGUgSW50ZXJuZXQgRW5naW5lZXJpbmcN CiAgIFRhc2sgRm9yY2UgKElFVEYpLCBpdHMgYXJlYXMsIGFuZCBpdHMgd29ya2luZyBncm91cHMu ICBOb3RlIHRoYXQNCiAgIG90aGVyIGdyb3VwcyBtYXkgYWxzbyBkaXN0cmlidXRlIHdvcmtpbmcg ZG9jdW1lbnRzIGFzIEludGVybmV0LQ0KICAgRHJhZnRzLg0KDQogICBJbnRlcm5ldC1EcmFmdHMg YXJlIGRyYWZ0IGRvY3VtZW50cyB2YWxpZCBmb3IgYSBtYXhpbXVtIG9mIHNpeCBtb250aHMNCiAg IGFuZCBtYXkgYmUgdXBkYXRlZCwgcmVwbGFjZWQsIG9yIG9ic29sZXRlZCBieSBvdGhlciBkb2N1 bWVudHMgYXQgYW55DQogICB0aW1lLiAgSXQgaXMgaW5hcHByb3ByaWF0ZSB0byB1c2UgSW50ZXJu ZXQtRHJhZnRzIGFzIHJlZmVyZW5jZQ0KICAgbWF0ZXJpYWwgb3IgdG8gY2l0ZSB0aGVtIG90aGVy IHRoYW4gYXMgIndvcmsgaW4gcHJvZ3Jlc3MuIg0KDQogICBUaGUgbGlzdCBvZiBjdXJyZW50IElu dGVybmV0LURyYWZ0cyBjYW4gYmUgYWNjZXNzZWQgYXQNCiAgIGh0dHA6Ly93d3cuaWV0Zi5vcmcv aWV0Zi8xaWQtYWJzdHJhY3RzLnR4dC4NCg0KICAgVGhlIGxpc3Qgb2YgSW50ZXJuZXQtRHJhZnQg U2hhZG93IERpcmVjdG9yaWVzIGNhbiBiZSBhY2Nlc3NlZCBhdA0KICAgaHR0cDovL3d3dy5pZXRm Lm9yZy9zaGFkb3cuaHRtbC4NCg0KICAgVGhpcyBJbnRlcm5ldC1EcmFmdCB3aWxsIGV4cGlyZSBv biBEZWNlbWJlciAyOSwgMjAwOC4NCg0KQ29weXJpZ2h0IE5vdGljZQ0KDQogICBDb3B5cmlnaHQg KEMpIFRoZSBJRVRGIFRydXN0ICgyMDA4KS4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3llciwg ZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICAg W1BhZ2UgMV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBD b250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCkFic3RyYWN0DQoNCiAgIFRoaXMgZG9j dW1lbnQgc3BlY2lmaWVzIGEgc3ltbWV0cmljIGtleSBmb3JtYXQgZm9yIHRyYW5zcG9ydCBhbmQN CiAgIHByb3Zpc2lvbmluZyBvZiBzeW1tZXRyaWMga2V5cyAoZm9yIGV4YW1wbGUgT25lIFRpbWUg UGFzc3dvcmQgKE9UUCkNCiAgIHNoYXJlZCBzZWNyZXRzIG9yIHN5bW1ldHJpYyBjcnlwdG9ncmFw aGljIGtleXMpIHRvIGRpZmZlcmVudCB0eXBlcyBvZg0KICAgY3J5cHRvIG1vZHVsZXMgc3VjaCBh cyBhIHN0cm9uZyBhdXRoZW50aWNhdGlvbiBkZXZpY2UuICBUaGUgc3RhbmRhcmQNCiAgIGtleSB0 cmFuc3BvcnQgZm9ybWF0IGVuYWJsZXMgZW50ZXJwcmlzZXMgdG8gZGVwbG95IGJlc3Qtb2YtYnJl ZWQNCiAgIHNvbHV0aW9ucyBjb21iaW5pbmcgY29tcG9uZW50cyBmcm9tIGRpZmZlcmVudCB2ZW5k b3JzIGludG8gdGhlIHNhbWUNCiAgIGluZnJhc3RydWN0dXJlLg0KDQogICBUaGlzIHdvcmsgaXMg YSBqb2ludCBlZmZvcnQgYnkgdGhlIG1lbWJlcnMgb2YgT0FUSCAoSW5pdGlhdGl2ZSBmb3INCiAg IE9wZW4gQXVUSGVudGljYXRpb24pIHRvIHNwZWNpZnkgYSBmb3JtYXQgdGhhdCBjYW4gYmUgZnJl ZWx5DQogICBkaXN0cmlidXRlZCB0byB0aGUgdGVjaG5pY2FsIGNvbW11bml0eS4gIFRoZSBhdXRo b3JzIGJlbGlldmUgdGhhdCBhDQogICBjb21tb24gYW5kIHNoYXJlZCBzcGVjaWZpY2F0aW9uIHdp bGwgZmFjaWxpdGF0ZSBhZG9wdGlvbiBvZiB0d28tDQogICBmYWN0b3IgYXV0aGVudGljYXRpb24g b24gdGhlIEludGVybmV0IGJ5IGVuYWJsaW5nIGludGVyb3BlcmFiaWxpdHkNCiAgIGJldHdlZW4g Y29tbWVyY2lhbCBhbmQgb3Blbi1zb3VyY2UgaW1wbGVtZW50YXRpb25zLg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN CkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAg ICAgICAgICBbUGFnZSAyXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRy aWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KVGFibGUgb2YgQ29udGVu dHMNCg0KICAgMS4gIEludHJvZHVjdGlvbiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuICA1DQogICAyLiAgVGVybWlub2xvZ3kgIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDYNCiAgICAgMi4xLiAgS2V5IFdv cmRzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgNg0K ICAgICAyLjIuICBEZWZpbml0aW9ucyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuICA2DQogICAzLiAgVXNlIENhc2VzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDgNCiAgICAgMy4xLiAgT25saW5lIFVzZSBD YXNlcyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgOA0KICAgICAg IDMuMS4xLiAgVHJhbnNwb3J0IG9mIGtleXMgZnJvbSBTZXJ2ZXIgdG8gQ3J5cHRvIE1vZHVsZSAu IC4gLiAuICA4DQogICAgICAgMy4xLjIuICBUcmFuc3BvcnQgb2Yga2V5cyBmcm9tIENyeXB0byBN b2R1bGUgdG8gQ3J5cHRvDQogICAgICAgICAgICAgICBNb2R1bGUgLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDgNCiAgICAgICAzLjEuMy4gIFRyYW5zcG9y dCBvZiBrZXlzIGZyb20gQ3J5cHRvIE1vZHVsZSB0byBTZXJ2ZXIgLiAuIC4gLiAgOQ0KICAgICAg IDMuMS40LiAgU2VydmVyIHRvIHNlcnZlciBCdWxrIGltcG9ydC9leHBvcnQgb2Yga2V5cyAgLiAu IC4gLiAuICA5DQogICAgIDMuMi4gIE9mZmxpbmUgVXNlIENhc2VzICAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDkNCiAgICAgICAzLjIuMS4gIFNlcnZlciB0byBzZXJ2 ZXIgQnVsayBpbXBvcnQvZXhwb3J0IG9mIGtleXMgIC4gLiAuIC4gLiAgOQ0KICAgNC4gIFJlcXVp cmVtZW50cyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IDExDQogICA1LiAgUG9ydGFibGUgS2V5IGNvbnRhaW5lciBkZWZpbml0aW9uICAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gMTMNCiAgICAgNS4xLiAgS2V5Q29udGFpbmVyIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAxNA0KICAgICA1LjIuICBLZXlQcm9w ZXJ0aWVzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDE1DQog ICAgIDUuMy4gIERldmljZSAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gMTYNCiAgICAgICA1LjMuMS4gIERldmljZUluZm8gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAxNw0KICAgICA1LjQuICBLZXkgIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDE4DQogICAgICAg NS40LjEuICBEYXRhIChPUFRJT05BTCkgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gMjENCiAgICAgICA1LjQuMi4gIFVzYWdlIChNQU5EQVRPUlkpICAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAyMg0KICAgICAgIDUuNC4zLiAgVmFsdWVGb3JtYXQgIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDI2DQogICAgICAgNS40LjQu ICBQSU5Qb2xpY3kgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g MjcNCiAgIDYuICBVc2FnZSBhbmQgcHJvZmlsZSBvZiBhbGdvcml0aG1zIGZvciB0aGUgcG9ydGFi bGUgc3ltbWV0cmljDQogICAgICAga2V5IGNvbnRhaW5lciAgLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gMzANCiAgICAgNi4xLiAgVXNhZ2Ugb2YgRW5jcnlw dGlvbktleSB0byBwcm90ZWN0IGtleXMgaW4gdHJhbnNpdCAgLiAuIC4gLiAzMA0KICAgICAgIDYu MS4xLiAgUHJvdGVjdGluZyBrZXlzIHVzaW5nIGEgcHJlLXNoYXJlZCBrZXkgdmlhDQogICAgICAg ICAgICAgICBzeW1tZXRyaWMgYWxnb3JpdGhtcyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gMzANCiAgICAgICA2LjEuMi4gIFByb3RlY3Rpbmcga2V5cyB1c2luZyBwYXNzcGhyYXNl IGJhc2VkIGVuY3J5cHRpb24NCiAgICAgICAgICAgICAgIGtleXMgLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAzMQ0KICAgICA2LjIuICBQcm90ZWN0aW5n IGtleXMgdXNpbmcgYXN5bW1ldHJpYyBhbGdvcml0aG1zICAuIC4gLiAuIC4gLiAuIDMzDQogICAg IDYuMy4gIFByb2ZpbGUgb2YgS2V5IEFsZ29yaXRobSAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gMzQNCiAgICAgICA2LjMuMS4gIE9UUCBLZXkgQWxnb3JpdGhtIElkZW50aWZpZXJz ICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAzNQ0KICAgICAgIDYuMy4yLiAgUElOIGtleSB2YWx1 ZSBjb21wYXJlIGFsZ29yaXRobSBpZGVudGlmaWVyIC4gLiAuIC4gLiAuIDM1DQogICA3LiAgUmVz ZXJ2ZWQgZGF0YSBhdHRyaWJ1dGUgbmFtZXMgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gMzYNCiAgIDguICBGb3JtYWwgU3ludGF4ICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAzNw0KICAgOS4gIElBTkEgQ29uc2lkZXJhdGlvbnMgIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDQzDQogICAgIDkuMS4gIENvbnRl bnQtdHlwZSByZWdpc3RyYXRpb24gZm9yICdhcHBsaWNhdGlvbi9wc2tjK3htbCcgLiAuIC4gNDMN CiAgICAgOS4yLiAgWE1MIFNjaGVtYSBSZWdpc3RyYXRpb24gIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiA0NA0KICAgICA5LjMuICBVUk4gU3ViLU5hbWVzcGFjZSBSZWdpc3RyYXRp b24gZm9yDQogICAgICAgICAgIHVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tjOjEu MCAgLiAuIC4gLiAuIC4gLiAuIC4gNDQNCiAgICAgOS40LiAgU3ltbWV0cmljIEtleSBBbGdvcml0 aG0gSWRlbnRpZmllciBSZWdpc3RyeSAgLiAuIC4gLiAuIC4gLiA0NQ0KICAgICAgIDkuNC4xLiAg QXBwbGljYWJpbGl0eSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDQ1 DQogICAgICAgOS40LjIuICBSZWdpc3RlcmFibGUgQWxnb3JpdGhtcyAgLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gNDYNCiAgICAgICA5LjQuMy4gIFJlZ2lzdHJhdGlvbiBQcm9jZWR1cmVz ICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA0Nw0KDQoNCg0KSG95ZXIsIGV0IGFsLiAg ICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgIFtQYWdlIDNd DQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVy ICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICAgICAgOS40LjQuICBJbml0aWFsIFZhbHVlcyAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gNDkNCiAgICAgOS41LiAgWE1M IERhdGEgVGFnIElkZW50aWZpZXIgUmVnaXN0cnkgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA1 Mg0KICAgICAgIDkuNS4xLiAgQXBwbGljYWJpbGl0eSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIDUyDQogICAgICAgOS41LjIuICBSZWdpc3RlcmFibGUgRGF0YSBUYWdz IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gNTMNCiAgICAgICA5LjUuMy4gIFJlZ2lz dHJhdGlvbiBQcm9jZWR1cmVzICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA1Mw0KICAg ICAgIDkuNS40LiAgSW5pdGlhbCBWYWx1ZXMgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIDU0DQogICAxMC4gU2VjdXJpdHkgQ29uc2lkZXJhdGlvbnMgIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gNTYNCiAgICAgMTAuMS4gUGF5bG9hZCBjb25maWRl bnRpYWxpdHkgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA1Ng0KICAgICAxMC4y LiBQYXlsb2FkIGludGVncml0eSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIDU3DQogICAgIDEwLjMuIFBheWxvYWQgYXV0aGVudGljaXR5IC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gNTcNCiAgIDExLiBBY2tub3dsZWRnZW1lbnRzIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA1OA0KICAgMTIuIEFwcGVuZGl4 IEEgLSBFeGFtcGxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVycyAgLiAuIC4gLiAuIC4gLiAuIDU5 DQogICAgIDEyLjEuIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyIHdpdGggYSBzaW5nbGUgTm9uLUVu Y3J5cHRlZA0KICAgICAgICAgICBIT1RQIFNlY3JldCBLZXkgIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIDU5DQogICAgIDEyLjIuIFN5bW1ldHJpYyBLZXkgQ29udGFp bmVyIHdpdGggYSBzaW5nbGUgUElOIHByb3RlY3RlZA0KICAgICAgICAgICBOb24tRW5jcnlwdGVk IEhPVFAgU2VjcmV0IEtleSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDU5DQogICAgIDEy LjMuIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyIHdpdGggYSBzaW5nbGUgQUVTLTI1Ni1DQkMNCiAg ICAgICAgICAgRW5jcnlwdGVkIEhPVFAgU2VjcmV0IEtleSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiA2MA0KICAgICAxMi40LiBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciB3aXRoIHNp Z25hdHVyZSBhbmQgYSBzaW5nbGUNCiAgICAgICAgICAgUGFzc3dvcmQtYmFzZWQgRW5jcnlwdGVk IEhPVFAgU2VjcmV0IEtleSAuIC4gLiAuIC4gLiAuIC4gLiA2MQ0KICAgICAxMi41LiBTeW1tZXRy aWMgS2V5IENvbnRhaW5lciB3aXRoIGEgc2luZ2xlIFJTQSAxLjUNCiAgICAgICAgICAgRW5jcnlw dGVkIEhPVFAgU2VjcmV0IEtleSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA2Mw0K ICAgMTMuIFJlZmVyZW5jZXMgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIDY1DQogICAgIDEzLjEuIE5vcm1hdGl2ZSBSZWZlcmVuY2VzIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gNjUNCiAgICAgMTMuMi4gSW5mb3JtYXRpdmUg UmVmZXJlbmNlcyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA2NQ0KICAgQXV0 aG9ycycgQWRkcmVzc2VzIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIDY3DQogICBJbnRlbGxlY3R1YWwgUHJvcGVydHkgYW5kIENvcHlyaWdodCBTdGF0ZW1l bnRzIC4gLiAuIC4gLiAuIC4gLiAuIC4gNjgNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1i ZXIgMjksIDIwMDggICAgICAgICAgICAgICBbUGFnZSA0XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAg ICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoN Cg0KMS4gIEludHJvZHVjdGlvbg0KDQogICBXaXRoIGluY3JlYXNpbmcgdXNlIG9mIHN5bW1ldHJp YyBrZXkgYmFzZWQgYXV0aGVudGljYXRpb24gc3lzdGVtcw0KICAgc3VjaCBhcyBzeXN0ZW1zIGJh c2VkIG9uZSB0aW1lIHBhc3N3b3JkIChPVFApIGFuZCBjaGFsbGVuZ2UgcmVzcG9uc2UNCiAgIG1l Y2hhbmlzbXMsIHRoZXJlIGlzIGEgbmVlZCBmb3IgdmVuZG9yIGludGVyb3BlcmFiaWxpdHkgYW5k IGENCiAgIHN0YW5kYXJkIGZvcm1hdCBmb3IgaW1wb3J0aW5nLCBleHBvcnRpbmcgb3IgcHJvdmlz aW9uaW5nIHN5bW1ldHJpYw0KICAga2V5cyBmcm9tIG9uZSBzeXN0ZW0gdG8gYW5vdGhlci4gIFRy YWRpdGlvbmFsbHkgYXV0aGVudGljYXRpb24gc2VydmVyDQogICB2ZW5kb3JzIGFuZCBzZXJ2aWNl IHByb3ZpZGVycyBoYXZlIHVzZWQgcHJvcHJpZXRhcnkgZm9ybWF0cyBmb3INCiAgIGltcG9ydGlu ZywgZXhwb3J0aW5nIGFuZCBwcm92aXNpb25pbmcgdGhlc2Uga2V5cyBpbnRvIHRoZWlyIHN5c3Rl bXMNCiAgIG1ha2luZyBpdCBoYXJkIHRvIHVzZSB0b2tlbnMgZnJvbSB2ZW5kb3IgQSB3aXRoIGEg c2VydmVyIGZyb20gdmVuZG9yDQogICBCLg0KDQogICBUaGlzIEludGVybmV0IGRyYWZ0IGRlc2Ny aWJlcyBhIHN0YW5kYXJkIGZvcm1hdCBmb3Igc2VyaWFsaXppbmcNCiAgIHN5bW1ldHJpYyBrZXlz IHN1Y2ggYXMgT1RQIHNoYXJlZCBzZWNyZXRzIGZvciBzeXN0ZW0gaW1wb3J0LCBleHBvcnQNCiAg IG9yIG5ldHdvcmsvcHJvdG9jb2wgdHJhbnNwb3J0LiAgVGhlIGdvYWwgaXMgdGhhdCB0aGUgZm9y bWF0IHdpbGwNCiAgIGZhY2lsaXRhdGUgZHluYW1pYyBwcm92aXNpb25pbmcgYW5kIHRyYW5zZmVy IG9mIHN5bW1ldHJpYyBrZXlzIHN1Y2gNCiAgIGFzIE9UUCBzaGFyZWQgc2VjcmV0cyBvciBlbmNy eXB0aW9uIGtleXMgb2YgZGlmZmVyZW50IHR5cGVzLiAgSW4gdGhlDQogICBjYXNlIG9mIE9UUCBz aGFyZWQgc2VjcmV0cywgdGhlIGZvcm1hdCB3aWxsIGZhY2lsaXRhdGUgZHluYW1pYw0KICAgcHJv dmlzaW9uaW5nIHVzaW5nIGFuIG9ubGluZSBwcm92aXNpb25pbmcgcHJvdG9jb2wgdG8gZGlmZmVy ZW50DQogICBmbGF2b3JzIG9mIGVtYmVkZGVkIHRva2VucyBvciBhbGxvdyBjdXN0b21lcnMgdG8g aW1wb3J0IG5ldyBvcg0KICAgZXhpc3RpbmcgdG9rZW5zIGluIGJhdGNoIG9yIHNpbmdsZSBpbnN0 YW5jZXMgaW50byBhIGNvbXBsaWFudCBzeXN0ZW0uDQoNCiAgIFRoaXMgZHJhZnQgYWxzbyBzcGVj aWZpZXMgdGhlIGtleSBhdHRyaWJ1dGVzIHJlcXVpcmVkIGZvciBjb21wdXRhdGlvbg0KICAgc3Vj aCBhcyB0aGUgaW5pdGlhbCBldmVudCBjb3VudGVyIHVzZWQgaW4gdGhlIEhPVFAgYWxnb3JpdGht IFtIT1RQXS4NCiAgIEl0IGlzIGFsc28gYXBwbGljYWJsZSBmb3Igb3RoZXIgdGltZS1iYXNlZCBv ciBwcm9wcmlldGFyeSBhbGdvcml0aG1zLg0KDQogICBUbyBwcm92aWRlIGFuIGFuYWxvZ3ksIGlu IHB1YmxpYyBrZXkgZW52aXJvbm1lbnRzIHRoZSBQS0NTIzEyIGZvcm1hdA0KICAgW1BLQ1MxMl0g aXMgY29tbW9ubHkgdXNlZCBmb3IgaW1wb3J0aW5nIGFuZCBleHBvcnRpbmcgcHJpdmF0ZSBrZXlz DQogICBhbmQgY2VydGlmaWNhdGVzIGJldHdlZW4gc3lzdGVtcy4gIEluIHRoZSBlbnZpcm9ubWVu dHMgb3V0bGluZWQgaW4NCiAgIHRoaXMgZG9jdW1lbnQgd2hlcmUgT1RQIGtleXMgbWF5IGJlIHRy YW5zcG9ydGVkIGRpcmVjdGx5IGRvd24gdG8NCiAgIHNtYXJ0Y2FyZHMgb3IgZGV2aWNlcyB3aXRo IGxpbWl0ZWQgY29tcHV0aW5nIGNhcGFiaWxpdGllcywgYSBmb3JtYXQNCiAgIHdpdGggc21hbGwg KHNpemUgaW4gYnl0ZXMpIGFuZCBleHBsaWNpdCBzaGFyZWQgc2VjcmV0IGNvbmZpZ3VyYXRpb24N CiAgIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBpcyBkZXNpcmFibGUsIGF2b2lkaW5nIGNvbXBsZXhp dHkgb2YgUEtDUyMxMi4NCiAgIEZvciBleGFtcGxlLCBvbmUgd291bGQgaGF2ZSB0byB1c2Ugb3Bh cXVlIGRhdGEgd2l0aGluIFBLQ1MjMTIgdG8NCiAgIGNhcnJ5IHNoYXJlZCBzZWNyZXQgYXR0cmli dXRlcyB1c2VkIGZvciBPVFAgY2FsY3VsYXRpb25zLCB3aGVyZWFzIGENCiAgIG1vcmUgZXhwbGlj aXQgYXR0cmlidXRlIHNjaGVtYSBkZWZpbml0aW9uIGlzIGJldHRlciBmb3INCiAgIGludGVyb3Bl cmFiaWxpdHkgYW5kIGVmZmljaWVuY3kuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KSG95 ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAg ICAgIFtQYWdlIDVdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBL ZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQoyLiAgVGVybWlub2xvZ3kNCg0K Mi4xLiAgS2V5IFdvcmRzDQoNCiAgIFRoZSBrZXkgd29yZHMgIk1VU1QiLCAiTVVTVCBOT1QiLCAi UkVRVUlSRUQiLCAiU0hBTEwiLCAiU0hBTEwgTk9UIiwNCiAgICJTSE9VTEQiLCAiU0hPVUxEIE5P VCIsICJSRUNPTU1FTkRFRCIsICJNQVkiLCBhbmQgIk9QVElPTkFMIiBpbiB0aGlzDQogICBkb2N1 bWVudCBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZGVzY3JpYmVkIGluIFtSRkMyMTE5XS4NCg0K Mi4yLiAgRGVmaW5pdGlvbnMNCg0KICAgVGhpcyBzZWN0aW9uIGRlZmluZXMgdGVybXMgdXNlZCBp biB0aGlzIGRvY3VtZW50LiAgVGhlIHNhbWUgdGVybXMgbWF5DQogICBiZSBkZWZpbmVkIGRpZmZl cmVudGx5IGluIG90aGVyIGRvY3VtZW50cy4NCg0KICAgQXV0aGVudGljYXRpb24gVG9rZW46ICBB IHBoeXNpY2FsIGRldmljZSB0aGF0IGFuIGF1dGhvcml6ZWQgdXNlciBvZg0KICAgICAgY29tcHV0 ZXIgc2VydmljZXMgaXMgZ2l2ZW4gdG8gYWlkIGluIGF1dGhlbnRpY2F0aW9uLiAgVGhlIHRlcm0g bWF5DQogICAgICBhbHNvIHJlZmVyIHRvIHNvZnR3YXJlIHRva2Vucy4NCg0KICAgQnVsayBQcm92 aXNpb25pbmc6ICBUcmFuc2ZlcnJpbmcgbXVsdGlwbGUga2V5cyBsaW5rZWQgdG8gbXVsdGlwbGUN CiAgICAgIGRldmljZXMgaW4gYSBzaW5nbGUgZXhlY3V0aW9uIHN0ZXAgd2l0aGluIG9uZSBzaW5n bGUgUFNLQw0KICAgICAgS2V5Q29udGFpbmVyDQoNCiAgIENyeXB0b2dyYXBoaWMgTW9kdWxlOiAg QSBjb21wb25lbnQgb2YgYW4gYXBwbGljYXRpb24sIHdoaWNoIGVuYWJsZXMNCiAgICAgIHN5bW1l dHJpYyBrZXkgY3J5cHRvZ3JhcGhpYyBmdW5jdGlvbmFsaXR5DQoNCiAgIENyeXB0b2dyYXBoaWMg S2V5OiAgQSBwYXJhbWV0ZXIgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGENCiAgICAgIGNyeXB0 b2dyYXBoaWMgYWxnb3JpdGhtIHRoYXQgZGV0ZXJtaW5lcyBpdHMgb3BlcmF0aW9uIGluIHN1Y2gg YQ0KICAgICAgd2F5IHRoYXQgYW4gZW50aXR5IHdpdGgga25vd2xlZGdlIG9mIHRoZSBrZXkgY2Fu IHJlcHJvZHVjZSBvcg0KICAgICAgcmV2ZXJzZSB0aGUgb3BlcmF0aW9uLCB3aGlsZSBhbiBlbnRp dHkgd2l0aG91dCBrbm93bGVkZ2Ugb2YgdGhlDQogICAgICBrZXkgY2Fubm90IChzZWUgW05JU1Qt U1A4MDAtNTddKQ0KDQogICBDcnlwdG9ncmFwaGljIFRva2VuOiAgU2VlIEF1dGhlbnRpY2F0aW9u IFRva2VuDQoNCiAgIERldmljZTogIEEgcGh5c2ljYWwgcGllY2Ugb2YgaGFyZHdhcmUsIG9yIGEg c29mdHdhcmUgZnJhbWV3b3JrLCB0aGF0DQogICAgICBob3N0cyBzeW1tZXRyaWMga2V5cw0KDQog ICBEZXZpY2VJbmZvOiAgQSBzZXQgb2YgZWxlbWVudHMgd2hvc2UgdmFsdWVzIGNvbWJpbmVkIHVu aXF1ZWx5DQogICAgICBpZGVudGlmeSBhIGRldmljZSBlLmcuICBNYW51ZmFjdHVyZSAnQUNNRSBh bmQgU2VyaWFsbnVtYmVyDQogICAgICAnMTIzNDU2NzgnDQoNCiAgIER5bmFtaWMgUHJvdmlzaW9u aW5nOiAgVXNhZ2Ugb2YgYSBwcm90b2NvbCwgc3VjaCBhcyBEU0tQUCwgdG8gbWFrZSBhDQogICAg ICBrZXkgY29udGFpbmVyIGF2YWlsYWJsZSB0byBhIHJlY2lwaWVudA0KDQogICBFbmNyeXB0aW9u IEtleTogIEEga2V5IHVzZWQgdG8gZW5jcnlwdCBrZXkNCg0KICAgS2V5OiAgU2VlIENyeXB0b2dy YXBoaWMgS2V5DQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERl Y2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICAgW1BhZ2UgNl0NCgwNCkludGVybmV0LURyYWZ0 ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAw OA0KDQoNCiAgIEhhcmR3YXJlIFRva2VuOiAgU2VlIEF1dGhlbnRpY2F0aW9uIFRva2VuDQoNCiAg IEtleSBBbGdvcml0aG06ICBBIHdlbGwtZGVmaW5lZCBjb21wdXRhdGlvbmFsIHByb2NlZHVyZSB0 aGF0IHRha2VzDQogICAgICB2YXJpYWJsZSBpbnB1dHMgaW5jbHVkaW5nIGEgY3J5cHRvZ3JhcGhp YyBrZXkgYW5kIHByb2R1Y2VzIGFuDQogICAgICBvdXRwdXQuDQoNCiAgIEtleSBDb250YWluZXI6 ICBBbiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgc3ltbWV0cmljIGtleXMgYW5kIHRoZWlyDQog ICAgICBhdHRyaWJ1dGVzIGZvciBzZXQgb2YgZGV2aWNlcw0KDQogICBLZXkgSUQgKEtleUlEKTog IEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzeW1tZXRyaWMga2V5DQoNCiAgIEtleSBJc3N1 ZXI6ICBBbiBvcmdhbml6YXRpb24gdGhhdCBpc3N1ZXMgc3ltbWV0cmljIGtleXMgdG8gZW5kLXVz ZXJzDQoNCiAgIEtleSBUeXBlOiAgVGhlIHR5cGUgb2Ygc3ltbWV0cmljIGtleSBjcnlwdG9ncmFw aGljIG1ldGhvZHMgZm9yIHdoaWNoDQogICAgICB0aGUga2V5IHdpbGwgYmUgdXNlZCAoZS5nLiwg T0FUSCBIT1RQIG9yIFJTQSBTZWN1cklEDQogICAgICBhdXRoZW50aWNhdGlvbiwgQUVTIGVuY3J5 cHRpb24sIGV0Yy4pDQoNCiAgIFNlY3JldCBLZXk6ICBUaGUgc3ltbWV0cmljIGtleSBkYXRhDQoN CiAgIFNvZnR3YXJlIFRva2VuOiAgQSB0eXBlIG9mIGF1dGhlbnRpY2F0aW9uIHRva2VuIHRoYXQg aXMgc3RvcmVkIG9uIGENCiAgICAgIGdlbmVyYWwtcHVycG9zZSBlbGVjdHJvbmljIGRldmljZSBz dWNoIGFzIGEgZGVza3RvcCBjb21wdXRlciwNCiAgICAgIGxhcHRvcCwgUERBLCBvciBtb2JpbGUg cGhvbmUNCg0KICAgVG9rZW46ICBTZWUgQXV0aGVudGljYXRpb24gVG9rZW4NCg0KICAgVXNlcjog IFRoZSBwZXJzb24gb3IgY2xpZW50IHRvIHdob20gZGV2aWNlcyBhcmUgaXNzdWVkDQoNCiAgIFVz ZXIgSUQ6ICBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdXNlciBvciBjbGllbnQNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAg ICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICAgW1BhZ2UgN10N CgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIg ICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjMuICBVc2UgQ2FzZXMNCg0KICAgVGhpcyBzZWN0aW9u IGRlc2NyaWJlcyBhIGNvbXByZWhlbnNpdmUgbGlzdCBvZiB1c2UgY2FzZXMgdGhhdA0KICAgaW5z cGlyZWQgdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgc3BlY2lmaWNhdGlvbi4gIFRoZXNlIHJlcXVp cmVtZW50cw0KICAgd2VyZSB1c2VkIHRvIGRlcml2ZSB0aGUgcHJpbWFyeSByZXF1aXJlbWVudCB0 aGF0IGRyb3ZlIHRoZSBkZXNpZ24uDQogICBUaGVzZSByZXF1aXJlbWVudHMgYXJlIGNvdmVyZWQg aW4gdGhlIG5leHQgc2VjdGlvbi4NCg0KICAgVGhlc2UgdXNlIGNhc2VzIGFsc28gaGVscCBpbiB1 bmRlcnN0YW5kaW5nIHRoZSBhcHBsaWNhYmlsaXR5IG9mIHRoaXMNCiAgIHNwZWNpZmljYXRpb24g dG8gcmVhbCB3b3JsZCBzaXR1YXRpb25zLg0KDQozLjEuICBPbmxpbmUgVXNlIENhc2VzDQoNCiAg IFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIHVzZSBjYXNlcyByZWxhdGVkIHRvIHByb3Zpc2lv bmluZyB0aGUga2V5cw0KICAgdXNpbmcgYW4gb25saW5lIHByb3Zpc2lvbmluZyBwcm90b2NvbCBz dWNoIGFzIFtEU0tQUF0NCg0KMy4xLjEuICBUcmFuc3BvcnQgb2Yga2V5cyBmcm9tIFNlcnZlciB0 byBDcnlwdG8gTW9kdWxlDQoNCiAgIEZvciBleGFtcGxlLCBhIG1vYmlsZSBkZXZpY2UgdXNlciB3 YW50cyB0byBvYnRhaW4gYSBzeW1tZXRyaWMga2V5IGZvcg0KICAgdXNlIHdpdGggYSBjcnlwdG9t b2R1bGUgb24gdGhlIGRldmljZS4gIFRoZSBjcnlwdG9tb2R1bGUgY2xpZW50IGZyb20NCiAgIHZl bmRvciBBIGluaXRpYXRlcyB0aGUgcHJvdmlzaW9uaW5nIHByb2Nlc3MgYWdhaW5zdCBhIHByb3Zp c2lvbmluZw0KICAgc3lzdGVtIGZyb20gdmVuZG9yIEIgdXNpbmcgYSBzdGFuZGFyZHMtYmFzZWQg cHJvdmlzaW9uaW5nIHByb3RvY29sDQogICBzdWNoIGFzIFtEU0tQUF0uICBUaGUgcHJvdmlzaW9u aW5nIGVudGl0eSBkZWxpdmVycyBvbmUgb3IgbW9yZSBrZXlzDQogICBpbiBhIHN0YW5kYXJkIGZv cm1hdCB0aGF0IGNhbiBiZSBwcm9jZXNzZWQgYnkgdGhlIG1vYmlsZSBkZXZpY2UuDQoNCiAgIEZv ciBleGFtcGxlLCBpbiBhIHZhcmlhdGlvbiBvZiB0aGUgYWJvdmUsIGluc3RlYWQgb2YgdGhlIHVz ZXIncw0KICAgbW9iaWxlIHBob25lLCBhIGtleSBpcyBwcm92aXNpb25lZCBpbiB0aGUgdXNlcidz IHNvZnQgdG9rZW4NCiAgIGFwcGxpY2F0aW9uIG9uIGEgbGFwdG9wIHVzaW5nIGEgbmV0d29yay1i YXNlZCBvbmxpbmUgcHJvdG9jb2wuICBBcw0KICAgYmVmb3JlLCB0aGUgcHJvdmlzaW9uaW5nIHN5 c3RlbSBkZWxpdmVycyBhIGtleSBpbiBhIHN0YW5kYXJkIGZvcm1hdA0KICAgdGhhdCBjYW4gYmUg cHJvY2Vzc2VkIGJ5IHRoZSBzb2Z0IHRva2VuIG9uIHRoZSBQQy4NCg0KICAgRm9yIGV4YW1wbGUs IHRoZSBlbmQtdXNlciBvciB0aGUga2V5IGlzc3VlciB3YW50cyB0byB1cGRhdGUgb3INCiAgIGNv bmZpZ3VyZSBhbiBleGlzdGluZyBrZXkgaW4gdGhlIGNyeXB0b21vZHVsZSBhbmQgcmVxdWVzdHMg YQ0KICAgcmVwbGFjZW1lbnQga2V5IGNvbnRhaW5lci4gIFRoZSBjb250YWluZXIgbWF5IG9yIG1h eSBub3QgaW5jbHVkZSBhDQogICBuZXcga2V5IGFuZCBtYXkgaW5jbHVkZSBuZXcgb3IgdXBkYXRl ZCBrZXkgYXR0cmlidXRlcyBzdWNoIGFzIGEgbmV3DQogICBjb3VudGVyIHZhbHVlIGluIEhPVFAg a2V5IGNhc2UsIGEgbW9kaWZpZWQgcmVzcG9uc2UgZm9ybWF0IG9yIGxlbmd0aCwNCiAgIGEgbmV3 IGZyaWVuZGx5IG5hbWUsIGV0Yy4NCg0KMy4xLjIuICBUcmFuc3BvcnQgb2Yga2V5cyBmcm9tIENy eXB0byBNb2R1bGUgdG8gQ3J5cHRvIE1vZHVsZQ0KDQogICBGb3IgZXhhbXBsZSwgYSB1c2VyIHdh bnRzIHRvIHRyYW5zcG9ydCBhIGtleSBmcm9tIG9uZSBjcnlwdG9tb2R1bGUgdG8NCiAgIGFub3Ro ZXIuICBUaGVyZSBtYXkgYmUgdHdvIGNyeXB0b2dyYXBoaWMgbW9kdWxlcywgb25lIG9uIGEgY29t cHV0ZXINCiAgIG9uZSBvbiBhIG1vYmlsZSBwaG9uZSwgYW5kIHRoZSB1c2VyIHdhbnRzIHRvIHRy YW5zcG9ydCBhIGtleSBmcm9tIHRoZQ0KICAgY29tcHV0ZXIgdG8gdGhlIG1vYmlsZSBwaG9uZS4g IFRoZSB1c2VyIGNhbiBleHBvcnQgdGhlIGtleSBhbmQNCiAgIHJlbGF0ZWQgZGF0YSBpbiBhIHN0 YW5kYXJkIGZvcm1hdCBmb3IgaW5wdXQgaW50byB0aGUgb3RoZXINCiAgIGNyeXB0b21vZHVsZS4N Cg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjks IDIwMDggICAgICAgICAgICAgICBbUGFnZSA4XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0 YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KMy4x LjMuICBUcmFuc3BvcnQgb2Yga2V5cyBmcm9tIENyeXB0byBNb2R1bGUgdG8gU2VydmVyDQoNCiAg IEZvciBleGFtcGxlLCBhIHVzZXIgd2FudHMgdG8gYWN0aXZhdGUgYW5kIHVzZSBhIG5ldyBrZXkg YW5kIHJlbGF0ZWQNCiAgIGRhdGEgYWdhaW5zdCBhIHZhbGlkYXRpb24gc3lzdGVtIHRoYXQgaXMg bm90IGF3YXJlIG9mIHRoaXMga2V5LiAgVGhpcw0KICAga2V5IG1heSBiZSBlbWJlZGRlZCBpbiB0 aGUgY3J5cHRvbW9kdWxlIChlLmcuICBTRCBjYXJkLCBVU0IgZHJpdmUpDQogICB0aGF0IHRoZSB1 c2VyIGhhcyBwdXJjaGFzZWQgYXQgdGhlIGxvY2FsIGVsZWN0cm9uaWNzIHJldGFpbGVyLiAgQWxv bmcNCiAgIHdpdGggdGhlIGNyeXB0b21vZHVsZSwgdGhlIHVzZXIgbWF5IGdldCB0aGUga2V5IG9u IGEgQ0Qgb3IgYSBmbG9wcHkNCiAgIGluIGEgc3RhbmRhcmQgZm9ybWF0LiAgVGhlIHVzZXIgY2Fu IG5vdyB1cGxvYWQgdmlhIGEgc2VjdXJlIG9ubGluZQ0KICAgY2hhbm5lbCBvciBpbXBvcnQgdGhp cyBrZXkgYW5kIHJlbGF0ZWQgZGF0YSBpbnRvIHRoZSBuZXcgdmFsaWRhdGlvbg0KICAgc3lzdGVt IGFuZCBzdGFydCB1c2luZyB0aGUga2V5Lg0KDQozLjEuNC4gIFNlcnZlciB0byBzZXJ2ZXIgQnVs ayBpbXBvcnQvZXhwb3J0IG9mIGtleXMNCg0KICAgRnJvbSB0aW1lIHRvIHRpbWUsIGEga2V5IG1h bmFnZW1lbnQgc3lzdGVtIG1heSBiZSByZXF1aXJlZCB0byBpbXBvcnQNCiAgIG9yIGV4cG9ydCBr ZXlzIGluIGJ1bGsgZnJvbSBvbmUgZW50aXR5IHRvIGFub3RoZXIuDQoNCiAgIEZvciBleGFtcGxl LCBpbnN0ZWFkIG9mIGltcG9ydGluZyBrZXlzIGZyb20gYSBtYW51ZmFjdHVyZXIgdXNpbmcgYQ0K ICAgZmlsZSwgYSB2YWxpZGF0aW9uIHNlcnZlciBtYXkgZG93bmxvYWQgdGhlIGtleXMgdXNpbmcg YW4gb25saW5lDQogICBwcm90b2NvbC4gIFRoZSBrZXlzIGNhbiBiZSBkb3dubG9hZGVkIGluIGEg c3RhbmRhcmQgZm9ybWF0IHRoYXQgY2FuDQogICBiZSBwcm9jZXNzZWQgYnkgYSB2YWxpZGF0aW9u IHN5c3RlbS4NCg0KICAgRm9yIGV4YW1wbGUsIGluIGEgdmFyaWF0aW9uIG9mIHRoZSBhYm92ZSwg YW4gT1RBIGtleSBwcm92aXNpb25pbmcNCiAgIGdhdGV3YXkgdGhhdCBwcm92aXNpb25zIGtleXMg dG8gbW9iaWxlIHBob25lcyBtYXkgb2J0YWluIGtleSBtYXRlcmlhbA0KICAgZnJvbSBhIGtleSBp c3N1ZXIgdXNpbmcgYW4gb25saW5lIHByb3RvY29sLiAgVGhlIGtleXMgYXJlIGRlbGl2ZXJlZA0K ICAgaW4gYSBzdGFuZGFyZCBmb3JtYXQgdGhhdCBjYW4gYmUgcHJvY2Vzc2VkIGJ5IHRoZSBrZXkg cHJvdmlzaW9uaW5nDQogICBnYXRld2F5IGFuZCBzdWJzZXF1ZW50bHkgc2VudCB0byB0aGUgZW5k LXVzZXIncyBtb2JpbGUgcGhvbmUuDQoNCjMuMi4gIE9mZmxpbmUgVXNlIENhc2VzDQoNCiAgIFRo aXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIHVzZSBjYXNlcyByZWxhdGluZyB0byBvZmZsaW5lIHRy YW5zcG9ydCBvZg0KICAga2V5cyBmcm9tIG9uZSBzeXN0ZW0gdG8gYW5vdGhlciwgdXNpbmcgc29t ZSBmb3JtIG9mIGV4cG9ydCBhbmQgaW1wb3J0DQogICBtb2RlbC4NCg0KMy4yLjEuICBTZXJ2ZXIg dG8gc2VydmVyIEJ1bGsgaW1wb3J0L2V4cG9ydCBvZiBrZXlzDQoNCiAgIEZvciBleGFtcGxlLCBj cnlwdG8gbW9kdWxlcyBzdWNoIGFzIE9UUCBhdXRoZW50aWNhdGlvbiB0b2tlbnMsIG1heQ0KICAg aGF2ZSB0aGVpciBzeW1tZXRyaWMga2V5cyBpbml0aWFsaXplZCBkdXJpbmcgdGhlIG1hbnVmYWN0 dXJpbmcNCiAgIHByb2Nlc3MgaW4gYnVsaywgcmVxdWlyaW5nIGNvcGllcyBvZiB0aGUga2V5cyBh bmQgYWxnb3JpdGhtIGRhdGEgdG8NCiAgIGJlIGxvYWRlZCBpbnRvIHRoZSBhdXRoZW50aWNhdGlv biBzeXN0ZW0gdGhyb3VnaCBhIGZpbGUgb24gcG9ydGFibGUNCiAgIG1lZGlhLiAgVGhlIG1hbnVm YWN0dXJlciBwcm92aWRlcyB0aGUga2V5cyBhbmQgcmVsYXRlZCBkYXRhIGluIHRoZQ0KICAgZm9y bSBvZiBhIGZpbGUgY29udGFpbmluZyByZWNvcmRzIGluIHN0YW5kYXJkIGZvcm1hdCwgdHlwaWNh bGx5IG9uIGENCiAgIENELiAgTm90ZSB0aGF0IHRoZSB0b2tlbiBtYW51ZmFjdHVyZXIgYW5kIHRo ZSB2ZW5kb3IgZm9yIHRoZQ0KICAgdmFsaWRhdGlvbiBzeXN0ZW0gbWF5IGJlIHRoZSBzYW1lIG9y IGRpZmZlcmVudC4gIFNvbWUgY3J5cHRvIG1vZHVsZXMNCiAgIHdpbGwgYWxsb3cgbG9jYWwgUElO IG1hbmFnZW1lbnQgKHRoZSBkZXZpY2Ugd2lsbCBoYXZlIGEgUElOIHBhZCkNCiAgIGhlbmNlIHJh bmRvbSBpbml0aWFsIFBJTnMgc2V0IGF0IG1hbnVmYWN0dXJpbmcgc2hvdWxkIGJlIHRyYW5zbWl0 dGVkDQogICB0b2dldGhlciB3aXRoIHRoZSByZXNwZWN0aXZlIGtleXMgdGhleSBwcm90ZWN0Lg0K DQogICBGb3IgZXhhbXBsZSwgYW4gZW50ZXJwcmlzZSB3YW50cyB0byBwb3J0IGtleXMgYW5kIHJl bGF0ZWQgZGF0YSBmcm9tDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERl Y2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICAgW1BhZ2UgOV0NCgwNCkludGVybmV0LURyYWZ0 ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAw OA0KDQoNCiAgIGFuIGV4aXN0aW5nIHZhbGlkYXRpb24gc3lzdGVtIEEgaW50byBhIGRpZmZlcmVu dCB2YWxpZGF0aW9uIHN5c3RlbSBCLg0KICAgVGhlIGV4aXN0aW5nIHZhbGlkYXRpb24gc3lzdGVt IHByb3ZpZGVzIHRoZSBlbnRlcnByaXNlIHdpdGggYQ0KICAgZnVuY3Rpb25hbGl0eSB0aGF0IGVu YWJsZXMgZXhwb3J0IG9mIGtleXMgYW5kIHJlbGF0ZWQgZGF0YSAoZS5nLiBmb3INCiAgIE9UUCBh dXRoZW50aWNhdGlvbiB0b2tlbnMpIGluIGEgc3RhbmRhcmQgZm9ybWF0LiAgU2luY2UgdGhlIE9U UA0KICAgdG9rZW5zIGFyZSBpbiB0aGUgc3RhbmRhcmQgZm9ybWF0LCB0aGUgZW50ZXJwcmlzZSBj YW4gaW1wb3J0IHRoZQ0KICAgdG9rZW4gcmVjb3JkcyBpbnRvIHRoZSBuZXcgdmFsaWRhdGlvbiBz eXN0ZW0gQiBhbmQgc3RhcnQgdXNpbmcgdGhlDQogICBleGlzdGluZyB0b2tlbnMuICBOb3RlIHRo YXQgdGhlIHZlbmRvcnMgZm9yIHRoZSB0d28gdmFsaWRhdGlvbg0KICAgc3lzdGVtcyBtYXkgYmUg dGhlIHNhbWUgb3IgZGlmZmVyZW50Lg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3ll ciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAg ICBbUGFnZSAxMF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtl eSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjQuICBSZXF1aXJlbWVudHMNCg0K ICAgVGhpcyBzZWN0aW9uIG91dGxpbmVzIHRoZSBtb3N0IHJlbGV2YW50IHJlcXVpcmVtZW50cyB0 aGF0IGFyZSB0aGUNCiAgIGJhc2lzIG9mIHRoaXMgd29yay4gIFNldmVyYWwgb2YgdGhlIHJlcXVp cmVtZW50cyB3ZXJlIGRlcml2ZWQgZnJvbQ0KICAgdXNlIGNhc2VzIGRlc2NyaWJlZCBhYm92ZS4N Cg0KICAgUjE6ICAgVGhlIGZvcm1hdCBNVVNUIHN1cHBvcnQgdHJhbnNwb3J0IG9mIG11bHRpcGxl IHR5cGVzIG9mDQogICAgICAgICBzeW1tZXRyaWMga2V5cyBhbmQgcmVsYXRlZCBhdHRyaWJ1dGVz IGZvciBhbGdvcml0aG1zIGluY2x1ZGluZw0KICAgICAgICAgSE9UUCwgb3RoZXIgT1RQLCBjaGFs bGVuZ2UtcmVzcG9uc2UsIGV0Yy4NCg0KICAgUjI6ICAgVGhlIGZvcm1hdCBNVVNUIGhhbmRsZSB0 aGUgc3ltbWV0cmljIGtleSBpdHNlbGYgYXMgd2VsbCBvZg0KICAgICAgICAgYXR0cmlidXRlcyB0 aGF0IGFyZSB0eXBpY2FsbHkgYXNzb2NpYXRlZCB3aXRoIHN5bW1ldHJpYyBrZXlzLg0KICAgICAg ICAgU29tZSBvZiB0aGVzZSBhdHRyaWJ1dGVzIG1heSBiZQ0KDQogICAgICAgICAqICBVbmlxdWUg S2V5IElkZW50aWZpZXINCg0KICAgICAgICAgKiAgSXNzdWVyIGluZm9ybWF0aW9uDQoNCiAgICAg ICAgICogIEFsZ29yaXRobSBJRA0KDQogICAgICAgICAqICBBbGdvcml0aG0gbW9kZQ0KDQogICAg ICAgICAqICBJc3N1ZXIgTmFtZQ0KDQogICAgICAgICAqICBLZXkgZnJpZW5kbHkgbmFtZQ0KDQog ICAgICAgICAqICBFdmVudCBjb3VudGVyIHZhbHVlIChtb3ZpbmcgZmFjdG9yIGZvciBPVFAgYWxn b3JpdGhtcykNCg0KICAgICAgICAgKiAgVGltZSB2YWx1ZQ0KDQogICBSMzogICBUaGUgZm9ybWF0 IFNIT1VMRCBzdXBwb3J0IGJvdGggb2ZmbGluZSBhbmQgb25saW5lIHNjZW5hcmlvcy4NCiAgICAg ICAgIFRoYXQgaXMgaXQgc2hvdWxkIGJlIHNlcmlhbGl6YWJsZSB0byBhIGZpbGUgYXMgd2VsbCBh cyBpdA0KICAgICAgICAgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSB0aGlzIGZvcm1hdCBpbiBv bmxpbmUgcHJvdmlzaW9uaW5nDQogICAgICAgICBwcm90b2NvbHMgc3VjaCBhcyBbRFNLUFBdDQoN CiAgIFI0OiAgIFRoZSBmb3JtYXQgU0hPVUxEIGFsbG93IGJ1bGsgcmVwcmVzZW50YXRpb24gb2Yg c3ltbWV0cmljIGtleXMNCg0KICAgUjU6ICAgVGhlIGZvcm1hdCBTSE9VTEQgYWxsb3cgYnVsayBy ZXByZXNlbnRhdGlvbiBvZiBQSU5zIHJlbGF0ZWQgdG8NCiAgICAgICAgIHNwZWNpZmljIGtleXMN Cg0KICAgUjY6ICAgVGhlIGZvcm1hdCBTSE9VTEQgYmUgcG9ydGFibGUgdG8gdmFyaW91cyBwbGF0 Zm9ybXMuDQogICAgICAgICBGdXJ0aGVybW9yZSwgaXQgU0hPVUxEIGJlIGNvbXB1dGF0aW9uYWxs eSBlZmZpY2llbnQgdG8gcHJvY2Vzcy4NCg0KICAgUjc6ICAgVGhlIGZvcm1hdCBNVVNUIHByb3Zp ZGUgYXBwcm9wcmlhdGUgbGV2ZWwgb2Ygc2VjdXJpdHkgaW4gdGVybXMNCiAgICAgICAgIG9mIGRh dGEgZW5jcnlwdGlvbiBhbmQgZGF0YSBpbnRlZ3JpdHkuDQoNCg0KDQoNCg0KDQpIb3llciwgZXQg YWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICBbUGFn ZSAxMV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250 YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIFI4OiAgIEZvciBvbmxpbmUgc2NlbmFy aW9zIHRoZSBmb3JtYXQgU0hPVUxEIE5PVCByZWx5IG9uIHRyYW5zcG9ydA0KICAgICAgICAgbGV2 ZWwgc2VjdXJpdHkgKGUuZy4sIFNTTC9UTFMpIGZvciBjb3JlIHNlY3VyaXR5IHJlcXVpcmVtZW50 cy4NCg0KICAgUjk6ICAgVGhlIGZvcm1hdCBTSE9VTEQgYmUgZXh0ZW5zaWJsZS4gIEl0IFNIT1VM RCBlbmFibGUgZXh0ZW5zaW9uDQogICAgICAgICBwb2ludHMgYWxsb3dpbmcgdmVuZG9ycyB0byBz cGVjaWZ5IGFkZGl0aW9uYWwgYXR0cmlidXRlcyBpbiB0aGUNCiAgICAgICAgIGZ1dHVyZS4NCg0K ICAgUjEwOiAgVGhlIGZvcm1hdCBTSE9VTEQgYWxsb3cgZm9yIGRpc3RyaWJ1dGlvbiBvZiBrZXkg ZGVyaXZhdGlvbiBkYXRhDQogICAgICAgICB3aXRob3V0IHRoZSBhY3R1YWwgc3ltbWV0cmljIGtl eSBpdHNlbGYuICBUaGlzIGlzIHRvIHN1cHBvcnQNCiAgICAgICAgIHN5bW1ldHJpYyBrZXkgbWFu YWdlbWVudCBzY2hlbWVzIHRoYXQgcmVseSBvbiBrZXkgZGVyaXZhdGlvbg0KICAgICAgICAgYWxn b3JpdGhtcyBiYXNlZCBvbiBhIHByZS1wbGFjZWQgbWFzdGVyIGtleS4gIFRoZSBrZXkNCiAgICAg ICAgIGRlcml2YXRpb24gZGF0YSB0eXBpY2FsbHkgY29uc2lzdHMgb2YgYSByZWZlcmVuY2UgdG8g dGhlIGtleSwNCiAgICAgICAgIHJhdGhlciB0aGFuIHRoZSBrZXkgdmFsdWUgaXRzZWxmLg0KDQog ICBSMTE6ICBUaGUgZm9ybWF0IFNIT1VMRCBhbGxvdyBmb3IgYWRkaXRpb25hbCBsaWZlY3ljbGUg bWFuYWdlbWVudA0KICAgICAgICAgb3BlcmF0aW9ucyBzdWNoIGFzIGNvdW50ZXIgcmVzeW5jaHJv bml6YXRpb24uICBTdWNoIHByb2Nlc3Nlcw0KICAgICAgICAgcmVxdWlyZSBjb25maWRlbnRpYWxp dHkgYmV0d2VlbiBjbGllbnQgYW5kIHNlcnZlciwgdGh1cyBjb3VsZA0KICAgICAgICAgdXNlIGEg Y29tbW9uIHNlY3VyZSBjb250YWluZXIgZm9ybWF0LCB3aXRob3V0IHRoZSB0cmFuc2ZlciBvZg0K ICAgICAgICAga2V5IG1hdGVyaWFsLg0KDQogICBSMTI6ICBUaGUgZm9ybWF0IE1VU1Qgc3VwcG9y dCB0aGUgdXNlIG9mIHByZS1zaGFyZWQgc3ltbWV0cmljIGtleXMgdG8NCiAgICAgICAgIGVuc3Vy ZSBjb25maWRlbnRpYWxpdHkgb2Ygc2Vuc2l0aXZlIGRhdGEgZWxlbWVudHMuDQoNCiAgIFIxMzog IFRoZSBmb3JtYXQgTVVTVCBzdXBwb3J0IGEgcGFzc3dvcmQtYmFzZWQgZW5jcnlwdGlvbiAoUEJF KQ0KICAgICAgICAgW1BLQ1M1XSBzY2hlbWUgdG8gZW5zdXJlIHNlY3VyaXR5IG9mIHNlbnNpdGl2 ZSBkYXRhIGVsZW1lbnRzLg0KICAgICAgICAgVGhpcyBpcyBhIHdpZGVseSB1c2VkIG1ldGhvZCBm b3IgdmFyaW91cyBwcm92aXNpb25pbmcNCiAgICAgICAgIHNjZW5hcmlvcy4NCg0KICAgUjE0OiAg VGhlIGZvcm1hdCBTSE9VTEQgc3VwcG9ydCBhc3ltbWV0cmljIGVuY3J5cHRpb24gYWxnb3JpdGht cyBzdWNoDQogICAgICAgICBhcyBSU0EgdG8gZW5zdXJlIGVuZC10by1lbmQgc2VjdXJpdHkgb2Yg c2Vuc2l0aXZlIGRhdGENCiAgICAgICAgIGVsZW1lbnRzLiAgVGhpcyBpcyB0byBzdXBwb3J0IHNj ZW5hcmlvcyB3aGVyZSBhIHByZS1zZXQgc2hhcmVkDQogICAgICAgICBlbmNyeXB0aW9uIGtleSBp cyBkaWZmaWN1bHQgdG8gdXNlLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAg ICAgICAgICBbUGFnZSAxMl0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0 cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjUuICBQb3J0YWJsZSBL ZXkgY29udGFpbmVyIGRlZmluaXRpb24NCg0KICAgVGhlIHBvcnRhYmxlIGtleSBjb250YWluZXIg aXMgYmFzZWQgb24gYW4gWE1MIHNjaGVtYSBkZWZpbml0aW9uIGFuZA0KICAgY29udGFpbnMgdGhl IGZvbGxvd2luZyBtYWluIGVudGl0aWVzOg0KDQogICAxLiAgS2V5Q29udGFpbmVyIGVudGl0eSBh cyBkZWZpbmVkIGluIFNlY3Rpb24gNS4xDQoNCiAgIDIuICBLZXlQcm9wZXJ0aWVzIGVudGl0eSBh cyBkZWZpbmVkIGluIFNlY3Rpb24gNS4yDQoNCiAgIDMuICBEZXZpY2UgZW50aXR5IGFzIGRlZmlu ZWQgaW4gU2VjdGlvbiA1LjMNCg0KICAgNC4gIEtleSBlbnRpdHkgYXMgZGVmaW5lZCBpbiBTZWN0 aW9uIDUuNA0KDQogICBBZGRpdGlvbmFsbHkgb3RoZXIgWE1MIHNjaGVtYSB0eXBlcyBoYXZlIGJl ZW4gZGVmaW5lZCBhbmQgYXJlDQogICBkZXRhaWxlZCBpbiB0aGUgcmVsZXZhbnQgc3Vic2VjdGlv bnMgb2YgdGhpcyBkb2N1bWVudA0KDQogICBBIEtleUNvbnRhaW5lciBNQVkgY29udGFpbiBvbmUg b3IgbW9yZSBEZXZpY2UgZW50aXRpZXMuICBBIERldmljZSBNQVkNCiAgIGNvbnRhaW4gb25lIG9y IG1vcmUgS2V5IGVudGl0aWVzDQoNCiAgIFRoZSBmaWd1cmUgYmVsb3cgaW5kaWNhdGVzIGEgcG9z c2libGUgcmVsYXRpb25zaGlwIGRpYWdyYW0gb2YgYQ0KICAgY29udGFpbmVyLg0KDQogICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgfCBLZXlDb250YWlu ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCiAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8DQogICB8ICAtLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAg ICAgICAgICAgICAgICAgfA0KICAgfCAgfCAgS2V5cHJvcGVydGllcyAxIHwgICAgICAgICAgICAg ICAgICAgIHwNCiAgIHwgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8 DQogICB8ICAtLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgICAgICAgICAgfA0KICAgfCAg LS0tLS0tLS0tLS0tLS0tLS0tICAgLS0tLS0tLS0tLS0tLS0tLS0gIHwNCiAgIHwgIHwgRGV2aWNl IDEgICAgICAgfCAgIHwgRGV2aWNlIG4gICAgICB8ICB8DQogICB8ICB8ICAgICAgICAgICAgICAg IHwgICB8ICAgICAgICAgICAgICAgfCAgfA0KICAgfCAgfCAgLS0tLS0tLS0tLS0tICB8ICAgfCAt LS0tLS0tLS0tLS0gIHwgIHwNCiAgIHwgIHwgIHwgS2V5IDEgICAgfCAgfCAgIHwgfCBLZXkgbiAg ICB8ICB8ICB8DQogICB8ICB8ICAtLS0tLS0tLS0tLS0gIHwgICB8IC0tLS0tLS0tLS0tLSAgfCAg fA0KICAgfCAgfCAgICAgICAgICAgICAgICB8ICAgfCAgICAgICAgICAgICAgIHwgIHwNCiAgIHwg IHwgICAgICAgICAgICAgICAgfCAgIHwgICAgICAgICAgICAgICB8ICB8DQogICB8ICB8ICAtLS0t LS0tLS0tLS0gIHwgICB8IC0tLS0tLS0tLS0tLSAgfCAgfA0KICAgfCAgfCAgfCBLZXkgbSAgICB8 ICB8ICAgfCB8IEtleSBwICAgIHwgIHwgIHwNCiAgIHwgIHwgIC0tLS0tLS0tLS0tLSAgfCAgIHwg LS0tLS0tLS0tLS0tICB8ICB8DQogICB8ICAtLS0tLS0tLS0tLS0tLS0tLS0gICAtLS0tLS0tLS0t LS0tLS0tLSAgfA0KICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwNCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiAg IFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgZGVzY3JpYmUgaW4gZGV0YWlsIGFsbCB0aGUgZW50aXRp ZXMgYW5kDQogICByZWxhdGVkIFhNTCBzY2hlbWEgZWxlbWVudHMgYW5kIGF0dHJpYnV0ZXM6DQoN Cg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAw OCAgICAgICAgICAgICAgW1BhZ2UgMTNdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxl IFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQo1LjEuICBL ZXlDb250YWluZXINCg0KICAgVGhlIEtleUNvbnRhaW5lciByZXByZXNlbnRzIHRoZSBrZXkgY29u dGFpbmVyIGVudGl0eS4gIEEgQ29udGFpbmVyDQogICBNQVkgY29udGFpbiBtb3JlIHRoYW4gb25l IERldmljZSBlbnRpdHk7IGVhY2ggRGV2aWNlIGVudGl0eSBNQVkNCiAgIGNvbnRhaW4gbW9yZSB0 aGFuIG9uZSBLZXkgZW50aXR5Lg0KDQogICBUaGUgS2V5Q29udGFpbmVyIGlzIGRlZmluZWQgYXMg Zm9sbG93czoNCg0KDQogICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iS2V5Q29udGFpbmVyVHlwZSI+ DQogICAgICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVu dCBuYW1lPSJFbmNyeXB0aW9uS2V5Ig0KICAgICAgICAgICAgICAgICAgIHR5cGU9ImRzOktleUlu Zm9UeXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJNQUNBbGdvcml0aG0iDQogICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpLZXlBbGdv cml0aG1UeXBlIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVu dCBuYW1lPSJLZXlQcm9wZXJ0aWVzIg0KICAgICAgICAgICAgICAgICAgIHR5cGU9InBza2M6S2V5 UHJvcGVydGllc1R5cGUiIG1pbk9jY3Vycz0iMCINCiAgICAgICAgICAgICAgICAgICBtYXhPY2N1 cnM9InVuYm91bmRlZCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRl dmljZSINCiAgICAgICAgICAgICAgICAgICB0eXBlPSJwc2tjOkRldmljZVR5cGUiIG1heE9jY3Vy cz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU2ln bmF0dXJlIg0KICAgICAgICAgICAgICAgICAgIHR5cGU9ImRzOlNpZ25hdHVyZVR5cGUiIG1pbk9j Y3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290aGVy Ig0KICAgICAgICAgICAgICAgICAgIHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1cnM9IjAi DQogICAgICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAg PC94czpzZXF1ZW5jZT4NCiAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJWZXJzaW9uIiB0 eXBlPSJwc2tjOlZlcnNpb25UeXBlIg0KICAgICAgICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAg ICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iS2V5Q29udGFpbmVySUQiIHR5cGU9InhzOklEIg0K ICAgICAgICAgICB1c2U9Im9wdGlvbmFsIi8+DQogICA8L3hzOmNvbXBsZXhUeXBlPg0KDQogICBU aGUgYXR0cmlidXRlcyBvZiB0aGUgS2V5Q29udGFpbmVyIGhhdmUgdGhlIGZvbGxvd2luZyBtZWFu aW5nczoNCg0KICAgbyAgVmVyc2lvbiAoTUFOREFUT1JZKSwgdGhlIHZlcnNpb24gbnVtYmVyIGZv ciB0aGUgcG9ydGFibGUga2V5DQogICAgICBjb250YWluZXIgZm9ybWF0ICh0aGUgWE1MIHNjaGVt YSBkZWZpbmVkIGluIHRoaXMgZG9jdW1lbnQpLg0KDQogICBvICBLZXlDb250YWluZXJJRCAoT1BU SU9OQUwpLCB0aGUgdW5pcXVlIElEIGZvciB0aGlzIGNvbnRhaW5lciBpbg0KICAgICAgY2FzZSBh biBYTUwgZG9jdW1lbnQgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBjb250YWluZXIgYW5kIHdhbnRz IHRvDQogICAgICByZWZlciB0byB0aGVtIHVuaXF1ZWx5Lg0KDQogICBUaGUgZWxlbWVudHMgb2Yg dGhlIEtleUNvbnRhaW5lciBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6DQoNCiAgIG8gIDxF bmNyeXB0aW9uS2V5IChPUFRJT05BTCk+LCBJZGVudGlmaWVzIHRoZSBlbmNyeXB0aW9uIGtleSwN CiAgICAgIGFsZ29yaXRobSBhbmQgcG9zc2libGUgcGFyYW1ldGVycyB1c2VkIHRvIHByb3RlY3Qg dGhlIFNlY3JldCBLZXkNCiAgICAgIGRhdGEgaW4gdGhlIGNvbnRhaW5lci4gIFBsZWFzZSBzZWUg U2VjdGlvbiA2LjEgZm9yIGRldGFpbGVkDQogICAgICBkZXNjcmlwdGlvbiBvZiBob3cgdG8gcHJv dGVjdCBrZXkgZGF0YSBpbiB0cmFuc2l0IGFuZCB0aGUgdXNhZ2Ugb2YNCiAgICAgIHRoaXMgZWxl bWVudC4NCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjks IDIwMDggICAgICAgICAgICAgIFtQYWdlIDE0XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0 YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAg byAgPE1BQ0FsZ29yaXRobSAoT1BUSU9OQUwpPiwgSWRlbnRpZmllcyB0aGUgYWxnb3JpdGhtIHVz ZWQgdG8NCiAgICAgIGdlbmVyYXRlIGEga2V5ZWQgZGlnZXN0IG9mIHRoZSBTZWNyZXQgS2V5IGRh dGEgdmFsdWVzIHdoZW4NCiAgICAgIHByb3RlY3Rpb24gYWxnb3JpdGhtcyBhcmUgdXNlZCB0aGF0 IGRvIG5vdCBoYXZlIGludGVncml0eSBjaGVja3MuDQogICAgICBUaGUgZGlnZXN0IGd1YXJhbnRl ZXMgdGhlIGludGVncml0eSBhbmQgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUNCiAgICAgIGtleSBk YXRhLiBmb3IgcHJvZmlsZSBhbmQgdXNhZ2UgcGxlYXNlIHNlZSBTZWN0aW9uIDYuMS4xDQoNCiAg IG8gIDxLZXlQcm9wZXJ0aWVzIChPUFRJT05BTCk+LCBvbmUgb3IgbW9yZSBrZXkgcHJvcGVydHkg ZW50aXRpZXMNCiAgICAgIGNvbnRhaW5pbmcga2V5IHJlbGF0ZWQgcHJvcGVydGllcyB0aGF0IGFy ZSBjb21tb24gZm9yIGtleXMgd2l0aGluDQogICAgICB0aGlzIGNvbnRhaW5lci4gIFBsZWFzZSBz ZWUgU2VjdGlvbiA1LjIgZm9yIGRldGFpbGVkIGRlc2NyaXB0aW9uDQogICAgICBvZiB0aGlzIGVs ZW1lbnQuDQoNCiAgIG8gIDxEZXZpY2U+LCB0aGUgaG9zdCBEZXZpY2UgZm9yIG9uZSBvciBtb3Jl IEtleXMgYXMgZGVmaW5lZCBpbg0KICAgICAgU2VjdGlvbiA1LjMgVGhlIEtleUNvbnRhaW5lciBN QVkgY29udGFpbiBtdWx0aXBsZSBEZXZpY2UgZGF0YQ0KICAgICAgZWxlbWVudHMsIGFsbG93aW5n IGZvciBidWxrIHByb3Zpc2lvbmluZyBvZiBtdWx0aXBsZSBkZXZpY2VzIGVhY2gNCiAgICAgIGNv bnRhaW5pbmcgbXVsdGlwbGUga2V5cy4NCg0KICAgbyAgPFNpZ25hdHVyZSAoT1BUSU9OQUwpPiwg dGhlIHNpZ25hdHVyZSB2YWx1ZSBvZiB0aGUgQ29udGFpbmVyLg0KICAgICAgV2hlbiB0aGUgc2ln bmF0dXJlIGlzIGFwcGxpZWQgdG8gdGhlIGVudGlyZSBjb250YWluZXIsIGl0IE1VU1QgdXNlDQog ICAgICBYTUwgU2lnbmF0dXJlIG1ldGhvZHMgYXMgZGVmaW5lZCBpbiBbWE1MRFNJR10uICBJdCBN QVkgYmUgb21pdHRlZA0KICAgICAgd2hlbiBhcHBsaWNhdGlvbiBsYXllciBwcm92aXNpb25pbmcg b3IgdHJhbnNwb3J0IGxheWVyDQogICAgICBwcm92aXNpb25pbmcgcHJvdG9jb2xzIHByb3ZpZGUg dGhlIGludGVncml0eSBhbmQgYXV0aGVudGljaXR5IG9mDQogICAgICB0aGUgcGF5bG9hZCBiZXR3 ZWVuIHRoZSBzZW5kZXIgYW5kIHRoZSByZWNpcGllbnQgb2YgdGhlIGNvbnRhaW5lci4NCiAgICAg IFdoZW4gcmVxdWlyZWQsIHRoaXMgc3BlY2lmaWNhdGlvbiByZWNvbW1lbmRzIHVzaW5nIGEgc3lt bWV0cmljIGtleQ0KICAgICAgYmFzZWQgc2lnbmF0dXJlIHdpdGggdGhlIHNhbWUga2V5IHVzZWQg aW4gdGhlIGVuY3J5cHRpb24gb2YgdGhlDQogICAgICBzZWNyZXQga2V5IGRhdGEuICBUaGUgc2ln bmF0dXJlIGlzIGVudmVsb3BlZC4NCg0KNS4yLiAgS2V5UHJvcGVydGllcw0KDQogICBUaGUgS2V5 UHJvcGVydGllcyByZXByZXNlbnRzIGNvbW1vbiBwcm9wZXJ0aWVzIHNoYXJlZCBieSBtb3JlIHRo YW4NCiAgIG9uZSBrZXkgaGVsZCBpbiB0aGUgY29udGFpbmVyLiAgSWYgYSB2YWx1ZSBpcyBzZXQg aW4gdGhlIHByb3BlcnRpZXMNCiAgIHRoZSBLZXkgZWxlbWVudCBjYW4gcmVmZXIgdG8gaXQgdmlh IEtleVByb3BlcnRpZXNJZCBhdHRyaWJ1dGUuDQogICBWYWx1ZXMgdGhhdCBhcmUgcHJlc2VudCBp biB0aGUgS2V5IGVsZW1lbnQgaXRzZWxmIE1VU1QgdGFrZQ0KICAgcHJlY2VkZW5jZSBvdmVyIHZh bHVlcyBzZXQgaW4gS2V5UHJvcGVydGllcy4gIFRoZSBLZXlQcm9wZXJ0aWVzIGlzDQogICBkZWZp bmVkIGFzIGZvbGxvd3M6DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KSG95ZXIs IGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAg W1BhZ2UgMTVdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkg Q29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICA8eHM6Y29tcGxleFR5cGUgbmFt ZT0iS2V5UHJvcGVydGllc1R5cGUiPg0KICAgICAgICAgICA8eHM6c2VxdWVuY2U+DQogICAgICAg ICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSXNzdWVyIiB0eXBlPSJ4czpzdHJpbmciDQog ICAgICAgICAgICAgICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICAgICAgICAgPHhz OmVsZW1lbnQgbmFtZT0iVXNhZ2UiIHR5cGU9InBza2M6VXNhZ2VUeXBlIg0KICAgICAgICAgICAg ICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5h bWU9IktleVByb2ZpbGVJZCIgdHlwZT0ieHM6c3RyaW5nIg0KICAgICAgICAgICAgICAgICAgIG1p bk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1hc3Rl cktleUlkIiB0eXBlPSJ4czpzdHJpbmciDQogICAgICAgICAgICAgICAgICAgbWluT2NjdXJzPSIw Ii8+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGF0YSIgdHlwZT0icHNr YzpEYXRhVHlwZSINCiAgICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0i dW5ib3VuZGVkIi8+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUElOUG9s aWN5Ig0KICAgICAgICAgICAgICAgICAgIHR5cGU9InBza2M6UElOUG9saWN5VHlwZSIgbWluT2Nj dXJzPSIwIi8+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0 ZSINCiAgICAgICAgICAgICAgICAgICB0eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIi8+ DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RhcnREYXRlIiB0eXBlPSJ4 czpkYXRlVGltZSINCiAgICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAg ICAgICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciINCiAgICAgICAgICAgICAgICAg ICBwcm9jZXNzQ29udGVudHM9ImxheCIgbWluT2NjdXJzPSIwIg0KICAgICAgICAgICAgICAgICAg IG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgIDwveHM6c2VxdWVuY2U+DQogICAg ICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iS2V5UHJvcGVydGllc0lkIiB0eXBlPSJ4czpJRCIN CiAgICAgICAgICAgdXNlPSJyZXF1aXJlZCIvPg0KICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5h bWU9IktleUFsZ29yaXRobSINCiAgICAgICAgICAgdHlwZT0icHNrYzpLZXlBbGdvcml0aG1UeXBl IiB1c2U9Im9wdGlvbmFsIi8+DQogICA8L3hzOmNvbXBsZXhUeXBlPg0KDQogICBUaGUgYXR0cmli dXRlcyBvZiB0aGUgS2V5UHJvcGVydGllcyBlbnRpdHkgaGF2ZSB0aGUgZm9sbG93aW5nDQogICBt ZWFuaW5nczoNCg0KICAgbyAgS2V5UHJvcGVydGllc0lkIChNQU5EQVRPUlkpLCBhIHVuaXF1ZSBh bmQgZ2xvYmFsIGlkZW50aWZpZXIgb2Ygc2V0DQogICAgICBvZiBLZXlQcm9wZXJ0aWVzLiAgVGhl IGlkZW50aWZpZXIgaXMgZGVmaW5lZCBhcyBhIHN0cmluZyBvZg0KICAgICAgYWxwaGFudW1lcmlj IGNoYXJhY3RlcnMuDQoNCiAgIG8gIEtleUFsZ29yaXRobSAoT1BUSU9OQUwpLCB0aGUgdW5pcXVl IFVSSSBvZiB0aGUgdHlwZSBvZiBhbGdvcml0aG0NCiAgICAgIHRvIHVzZSB3aXRoIHRoZSBzZWNy ZXQga2V5LCBmb3IgcHJvZmlsZXMgYXJlIGRlc2NyaWJlZCBpbg0KICAgICAgU2VjdGlvbiA2LjMN Cg0KICAgU2luY2UgS2V5UHJvcGVydGllcyBhcmUgYSBtZXRob2QgdG8gY29tbW9uYWxpc2UgdGhl IGVsZW1lbnRzIGluIEtleQ0KICAgcGxlYXNlIHJlZmVyIHRvIFNlY3Rpb24gNS40IGZvciBkZXRh aWxlZCBkZXNjcmlwdGlvbiBvZiBhbGwgZWxlbWVudHMuDQoNCjUuMy4gIERldmljZQ0KDQogICBU aGUgRGV2aWNlIHJlcHJlc2VudHMgYW4gZXh0ZW5zaWJsZSBEZXZpY2UgZW50aXR5IGluIHRoZSBD b250YWluZXIuDQogICBBIERldmljZSBNQVkgYmUgYm91bmQgdG8gYSB1c2VyIGFuZCBNQVkgY29u dGFpbiBtb3JlIHRoYW4gb25lIGtleXMuDQogICBBIGtleSBTSE9VTEQgYmUgYm91bmQgdG8gb25s eSBvbmUgRGV2aWNlLiAgVGhlIERldmljZSBlbnRpdHkgYWxzbyBoYXMNCiAgIGFuIGV4dGVuc2lv biBwb2ludCBkZWZpbmVkIGFzIHhzOmFueSB0byBhbGxvdyBmdXR1cmUgZXh0ZW5zaWJpbGl0eSBv Zg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAw OCAgICAgICAgICAgICAgW1BhZ2UgMTZdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxl IFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICB0aGUg ZW50aXR5DQoNCiAgIFRoZSBEZXZpY2UgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCiAgIDx4 czpjb21wbGV4VHlwZSBuYW1lPSJEZXZpY2VUeXBlIj4NCiAgICAgPHhzOnNlcXVlbmNlPg0KICAg ICAgIDx4czplbGVtZW50IG5hbWU9IkRldmljZUluZm8iIHR5cGU9InBza2M6RGV2aWNlSW5mb1R5 cGUiDQogICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iS2V5 IiB0eXBlPSJwc2tjOktleVR5cGUiDQogICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAg ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJVc2VySWQiIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJz PSIwIi8+DQogICAgICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIg0KICAgICAgICAg ICBwcm9jZXNzQ29udGVudHM9ImxheCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRl ZCIvPg0KICAgICA8L3hzOnNlcXVlbmNlPg0KICAgPC94czpjb21wbGV4VHlwZT4NCg0KICAgVGhl IGVsZW1lbnRzIG9mIHRoZSBEZXZpY2UgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOg0KDQog ICBvICA8RGV2aWNlSW5mbz4sIGEgc2V0IG9mIGVsZW1lbnRzIGNvbnRhaW5pbmcgaW5mb3JtYXRp b24gYWJvdXQgdGhlDQogICAgICBkZXZpY2UsIHdob3NlIHZhbHVlcyB1bmlxdWVseSBpZGVudGlm eSB0aGUgZGV2aWNlLCBkZWZpbmVkIGluDQogICAgICBTZWN0aW9uIDUuMy4xDQoNCiAgIG8gIDxL ZXk+LCByZXByZXNlbnRzIHRoZSBrZXkgZW50aXR5IGFzIGRlZmluZWQgaW4gU2VjdGlvbiA1LjQN Cg0KICAgbyAgPFVzZXJJZD4sIG9wdGlvbmFsbHkgaWRlbnRpZmllcyB0aGUgb3duZXIgb3IgdGhl IHVzZXIgb2YgdGhlDQogICAgICBEZXZpY2UsIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEg RGlzdGluZ3Vpc2hlZCBOYW1lIGFzIGRlZmluZWQNCiAgICAgIGluIFtSRkM0NTE0XS4gIEZvciBl eGFtcGxlIFVJRD1qc21pdGgsREM9ZXhhbXBsZSxEQz1uZXQuICBJbg0KICAgICAgc3lzdGVtcyB3 aGVyZSB1bmlxdWUgdXNlciBJZHMgYXJlIHVzZWQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbg0K ICAgICAgJ1VJRD1bdW5pcXVlSWRdJyBNVVNUIGJlIHVzZWQuDQoNCjUuMy4xLiAgRGV2aWNlSW5m bw0KDQogICBUaGUgRGV2aWNlSW5mbyByZXByZXNlbnRzIGFuIGV4dGVuc2libGUgc2V0IG9mIGVs ZW1lbnRzIHRoYXQgZm9ybSB0aGUNCiAgIGlkZW50aWZ5aW5nIGNyaXRlcmlhIHRvIHVuaXF1ZWx5 IGlkZW50aWZ5IHRoZSBkZXZpY2UgdGhhdCBjb250YWlucw0KICAgdGhlIGFzc29jaWF0ZWQga2V5 cy4gIFNpbmNlIGRldmljZXMgY2FuIGNvbWUgaW4gZGlmZmVyZW50IGZvcm0NCiAgIGZhY3RvcnMg c3VjaCBhcyBoYXJkd2FyZSB0b2tlbnMsIHNtYXJ0LWNhcmRzLCBzb2Z0IHRva2VucyBpbiBhIG1v YmlsZQ0KICAgcGhvbmUgb3IgUEMgZXRjIHRoaXMgZWxlbWVudCBhbGxvd3MgZGlmZmVyZW50IGNy aXRlcmlhIHRvIGJlIHVzZWQuDQogICBDb21iaW5lZCB0aG91Z2ggdGhlIGNyaXRlcmlhIE1VU1Qg dW5pcXVlbHkgaWRlbnRpZnkgdGhlIGRldmljZS4gIEZvcg0KICAgZXhhbXBsZSBmb3IgaGFyZHdh cmUgdG9rZW5zIHRoZSBjb21iaW5hdGlvbiBvZiBTZXJpYWxObyBhbmQNCiAgIE1hbnVmYWN0dXJl ciB3aWxsIHVuaXF1ZWx5IGlkZW50aWZ5IGEgZGV2aWNlIGJ1dCBub3QgU2VyaWFsTm8gYWxvbmUN CiAgIHNpbmNlIHR3byBkaWZmZXJlbnQgdG9rZW4gbWFudWZhY3R1cmVycyBtaWdodCBpc3N1ZSBk ZXZpY2VzIHdpdGggdGhlDQogICBzYW1lIHNlcmlhbCBudW1iZXIgKHNpbWlsYXIgdG8gdGhlIElz c3VlckROIGFuZCBzZXJpYWwgbnVtYmVyIG9mIGENCiAgIGNlcnRpZmljYXRlKS4gIFN5bW1ldHJp YyBLZXlzIHVzZWQgaW4gdGhlIHBheW1lbnQgaW5kdXN0cnkgYXJlDQogICB1c3VhbGx5IHN0b3Jl ZCBvbiBJbnRlZ3JhdGVkIENpcmN1aXQgU21hcnQgQ2FyZHMuICBUaGVzZSBjYXJkcyBhcmUNCiAg IHVuaXF1ZWx5IGlkZW50aWZpZWQgdmlhIHRoZSBQcmltYXJ5IEFjY291bnQgTnVtYmVyIChQQU4s IHRoZSBsb25nDQogICBudW1iZXIgcHJpbnRlZCBvbiB0aGUgZnJvbnQgb2YgdGhlIGNhcmQpIGFu ZCBhbiBleHBpcnkgZGF0ZSBvZiB0aGUNCiAgIGNhcmQuICBEZXZpY2VJbmZvIGlzIGFuIGV4dGVu c2libGUgdHlwZSB0aGF0IGFsbG93cyBhbGwgdGhlc2UNCg0KDQoNCkhveWVyLCBldCBhbC4gICAg ICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDE3XQ0K DA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAg ICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgZGlmZmVyZW50IHdheXMgdG8gdW5pcXVlbHkgaWRl bnRpZnkgYSBzcGVjaWZpYyBrZXkgY29udGFpbmluZyBkZXZpY2UuDQoNCiAgIFRoZSBEZXZpY2VJ bmZvIGlzIGRlZmluZWQgYXMgZm9sbG93czoNCg0KDQogICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i RGV2aWNlSW5mb1R5cGUiPg0KICAgPHhzOnNlcXVlbmNlPg0KICAgICAgIDx4czplbGVtZW50IG5h bWU9Ik1hbnVmYWN0dXJlciIgdHlwZT0ieHM6c3RyaW5nIi8+DQogICAgICAgPHhzOmVsZW1lbnQg bmFtZT0iU2VyaWFsTm8iIHR5cGU9InhzOnN0cmluZyIvPg0KICAgICAgIDx4czplbGVtZW50IG5h bWU9Ik1vZGVsIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgIDx4czpl bGVtZW50IG5hbWU9Iklzc3VlTm8iIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIi8+DQog ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1p bk9jY3Vycz0iMCIvPg0KICAgICAgIDx4czplbGVtZW50IG5hbWU9IlN0YXJ0RGF0ZSIgdHlwZT0i eHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICA8eHM6YW55IG5hbWVzcGFj ZT0iIyNvdGhlciINCiAgICAgICAgICAgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0i MCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgIDwveHM6c2VxdWVuY2U+DQogICA8L3hzOmNv bXBsZXhUeXBlPg0KDQogICBUaGUgZWxlbWVudHMgb2YgRGV2aWNlSW5mbyBoYXZlIHRoZSBmb2xs b3dpbmcgbWVhbmluZ3M6DQoNCiAgIG8gIDxNYW51ZmFjdHVyZXIgKE1BTkRBVE9SWSk+LCB0aGUg bWFudWZhY3R1cmVyIG9mIHRoZSBkZXZpY2UuDQoNCiAgIG8gIDxTZXJpYWxObyAoTUFOREFUT1JZ KT4sIHRoZSBzZXJpYWwgbnVtYmVyIG9mIHRoZSBkZXZpY2Ugb3IgdGhlIFBBTg0KICAgICAgKHBy aW1hcnkgYWNjb3VudCBudW1iZXIpIGluIGNhc2Ugb2YgcGF5bWVudCBzbWFydCBjYXJkcy4NCg0K ICAgbyAgPE1vZGVsIChPUFRJT05BTCk+LCB0aGUgbW9kZWwgb2YgdGhlIGRldmljZSAoZS5nLiBv bmUtYnV0dG9uLUhPVFAtDQogICAgICB0b2tlbi1WMSkNCg0KICAgbyAgPElzc3VlTm8gKE9QVElP TkFMKT4sIHRoZSBpc3N1ZSBudW1iZXIgaW4gY2FzZSBvZiBzbWFydCBjYXJkcyB3aXRoDQogICAg ICB0aGUgc2FtZSBQQU4sIGVxdWl2YWxlbnQgdG8gYSBQU04gKFBBTiBTZXF1ZW5jZSBOdW1iZXIp Lg0KDQogICBvICA8RXhwaXJ5RGF0ZSAoT1BUSU9OQUwpPiwgdGhlIGV4cGlyeSBkYXRlIG9mIGEg ZGV2aWNlIChzdWNoIGFzIHRoZQ0KICAgICAgb25lIG9uIGEgcGF5bWVudCBjYXJkLCB1c2VkIHdo ZW4gaXNzdWUgbnVtYmVycyBhcmUgbm90IHByaW50ZWQgb24NCiAgICAgIGNhcmRzKS4NCg0KICAg byAgPFN0YXJ0RGF0ZSAoT1BUSU9OQUwpPiwgdGhlIHN0YXJ0IGRhdGUgb2YgYSBkZXZpY2UgKHN1 Y2ggYXMgdGhlDQogICAgICBvbmUgb24gYSBwYXltZW50IGNhcmQsIHVzZWQgd2hlbiBpc3N1ZSBu dW1iZXJzIGFyZSBub3QgcHJpbnRlZCBvbg0KICAgICAgY2FyZHMpLg0KDQo1LjQuICBLZXkNCg0K ICAgVGhlIEtleSByZXByZXNlbnRzIHRoZSBrZXkgZW50aXR5IGluIHRoZSBLZXlDb250YWluZXIu ICBUaGUgS2V5DQogICBlbnRpdHkgYWxzbyBoYXMgYW4gZXh0ZW5zaW9uIHBvaW50IGRlZmluZWQg YXMgeHM6YW55IHRvIGFsbG93IGZ1dHVyZQ0KICAgZXh0ZW5zaWJpbGl0eS4gIFRoZSBLZXkgaXMg ZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAg ICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICBbUGFnZSAxOF0NCgwNCklu dGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAg ICAgIEp1bmUgMjAwOA0KDQoNCiAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJLZXlUeXBlIj4NCiAg ICAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5h bWU9Iklzc3VlciIgdHlwZT0ieHM6c3RyaW5nIg0KICAgICAgICAgICAgICAgICAgIG1pbk9jY3Vy cz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlVzYWdlIiB0eXBl PSJwc2tjOlVzYWdlVHlwZSINCiAgICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAg ICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJLZXlQcm9maWxlSWQiIHR5cGU9Inhz OnN0cmluZyINCiAgICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAg ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJNYXN0ZXJLZXlJZCIgdHlwZT0ieHM6c3RyaW5nIg0K ICAgICAgICAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4 czplbGVtZW50IG5hbWU9IkZyaWVuZGx5TmFtZSIgdHlwZT0ieHM6c3RyaW5nIg0KICAgICAgICAg ICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50 IG5hbWU9IkRhdGEiIHR5cGU9InBza2M6RGF0YVR5cGUiDQogICAgICAgICAgICAgICAgICAgbWlu T2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICAgICAgICAgICAgIDx4 czplbGVtZW50IG5hbWU9IlBJTlBvbGljeSINCiAgICAgICAgICAgICAgICAgICB0eXBlPSJwc2tj OlBJTlBvbGljeVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czpl bGVtZW50IG5hbWU9IkV4cGlyeURhdGUiIHR5cGU9InhzOmRhdGVUaW1lIg0KICAgICAgICAgICAg ICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5h bWU9IlN0YXJ0RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRpbWUiDQogICAgICAgICAgICAgICAgICAgbWlu T2NjdXJzPSIwIi8+DQogICAgICAgICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3Ro ZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICAgICAgICAgICAgIG1pbk9jY3Vycz0i MCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAg ICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlJZCIgdHlwZT0ieHM6c3RyaW5nIg0KICAg ICAgICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0i S2V5QWxnb3JpdGhtIg0KICAgICAgICAgICB0eXBlPSJwc2tjOktleUFsZ29yaXRobVR5cGUiIHVz ZT0ib3B0aW9uYWwiLz4NCiAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlQcm9wZXJ0 aWVzSWQiIHR5cGU9InhzOklEUkVGIg0KICAgICAgICAgICB1c2U9Im9wdGlvbmFsIi8+DQogICA8 L3hzOmNvbXBsZXhUeXBlPg0KDQoNCiAgIFRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBLZXkgZW50aXR5 IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nczoNCg0KICAgbyAgS2V5SWQgKE1BTkRBVE9SWSks IGEgdW5pcXVlIGFuZCBnbG9iYWwgaWRlbnRpZmllciBvZiB0aGUgc3ltbWV0cmljDQogICAgICBr ZXkuICBUaGUgaWRlbnRpZmllciBpcyBkZWZpbmVkIGFzIGEgc3RyaW5nIG9mIGFscGhhbnVtZXJp Yw0KICAgICAgY2hhcmFjdGVycy4NCg0KICAgbyAgS2V5QWxnb3JpdGhtIChPUFRJT05BTCksIHRo ZSB1bmlxdWUgVVJJIG9mIHRoZSB0eXBlIG9mIGFsZ29yaXRobQ0KICAgICAgdG8gdXNlIHdpdGgg dGhlIHNlY3JldCBrZXksIGZvciBwcm9maWxlcyBhcmUgZGVzY3JpYmVkIGluDQogICAgICBTZWN0 aW9uIDYuMw0KDQogICBvICBLZXlQcm9wZXJ0aWVzSWQgKE9QVElPTkFMKSwgdGhlIHJlZmVyZW5j ZXMgdG8gdGhlIHVuaXF1ZSBpZCBvZiB0aGUNCiAgICAgIEtleVByb3BlcnRpZXMgd2hvc2UgdmFs dWUgdGhlIGluc3RhbmNlIG9mIHRoaXMga2V5IGluaGVyaXRzLiAgSWYNCiAgICAgIHRoaXMgdmFs dWUgaXMgc2V0IGltcGxlbWVudGF0aW9uIE1VU1QgbG9va3VwIHRoZSBLZXlwcm9wZXJ0aWVzDQog ICAgICBlbGVtZW50IHJlZmVycmVkIHRvIGJ5IHRoaXMgdW5pcXVlIElkIGFuZCB0aGlzIGluc3Rh bmNlIG9mIGtleQ0KICAgICAgd2lsbCBpbmhlcml0IGFsbCB2YWx1ZXMgZnJvbSB0aGUgS2V5UHJv cGVydGllcy4gIFZhbHVlcyBoZWxkIGluDQogICAgICB0aGUga2V5IGluc3RhbmNlIGl0IE1VU1Qg dGFrZSBwcmVjZWRlbmNlIG92ZXIgdmFsdWVzIGluaGVyaXRlZA0KDQoNCg0KSG95ZXIsIGV0IGFs LiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2Ug MTldDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFp bmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICAgICBmcm9tIEtleVByb3BlcnRpZXMuIi8+ DQoNCiAgIFRoZSBlbGVtZW50cyBvZiB0aGUgS2V5IGVudGl0eSBoYXZlIHRoZSBmb2xsb3dpbmcg bWVhbmluZ3M6DQoNCiAgIG8gIDxJc3N1ZXIgKE9QVElPTkFMKT4sIFRoZSBrZXkgaXNzdWVyIG5h bWUsIHRoaXMgaXMgbm9ybWFsbHkgdGhlDQogICAgICBuYW1lIG9mIHRoZSBvcmdhbml6YXRpb24g dGhhdCBpc3N1ZXMgdGhlIGtleSB0byB0aGUgZW5kIHVzZXIgb2YNCiAgICAgIHRoZSBrZXkuICBG b3IgZXhhbXBsZSBNeUJhbmsgaXNzdWluZyBoYXJkd2FyZSB0b2tlbnMgdG8gdGhlaXINCiAgICAg IHJldGFpbCBiYW5raW5nIHVzZXJzICdNeUJhbmsnIHdvdWxkIGJlIHRoZSBpc3N1ZXIuICBUaGUg SXNzdWVyIGlzDQogICAgICBkZWZpbmVkIGFzIGEgU3RyaW5nLg0KDQogICBvICA8VXNhZ2UgKE1B TkRBVE9SWSk+LCBkZWZpbmVzIHRoZSBpbnRlbmRlZCB1c2FnZSBvZiB0aGUga2V5IGFuZA0KICAg ICAgcmVsYXRlZCBtZXRhZGF0YSBhcyBkZWZpbmVkIGluIFNlY3Rpb24gNS40LjINCg0KICAgbyAg PEtleVByb2ZpbGVJZCAoT1BUSU9OQUwpPiwgQSB1bmlxdWUgaWRlbnRpZmllciB1c2VkIGJldHdl ZW4gdGhlDQogICAgICBzZW5kaW5nIGFuZCByZWNlaXZpbmcgcGFydHkgb2YgdGhlIGNvbnRhaW5l ciB0byBlc3RhYmxpc2ggYSBzZXQgb2YNCiAgICAgIGNvbnN0YW50IHZhbHVlcyByZWxhdGVkIHRv IGEga2V5IHRoYXQgYXJlIG5vdCB0cmFuc21pdHRlZCB2aWEgdGhlDQogICAgICBjb250YWluZXIu ICBGb3IgZXhhbXBsZSBhIHNtYXJ0IGNhcmQgYXBwbGljYXRpb24gcGVyc29uYWxpc2F0aW9uDQog ICAgICBwcm9maWxlIGlkIHJlbGF0ZWQgdG8gYXR0cmlidXRlcyBwcmVzZW50IG9uIGEgc21hcnQg Y2FyZA0KICAgICAgYXBwbGljYXRpb24gdGhhdCBoYXZlIGluZmx1ZW5jZSB3aGVuIGNvbXB1dGlu ZyBhIHJlc3BvbnNlLiAgQW4NCiAgICAgIGV4YW1wbGUgY291bGQgYmUgYW4gRU1WIE1hc3RlckNh cmQgQ0FQIFtDQVBdIGFwcGxpY2F0aW9uIG9uIGEgY2FyZA0KICAgICAgcGVyc29uYWxpc2VkIHdp dGggZGF0YSBmb3IgYSBzcGVjaWZpYyBiYXRjaCBvZiBjYXJkcyBzdWNoIGFzOg0KDQogICAgICAg ICBJQUYgSW50ZXJuZXQgYXV0aGVudGljYXRpb24gZmxhZw0KDQogICAgICAgICBDVk4gQ3J5cHRv Z3JhbSB2ZXJzaW9uIG51bWJlciwgZm9yIGV4YW1wbGUgKE1DSElQMiwgTUNISVA0LA0KICAgICAg ICAgVklTQSAxMywgVklTQTE0KQ0KDQogICAgICAgICBBSVAgKEFwcGxpY2F0aW9uIEludGVyY2hh bmdlIFByb2ZpbGUpLCAyIGJ5dGVzDQoNCiAgICAgICAgIFRWUiBUZXJtaW5hbCBWZXJpZmljYXRp b24gUmVzdWx0LCA1IGJ5dGVzDQoNCiAgICAgICAgIENWUiBUaGUgY2FyZCB2ZXJpZmljYXRpb24g cmVzdWx0DQoNCiAgICAgICAgIEFtb3VudE90aGVyDQoNCiAgICAgICAgIFRyYW5zYWN0aW9uRGF0 ZQ0KDQogICAgICAgICBUZXJtaW5hbENvdW50cnlDb2RlDQoNCiAgICAgICAgIFRyYW5zYWN0aW9u Q3VycmVuY3lDb2RlDQoNCiAgICAgICAgIEFtb3VudEF1dGhvcmlzZWQNCg0KICAgICAgICAgSUlQ Qg0KDQogICAgICBUaGVzZSB2YWx1ZXMgYXJlIG5vdCBjb250YWluZWQgd2l0aGluIGF0dHJpYnV0 ZXMgaW4gdGhlIGNvbnRhaW5lcg0KICAgICAgYnV0IGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgbWFu dWZhY3R1cmluZyBhbmQgdGhlIHZhbGlkYXRpb24NCiAgICAgIHNlcnZpY2UgdGhyb3VnaCB0aGlz IHVuaXF1ZSBLZXlQcm9maWxlSWQuICBUaGUgS2V5UHJvZmlsZUlkIGlzDQoNCg0KDQpIb3llciwg ZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICBb UGFnZSAyMF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBD b250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgICAgIGRlZmluZWQgYXMgYSBTdHJp bmcuDQoNCiAgIG8gIDxNYXN0ZXJLZXlJZCAoT1BUSU9OQUwpPiwgVGhlIHVuaXF1ZSByZWZlcmVu Y2UgdG8gYSBtYXN0ZXIga2V5DQogICAgICB3aGVuIGtleSBkZXJpdmF0aW9uIHNjaGVtZXMgYXJl IHVzZWQgYW5kIG5vIHNwZWNpZmljIGtleSBpcw0KICAgICAgdHJhbnNwb3J0ZWQgYnV0IG9ubHkg dGhlIHJlZmVyZW5jZSB0byB0aGUgbWFzdGVyIGtleSB1c2VkIHRvDQogICAgICBkZXJpdmUgYSBz cGVjaWZpYyBrZXkgYW5kIHNvbWUgZGVyaXZhdGlvbiBkYXRhLg0KDQogICBvICA8RnJpZW5kbHlO YW1lIChPUFRJT05BTCk+LCBUaGUgdXNlciBmcmllbmRseSBuYW1lIHRoYXQgaXMgYXNzaWduZWQN CiAgICAgIHRvIHRoZSBzZWNyZXQga2V5IGZvciBlYXN5IHJlZmVyZW5jZS4gIFRoZSBGcmllbmRs eU5hbWUgaXMgZGVmaW5lZA0KICAgICAgYXMgYSBTdHJpbmcuDQoNCiAgIG8gIDxEYXRhIChPUFRJ T05BTCk+LCB0aGUgZWxlbWVudCBjYXJyeWluZyB0aGUgZGF0YSByZWxhdGVkIHRvIHRoZQ0KICAg ICAga2V5IGFzIGRlZmluZWQgaW4gU2VjdGlvbiA1LjQuMQ0KDQogICBvICA8UElOUG9saWN5IChP UFRJT05BTCk+LCB0aGUgcG9saWN5IG9mIHRoZSBQSU4gcmVsYXRpbmcgdG8gdGhlDQogICAgICB1 c2FnZSBvZiB0aGlzIGtleSBhcyBkZWZpbmVkIGluIFNlY3Rpb24gNS40LjQNCg0KICAgbyAgPEV4 cGlyeURhdGUgKE9QVElPTkFMKT4sIHRoZSBleHBpcnkgZGF0ZSBvZiB0aGUga2V5LCBpdCBNVVNU IG5vdA0KICAgICAgYmUgcG9zc2libGUgdG8gdXNlIHRoaXMga2V5IGFmdGVyIHRoaXMgZGF0ZQ0K DQogICBvICA8U3RhcnREYXRlIChPUFRJT05BTCk+LCB0aGUgc3RhcnQgZGF0ZSBvZiB0aGUga2V5 LCBpdCBNVVNUIG5vdCBiZQ0KICAgICAgcG9zc2libGUgdG8gdXNlIHRoaXMga2V5IGJlZm9yZSB0 aGlzIGRhdGUNCg0KNS40LjEuICBEYXRhIChPUFRJT05BTCkNCg0KICAgRGVmaW5lcyB0aGUgZGF0 YSBhdHRyaWJ1dGVzIG9mIHRoZSBzeW1tZXRyaWMga2V5LiAgRWFjaCBpcyBhIG5hbWUNCiAgIHZh bHVlIHBhaXIgd2hpY2ggaGFzIGVpdGhlciBhIHBsYWluIHZhbHVlIChpbiBjYXNlIG9mIG5vIGVu Y3J5cHRpb24pDQogICBvciBhbiBlbmNyeXB0ZWQgdmFsdWUgYXMgZGVmaW5lZCBpbiBFbmNyeXB0 ZWREYXRhVHlwZSBpbiBYTUwNCiAgIEVuY3J5cHRpb24uDQoNCiAgIFRoaXMgaXMgYWxzbyB3aGVy ZSB0aGUga2V5IHZhbHVlIGlzIHRyYW5zcG9ydGVkLCBTZWN0aW9uIDcgZGVmaW5lcyBhDQogICBs aXN0IG9mIHJlc2VydmVkIGF0dHJpYnV0ZSBuYW1lcy4NCg0KICAgRGF0YSBlbGVtZW50IGlzIGRl ZmluZWQgYXMgZm9sbG93czoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3ll ciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAg ICBbUGFnZSAyMV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtl eSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjx4czpjb21wbGV4VHlwZSBuYW1l PSJEYXRhVHlwZSI+DQogICAgPHhzOnNlcXVlbmNlPg0KICAgIDx4czpjaG9pY2U+DQogICAgICAg PHhzOmVsZW1lbnQgbmFtZT0iUGxhaW5WYWx1ZSIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5Ii8+DQog ICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRW5jcnlwdGVkVmFsdWUiIHR5cGU9InhlbmM6RW5jcnlw dGVkRGF0YVR5cGUiLz4NCiAgICA8L3hzOmNob2ljZT4NCiAgICA8eHM6ZWxlbWVudCBuYW1lPSJW YWx1ZU1BQyIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5IiBtaW5PY2N1cnM9IjAiLz4NCiAgICA8L3hz OnNlcXVlbmNlPg0KICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iTmFtZSIgdHlwZT0ieHM6c3RyaW5n IiB1c2U9InJlcXVpcmVkIi8+DQo8L3hzOmNvbXBsZXhUeXBlPg0KDQogICBUaGUgYXR0cmlidXRl cyBvZiB0aGUgRGF0YSBlbGVtZW50IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nczoNCg0KICAg byAgTmFtZSwgZGVmaW5lcyB0aGUgbmFtZSBvZiB0aGUgbmFtZS12YWx1ZSBwYWlyLCBTZWN0aW9u IDcgZGVmaW5lcyBhDQogICAgICBsaXN0IG9mIHJlc2VydmVkIGF0dHJpYnV0ZSBuYW1lcw0KDQog ICBUaGUgZWxlbWVudHMgb2YgdGhlIERhdGEgZWxlbWVudCBoYXZlIHRoZSBmb2xsb3dpbmcgbWVh bmluZ3M6DQoNCiAgIG8gIFRoZSA8UGxhaW5WYWx1ZT4gY29udmV5cyBhbiB1bmVuY3J5cHRlZCB2 YWx1ZSBvZiB0aGUgbmFtZS12YWx1ZQ0KICAgICAgcGFpciBpbiBiYXNlIDY0IGVuY29kaW5nLg0K DQogICBvICBUaGUgPEVuY3J5cHRlZFZhbHVlPiBlbGVtZW50IGluIHRoZSBEYXRhVHlwZSBjb252 ZXlzIGFuIGVuY3J5cHRlZA0KICAgICAgdmFsdWUgb2YgdGhlIG5hbWUtdmFsdWUgcGFpciBpbnNp ZGUgYW4gRW5jcnlwdGVkRGF0YVR5cGUgYXMNCiAgICAgIGRlZmluZWQgaW4gWE1MIEVuY3J5cHRp b24uDQoNCiAgIG8gIFRoZSA8VmFsdWVNQUMgKE9QVElPTkFMKT4gZWxlbWVudCBpbiB0aGUgRGF0 YVR5cGUgY29udmV5cyBhIGtleWVkDQogICAgICBNQUMgdmFsdWUgb2YgdGhlIHVuZW5jcnlwdGVk IGRhdGEgZm9yIHRoZSBjYXNlcyB3aGVyZSB0aGUNCiAgICAgIGFsZ29yaXRobSB0byBwcm90ZWN0 IGtleSBkYXRhIGluIHRyYW5zaXQsIGFzIGRlc2NyaWJlZCBpbg0KICAgICAgU2VjdGlvbiA2LjEu MSAsZG9lcyBub3Qgc3VwcG9ydCBpbnRlZ3JpdHkgY2hlY2tzLg0KDQo1LjQuMi4gIFVzYWdlIChN QU5EQVRPUlkpDQoNCiAgIFRoZSBVc2FnZSBlbGVtZW50IGRlZmluZXMgdGhlIHVzYWdlIGF0dHJp YnV0ZShzKSBvZiB0aGUga2V5IGVudGl0eS4NCiAgIFRoZSBVc2FnZSBlbGVtZW50IGFsc28gaGFz IGFuIGV4dGVuc2lvbiBwb2ludCBkZWZpbmVkIGFzIHhzOmFueSB0bw0KICAgYWxsb3cgZnV0dXJl IGV4dGVuc2liaWxpdHkgVXNhZ2UgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2Vt YmVyIDI5LCAyMDA4ICAgICAgICAgICAgICBbUGFnZSAyMl0NCgwNCkludGVybmV0LURyYWZ0ICAg ICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0K DQoNCiAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJVc2FnZVR5cGUiPg0KICAgICAgICAgICA8eHM6 c2VxdWVuY2U+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iQ2hhbGxlbmdl Rm9ybWF0IiBtaW5PY2N1cnM9IjAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmNv bXBsZXhUeXBlPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5h bWU9IkZvcm1hdCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpWYWx1 ZUZvcm1hdFR5cGUiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQi Lz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJNaW4i DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InhzOnVuc2lnbmVkSW50IiB1c2U9 InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUg bmFtZT0iTWF4Ig0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ4czp1bnNpZ25l ZEludCIgdXNlPSJyZXF1aXJlZCIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8eHM6 YXR0cmlidXRlIG5hbWU9IkNoZWNrRGlnaXRzIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0eXBlPSJ4czpib29sZWFuIiBkZWZhdWx0PSJmYWxzZSIvPg0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCiAgICAgICAgICAgICAgICAgICA8L3hzOmVsZW1l bnQ+DQogICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VGb3JtYXQi Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkZvcm1hdCINCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpWYWx1ZUZvcm1hdFR5cGUiDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJMZW5ndGgiDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGU9InhzOnVuc2lnbmVkSW50IiB1c2U9InJlcXVpcmVkIi8+DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iQ2hlY2tEaWdpdHMi DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InhzOmJvb2xlYW4iIGRlZmF1bHQ9 ImZhbHNlIi8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0K ICAgICAgICAgICAgICAgICAgIDwveHM6ZWxlbWVudD4NCiAgICAgICAgICAgICAgICAgICA8eHM6 YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiDQogICAgICAgICAg ICAgICAgICAgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICAg ICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9Ik9UUCIgdHlw ZT0ieHM6Ym9vbGVhbiINCiAgICAgICAgICAgZGVmYXVsdD0iZmFsc2UiLz4NCiAgICAgICAgICAg PHhzOmF0dHJpYnV0ZSBuYW1lPSJDUiIgdHlwZT0ieHM6Ym9vbGVhbiINCiAgICAgICAgICAgZGVm YXVsdD0iZmFsc2UiLz4NCiAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJJbnRlZ3JpdHki IHR5cGU9InhzOmJvb2xlYW4iDQogICAgICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAgICAg ICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iRW5jcnlwdCIgdHlwZT0ieHM6Ym9vbGVhbiINCiAgICAg ICAgICAgZGVmYXVsdD0iZmFsc2UiLz4NCiAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJV bmxvY2siIHR5cGU9InhzOmJvb2xlYW4iDQogICAgICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQog ICAgICAgICAgIDx4czphbnlBdHRyaWJ1dGUgbmFtZXNwYWNlPSIjI290aGVyIi8+DQogICA8L3hz OmNvbXBsZXhUeXBlPg0KDQogICBUaGUgYXR0cmlidXRlcyBvZiB0aGUgVXNhZ2UgZWxlbWVudCBk ZWZpbmUgdGhlIGludGVuZGVkIHVzYWdlIG9mIHRoZQ0KICAga2V5LiAgVGhpcyBsaXN0IG9mIGF0 dHJpYnV0ZXMgaXMgZXh0ZW5zaWJsZSBmb3IgZnV0dXJlIG5lZWRzLiAgVGhleQ0KICAgYXJlIGEg Y29tYmluYXRpb24gb2Ygb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyAoc2V0IHRvIHRydWUp Og0KDQogICBvICBPVFAsIHRoZSBrZXkgd2lsbCBiZSB1c2VkIGZvciBPVFAgZ2VuZXJhdGlvbg0K DQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4 ICAgICAgICAgICAgICBbUGFnZSAyM10NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUg U3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIG8gIENS LCB0aGUga2V5IHdpbGwgYmUgdXNlZCBmb3IgQ2hhbGxlbmdlL1Jlc3BvbnNlIHB1cnBvc2VzDQoN CiAgIG8gIEVuY3J5cHQsIHRoZSBrZXkgd2lsbCBiZSB1c2VkIGZvciBkYXRhIGVuY3J5cHRpb24g cHVycG9zZXMNCg0KICAgbyAgSW50ZWdyaXR5LCB0aGUga2V5IHdpbGwgYmUgdXNlZCB0byBnZW5l cmF0ZSBhIGtleWVkIG1lc3NhZ2UgZGlnZXN0DQogICAgICBmb3IgZGF0YSBpbnRlZ3JpdHkgb3Ig YXV0aGVudGljYXRpb24gcHVycG9zZXMuDQoNCiAgIG8gIFVubG9jaywgdGhlIGtleSB3aWxsIGJl IHVzZWQgZm9yIGFuIGludmVyc2UgY2hhbGxlbmdlIHJlc3BvbnNlIGluDQogICAgICB0aGUgY2Fz ZSBhIHVzZXIgaGFzIGxvY2tlZCB0aGUgZGV2aWNlIGJ5IGVudGVyaW5nIGEgd3JvbmcgUElOIHRv bw0KICAgICAgbWFueSB0aW1lcyAoZm9yIGRldmljZXMgd2l0aCBQSU4taW5wdXQgY2FwYWJpbGl0 eSkNCg0KNS40LjIuMS4gIE9UUCBhbmQgQ1Igc3BlY2lmaWMgVXNhZ2UgZWxlbWVudHMgKE9QVElP TkFMKQ0KDQogICBXaGVuIHRoZSBpbnRlbmRlZCB1c2FnZSBvZiBhIGtleSB1c2FnZSBpcyBPVFAg YW5kL29yIENSLCB0aGUNCiAgIGZvbGxvd2luZyBhZGRpdGlvbmFsIGVsZW1lbnRzIE1VU1QgYmUg cHJvdmlkZWQgd2l0aGluIHRoZSBVc2FnZQ0KICAgZWxlbWVudCB0byBzdXBwb3J0IHRoZSBPVFAg YW5kL29yIHRoZSByZXNwb25zZSBjb21wdXRhdGlvbiBhcw0KICAgcmVxdWlyZWQgYnkgdGhlIHVu ZGVybHlpbmcgYWxnb3JpdGhtLiAgVGhlc2UgZWxlbWVudHMgYWxzbyBhbGxvdw0KICAgY3VzdG9t aXppbmcgb3IgY29uZmlndXJpbmcgdGhlIHJlc3VsdCBvZiB0aGUgY29tcHV0YXRpb24gKGUuZy4N CiAgIGZvcm1hdCwgbGVuZ3RoKS4NCg0KNS40LjIuMS4xLiAgQ2hhbGxlbmdlRm9ybWF0IGVsZW1l bnQgKE1BTkRBVE9SWSkNCg0KICAgVGhlIENoYWxsZW5nZUZvcm1hdCBlbGVtZW50IGRlZmluZXMg dGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUNCiAgIGNoYWxsZW5nZSBpbiBhIENSIHVzYWdlIHNj ZW5hcmlvLiAgVGhlIENoYWxsZW5nZSBlbGVtZW50IGlzIGRlZmluZWQNCiAgIGJ5IHRoZSBmb2xs b3dpbmcgYXR0cmlidXRlczoNCg0KICAgbyAgRm9ybWF0IChNQU5EQVRPUlkpDQoNCiAgICAgICAg IERlZmluZXMgdGhlIGZvcm1hdCBvZiB0aGUgY2hhbGxlbmdlIGFjY2VwdGVkIGJ5IHRoZSBkZXZp Y2UgYW5kDQogICAgICAgICBNVVNUIGJlIG9uZSBvZiB0aGUgdmFsdWVzIGRlZmluZWQgaW4gU2Vj dGlvbiA1LjQuMw0KDQogICBvICBDaGVja0RpZ2l0IChPUFRJT05BTCkNCg0KICAgICAgICAgRGVm aW5lcyBpZiB0aGUgZGV2aWNlIG5lZWRzIHRvIGNoZWNrIHRoZSBhcHBlbmRlZCBMdWhuIGNoZWNr DQogICAgICAgICBkaWdpdCBjb250YWluZWQgaW4gYSBwcm92aWRlZCBjaGFsbGVuZ2UuICBUaGlz IGlzIG9ubHkgdmFsaWQgaWYNCiAgICAgICAgIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdERUNJ TUFMJy4gIFZhbHVlIE1VU1QgYmU6DQoNCiAgICAgICAgICAgIFRSVUUgZGV2aWNlIHdpbGwgY2hl Y2sgdGhlIGFwcGVuZGVkIEx1aG4gY2hlY2sgZGlnaXQgaW4gYQ0KICAgICAgICAgICAgcHJvdmlk ZWQgY2hhbGxlbmdlDQoNCiAgICAgICAgICAgIEZBTFNFIGRldmljZSB3aWxsIG5vdCBjaGVjayBh cHBlbmRlZCBMdWhuIGNoZWNrIGRpZ2l0IGluDQogICAgICAgICAgICBjaGFsbGVuZ2UNCg0KICAg byAgTWluIChNQU5EQVRPUlkpDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAg IEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDI0XQ0KDA0KSW50 ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAg ICAgSnVuZSAyMDA4DQoNCg0KICAgICAgICAgRGVmaW5lcyB0aGUgbWluaW11bSBzaXplIG9mIHRo ZSBjaGFsbGVuZ2UgYWNjZXB0ZWQgYnkgdGhlDQogICAgICAgICBkZXZpY2UgZm9yIENSIG1vZGUu DQoNCiAgICAgICAgIElmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdERUNJTUFMJywgJ0hFWEFE RUNJTUFMJyBvcg0KICAgICAgICAgJ0FMUEhBTlVNRVJJQycgdGhpcyB2YWx1ZSBpbmRpY2F0ZXMg dGhlIG1pbmltdW0gbnVtYmVyIG9mDQogICAgICAgICBkaWdpdHMvY2hhcmFjdGVycy4NCg0KICAg ICAgICAgSWYgdGhlIEZvcm1hdCBhdHRyaWJ1dGUgaXMgJ0JBU0U2NCcgb3IgJ0JJTkFSWScsIHRo aXMgdmFsdWUNCiAgICAgICAgIGluZGljYXRlcyB0aGUgbWluaW11bSBudW1iZXIgb2YgYnl0ZXMg b2YgdGhlIHVuZW5jb2RlZCB2YWx1ZS4NCg0KICAgICAgICAgVmFsdWUgTVVTVCBiZToNCg0KDQoN CiAgICAgICAgICAgIFVuc2lnbmVkIGludGVnZXIuDQoNCiAgIG8gIE1heCAoTUFOREFUT1JZKQ0K DQogICAgICAgICBEZWZpbmVzIHRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIGNoYWxsZW5nZSBhY2Nl cHRlZCBieSB0aGUNCiAgICAgICAgIGRldmljZSBmb3IgQ1IgbW9kZS4NCg0KICAgICAgICAgSWYg dGhlIEZvcm1hdCBhdHRyaWJ1dGUgaXMgJ0RFQ0lNQUwnLCAnSEVYQURFQ0lNQUwnIG9yDQogICAg ICAgICAnQUxQSEFOVU1FUklDJyB0aGlzIHZhbHVlIGluZGljYXRlcyB0aGUgbWF4aW11bSBudW1i ZXIgb2YNCiAgICAgICAgIGRpZ2l0cy9jaGFyYWN0ZXJzLg0KDQogICAgICAgICBJZiB0aGUgRm9y bWF0IGF0dHJpYnV0ZSBpcyAnQkFTRTY0JyBvciAnQklOQVJZJywgdGhpcyB2YWx1ZQ0KICAgICAg ICAgaW5kaWNhdGVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBieXRlcyBvZiB0aGUgdW5lbmNvZGVk IHZhbHVlLg0KDQogICAgICAgICBWYWx1ZSBNVVNUIGJlOg0KDQoNCg0KICAgICAgICAgICAgVW5z aWduZWQgaW50ZWdlci4NCg0KNS40LjIuMS4yLiAgUmVzcG9uc2VGb3JtYXQgZWxlbWVudCAoTUFO REFUT1JZKQ0KDQogICBUaGUgUmVzcG9uc2VGb3JtYXQgZWxlbWVudCBkZWZpbmVzIHRoZSBjaGFy YWN0ZXJpc3RpY3Mgb2YgdGhlIHJlc3VsdA0KICAgb2YgYSBjb21wdXRhdGlvbi4gIFRoaXMgZGVm aW5lcyB0aGUgZm9ybWF0IG9mIHRoZSBPVFAgb3Igb2YgdGhlDQogICByZXNwb25zZSB0byBhIGNo YWxsZW5nZS4gIEZvciBjYXNlcyB3aGVyZSB0aGUga2V5IGlzIGEgUElOIHZhbHVlLA0KICAgdGhp cyBlbGVtZW50IGNvbnRhaW5zIHRoZSBmb3JtYXQgb2YgdGhlIFBJTiBpdHNlbGYgKGUuZy4gIERF Q0lNQUwsDQogICBsZW5ndGggNCBmb3IgYSA0IGRpZ2l0IFBJTikuICBUaGUgUmVzcG9uc2UgYXR0 cmlidXRlIGlzIGRlZmluZWQgYnkNCiAgIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoNCg0KICAg byAgRm9ybWF0IChNQU5EQVRPUlkpDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAg ICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDI1XQ0KDA0K SW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAg ICAgICAgSnVuZSAyMDA4DQoNCg0KICAgICAgICAgRGVmaW5lcyB0aGUgZm9ybWF0IG9mIHRoZSBy ZXNwb25zZSBnZW5lcmF0ZWQgYnkgdGhlIGRldmljZSBhbmQNCiAgICAgICAgIE1VU1QgYmUgb25l IG9mIHRoZSB2YWx1ZXMgZGVmaW5lZCBpbiBTZWN0aW9uIDUuNC4zDQoNCiAgIG8gIENoZWNrRGln aXQgKE9QVElPTkFMKQ0KDQogICAgICAgICBEZWZpbmVzIGlmIHRoZSBkZXZpY2UgbmVlZHMgdG8g YXBwZW5kIGEgTHVobiBjaGVjayBkaWdpdCB0byB0aGUNCiAgICAgICAgIHJlc3BvbnNlLiAgVGhp cyBpcyBvbmx5IHZhbGlkIGlmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzDQogICAgICAgICAnREVD SU1BTCcuICBWYWx1ZSBNVVNUIGJlOg0KDQogICAgICAgICAgICBUUlVFIGRldmljZSB3aWxsIGFw cGVuZCBhIEx1aG4gY2hlY2sgZGlnaXQgdG8gdGhlIHJlc3BvbnNlLg0KDQogICAgICAgICAgICBG QUxTRSBkZXZpY2Ugd2lsbCBub3QgYXBwZW5kIGEgTHVobiBjaGVjayBkaWdpdCB0byB0aGUNCiAg ICAgICAgICAgIHJlc3BvbnNlLg0KDQogICBvICBMZW5ndGggKE1BTkRBVE9SWSkNCg0KICAgICAg ICAgRGVmaW5lcyB0aGUgbGVuZ3RoIG9mIHRoZSByZXNwb25zZSBnZW5lcmF0ZWQgYnkgdGhlIGRl dmljZS4NCg0KICAgICAgICAgSWYgdGhlIEZvcm1hdCBhdHRyaWJ1dGUgaXMgJ0RFQ0lNQUwnLCAn SEVYQURFQ0lNQUwnIG9yDQogICAgICAgICAnQUxQSEFOVU1FUklDJyB0aGlzIHZhbHVlIGluZGlj YXRlcyB0aGUgbnVtYmVyIG9mIGRpZ2l0cy8NCiAgICAgICAgIGNoYXJhY3RlcnMuDQoNCiAgICAg ICAgIElmIHRoZSBGb3JtYXQgYXR0cmlidXRlIGlzICdCQVNFNjQnIG9yICdCSU5BUlknLCB0aGlz IHZhbHVlDQogICAgICAgICBpbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBieXRlcyBvZiB0aGUgdW5l bmNvZGVkIHZhbHVlLg0KDQogICAgICAgICBWYWx1ZSBNVVNUIGJlOg0KDQoNCg0KICAgICAgICAg ICAgVW5zaWduZWQgaW50ZWdlci4NCg0KNS40LjMuICBWYWx1ZUZvcm1hdA0KDQogICBUaGUgVmFs dWVGb3JtYXQgZWxlbWVudCBkZWZpbmVzIGFsbG93ZWQgZm9ybWF0cyBmb3IgY2hhbGxlbmdlcyBv cg0KICAgcmVzcG9uc2VzIGluIE9UUCBhbGdvcml0aG1zLg0KDQogICBWYWx1ZUZvcm1hdCBpcyBk ZWZpbmVkIGFzIGZvbGxvd3M6DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0 IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1Bh Z2UgMjZdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29u dGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICA8c2ltcGxlVHlwZSBuYW1lPSJWYWx1 ZUZvcm1hdCI+DQogICAgIDxyZXN0cmljdGlvbiBiYXNlPSJzdHJpbmciPg0KICAgICAgIDxlbnVt ZXJhdGlvbiB2YWx1ZT0iREVDSU1BTCIvPg0KICAgICAgIDxlbnVtZXJhdGlvbiB2YWx1ZT0iSEVY QURFQ0lNQUwiLz4NCiAgICAgICA8ZW51bWVyYXRpb24gdmFsdWU9IkFMUEhBTlVNRVJJQyIvPg0K ICAgICAgIDxlbnVtZXJhdGlvbiB2YWx1ZT0iQkFTRTY0Ii8+DQogICAgICAgPGVudW1lcmF0aW9u IHZhbHVlPSJCSU5BUlkiLz4NCiAgICAgPC9yZXN0cmljdGlvbj4NCiAgIDwvc2ltcGxlVHlwZT4N Cg0KICAgICAgREVDSU1BTCwgT25seSBudW1lcmljYWwgZGlnaXRzDQoNCiAgICAgIEhFWEFERUNJ TUFMLCBIZXhhZGVjaW1hbCByZXNwb25zZQ0KDQogICAgICBBTFBIQU5VTUVSSUMsIEFsbCBsZXR0 ZXJzIGFuZCBudW1iZXJzIChjYXNlIHNlbnNpdGl2ZSkNCg0KICAgICAgQkFTRTY0LCBCYXNlIDY0 IGVuY29kZWQNCg0KICAgICAgQklOQVJZLCBCaW5hcnkgZGF0YSwgdGhpcyBpcyBtYWlubHkgdXNl ZCBpbiBjYXNlIG9mIGNvbm5lY3RlZA0KICAgICAgZGV2aWNlcw0KDQo1LjQuNC4gIFBJTlBvbGlj eQ0KDQogICBUaGUgUElOUG9saWN5IGVsZW1lbnQgcHJvdmlkZXMgYW4gZXh0ZW5zaWJsZSBtZWFu IHRvIGRlZmluZSBob3cgdGhlDQogICB1c2FnZSBvZiBhIHNwZWNpZmljIGtleSBpcyBwcm90ZWN0 ZWQgYnkgYSBQSU4uICBUaGUgUElOIGl0c2VsZiBjYW4gYmUNCiAgIHRyYW5zbWl0dGVkIGFzIGEg a2V5IHVzaW5nIHRoZSBjb250YWluZXIuDQoNCiAgIElmIHRoZSBQSU5Qb2xpY3kgZWxlbWVudCBp cyBwcmVzZW50IGluIHRoZSBLZXkgZWxlbWVudCB0aGVuIHRoZSBrZXkNCiAgIGlzIHByb3RlY3Rl ZCB3aXRoIGEgUElOIGFzIGRlZmluZWQgd2l0aGluIHRoZSBQSU5Qb2xpY3kgZWxlbWVudC4gIFRo ZQ0KICAgUElOUG9saWN5IGVsZW1lbnQgYWxzbyBoYXMgYW4gZXh0ZW5zaW9uIHBvaW50IGRlZmlu ZWQgYXMgeHM6YW55IHRvDQogICBhbGxvdyBmdXR1cmUgZXh0ZW5zaWJpbGl0eQ0KDQogICBQSU5Q b2xpY3kgaXMgZGVmaW5lZCBhcyBmb2xsb3dzOg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAw OCAgICAgICAgICAgICAgW1BhZ2UgMjddDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxl IFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogIDx4czpj b21wbGV4VHlwZSBuYW1lPSJQSU5Qb2xpY3lUeXBlIj4NCiAgICAgIDx4czpzZXF1ZW5jZT4NCiAg ICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQSU5Vc2FnZU1vZGUiIHR5cGU9InBza2M6UElOVXNh Z2VNb2RlVHlwZSIvPg0KICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1heEZhaWxlZEF0dGVt cHRzIiB0eXBlPSJ4czp1bnNpZ25lZEludCINCiAgICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0K ICAgICAgICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250 ZW50cz0ibGF4Ig0KICAgICAgICAgICAgICAgICAgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVu Ym91bmRlZCIvPg0KICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAgICA8eHM6YXR0cmlidXRl IG5hbWU9IlBJTlBvbGljeUlkIiB0eXBlPSJ4czpJRCIgdXNlPSJvcHRpb25hbCIvPg0KICAgICAg PHhzOmF0dHJpYnV0ZSBuYW1lPSJQSU5LZXlJZCIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9Im9wdGlv bmFsIi8+DQogIDwveHM6Y29tcGxleFR5cGU+DQoNCiAgIFRoZSBhdHRyaWJ1dGVzIG9mIFBJTlBv bGljeSBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZw0KDQogICBvICBQSU5Qb2xpY3lJZCAoT1BU SU9OQUwpLCB0aGUgdW5pcXVlIElkIG9mIHRoaXMgUElOUG9saWN5IHdpdGhpbg0KICAgICAgdGhp cyBjb250YWluZXINCg0KICAgbyAgUElOS2V5SWQgKE9QVElPTkFMKSwgdGhlIHVuaXF1ZSBrZXkg SWQgd2l0aGluIHRoaXMgY29udGFpbmVyIHRoYXQNCiAgICAgIGNvbnRhaW5zIHRoZSB2YWx1ZSBv ZiB0aGUgUElOIHRoYXQgcHJvdGVjdHMgdGhlIGtleQ0KDQogICBUaGUgZWxlbWVudHMgb2YgUElO UG9saWN5IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nDQoNCiAgIG8gIDxQSU5Vc2FnZU1vZGUg KE1BTkRBVE9SWSk+ICwgdGhlIHdheSB0aGUgUElOIGlzIHVzZWQgZHVyaW5nIHRoZQ0KICAgICAg dXNhZ2Ugb2YgdGhlIGtleSBhcyBkZWZpbmVkIGluIFNlY3Rpb24gNS40LjQuMQ0KDQogICBvICA8 TWF4RmFpbGVkQXR0ZW1wdHMgKE9QVElPTkFMKT4sIHRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1l cyB0aGUNCiAgICAgIFBJTiBjYW4gYmUgZW50ZXJlZCB3cm9uZ2x5IGJlZm9yZSBpdCBNVVNUIG5v dCBiZSBwb3NzaWJsZSB0byB1c2UNCiAgICAgIHRoZSBrZXkgYW55bW9yZQ0KDQo1LjQuNC4xLiAg UElOVXNhZ2VNb2RlDQoNCiAgIFRoZSBQSU5Vc2FnZU1vZGUgZWxlbWVudCBkZWZpbmVzIGhvdyB0 aGUgUElOIGlzIHVzZWQgd2l0aCBhIHNwZWNpZmljDQogICBrZXkuICBUaGUgUElOVXNhZ2VNb2Rl IGVsZW1lbnQgYWxzbyBoYXMgYW4gZXh0ZW5zaW9uIHBvaW50IGRlZmluZWQgYXMNCiAgIHhzOmFu eSB0byBhbGxvdyBmdXR1cmUgZXh0ZW5zaWJpbGl0eQ0KDQogICBQSU5Vc2FnZU1vZGUgaXMgZGVm aW5lZCBhcyBmb2xsb3dzOg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0 IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1Bh Z2UgMjhdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29u dGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICA8eHM6Y29tcGxleFR5cGUgbmFtZT0i UElOVXNhZ2VNb2RlVHlwZSI+DQogICAgICAgPHhzOmNob2ljZSBtYXhPY2N1cnM9InVuYm91bmRl ZCI+DQogICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkxvY2FsIi8+DQogICAgICAgICAgIDx4 czplbGVtZW50IG5hbWU9IlByZXBlbmQiLz4NCiAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i QWxnb3JpdGhtaWMiLz4NCiAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHBy b2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0i dW5ib3VuZGVkIi8+DQogICAgICAgPC94czpjaG9pY2U+DQogICA8L3hzOmNvbXBsZXhUeXBlPg0K DQogICBUaGUgZWxlbWVudHMgb2YgUElOUG9saWN5IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5n DQoNCiAgIG8gIDxMb2NhbD4sIHRoZSBQSU4gaXMgY2hlY2tlZCBsb2NhbGx5IG9uIHRoZSBkZXZp Y2UgYmVmb3JlIGFsbG93aW5nDQogICAgICB0aGUga2V5IHRvIGJlIHVzZWQgaW4gZXhlY3V0aW5n IHRoZSBhbGdvcml0aG0NCg0KICAgbyAgPFByZXBlbmQ+LCB0aGUgUElOIGlzIHByZXBlbmRlZCB0 byB0aGUgT1RQIG9yIHJlc3BvbnNlIGhlbmNlIGl0DQogICAgICBNVVNUIGJlIGNoZWNrZWQgYnkg dGhlIHZhbGlkYXRpb24gc2VydmVyDQoNCiAgIG8gIDxBbGdvcml0aG1pYz4sIHRoZSBQSU4gaXMg dXNlZCBhcyBwYXJ0IG9mIHRoZSBhbGdvcml0aG0NCiAgICAgIGNvbXB1dGF0aW9uDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCkhv eWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAg ICAgIFtQYWdlIDI5XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMg S2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KNi4gIFVzYWdlIGFuZCBwcm9m aWxlIG9mIGFsZ29yaXRobXMgZm9yIHRoZSBwb3J0YWJsZSBzeW1tZXRyaWMga2V5DQogICAgY29u dGFpbmVyDQoNCiAgIFRoaXMgc2VjdGlvbiBkZXRhaWxzIHRoZSB1c2Ugb2YgdGhlIFhNTCBlbmNy eXB0aW9uIGFuZCBYTUwgc2lnbmF0dXJlDQogICBlbGVtZW50cyB0byBwcm90ZWN0IHRoZSBrZXlz IHRyYW5zcG9ydGVkIGluIHRoZSBjb250YWluZXIuICBJdCBhbHNvDQogICBwcm9maWxlcyB0aGUg bnVtYmVyIG9mIGFsZ29yaXRobXMgc3VwcG9ydGVkIGJ5IFhNTCBlbmNyeXB0aW9uIGFuZCBYTUwN CiAgIHNpZ25hdHVyZSB0byBhIG1hbmRhdG9yeSBzdWJzZXQgZm9yIGludGVyb3BlcmFiaWxpdHku DQoNCiAgIFdoZW4gbm8gYWxnb3JpdGhtIGlzIHByb3ZpZGVkIHRoZSB2YWx1ZXMgd2l0aGluIHRo ZSBjb250YWluZXIgYXJlDQogICB1bmVuY3J5cHRlZCwgaW1wbGVtZW50YXRpb25zIFNIQUxMIGVu c3VyZSB0aGUgcHJpdmFjeSBvZiB0aGUga2V5IGRhdGENCiAgIHRocm91Z2ggb3RoZXIgc3RhbmRh cmQgbWVjaGFuaXNtcyBlLmcuIHRyYW5zcG9ydCBsZXZlbCBlbmNyeXB0aW9uLg0KDQo2LjEuICBV c2FnZSBvZiBFbmNyeXB0aW9uS2V5IHRvIHByb3RlY3Qga2V5cyBpbiB0cmFuc2l0DQoNCiAgIFRo ZSBFbmNyeXB0aW9uS2V5IGVsZW1lbnQgaW4gdGhlIEtleUNvbnRhaW5lciBkZWZpbmVzIHRoZSBr ZXksDQogICBhbGdvcml0aG0gYW5kIHBhcmFtZXRlcnMgdXNlZCB0byBlbmNyeXB0IHRoZSBTZWNy ZXQgS2V5IGRhdGENCiAgIGF0dHJpYnV0ZXMgaW4gdGhlIENvbnRhaW5lci4gIFRoZSBzdGFuZGFy ZCBzY2hlbWEgW1hNTEVOQ10gaXMgYWRvcHRlZA0KICAgaW4gY2Fycnkgc3VjaCBpbmZvcm1hdGlv biBhbmQgYW4gZW5jcnlwdGVkIHZhbHVlLiAgVGhlIGVuY3J5cHRpb24gaXMNCiAgIGFwcGxpZWQg b24gZWFjaCBpbmRpdmlkdWFsIFNlY3JldCBLZXkgZGF0YSBpbiB0aGUgQ29udGFpbmVyLiAgVGhl DQogICBlbmNyeXB0aW9uIG1ldGhvZCBNVVNUIGJlIHRoZSBzYW1lIGZvciBhbGwgU2VjcmV0IEtl eSBkYXRhIGluIHRoZQ0KICAgY29udGFpbmVyLg0KDQogICBUaGUgZm9sbG93aW5nIHNlY3Rpb25z IGRlZmluZSBzcGVjaWZpY2FsbHkgdGhlIGRpZmZlcmVudCBzdXBwb3J0ZWQNCiAgIG1lYW5zIHRv IHByb3RlY3QgdGhlIGtleXM6DQoNCjYuMS4xLiAgUHJvdGVjdGluZyBrZXlzIHVzaW5nIGEgcHJl LXNoYXJlZCBrZXkgdmlhIHN5bW1ldHJpYyBhbGdvcml0aG1zDQoNCiAgIFdoZW4gcHJvdGVjdGlu ZyB0aGUgcGF5bG9hZCB3aXRoIHByZS1zaGFyZWQga2V5cyBpbXBsZW1lbnRhdGlvbnMNCiAgIFNI T1VMRCBzZXQgdGhlIG5hbWUgb2YgdGhlIHNwZWNpZmljIHByZS1zaGFyZWQga2V5IGluIHRoZSBL ZXlOYW1lDQogICBlbGVtZW50IG9mIHRoZSBFbmNyeXB0aW9uS2V5IG9mIHRoZSBLZXlDb250YWlu ZXIuICBGb3IgZXhhbXBsZToNCg0KDQogICA8S2V5Q29udGFpbmVyIFZlcnNpb249IjEuMCINCiAg ICAgeG1sbnM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tjOjEuMCINCiAgICAg eG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiDQogICAgIHhtbG5z OnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI+DQogICAgICAgPEVuY3J5 cHRpb25LZXk+DQogICAgICAgICAgIDxkczpLZXlOYW1lPlBSRV9TSEFSRURfS0VZPC9kczpLZXlO YW1lPg0KICAgICAgIDwvRW5jcnlwdGlvbktleT4NCiAgICAgICAuLi4uDQoNCiAgIFRoZSBmb2xs b3dpbmcgaXMgdGhlIGxpc3Qgb2Ygc3ltbWV0cmljIGtleSBlbmNyeXB0aW9uIGFsZ29yaXRobSBh bmQNCiAgIHBvc3NpYmxlIHBhcmFtZXRlcnMgdXNlZCB0byBwcm90ZWN0IHRoZSBTZWNyZXQgS2V5 IGRhdGEgaW4gdGhlDQogICBjb250YWluZXIuICBTeXN0ZW1zIGltcGxlbWVudGluZyBQU0tDIE1V U1Qgc3VwcG9ydCB0aGUgTUFOREFUT1JZDQogICBhbGdvcml0aG1zIGRldGFpbGVkIGJlbG93Lg0K DQogICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gVVJJIGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxv d2luZy4NCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAy OSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgMzBdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBv cnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQog ICBvICBodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyN0cmlwbGVkZXMtY2JjIC0gTUFO REFUT1JZDQoNCiAgIG8gIGh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2FlczEyOC1j YmMgLSBNQU5EQVRPUlkNCg0KICAgbyAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMj YWVzMTkyLWNiYyAtIE9QVElPTkFMDQoNCiAgIG8gIGh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQv eG1sZW5jI2FlczI1Ni1jYmMgLSBNQU5EQVRPUlkNCg0KICAgbyAgaHR0cDovL3d3dy53My5vcmcv MjAwMS8wNC94bWxlbmMja3ctdHJpcGxlZGVzIC0gTUFOREFUT1JZDQoNCiAgIG8gIGh0dHA6Ly93 d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI2t3LWFlczEyOCAtIE1BTkRBVE9SWQ0KDQogICBvICBo dHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNrdy1hZXMyNTYgLSBNQU5EQVRPUlkNCg0K ICAgbyAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMja3ctYWVzNTEyIC0gT1BUSU9O QUwNCg0KICAgV2hlbiBhbGdvcml0aG1zIHdpdGhvdXQgaW50ZWdyaXR5IGNoZWNrcyBhcmUgdXNl ZCAoZS5nLg0KICAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjYWVzMjU2LWNiYykg YSBrZXllZCBNQUMgdmFsdWUgdXNpbmcNCiAgIHRoZSBzYW1lIGtleSBhcyB0aGUgZW5jcnlwdGlv biBrZXkgU0hPVUxEIGJlIHBsYWNlZCBpbiB0aGUgVmFsdWVNQUMNCiAgIGVsZW1lbnQgb2YgdGhl IERhdGEgZWxlbWVudC4gIEluIHRoaXMgY2FzZSB0aGUgTUFDIGFsZ29yaXRobSB0eXBlDQogICBN VVNUIGJlIHNldCBpbiB0aGUgTUFDQWxnb3JpdGhtIGVsZW1lbnQgaW4gdGhlIGtleSBjb250YWlu ZXIgZW50aXR5DQogICBhcyBkZWZpbmVkIGluIFNlY3Rpb24gNS4xLiAgSW1wbGVtZW50YXRpb25z IG9mIFBTS0MgTVVTVCBzdXBwb3J0IHRoZQ0KICAgTUFOREFUT1JZIE1BQyBhbGdvcml0aG1zIGRl dGFpbGVkIGJlbG93LiAgVGhlIE1BQ0FsZ29yaXRobSBVUkkgY2FuIGJlDQogICBvbmUgb2YgdGhl IGZvbGxvd2luZzoNCg0KICAgbyAgaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2ht YWMtc2hhMSAtIE1BTkRBVE9SWQ0KDQogICBGb3IgZXhhbXBsZToNCg0KDQogICA8S2V5Q29udGFp bmVyIFZlcnNpb249IjEuMCINCiAgICAgeG1sbnM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5 cHJvdjpwc2tjOjEuMCINCiAgICAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkv eG1sZHNpZyMiDQogICAgIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1s ZW5jIyI+DQogICAgICAgPEVuY3J5cHRpb25LZXk+DQogICAgICAgICAgIDxkczpLZXlOYW1lPlBS RV9TSEFSRURfS0VZPC9kczpLZXlOYW1lPg0KICAgICAgIDwvRW5jcnlwdGlvbktleT4NCiAgICAg ICA8TUFDQWxnb3JpdGhtPmh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNobWFjLXNo YTENCiAgICAgICA8L01BQ0FsZ29yaXRobT4NCiAgICAgICAuLi4uLg0KDQo2LjEuMi4gIFByb3Rl Y3Rpbmcga2V5cyB1c2luZyBwYXNzcGhyYXNlIGJhc2VkIGVuY3J5cHRpb24ga2V5cw0KDQogICBU byBiZSBhYmxlIHRvIHN1cHBvcnQgcGFzc3BocmFzZSBiYXNlZCBlbmNyeXB0aW9uIGtleXMgYXMg ZGVmaW5lZCBpbg0KICAgUEtDUyM1IHRoZSBmb2xsb3dpbmcgWE1MIHJlcHJlc2VudGF0aW9uIG9m IHRoZSBQQkUgcmVsYXRlcyBwYXJhbWV0ZXJzDQogICBoYXZlIGJlZW4gaW50cm9kdWNlZCBpbiB0 aGUgc2NoZW1hLiAgQWx0aG91Z2ggdGhlIGFwcHJvYWNoIGlzDQogICBleHRlbnNpYmxlIGltcGxl bWVudGF0aW9ucyBvZiBQU0tDIE1VU1Qgc3VwcG9ydCB0aGUNCiAgIEtleURlcml2YXRpb25NZXRo b2QgYWxnb3JpdGhtIFVSSSBvZg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJl cyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgMzFdDQoMDQpJbnRlcm5ldC1E cmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5l IDIwMDgNCg0KDQogICBodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJzL3BrY3Mvc2No ZW1hcy9wa2NzLTUjcGJrZGYyLg0KDQoNCiAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZXJpdmVk S2V5VHlwZSI+DQogICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJLZXlEZXJpdmF0aW9uTWV0aG9kIg0KICAgICAgICAgICAgIHR5cGU9InBza2M6S2V5RGVy aXZhdGlvbk1ldGhvZFR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICA8eHM6ZWxlbWVu dCByZWY9InhlbmM6UmVmZXJlbmNlTGlzdCIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgIDx4 czplbGVtZW50IG5hbWU9IkNhcnJpZWRLZXlOYW1lIiB0eXBlPSJ4czpzdHJpbmciDQogICAgICAg ICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICA8eHM6 YXR0cmlidXRlIG5hbWU9IklkIiB0eXBlPSJ4czpJRCIgdXNlPSJvcHRpb25hbCIvPg0KICAgICAg IDx4czphdHRyaWJ1dGUgbmFtZT0iVHlwZSIgdHlwZT0ieHM6YW55VVJJIiB1c2U9Im9wdGlvbmFs Ii8+DQogICAgICAgPC94czpjb21wbGV4VHlwZT4NCiAgICAgICA8eHM6Y29tcGxleFR5cGUgbmFt ZT0iS2V5RGVyaXZhdGlvbk1ldGhvZFR5cGUiPg0KICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg ICAgICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBtaW5PY2N1cnM9IjAiDQogICAg ICAgICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgPC94czpzZXF1ZW5j ZT4NCiAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkFsZ29yaXRobSIgdHlwZT0ieHM6YW55VVJJ Ig0KICAgICAgIHVzZT0icmVxdWlyZWQiLz4NCiAgIDwveHM6Y29tcGxleFR5cGU+DQoNCiAgIFRo ZSBhdHRyaWJ1dGVzIG9mIHRoZSBEZXJpdmVkS2V5IGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5n czoNCg0KICAgbyAgSUQgKE9QVElPTkFMKSwgdGhlIHVuaXF1ZSBJRCBmb3IgdGhpcyBrZXkNCg0K ICAgbyAgVHlwZSAoT1BUSU9OQUwpLCBUaGlzIGF0dHJpYnV0ZSB3YXMgaW5jbHVkZWQgZm9yIGNv bmZvcm1hbmNlIHdpdGgNCiAgICAgIHhtbCBlbmNyeXB0aW9uLCBpdCBpcyBhbiBvcHRpb25hbCBh dHRyaWJ1dGUgaWRlbnRpZnlpbmcgdHlwZQ0KICAgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBs YWludGV4dCBmb3JtIG9mIHRoZSBlbmNyeXB0ZWQgY29udGVudC4NCiAgICAgIFBsZWFzZSBzZWUg W1hNTEVOQ10gc2VjdGlvbiAzLjEgVHlwZSBmb3IgbW9yZSBkZXRhaWxzLg0KDQogICBUaGUgZWxl bWVudHMgb2YgdGhlIERlcml2ZWRLZXkgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOg0KDQog ICBvICA8S2V5RGVyaXZhdGlvbk1ldGhvZD46IFVSSSBvZiB0aGUgYWxnb3JpdGhtcyB1c2VkIHRv IGRlcml2ZSB0aGUNCiAgICAgIGtleSBlLmcuDQogICAgICAoaHR0cDovL3d3dy5yc2FzZWN1cml0 eS5jb20vcnNhbGFicy9wa2NzL3NjaGVtYXMvcGtjcy01I3Bia2RmMikNCg0KICAgbyAgPFJlZmVy ZW5jZUxpc3QgKE9QVElPTkFMKT46IGEgbGlzdCBvZiBJRHMgb2YgdGhlIGVsZW1lbnRzIHRoYXQN CiAgICAgIGhhdmUgYmVlbiBlbmNyeXB0ZWQgYnkgdGhpcyBrZXkNCg0KICAgbyAgPENhcnJpZWRL ZXlOYW1lIChPUFRJT05BTCk+OiBmcmllbmRseSBuYW1lIG9mIHRoZSBrZXkNCg0KICAgV2hlbiB1 c2luZyB0aGUgUEtDUzUgUEJFIGFsZ29yaXRobQ0KICAgKFVSST1odHRwOi8vd3d3LnJzYXNlY3Vy aXR5LmNvbS9yc2FsYWJzL3BrY3Mvc2NoZW1hcy9wa2NzLTUjcGJlczIpDQogICBhbmQgcmVsYXRl ZCBwYXJhbWV0ZXJzLCB0aGUgRGVyaXZlZEtleSBlbGVtZW50IE1VU1QgYmUgdXNlZCB3aXRoaW4N CiAgIHRoZSBFbmNyeXB0aW9uS2V5IGVsZW1lbnQgb2YgdGhlIEtleUNvbnRhaW5lciBpbiBleGFj dGx5IHRoZSBmb3JtIGFzDQogICBzaG93biBiZWxvdzoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAg ICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDMyXQ0K DA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAg ICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0i VVRGLTgiPz4NCiAgIDxLZXlDb250YWluZXINCiAgICAgeG1sbnM9InVybjppZXRmOnBhcmFtczp4 bWw6bnM6a2V5cHJvdjpwc2tjOjEuMCINCiAgICAgeG1sbnM6cGtjcy01PQ0KICAgICAgICJodHRw Oi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJzL3BrY3Mvc2NoZW1hcy9wa2NzLTV2Mi0wIyIN CiAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5j ZSINCiAgICAgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiDQog ICAgIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyINCiAgICAg VmVyc2lvbj0iMS4wIj4NCiAgICAgICA8RW5jcnlwdGlvbktleT4NCiAgICAgICAgIDxEZXJpdmVk S2V5IElkPSIjUGFzc3BocmFzZTEiPg0KICAgICAgICAgICA8Q2FycmllZEtleU5hbWU+UGFzc3Bo cmFzZTE8L0NhcnJpZWRLZXlOYW1lPg0KICAgICAgICAgICA8S2V5RGVyaXZhdGlvbk1ldGhvZA0K ICAgICAgICAgICAgIEFsZ29yaXRobT0NCiAgICAgICAgImh0dHA6Ly93d3cucnNhc2VjdXJpdHku Y29tL3JzYWxhYnMvcGtjcy9zY2hlbWFzL3BrY3MtNSNwYmtkZjIiPg0KICAgICAgICAgICAgIDxQ YXJhbWV0ZXJzIHhzaTp0eXBlPSJwa2NzLTU6UEJLREYyUGFyYW1ldGVyVHlwZSI+DQogICAgICAg ICAgICAgICA8U2FsdD4NCiAgICAgICAgICAgICAgICAgPFNwZWNpZmllZD5EZjNkUkFoakdoOD08 L1NwZWNpZmllZD4NCiAgICAgICAgICAgICAgIDwvU2FsdD4NCiAgICAgICAgICAgICAgIDxJdGVy YXRpb25Db3VudD4yMDAwPC9JdGVyYXRpb25Db3VudD4NCiAgICAgICAgICAgICAgIDxLZXlMZW5n dGg+MTY8L0tleUxlbmd0aD4NCiAgICAgICAgICAgICAgIDxQUkYvPg0KICAgICAgICAgICAgIDwv UGFyYW1ldGVycz4NCiAgICAgICAgICAgPC9LZXlEZXJpdmF0aW9uTWV0aG9kPg0KICAgICAgICAg PC9EZXJpdmVkS2V5Pg0KICAgICAgIDwvRW5jcnlwdGlvbktleT4NCiAgIC4uLi4NCg0KNi4yLiAg UHJvdGVjdGluZyBrZXlzIHVzaW5nIGFzeW1tZXRyaWMgYWxnb3JpdGhtcw0KDQogICBUaGUgZm9s bG93aW5nIGlzIHRoZSBsaXN0IG9mIGFzeW1tZXRyaWMga2V5IGVuY3J5cHRpb24gYWxnb3JpdGht IGFuZA0KICAgcG9zc2libGUgcGFyYW1ldGVycyB1c2VkIHRvIHByb3RlY3QgdGhlIFNlY3JldCBL ZXkgZGF0YSBpbiB0aGUNCiAgIGNvbnRhaW5lci4gIFN5c3RlbXMgaW1wbGVtZW50aW5nIFBTS0Mg TVVTVCBzdXBwb3J0IHRoZSBNQU5EQVRPUlkNCiAgIGFsZ29yaXRobXMgZGV0YWlsZWQgYmVsb3cu ICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gVVJJIGNhbiBiZSBvbmUNCiAgIG9mIHRoZSBmb2xs b3dpbmcuDQoNCiAgIG8gIGh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYS0xXzUg LSBNQU5EQVRPUlkNCg0KICAgbyAgaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjcnNh LW9hZXAtbWdmMXAgLSBPUFRJT05BTA0KDQogICBGb3IgZXhhbXBsZToNCg0KDQoNCg0KDQoNCg0K DQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAg ICAgICAgICAgICAgW1BhZ2UgMzNdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5 bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICA8P3htbCB2 ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KDQogICA8cHNrYzpLZXlDb250YWluZXIg VmVyc2lvbj0iMS4wIg0KICAgICB4bWxuczpwc2tjPSJ1cm46aWV0ZjpwYXJhbXM6eG1sOm5zOmtl eXByb3Y6cHNrYzoxLjAiDQogICAgIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5 L3htbGRzaWcjIg0KICAgICB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3ht bGVuYyMiPg0KICAgICAgIDxwc2tjOkVuY3J5cHRpb25LZXk+DQogICAgICAgICAgIDxkczpYNTA5 RGF0YT4NCiAgICAgICAgICAgICAgIDxkczpYNTA5Q2VydGlmaWNhdGU+bWlpYjwvZHM6WDUwOUNl cnRpZmljYXRlPg0KICAgICAgICAgICA8L2RzOlg1MDlEYXRhPg0KICAgICAgIDwvcHNrYzpFbmNy eXB0aW9uS2V5Pg0KICAgICAgIDxwc2tjOkRldmljZT4NCiAgICAgICAgICAgPHBza2M6RGV2aWNl SW5mbz4NCiAgICAgICAgICAgICAgIDxwc2tjOk1hbnVmYWN0dXJlcj5BQ01FPC9wc2tjOk1hbnVm YWN0dXJlcj4NCiAgICAgICAgICAgICAgIDxwc2tjOlNlcmlhbE5vPjA3NTUyMjUyNjY8L3Bza2M6 U2VyaWFsTm8+DQogICAgICAgICAgIDwvcHNrYzpEZXZpY2VJbmZvPg0KICAgICAgICAgICA8cHNr YzpLZXkgS2V5QWxnb3JpdGhtPQ0KICAgICAgICAgICAgImh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5 cHJvdi9wc2tjI2hvdHAiDQogICAgICAgICAgICBLZXlJZD0iMDc1NTIyNTI2NiI+DQogICAgICAg ICAgICAgICA8cHNrYzpJc3N1ZXI+QW5Jc3N1ZXI8L3Bza2M6SXNzdWVyPg0KICAgICAgICAgICAg ICAgPHBza2M6VXNhZ2UgT1RQPSJ0cnVlIj4NCiAgICAgICAgICAgICAgICAgICA8cHNrYzpSZXNw b25zZUZvcm1hdCBMZW5ndGg9IjgiDQogICAgICAgICAgICAgICAgICAgRm9ybWF0PSJERUNJTUFM Ii8+DQogICAgICAgICAgICAgICA8L3Bza2M6VXNhZ2U+DQogICAgICAgICAgICAgICA8cHNrYzpE YXRhIE5hbWU9IkNPVU5URVIiPg0KICAgICAgICAgICAgICAgICAgIDxwc2tjOlBsYWluVmFsdWU+ QXBya3VBPT08L3Bza2M6UGxhaW5WYWx1ZT4NCiAgICAgICAgICAgICAgIDwvcHNrYzpEYXRhPg0K ICAgICAgICAgICAgICAgPHBza2M6RGF0YSBOYW1lPSJTRUNSRVQiPg0KICAgICAgICAgICAgICAg ICA8cHNrYzpFbmNyeXB0ZWRWYWx1ZSBJZD0iRUQiPg0KICAgICAgICAgICAgICAgICAgIDx4ZW5j OkVuY3J5cHRpb25NZXRob2QNCiAgICAgICAgICAgICAgICAgICAgIEFsZ29yaXRobT0NCiAgICAg ICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNyc2FfMV81 Ii8+DQogICAgICAgICAgICAgICAgICAgPHhlbmM6Q2lwaGVyRGF0YT4NCiAgICAgICAgICAgICAg ICAgICAgIDx4ZW5jOkNpcGhlclZhbHVlPnJmNGR4M3J2RVBPMHZLdEtMMTROYmVWdThuaz0NCiAg ICAgICAgICAgICAgICAgICAgIDwveGVuYzpDaXBoZXJWYWx1ZT4NCiAgICAgICAgICAgICAgICAg ICA8L3hlbmM6Q2lwaGVyRGF0YT4NCiAgICAgICAgICAgICAgICAgPC9wc2tjOkVuY3J5cHRlZFZh bHVlPg0KICAgICAgICAgICAgICAgPC9wc2tjOkRhdGE+DQogICAgICAgICAgIDwvcHNrYzpLZXk+ DQogICAgICAgPC9wc2tjOkRldmljZT4NCiAgIDwvcHNrYzpLZXlDb250YWluZXI+DQoNCjYuMy4g IFByb2ZpbGUgb2YgS2V5IEFsZ29yaXRobQ0KDQogICBUaGlzIHNlY3Rpb24gcHJvZmlsZXMgdGhl IHR5cGUocykgb2YgYWxnb3JpdGhtIG9mIHRoYXQgY2FuIGJlIHVzZWQgYnkNCiAgIHRoZSBrZXko cykgdHJhbnNwb3J0ZWQgaW4gdGhlIGNvbnRhaW5lci4gIFRoZSBmb2xsb3dpbmcgYWxnb3JpdGht DQogICBVUklzIGFyZSBhbW9uZyB0aGUgZGVmYXVsdCBzdXBwb3J0IGxpc3QuDQoNCg0KDQoNCkhv eWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAg ICAgIFtQYWdlIDM0XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMg S2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgbyAgaHR0cDovL3d3dy53 My5vcmcvMjAwMS8wNC94bWxlbmMjdHJpcGxlZGVzLWNiYw0KDQogICBvICBodHRwOi8vd3d3Lncz Lm9yZy8yMDAxLzA0L3htbGVuYyNhZXMxMjgtY2JjDQoNCiAgIG8gIGh0dHA6Ly93d3cudzMub3Jn LzIwMDEvMDQveG1sZW5jI2FlczE5Mi1jYmMNCg0KICAgbyAgaHR0cDovL3d3dy53My5vcmcvMjAw MS8wNC94bWxlbmMjYWVzMjU2LWNiYw0KDQogICBvICBodHRwOi8vd3d3LmlldGYub3JnL2tleXBy b3YvcHNrYyNob3RwDQoNCiAgIG8gIGh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI3Bp bg0KDQo2LjMuMS4gIE9UUCBLZXkgQWxnb3JpdGhtIElkZW50aWZpZXJzDQoNCiAgIE9UUCBrZXkg YWxnb3JpdGhtIFVSSXMgaGF2ZSBub3QgYmVlbiBkZWZpbmVkIGluIGEgY29tbW9ubHkgYXZhaWxh YmxlDQogICBzdGFuZGFyZCBzcGVjaWZpY2F0aW9uLiAgVGhpcyBkb2N1bWVudCBkZWZpbmVzIHRo ZSBmb2xsb3dpbmcgVVJJcyBmb3INCiAgIHRoZSBzdGFuZGFyZCBPVFAgYWxnb3JpdGhtcyBkZWZp bmVkIGluIFtIT1RQXS4NCg0KNi4zLjEuMS4gIEhPVFANCg0KICAgU3RhbmRhcmQgZG9jdW1lbnQ6 IFJGQzQyMjYNCg0KICAgSWRlbnRpZmllcjogaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92L3Bz a2MjaG90cA0KDQogICBOb3RlIHRoYXQgdGhlIGFjdHVhbCBVUkwgd2lsbCBiZSBmaW5hbGl6ZWQg b25jZSBhIFVSTCBmb3IgdGhpcw0KICAgZG9jdW1lbnQgaXMgZGV0ZXJtaW5lZC4NCg0KNi4zLjEu Mi4gIE90aGVyIE9UUCBBbGdvcml0aG1zDQoNCiAgIEFuIGltcGxlbWVudGF0aW9uIHNob3VsZCBy ZWZlciB0byB2ZW5kb3IgcmVnaXN0ZXJlZCBPVFAga2V5IGFsZ29yaXRobQ0KICAgVVJJcyBmb3Ig b3RoZXIgZXhpc3RpbmcgT1RQIGFsZ29yaXRobXMsIGZvciBleGFtcGxlLCB0aGUgUlNBIFNlY3Vy SUQNCiAgIE9UUCBhbGdvcml0aG0gYXMgZm9sbG93cy4NCg0KICAgbyAgaHR0cDovL3d3dy5yc2Eu Y29tL3JzYWxhYnMvb3Rwcy9zY2hlbWFzLzIwMDUvMDkvDQogICAgICBvdHBzLXdzdCNTZWN1cklE LUFFUw0KDQo2LjMuMi4gIFBJTiBrZXkgdmFsdWUgY29tcGFyZSBhbGdvcml0aG0gaWRlbnRpZmll cg0KDQogICBQSU4ga2V5IGFsZ29yaXRobSBVUklzIGhhdmUgbm90IGJlZW4gZGVmaW5lZCBpbiBh IGNvbW1vbmx5IGF2YWlsYWJsZQ0KICAgc3RhbmRhcmQgc3BlY2lmaWNhdGlvbi4gIFRoaXMgZG9j dW1lbnQgZGVmaW5lcyB0aGUgZm9sbG93aW5nIFVSSXMgZm9yDQogICBhIHN0cmFpZ2h0IHZhbHVl IGNvbXBhcmlzb24gb2YgdGhlIHRyYW5zcG9ydGVkIHNlY3JldCBrZXkgZGF0YSBhcw0KICAgd2hl biByZXF1aXJlZCB0byBjb21wYXJlIGEgUElOLg0KDQogICBJZGVudGlmaWVyOiBodHRwOi8vd3d3 LmlldGYub3JnL2tleXByb3YvcHNrYyNwaW4NCg0KICAgTm90ZSB0aGF0IHRoZSBhY3R1YWwgVVJM IHdpbGwgYmUgZmluYWxpemVkIG9uY2UgYSBVUkwgZm9yIHRoaXMNCiAgIGRvY3VtZW50IGlzIGRl dGVybWluZWQuDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1i ZXIgMjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDM1XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAg ICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoN Cg0KNy4gIFJlc2VydmVkIGRhdGEgYXR0cmlidXRlIG5hbWVzDQoNCiAgIFRoZSBmb2xsb3dpbmcg a2V5IGRhdGEgYXR0cmlidXRlIG5hbWVzIGhhdmUgYmVlbiByZXNlcnZlZDoNCg0KICAgICAgU0VD UkVUOiB0aGUgc2hhcmVkIHNlY3JldCBrZXkgdmFsdWUgaW4gYmluYXJ5LCBiYXNlNjQgZW5jb2Rl ZA0KDQogICAgICBDT1VOVEVSOiB0aGUgZXZlbnQgY291bnRlciBmb3IgZXZlbnQgYmFzZWQgT1RQ IGFsZ29yaXRobXMuIDggYnl0ZXMNCiAgICAgIHVuc2lnbmVkIGludGVnZXIgaW4gYmlnIGVuZGlh biAoaS5lLiBuZXR3b3JrIGJ5dGUgb3JkZXIpIGZvcm0NCiAgICAgIGJhc2U2NCBlbmNvZGVkDQoN CiAgICAgIFRJTUU6IHRoZSB0aW1lIGZvciB0aW1lIGJhc2VkIE9UUCBhbGdvcml0aG1zLiA4IGJ5 dGVzIHVuc2lnbmVkDQogICAgICBpbnRlZ2VyIGluIGJpZyBlbmRpYW4gKGkuZS4gbmV0d29yayBi eXRlIG9yZGVyKSBmb3JtIGJhc2U2NA0KICAgICAgZW5jb2RlZCAoTnVtYmVyIG9mIHNlY29uZHMg c2luY2UgMTk3MCkNCg0KICAgICAgVElNRV9JTlRFUlZBTDogdGhlIHRpbWUgaW50ZXJ2YWwgdmFs dWUgZm9yIHRpbWUgYmFzZWQgT1RQDQogICAgICBhbGdvcml0aG1zLiA4IGJ5dGVzIHVuc2lnbmVk IGludGVnZXIgaW4gYmlnIGVuZGlhbiAoaS5lLiBuZXR3b3JrDQogICAgICBieXRlIG9yZGVyKSBm b3JtIGJhc2U2NCBlbmNvZGVkLg0KDQogICAgICBUSU1FX0RSSUZUOiB0aGUgZGV2aWNlIGNsb2Nr IGRyaWZ0IHZhbHVlIGZvciB0aW1lIGJhc2VkIE9UUA0KICAgICAgYWxnb3JpdGhtcy4gIFRoZSB2 YWx1ZSBpbmRpY2F0ZXMgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCB0aGUgZGV2aWNlDQogICAgICBj bG9jayBtYXkgZHJpZnQgZWFjaCBkYXkuIDIgYnl0ZXMgdW5zaWduZWQgaW50ZWdlciBpbiBiaWcg ZW5kaWFuDQogICAgICAoaS5lLiBuZXR3b3JrIGJ5dGUgb3JkZXIpIGZvcm0gYmFzZTY0IGVuY29k ZWQuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAg ICAgICAgICAgICAgW1BhZ2UgMzZdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5 bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQo4LiAgRm9ybWFs IFN5bnRheA0KDQogICBUaGUgZm9sbG93aW5nIHN5bnRheCBzcGVjaWZpY2F0aW9uIHVzZXMgdGhl IHdpZGVseSBhZG9wdGVkIFhNTCBzY2hlbWENCiAgIGZvcm1hdCBhcyBkZWZpbmVkIGJ5IGEgVzND IHJlY29tbWVuZGF0aW9uDQogICAoaHR0cDovL3d3dy53My5vcmcvVFIveG1sc2NoZW1hLTAvKS4g IEl0IGlzIGEgY29tcGxldGUgc3ludGF4DQogICBkZWZpbml0aW9uIGluIHRoZSBYTUwgU2NoZW1h IERlZmluaXRpb24gZm9ybWF0IChYU0QpDQoNCiAgIEFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhp cyBzdGFuZGFyZCBtdXN0IGNvbXBseSB3aXRoIHRoZSBzY2hlbWENCiAgIGJlbG93Lg0KDQoNCjw/ eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQo8eHM6c2NoZW1hIHhtbG5zOnhz PSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSINCiAgeG1sbnM6cHNrYz0idXJuOmll dGY6cGFyYW1zOnhtbDpuczprZXlwcm92OnBza2M6MS4wIg0KICB4bWxuczpkcz0iaHR0cDovL3d3 dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyINCiAgeG1sbnM6eGVuYz0iaHR0cDovL3d3dy53My5v cmcvMjAwMS8wNC94bWxlbmMjIg0KICB0YXJnZXROYW1lc3BhY2U9InVybjppZXRmOnBhcmFtczp4 bWw6bnM6a2V5cHJvdjpwc2tjOjEuMCINCiAgZWxlbWVudEZvcm1EZWZhdWx0PSJxdWFsaWZpZWQi IGF0dHJpYnV0ZUZvcm1EZWZhdWx0PSJ1bnF1YWxpZmllZCINCiAgdmVyc2lvbj0iMS4wIj4NCiAg ICA8eHM6aW1wb3J0IG5hbWVzcGFjZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2ln IyINCiAgICAgIHNjaGVtYUxvY2F0aW9uPQ0KICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSLzIw MDIvUkVDLXhtbGRzaWctY29yZS0yMDAyMDIxMi8NCiAgICAgIHhtbGRzaWctY29yZS1zY2hlbWEu eHNkIi8+DQogICAgPHhzOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEv MDQveG1sZW5jIyINCiAgICAgIHNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnczLm9yZy9UUi8N CiAgICAgIHhtbGVuYy1jb3JlL3hlbmMtc2NoZW1hLnhzZCIvPg0KDQogICAgPHhzOmNvbXBsZXhU eXBlIG5hbWU9IktleUNvbnRhaW5lclR5cGUiPg0KICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAg PHhzOmVsZW1lbnQgbmFtZT0iRW5jcnlwdGlvbktleSIgdHlwZT0iZHM6S2V5SW5mb1R5cGUiDQog ICAgICAgICAgbWluT2NjdXJzPSIwIi8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1BQ0Fs Z29yaXRobSIgdHlwZT0icHNrYzpLZXlBbGdvcml0aG1UeXBlIg0KICAgICAgICAgIG1pbk9jY3Vy cz0iMCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJLZXlQcm9wZXJ0aWVzIg0KICAgICAg ICB0eXBlPSJwc2tjOktleVByb3BlcnRpZXNUeXBlIiBtaW5PY2N1cnM9IjAiDQogICAgICAgIG1h eE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRldmljZSIg dHlwZT0icHNrYzpEZXZpY2VUeXBlIg0KICAgICAgICAgIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+ DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IlNpZ25hdHVyZSIgdHlwZT0iZHM6U2lnbmF0dXJl VHlwZSINCiAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPHhzOmFueSBuYW1lc3Bh Y2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICBtaW5PY2N1cnM9IjAi IG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQogICAgPC94czpzZXF1ZW5jZT4NCiAgICA8eHM6YXR0 cmlidXRlIG5hbWU9IlZlcnNpb24iIHR5cGU9InBza2M6VmVyc2lvblR5cGUiDQogICAgICB1c2U9 InJlcXVpcmVkIi8+DQogICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlDb250YWluZXJJRCINCiAg ICB0eXBlPSJ4czpJRCIgdXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQoN Cg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAg ICAgICAgICAgICBbUGFnZSAzN10NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3lt bWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgICA8eHM6c2lt cGxlVHlwZSBuYW1lPSJWZXJzaW9uVHlwZSIgZmluYWw9InJlc3RyaWN0aW9uIj4NCiAgICAgICAg ICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KICAgICAgICAgICAgICAgICAg ICA8eHM6cGF0dGVybiB2YWx1ZT0iXGR7MSwyfVwuXGR7MSwzfSIvPg0KICAgICAgICAgICAgPC94 czpyZXN0cmljdGlvbj4NCiAgICA8L3hzOnNpbXBsZVR5cGU+DQogICAgICAgIDx4czpjb21wbGV4 VHlwZSBuYW1lPSJLZXlQcm9wZXJ0aWVzVHlwZSI+DQogICAgICAgICAgICAgICAgPHhzOnNlcXVl bmNlPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iSXNzdWVyIg0K ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4N CiAgICAgICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlVzYWdlIg0KICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpVc2FnZVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0K ICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iS2V5UHJvZmlsZUlkIg0K ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4N CiAgICAgICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9Ik1hc3RlcktleUlkIg0K ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4N CiAgICAgICAgICAgICAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGEiIHR5cGU9InBz a2M6RGF0YVR5cGUiDQogICAgICAgICAgICAgICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9j Y3Vycz0idW5ib3VuZGVkIi8+DQogICAgICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJQSU5Qb2xpY3kiDQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJwc2tjOlBJTlBv bGljeVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVs ZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSINCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Inhz OmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx4czpl bGVtZW50IG5hbWU9IlN0YXJ0RGF0ZSINCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Inhz OmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgICAgIDx4czphbnkgbmFtZXNwYWNl PSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCINCiAgICAgICAgICAgIG1pbk9jY3Vycz0i MCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgICAgICAgICA8L3hzOnNlcXVlbmNl Pg0KICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iS2V5UHJvcGVydGllc0lkIg0K ICAgICAgICAgICAgICAgIHR5cGU9InhzOklEIiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAg ICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlBbGdvcml0aG0iDQogICAgICAgICAgICAgICAg dHlwZT0icHNrYzpLZXlBbGdvcml0aG1UeXBlIg0KICAgICAgICAgICAgICAgIHVzZT0ib3B0aW9u YWwiLz4NCiAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFt ZT0iS2V5VHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAgICAgIDx4czplbGVt ZW50IG5hbWU9Iklzc3VlciINCiAgICAgICAgICAgIHR5cGU9InhzOnN0cmluZyIgbWluT2NjdXJz PSIwIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJVc2FnZSINCiAgICAgICAgICAg IHR5cGU9InBza2M6VXNhZ2VUeXBlIi8+DQogICAgICAgICAgICAgICAgICAgICAgICA8eHM6ZWxl bWVudCBuYW1lPSJLZXlQcm9maWxlSWQiDQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ4 czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHhzOmVs ZW1lbnQgbmFtZT0iTWFzdGVyS2V5SWQiDQogICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ4 czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0i RnJpZW5kbHlOYW1lIg0KICAgICAgICAgICAgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9IjAi Lz4NCiAgICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IkRhdGEiIHR5cGU9InBza2M6RGF0YVR5 cGUiDQogICAgICAgICAgICBtaW5PY2N1cnM9IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQog ICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJQSU5Qb2xpY3kiDQogICAgICAgICAgICB0eXBl PSJwc2tjOlBJTlBvbGljeVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KDQoNCg0KSG95ZXIsIGV0IGFs LiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2Ug MzhdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFp bmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1l PSJFeHBpcnlEYXRlIg0KICAgICAgICAgICAgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0i MCIvPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iU3RhcnREYXRlIg0KICAgICAgICAg ICAgdHlwZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmFu eSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICAgICAg bWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVl bmNlPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IktleUlkIg0KICAgICAgICB0eXBlPSJ4 czpzdHJpbmciIHVzZT0icmVxdWlyZWQiLz4NCiAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJL ZXlBbGdvcml0aG0iDQogICAgICAgIHR5cGU9InBza2M6S2V5QWxnb3JpdGhtVHlwZSINCiAgICAg ICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iS2V5UHJv cGVydGllc0lkIg0KICAgICAgICB0eXBlPSJ4czpJRFJFRiIgdXNlPSJvcHRpb25hbCIvPg0KICAg IDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRlcml2ZWRLZXlU eXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFt ZT0iS2V5RGVyaXZhdGlvbk1ldGhvZCINCiAgICAgICAgICAgICAgdHlwZT0icHNrYzpLZXlEZXJp dmF0aW9uTWV0aG9kVHlwZSIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVu dCByZWY9InhlbmM6UmVmZXJlbmNlTGlzdCIgbWluT2NjdXJzPSIwIi8+DQogICAgICAgICAgICA8 eHM6ZWxlbWVudCBuYW1lPSJDYXJyaWVkS2V5TmFtZSIgdHlwZT0ieHM6c3RyaW5nIg0KICAgICAg ICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICAgICAg PHhzOmF0dHJpYnV0ZSBuYW1lPSJJZCIgdHlwZT0ieHM6SUQiIHVzZT0ib3B0aW9uYWwiLz4NCiAg ICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJUeXBlIiB0eXBlPSJ4czphbnlVUkkiIHVzZT0ib3B0 aW9uYWwiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1l PSJLZXlEZXJpdmF0aW9uTWV0aG9kVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAg ICAgICAgIDx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBtaW5PY2N1cnM9IjAiDQogICAgICAg ICAgICBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAg ICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkFsZ29yaXRobSIgdHlwZT0ieHM6YW55VVJJIg0KICAg ICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29t cGxleFR5cGUgbmFtZT0iUElOUG9saWN5VHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAg ICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlBJTlVzYWdlTW9kZSINCiAgICAgICAgICAgICAg dHlwZT0icHNrYzpQSU5Vc2FnZU1vZGVUeXBlIi8+DQogICAgICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJNYXhGYWlsZWRBdHRlbXB0cyIgdHlwZT0ieHM6dW5zaWduZWRJbnQiDQogICAgICAgICAg ICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9IiMjb3Ro ZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICAgICAgbWluT2NjdXJzPSIwIiBtYXhP Y2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAgICA8eHM6 YXR0cmlidXRlIG5hbWU9IlBJTlBvbGljeUlkIiB0eXBlPSJ4czpJRCINCiAgICAgICAgdXNlPSJv cHRpb25hbCIvPg0KICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IlBJTktleUlkIiB0eXBlPSJ4 czpzdHJpbmciDQogICAgICAgICAgdXNlPSJvcHRpb25hbCIvPg0KICAgIDwveHM6Y29tcGxleFR5 cGU+DQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAy MDA4ICAgICAgICAgICAgICBbUGFnZSAzOV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFi bGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgICA8 eHM6Y29tcGxleFR5cGUgbmFtZT0iUElOVXNhZ2VNb2RlVHlwZSI+DQogICAgICAgICAgICA8eHM6 Y2hvaWNlIG1heE9jY3Vycz0idW5ib3VuZGVkIj4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmVs ZW1lbnQgbmFtZT0iTG9jYWwiLz4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFt ZT0iUHJlcGVuZCIvPg0KICAgICAgICAgICAgICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJBbGdv cml0aG1pYyIvPg0KICAgICAgICAgICAgICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhl ciINCiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0i MCINCiAgICAgICAgICAgICAgICAgICAgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAg ICAgIDwveHM6Y2hvaWNlPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOmNvbXBsZXhU eXBlIG5hbWU9IkRldmljZUluZm9UeXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAg ICA8eHM6ZWxlbWVudCBuYW1lPSJNYW51ZmFjdHVyZXIiIHR5cGU9InhzOnN0cmluZyIvPg0KICAg ICAgICA8eHM6ZWxlbWVudCBuYW1lPSJTZXJpYWxObyIgdHlwZT0ieHM6c3RyaW5nIi8+DQogICAg ICAgIDx4czplbGVtZW50IG5hbWU9Ik1vZGVsIiB0eXBlPSJ4czpzdHJpbmciDQogICAgICAgIG1p bk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBuYW1lPSJJc3N1ZU5vIiB0eXBlPSJ4 czpzdHJpbmciDQogICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6ZWxlbWVudCBu YW1lPSJFeHBpcnlEYXRlIiB0eXBlPSJ4czpkYXRlVGltZSINCiAgICAgICAgbWluT2NjdXJzPSIw Ii8+DQogICAgICAgIDx4czplbGVtZW50IG5hbWU9IlN0YXJ0RGF0ZSIgdHlwZT0ieHM6ZGF0ZVRp bWUiDQogICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6YW55IG5hbWVzcGFjZT0i IyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiDQogICAgICAgIG1pbk9jY3Vycz0iMCIgbWF4 T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAgICA8L3hzOmNv bXBsZXhUeXBlPg0KICAgIDx4czpjb21wbGV4VHlwZSBuYW1lPSJEZXZpY2VUeXBlIj4NCiAgICAg IDx4czpzZXF1ZW5jZT4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iRGV2aWNlSW5mbyIgdHlw ZT0icHNrYzpEZXZpY2VJbmZvVHlwZSINCiAgICAgICAgICBtaW5PY2N1cnM9IjAiLz4NCiAgICAg ICAgPHhzOmVsZW1lbnQgbmFtZT0iS2V5IiB0eXBlPSJwc2tjOktleVR5cGUiDQogICAgICAgICAg bWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iVXNlcklk IiB0eXBlPSJ4czpzdHJpbmciDQogICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8eHM6 YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiDQogICAgICAgIG1p bk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCiAgICAgIDwveHM6c2VxdWVuY2U+ DQogICAgPC94czpjb21wbGV4VHlwZT4NCiAgICA8eHM6Y29tcGxleFR5cGUgbmFtZT0iVXNhZ2VU eXBlIj4NCiAgICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFt ZT0iQ2hhbGxlbmdlRm9ybWF0IiBtaW5PY2N1cnM9IjAiPg0KICAgICAgICAgICAgICAgIDx4czpj b21wbGV4VHlwZT4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJGb3Jt YXQiDQogICAgICAgICAgICAgICAgICAgICAgdHlwZT0icHNrYzpWYWx1ZUZvcm1hdFR5cGUiIHVz ZT0icmVxdWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJN aW4iIHR5cGU9InhzOnVuc2lnbmVkSW50Ig0KICAgICAgICAgICAgICAgICAgICAgIHVzZT0icmVx dWlyZWQiLz4NCiAgICAgICAgICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJNYXgiIHR5 cGU9InhzOnVuc2lnbmVkSW50Ig0KICAgICAgICAgICAgICAgICAgICAgIHVzZT0icmVxdWlyZWQi Lz4NCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIw MDggICAgICAgICAgICAgIFtQYWdlIDQwXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJs ZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgICAg ICAgICAgICAgICAgICA8eHM6YXR0cmlidXRlIG5hbWU9IkNoZWNrRGlnaXRzIiB0eXBlPSJ4czpi b29sZWFuIg0KICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAgICAg ICAgICAgICAgPC94czpjb21wbGV4VHlwZT4NCiAgICAgICAgICAgIDwveHM6ZWxlbWVudD4NCiAg ICAgICAgICAgIDx4czplbGVtZW50IG5hbWU9IlJlc3BvbnNlRm9ybWF0Ij4NCiAgICAgICAgICAg ICAgICA8eHM6Y29tcGxleFR5cGU+DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUg bmFtZT0iRm9ybWF0Ig0KICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InBza2M6VmFsdWVGb3Jt YXRUeXBlIiB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1 dGUgbmFtZT0iTGVuZ3RoIiB0eXBlPSJ4czp1bnNpZ25lZEludCINCiAgICAgICAgICAgICAgICAg ICAgICB1c2U9InJlcXVpcmVkIi8+DQogICAgICAgICAgICAgICAgICAgIDx4czphdHRyaWJ1dGUg bmFtZT0iQ2hlY2tEaWdpdHMiIHR5cGU9InhzOmJvb2xlYW4iDQogICAgICAgICAgICAgICAgICAg ICAgZGVmYXVsdD0iZmFsc2UiLz4NCiAgICAgICAgICAgICAgICA8L3hzOmNvbXBsZXhUeXBlPg0K ICAgICAgICAgICAgPC94czplbGVtZW50Pg0KICAgICAgICAgICAgPHhzOmFueSBuYW1lc3BhY2U9 IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4Ig0KICAgICAgICAgICAgbWluT2NjdXJzPSIw IiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KICAgICAgICAgICAgPC94czpzZXF1ZW5jZT4NCiAg ICAgICAgICAgIDx4czphdHRyaWJ1dGUgbmFtZT0iT1RQIiB0eXBlPSJ4czpib29sZWFuIiBkZWZh dWx0PSJmYWxzZSIvPg0KICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJDUiIgdHlwZT0i eHM6Ym9vbGVhbiIgZGVmYXVsdD0iZmFsc2UiLz4NCiAgICAgICAgICAgIDx4czphdHRyaWJ1dGUg bmFtZT0iSW50ZWdyaXR5IiB0eXBlPSJ4czpib29sZWFuIg0KICAgICAgICAgICAgICBkZWZhdWx0 PSJmYWxzZSIvPg0KICAgICAgICAgICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJFbmNyeXB0IiB0eXBl PSJ4czpib29sZWFuIg0KICAgICAgICAgICAgICBkZWZhdWx0PSJmYWxzZSIvPg0KICAgICAgICAg ICAgPHhzOmF0dHJpYnV0ZSBuYW1lPSJVbmxvY2siIHR5cGU9InhzOmJvb2xlYW4iDQogICAgICAg ICAgICAgIGRlZmF1bHQ9ImZhbHNlIi8+DQogICAgICAgICAgICAgPHhzOmFueUF0dHJpYnV0ZSBu YW1lc3BhY2U9IiMjb3RoZXIiLz4NCiAgICA8L3hzOmNvbXBsZXhUeXBlPg0KICAgIDx4czpjb21w bGV4VHlwZSBuYW1lPSJEYXRhVHlwZSI+DQogICAgICAgIDx4czpzZXF1ZW5jZT4NCiAgICAgICAg ICAgIDx4czpjaG9pY2U+DQogICAgICAgICAgICAgICAgPHhzOmVsZW1lbnQgbmFtZT0iUGxhaW5W YWx1ZSIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5Ii8+DQogICAgICAgICAgICAgICAgPHhzOmVsZW1l bnQgbmFtZT0iRW5jcnlwdGVkVmFsdWUiDQogICAgICAgICAgICAgICAgICB0eXBlPSJ4ZW5jOkVu Y3J5cHRlZERhdGFUeXBlIi8+DQogICAgICAgICAgICA8L3hzOmNob2ljZT4NCiAgICAgICAgICAg IDx4czplbGVtZW50IG5hbWU9IlZhbHVlTUFDIiB0eXBlPSJ4czpiYXNlNjRCaW5hcnkiDQogICAg ICAgICAgICAgIG1pbk9jY3Vycz0iMCIvPg0KICAgICAgICA8L3hzOnNlcXVlbmNlPg0KICAgICAg ICA8eHM6YXR0cmlidXRlIG5hbWU9Ik5hbWUiIHR5cGU9InhzOnN0cmluZyIgdXNlPSJyZXF1aXJl ZCIvPg0KICAgIDwveHM6Y29tcGxleFR5cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iS2V5 QWxnb3JpdGhtVHlwZSI+DQogICAgICAgIDx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czphbnlVUkki Lz4NCiAgICA8L3hzOnNpbXBsZVR5cGU+DQogICAgPHhzOnNpbXBsZVR5cGUgbmFtZT0iVmFsdWVG b3JtYXRUeXBlIj4NCiAgICAgICAgPHhzOnJlc3RyaWN0aW9uIGJhc2U9InhzOnN0cmluZyI+DQog ICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkRFQ0lNQUwiLz4NCiAgICAgICAgICAg IDx4czplbnVtZXJhdGlvbiB2YWx1ZT0iSEVYQURFQ0lNQUwiLz4NCiAgICAgICAgICAgIDx4czpl bnVtZXJhdGlvbiB2YWx1ZT0iQUxQSEFOVU1FUklDIi8+DQogICAgICAgICAgICA8eHM6ZW51bWVy YXRpb24gdmFsdWU9IkJBU0U2NCIvPg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhw aXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNDFdDQoMDQpJbnRlcm5l dC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBK dW5lIDIwMDgNCg0KDQogICAgICAgICAgICA8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkJJTkFSWSIv Pg0KICAgICAgICA8L3hzOnJlc3RyaWN0aW9uPg0KICAgIDwveHM6c2ltcGxlVHlwZT4NCiAgICA8 eHM6ZWxlbWVudCBuYW1lPSJLZXlDb250YWluZXIiIHR5cGU9InBza2M6S2V5Q29udGFpbmVyVHlw ZSIvPg0KPC94czpzY2hlbWE+DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCkhv eWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAg ICAgIFtQYWdlIDQyXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMg S2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KOS4gIElBTkEgQ29uc2lkZXJh dGlvbnMNCg0KOS4xLiAgQ29udGVudC10eXBlIHJlZ2lzdHJhdGlvbiBmb3IgJ2FwcGxpY2F0aW9u L3Bza2MreG1sJw0KDQogICBUaGlzIHNwZWNpZmljYXRpb24gcmVxdWVzdHMgdGhlIHJlZ2lzdHJh dGlvbiBvZiBhIG5ldyBNSU1FIHR5cGUNCiAgIGFjY29yZGluZyB0byB0aGUgcHJvY2VkdXJlcyBv ZiBSRkMgNDI4OCBbUkZDNDI4OF0gYW5kIGd1aWRlbGluZXMgaW4NCiAgIFJGQyAzMDIzIFtSRkMz MDIzXS4NCg0KICAgTUlNRSBtZWRpYSB0eXBlIG5hbWU6ICBhcHBsaWNhdGlvbg0KDQogICBNSU1F IHN1YnR5cGUgbmFtZTogIHBza2MreG1sDQoNCiAgIE1hbmRhdG9yeSBwYXJhbWV0ZXJzOiAgbm9u ZQ0KDQogICBPcHRpb25hbCBwYXJhbWV0ZXJzOiAgY2hhcnNldA0KDQogICAgICBJbmRpY2F0ZXMg dGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiBlbmNsb3NlZCBYTUwuDQoNCiAgIEVuY29kaW5nIGNv bnNpZGVyYXRpb25zOiAgVXNlcyBYTUwsIHdoaWNoIGNhbiBlbXBsb3kgOC1iaXQNCiAgICAgIGNo YXJhY3RlcnMsIGRlcGVuZGluZyBvbiB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQuICBTZWUg UkZDDQogICAgICAzMDIzIFtSRkMzMDIzXSwgU2VjdGlvbiAzLjIuDQoNCiAgIFNlY3VyaXR5IGNv bnNpZGVyYXRpb25zOiAgVGhpcyBjb250ZW50IHR5cGUgaXMgZGVzaWduZWQgdG8gY2FycnkgUFNL Qw0KICAgICAgcHJvdG9jb2wgcGF5bG9hZHMuDQoNCiAgIEludGVyb3BlcmFiaWxpdHkgY29uc2lk ZXJhdGlvbnM6ICBOb25lDQoNCiAgIFB1Ymxpc2hlZCBzcGVjaWZpY2F0aW9uOiAgUkZDWFhYWCBb Tk9URSBUTyBJQU5BL1JGQy1FRElUT1I6IFBsZWFzZQ0KICAgICAgcmVwbGFjZSBYWFhYIHdpdGgg dGhlIFJGQyBudW1iZXIgb2YgdGhpcyBzcGVjaWZpY2F0aW9uLl0NCg0KICAgQXBwbGljYXRpb25z IHdoaWNoIHVzZSB0aGlzIG1lZGlhIHR5cGU6ICBUaGlzIE1JTUUgdHlwZSBpcyBiZWluZyB1c2Vk DQogICAgICBhcyBhIHN5bW1ldHJpYyBrZXkgY29udGFpbmVyIGZvcm1hdCBmb3IgdHJhbnNwb3J0 IGFuZCBwcm92aXNpb25pbmcNCiAgICAgIG9mIHN5bW1ldHJpYyBrZXlzIChPbmUgVGltZSBQYXNz d29yZCAoT1RQKSBzaGFyZWQgc2VjcmV0cyBvcg0KICAgICAgc3ltbWV0cmljIGNyeXB0b2dyYXBo aWMga2V5cykgdG8gZGlmZmVyZW50IHR5cGVzIG9mIHN0cm9uZw0KICAgICAgYXV0aGVudGljYXRp b24gZGV2aWNlcy4gIEFzIHN1Y2gsIGl0IGlzIHVzZWQgZm9yIGtleSBwcm92aXNpb25pbmcNCiAg ICAgIHN5c3RlbXMuDQoNCiAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb246DQoNCiAgICAgIE1hZ2lj IE51bWJlcjogIE5vbmUNCg0KICAgICAgRmlsZSBFeHRlbnNpb246ICAucHNrY3htbA0KDQogICAg ICBNYWNpbnRvc2ggZmlsZSB0eXBlIGNvZGU6ICAnVEVYVCcNCg0KDQoNCg0KDQoNCg0KSG95ZXIs IGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAg W1BhZ2UgNDNdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkg Q29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICBQZXJzb25hbCBhbmQgZW1haWwg YWRkcmVzcyBmb3IgZnVydGhlciBpbmZvcm1hdGlvbjogIFBoaWxpcCBIb3llciwNCiAgICAgIFBo aWxpcC5Ib3llckBhY3RpdmlkZW50aXR5LmNvbQ0KDQogICBJbnRlbmRlZCB1c2FnZTogIExJTUlU RUQgVVNFDQoNCiAgIEF1dGhvcjogIFRoaXMgc3BlY2lmaWNhdGlvbiBpcyBhIHdvcmsgaXRlbSBv ZiB0aGUgSUVURiBLRVlQUk9WDQogICAgICB3b3JraW5nIGdyb3VwLCB3aXRoIG1haWxpbmcgbGlz dCBhZGRyZXNzIDxrZXlwcm92QGlldGYub3JnPi4NCg0KICAgQ2hhbmdlIGNvbnRyb2xsZXI6ICBU aGUgSUVTRyA8aWVzZ0BpZXRmLm9yZz4NCg0KOS4yLiAgWE1MIFNjaGVtYSBSZWdpc3RyYXRpb24N Cg0KICAgVGhpcyBzZWN0aW9uIHJlZ2lzdGVycyBhbiBYTUwgc2NoZW1hIGFzIHBlciB0aGUgZ3Vp ZGVsaW5lcyBpbg0KICAgW1JGQzM2ODhdLg0KDQogICBVUkk6ICB1cm46aWV0ZjpwYXJhbXM6eG1s Om5zOmtleXByb3Y6cHNrYzoxLjANCg0KICAgUmVnaXN0cmFudCBDb250YWN0OiAgSUVURiBLRVlQ Uk9WIFdvcmtpbmcgR3JvdXAsIFBoaWxpcCBIb3llcg0KICAgICAgKFBoaWxpcC5Ib3llckBhY3Rp dmlkZW50aXR5LmNvbSkuDQoNCiAgIFhNTCBTY2hlbWE6ICBUaGUgWE1MIHNjaGVtYSB0byBiZSBy ZWdpc3RlcmVkIGlzIGNvbnRhaW5lZCBpbg0KICAgICAgU2VjdGlvbiA4LiAgSXRzIGZpcnN0IGxp bmUgaXMNCg0KICAgPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCg0KICAg ICAgYW5kIGl0cyBsYXN0IGxpbmUgaXMNCg0KICAgPC94czpzY2hlbWE+DQoNCjkuMy4gIFVSTiBT dWItTmFtZXNwYWNlIFJlZ2lzdHJhdGlvbiBmb3INCiAgICAgIHVybjppZXRmOnBhcmFtczp4bWw6 bnM6a2V5cHJvdjpwc2tjOjEuMA0KDQogICBUaGlzIHNlY3Rpb24gcmVnaXN0ZXJzIGEgbmV3IFhN TCBuYW1lc3BhY2UsDQogICAidXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OnBza2M6MS4w IiwgcGVyIHRoZSBndWlkZWxpbmVzIGluDQogICBbUkZDMzY4OF0uDQoNCiAgIFVSSTogIHVybjpp ZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tjOjEuMA0KDQogICBSZWdpc3RyYW50IENvbnRh Y3Q6ICBJRVRGIEtFWVBST1YgV29ya2luZyBHcm91cCwgUGhpbGlwIEhveWVyDQogICAgICAoUGhp bGlwLkhveWVyQGFjdGl2aWRlbnRpdHkuY29tKS4NCg0KICAgWE1MOg0KDQoNCg0KDQoNCg0KDQoN Cg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAg ICAgICAgICAgW1BhZ2UgNDRdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1l dHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICBCRUdJTg0KICAg PD94bWwgdmVyc2lvbj0iMS4wIj8+DQogICA8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8v RFREIFhIVE1MIEJhc2ljIDEuMC8vRU4iDQogICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRt bC1iYXNpYy94aHRtbC1iYXNpYzEwLmR0ZCI+DQogICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53 My5vcmcvMTk5OS94aHRtbCI+DQogICA8aGVhZD4NCiAgICAgPG1ldGEgaHR0cC1lcXVpdj0iY29u dGVudC10eXBlIg0KICAgICAgICAgICBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1pc28tODg1 OS0xIi8+DQogICAgIDx0aXRsZT5QU0tDIE5hbWVzcGFjZTwvdGl0bGU+DQogICA8L2hlYWQ+DQog ICA8Ym9keT4NCiAgICAgPGgxPk5hbWVzcGFjZSBmb3IgUFNLQzwvaDE+DQogICAgIDxoMj51cm46 aWV0ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6cHNrYzoxLjA8L2gyPg0KICAgPHA+U2VlIDxhIGhy ZWY9IltVUkwgb2YgcHVibGlzaGVkIFJGQ10iPlJGQ1hYWFgNCiAgICAgICBbTk9URSBUTyBJQU5B L1JGQy1FRElUT1I6DQogICAgICAgIFBsZWFzZSByZXBsYWNlIFhYWFggd2l0aCB0aGUgUkZDIG51 bWJlciBvZiB0aGlzDQogICAgICAgc3BlY2lmaWNhdGlvbi5dPC9hPi48L3A+DQogICA8L2JvZHk+ DQogICA8L2h0bWw+DQogICBFTkQNCg0KOS40LiAgU3ltbWV0cmljIEtleSBBbGdvcml0aG0gSWRl bnRpZmllciBSZWdpc3RyeQ0KDQogICBUaGlzIHNwZWNpZmljYXRpb24gcmVxdWVzdHMgdGhlIGNy ZWF0aW9uIG9mIGEgbmV3IElBTkEgcmVnaXN0cnkgZm9yDQogICBzeW1tZXRyaWMga2V5IGNyeXB0 b2dyYXBoaWMgYWxnb3JpdGhtIGlkZW50aWZpZXJzIGluIGFjY29yZGFuY2Ugd2l0aA0KICAgdGhl IHByaW5jaXBsZXMgc2V0IG91dCBpbiBSRkMgMjQzNCBbUkZDMjQzNF1hcyBmb2xsb3dzOg0KDQo5 LjQuMS4gIEFwcGxpY2FiaWxpdHkNCg0KICAgVGhlIHVzZSBvZiBVUklzIGFzIGFsZ29yaXRobSBp ZGVudGlmaWVycyBwcm92aWRlcyBhbiBlZmZlY3RpdmVseQ0KICAgdW5saW1pdGVkIG5hbWVzcGFj ZS4gIFdoaWxlIHRoaXMgZWxpbWluYXRlcyB0aGUgcG9zc2liaWxpdHkgb2YNCiAgIG5hbWVzcGFj ZSBleGhhdXN0aW9uIGl0IGNyZWF0ZXMgYSBuZXcgY29uY2VybiwgdGhhdCBkaXZlcmdlbnQNCiAg IGlkZW50aWZpZXJzIHdpbGwgYmUgZW1wbG95ZWQgZm9yIHRoZSBzYW1lIHB1cnBvc2UgaW4gZGlm ZmVyZW50DQogICBjb250ZXh0cy4NCg0KICAgVGhlIGtleSBhbGdvcml0aG0gcmVnaXN0cnkgaXMg aW50ZW5kZWQgdG8gcHJvdmlkZSBhIG1lYW5zIG9mDQogICBzcGVjaWZ5aW5nIHRoZSBjYW5vbmlj YWwgaWRlbnRpZmllciB0byBiZSB1c2VkIGZvciBhIGdpdmVuIGFsZ29yaXRobS4NCiAgIElmIGFu IGFsZ29yaXRobSBoYXMgYW4gaWRlbnRpZmllciBzcGVjaWZpZWQgaW4gdGhlIHJlZ2lzdHJ5IGFu DQogICBhcHBsaWNhdGlvbiB0aGF0IGlzIGNvbmZvcm1hbnQgdG8gYSBwcm90b2NvbCBzcGVjaWZp Y2F0aW9uIHRoYXQNCiAgIHNwZWNpZmllcyB1c2Ugb2YgdGhhdCByZWdpc3RyeSB0byBkZWZpbmUg aWRlbnRpZmllcnMgU0hPVUxEIGFsd2F5cw0KICAgdXNlIHRoYXQgcGFydGljdWxhciBmb3JtIG9m IHRoZSBpZGVudGlmaWVyIHdoZW4gb3JpZ2luYXRpbmcgZGF0YS4gIEENCiAgIGNvbmZvcm1hbnQg YXBwbGljYXRpb24gTUFZIGFjY2VwdCBvdGhlciBpZGVudGlmaWVycyBpbiBkYXRhIHRoYXQgaXMN CiAgIHJlY2VpdmVkLg0KDQogICBGb3IgdGhlIHNha2Ugb2YgZXhwZWRpZW5jeSwgdGhlIGluaXRp YWwgcmVnaXN0cnkgb25seSBkZWZpbmVzDQogICBhbGdvcml0aG0gY2xhc3NlcyBmb3Igc3ltbWV0 cmljIGFsZ29yaXRobXMgcGx1cyBjcnlwdG9ncmFwaGljIG1lc3NhZ2UNCiAgIGRpZ2VzdCBmdW5j dGlvbnMgKG9uZS13YXkgaGFzaCkuICBXaGlsZSB0aGUgc2FtZSBwcmluY2lwbGVzIG1heSBiZQ0K ICAgZXh0ZW5kZWQgdG8gYXN5bW1ldHJpYyBhbGdvcml0aG1zLCBkb2luZyBzbyB3b3VsZCByZXF1 aXJlIG11Y2gNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIg MjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDQ1XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQ b3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0K ICAgZ3JlYXRlciBjb25zaWRlcmF0aW9uIG9mIGlzc3VlcyBzdWNoIGFzIGtleSBsZW5ndGggYW5k IHRyZWF0bWVudCBvZg0KICAgcGFyYW1ldGVycywgcGFydGljdWxhcmx5IHdoZXJlIGVsbGlwdGlj IGN1cnZlIGNyeXB0b2dyYXBoeSBhbGdvcml0aG1zDQogICBhcmUgY29uY2VybmVkLg0KDQogICBB cyBwYXJ0IG9mIHRoaXMgcmVnaXN0cnkgdGhlIElBTkEgd2lsbCBtYWludGFpbiB0aGUgZm9sbG93 aW5nDQogICBpbmZvcm1hdGlvbjoNCg0KICAgQ29tbW9uIE5hbWUgIFRoZSBuYW1lIGJ5IHdoaWNo IHRoZSBhbGdvcml0aG0gaXMgZ2VuZXJhbGx5IHJlZmVycmVkLg0KDQogICBDbGFzcyAgVGhlIHR5 cGUgb2YgYWxnb3JpdGhtLCBlbmNyeXB0aW9uLCBNZXNzYWdlIEF1dGhlbnRpY2F0aW9uIENvZGUN CiAgICAgIChNQUMpLCBPbmUgVGltZSBQYXNzd29yZCAoT1RQKSwgRGlnZXN0LCBldGMuDQoNCiAg IENhbm9uaWNhbCBVUkkgIFRoZSBjYW5vbmljYWwgVVJJIHRvIGJlIHVzZWQgdG8gaWRlbnRpZnkg dGhlDQogICAgICBhbGdvcml0aG0uDQoNCiAgIEFsZ29yaXRobSBEZWZpbml0aW9uICBBIHJlZmVy ZW5jZSB0byB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlDQogICAgICBhbGdvcml0aG0gZGVzY3Jp YmVkIGJ5IHRoZSBpZGVudGlmaWVyIGlzIGRlZmluZWQuDQoNCiAgIElkZW50aWZpZXIgRGVmaW5p dGlvbiAgQSByZWZlcmVuY2UgdG8gdGhlIGRvY3VtZW50IGluIHdoaWNoIHRoZSB1c2UNCiAgICAg IG9mIHRoZSBpZGVudGlmaWVyIHRvIHJlZmVyIHRvIHRoZSBhbGdvcml0aG0gaXMgZGVzY3JpYmVk LiAgVGhpcw0KICAgICAgd291bGQgaWRlYWxseSBiZSB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhl IGFsZ29yaXRobSBpcyBkZWZpbmVkLg0KDQogICAgICBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgcmVn aXN0cmFudCBkb2VzIG5vdCByZXF1ZXN0IGEgcGFydGljdWxhcg0KICAgICAgVVJJLCB0aGUgSUFO QSB3aWxsIGFzc2lnbiBpdCBhIFVuaWZvcm0gUmVzb3VyY2UgTmFtZSAoVVJOKSB0aGF0DQogICAg ICBmb2xsb3dzIFJGQyAzNTUzIFtSRkMzNTUzXS4NCg0KICAgTm90ZSB0aGF0IHdoZXJlIGEgc2lu Z2xlIGFsZ29yaXRobSBoYXMgZGlmZmVyZW50IGZvcm1zIGRpc3Rpbmd1aXNoZWQNCiAgIGJ5IHBh cmFtZXRlcnMgc3VjaCBhcyBrZXkgbGVuZ3RoLCB0aGUgYWxnb3JpdGhtIGNsYXNzIGFuZCBlYWNo DQogICBjb21iaW5hdGlvbiBvZiBhbGdvcml0aG0gcGFyYW1ldGVycyBtYXkgYmUgY29uc2lkZXJl ZCBhIGRpc3RpbmN0DQogICBhbGdvcml0aG0gZm9yIHRoZSBwdXJwb3NlIG9mIGFzc2lnbmluZyBp ZGVudGlmaWVycy4NCg0KOS40LjIuICBSZWdpc3RlcmFibGUgQWxnb3JpdGhtcw0KDQo5LjQuMi4x LiAgQXNzaWduZWQgVVJJcw0KDQogICBJZiB0aGUgcmVnaXN0cmFudCB3aXNoZXMgdG8gaGF2ZSBh IFVSSSBhc3NpZ25lZCwgdGhlbiBhIFVSTiBvZiB0aGUNCiAgIGZvcm0NCg0KICAgdXJuOmlldGY6 cGFyYW1zOnhtbDo8Y2xhc3M+OjxpZD4NCg0KICAgd2lsbCBiZSBhc3NpZ25lZCB3aGVyZSA8Y2xh c3M+IGlzIHRoZSB0eXBlIG9mIHRoZSBhbGdvcml0aG0gYmVpbmcNCiAgIGlkZW50aWZpZWQgKHNl ZSBiZWxvdykuIDxpZD4gaXMgYSB1bmlxdWUgaWQgc3BlY2lmaWVkIGJ5IHRoZSBwYXJ0eQ0KICAg bWFraW5nIHRoZSByZXF1ZXN0IGFuZCB3aWxsIG5vcm1hbGx5IGJlIGVpdGhlciB0aGUgY29tbW9u IG5hbWUgb2YgdGhlDQogICBhbGdvcml0aG0gb3IgYW4gYWJicmV2aWF0aW9uIHRoZXJlb2YuDQoN CiAgIE5PVEU6IGluIG9yZGVyIGZvciBhIFVSTiBvZiB0aGlzIHR5cGUgdG8gYmUgYXNzaWduZWQs IHRoZSBpdGVtIGJlaW5nDQogICByZWdpc3RlcmVkIE1VU1QgaGF2ZSBiZWVuIHRocm91Z2ggdGhl IElFVEYgY29uc2Vuc3VzIHByb2Nlc3MuDQogICBCYXNpY2FsbHksIHRoaXMgbWVhbnMgdGhhdCBp dCBtdXN0IGJlIGRvY3VtZW50ZWQgaW4gYSBSRkMuDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAg ICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICBbUGFnZSA0Nl0NCgwN CkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAg ICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIE5PVEU6IEV4cGVydCBSZXZpZXcgaXMgc3VmZmljaWVu dCBpbiBjYXNlcyB3aGVyZSB0aGUgcmVxdWVzdCBkb2VzIG5vdA0KICAgcmVxdWlyZSBhIFVSTiBh c3NpZ25tZW50IGluIHRoZSBJRVRGIG5hbWVzcGFjZS4gIElFVEYgY29uc2Vuc3VzIGlzDQogICBu b3QgcmVxdWlyZWQuDQoNCjkuNC4yLjIuICBBc3NpZ25lZCBDbGFzc2VzDQoNCiAgIEVhY2ggYWxn b3JpdGhtIE1VU1QgYmVsb25nIHRvIGFuIGFzc2lnbmVkIGFsZ29yaXRobSBjbGFzcy4gIEluIHRo ZQ0KICAgY2FzZSB0aGF0IGFkZGl0aW9uYWwgY2xhc3NlcyBhcmUgcmVxdWlyZWQgdGhlc2UgYXJl IHRvIGJlIHNwZWNpZmllZA0KICAgYnkgSUVURiBDb25zZW5zdXMgYWN0aW9uLg0KDQogICBUaGUg aW5pdGlhbCBhc3NpZ25lZCBjbGFzc2VzIGFyZToNCg0KICAgRGlnZXN0ICBBIGNyeXB0b2dyYXBo aWMgRGlnZXN0IGFsZ29yaXRobS4NCg0KICAgTUFDICBBIE1lc3NhZ2UgQXV0aGVudGljYXRpb24g Q29kZSBhbGdvcml0aG0uDQoNCiAgIFN5bW1ldHJpYyAgQSBzeW1tZXRyaWMgZW5jcnlwdGlvbiBh bGdvcml0aG0uDQoNCiAgIE9UUCAgQSBvbmUgdGltZSBwYXNzd29yZCAoT1RQKSBhbGdvcml0aG0u DQoNCjkuNC4zLiAgUmVnaXN0cmF0aW9uIFByb2NlZHVyZXMNCg0KOS40LjMuMS4gIFJldmlldw0K DQogICBBbGdvcml0aG0gaWRlbnRpZmllciByZWdpc3RyYXRpb25zIGFyZSB0byBiZSBzdWJqZWN0 IHRvIEV4cGVydCBSZXZpZXcNCiAgIGFzIHBlciBSRkMgMjQzNCBbUkZDMjQzNF0uDQoNCiAgIFRo ZSBuZWVkIGZvciBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24gZm9yIHRoZSByZWdpc3RyYXRpb24g ZGVwZW5kcyBvbg0KICAgdGhlIG5hdHVyZSBvZiB0aGUgcmVxdWVzdC4gIEluIHRoZSBjYXNlIG9m IGEgY3J5cHRvZ3JhcGhpYyBhbGdvcml0aG0NCiAgIHRoYXQgaXMgYmVpbmcgZGVzY3JpYmVkIGZv ciBwdWJsaWNhdGlvbiBhcyBhbiBSRkMsIHRoZSByZXF1ZXN0IGZvciBhDQogICBVUkkgYWxsb2Nh dGlvbiB3b3VsZCBub3JtYWxseSBhcHBlYXIgd2l0aGluIHRoZSBSRkMgaXRzZWxmLiAgSW4gdGhl DQogICBjYXNlIG9mIGEgY3J5cHRvZ3JhcGhpYyBhbGdvcml0aG0gdGhhdCBpcyBmdWxseSBhbmQg Y29tcHJlaGVuc2l2ZWx5DQogICBkZWZpbmVkIGluIGFub3RoZXIgZm9ybSwgaXQgd291bGQgbm90 IGJlIG5lY2Vzc2FyeSB0byBkdXBsaWNhdGUgdGhlDQogICBpbmZvcm1hdGlvbiBmb3IgdGhlIHNh a2Ugb2YgaXNzdWluZyB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIFJGQw0KICAgc2VyaWVzLiAgSW4g b3RoZXIgY2FzZXMgYW4gUkZDIG1heSBiZSByZXF1aXJlZCBpbiBvcmRlciB0byBlbnN1cmUNCiAg IHRoYXQgY2VydGFpbiBhbGdvcml0aG0gcGFyYW1ldGVycyBhcmUgc3VmZmljaWVudGx5IGFuZCB1 bmFtYmlndW91c2x5DQogICBkZWZpbmVkLg0KDQogICBUaGUgc2NvcGUgb2Ygc3VjaCBleHBlcnQg cmV2aWV3IGlzIHRvIGJlIHN0cmljdGx5IGxpbWl0ZWQgdG8NCiAgIGlkZW50aWZ5aW5nIHBvc3Np YmxlIGFtYmlndWl0eSBhbmQvb3IgZHVwbGljYXRpb24gb2YgZXhpc3RpbmcNCiAgIGlkZW50aWZp ZXJzLiAgVGhlIGV4cGVydCByZXZpZXcgTVVTVCBOT1QgY29uc2lkZXIgdGhlIGNyeXB0b2dyYXBo aWMNCiAgIHByb3BlcnRpZXMsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBjb25zaWRlcmF0aW9ucyBv ciBhbnkgb3RoZXIgZmFjdG9yDQogICBub3QgcmVsYXRlZCB0byB0aGUgdXNlIG9mIHRoZSBpZGVu dGlmaWVyLg0KDQogICBJbiByZXZpZXdpbmcgYSByZXF1ZXN0LCB0aGUgZXhwZXJ0IHNob3VsZCBj b25zaWRlciB3aGV0aGVyIG90aGVyIFVSSQ0KICAgaWRlbnRpZmllcnMgYXJlIGFscmVhZHkgZGVm aW5lZCBmb3IgYSBnaXZlbiBhbGdvcml0aG0uICBJbiBzdWNoIGNhc2VzDQogICBpdCBpcyB0aGUg ZHV0eSBvZiB0aGUgZXhwZXJ0IHRvIGJyaW5nIHRoZSBwb3RlbnRpYWwgZHVwbGljYXRpb24gdG8N CiAgIHRoZSBub3RpY2Ugb2YgdGhlIHByb3Bvc2VycyBvZiB0aGUgcmVnaXN0cmF0aW9uIGFuZCB0 aGUgU2VjdXJpdHkgQXJlYQ0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBE ZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNDddDQoMDQpJbnRlcm5ldC1EcmFm dCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIw MDgNCg0KDQogICBEaXJlY3RvcnMuICBJZiB0aGUgcHJvcG9zZXJzIGFyZSBub3Qgd2lsbGluZyB0 byBhY2NlcHQgcmVnaXN0cmF0aW9uDQogICBvZiB0aGUgZXhpc3RpbmcgaWRlbnRpZmllciB0aGUg SUVURiBDb25zZW5zdXMgcG9saWN5IGlzIHRvIGFwcGx5Lg0KDQogICBJbiByZXZpZXdpbmcgYSBy ZXF1ZXN0LCB0aGUgZXhwZXJ0IHNob3VsZCBjb25zaWRlciB3aGV0aGVyIHRoZQ0KICAgYWxnb3Jp dGhtIGlzIHN1ZmZpY2llbnRseSBkZWZpbmVkIHRvIGFsbG93IHN1Y2Nlc3NmdWwgaW50ZXJvcGVy YXRpb24uDQogICBJbiBwYXJ0aWN1bGFyIHRoZSBleHBlcnQgc2hvdWxkIGNvbnNpZGVyIHdoZXRo ZXIgaXNzdWVzIHN1Y2ggYXMga2V5DQogICBzaXplcyBhbmQgYnl0ZSBvcmRlciBhcmUgc3VmZmlj aWVudGx5IGRlZmluZWQgdG8gYWxsb3cgZm9yDQogICBpbnRlcm9wZXJhdGlvbi4NCg0KICAgV2hp bGUgdGhlIGRlZmluaXRpb24gcmVxdWlyZW1lbnQgTUFZIGJlIHNhdGlzZmVkIGJ5IGEgY29tcHJl aGVuc2l2ZQ0KICAgc3BlY2lmaWNhdGlvbiBvZiB0aGUgYWxnb3JpdGhtLCBkaXNjbG9zdXJlIG9m IHRoZSBhbGdvcml0aG0gaXMgbm90DQogICBtYW5kYXRvcnkuDQoNCjkuNC4zLjIuICBDYW5vbmlj YWwgVVJJDQoNCiAgIFVudGlsIHRoZSBJQU5BIHJlcXVlc3RzIG9yIGltcGxlbWVudHMgYW4gYXV0 b21hdGVkIHByb2Nlc3MgZm9yIHRoZQ0KICAgcmVnaXN0cmF0aW9uIG9mIHRoZXNlIGVsZW1lbnRz LCBhbnkgc3BlY2lmaWNhdGlvbnMgbXVzdCBtYWtlIHRoYXQNCiAgIHJlcXVlc3QgcGFydCBvZiB0 aGUgSUFOQSBjb25zaWRlcmF0aW9ucyBzZWN0aW9uIG9mIHRoZWlyIHJlc3BlY3RpdmUNCiAgIGRv Y3VtZW50cy4gIFRoYXQgcmVxdWVzdCBtdXN0IGJlIGluIHRoZSBmb3JtIG9mIHRoZSBmb2xsb3dp bmcNCiAgIHRlbXBsYXRlOg0KDQogICBDb21tb24gTmFtZSAgVGhlIG5hbWUgYnkgd2hpY2ggdGhl IGFsZ29yaXRobSBpcyBnZW5lcmFsbHkgcmVmZXJyZWQuDQoNCiAgIENsYXNzICBUaGUgdHlwZSBv ZiBhbGdvcml0aG0sIGVuY3J5cHRpb24sIE1lc3NhZ2UgQXV0aGVudGljYXRpb24gQ29kZQ0KICAg ICAgKE1BQyksIE9uZSBUaW1lIFBhc3N3b3JkIChPVFApLCBEaWdlc3QsIGV0Yy4gIEFzIHNwZWNp ZmllZCBieSBhDQogICAgICBkZWZpbmVkIGFsZ29yaXRobSBjbGFzcy4NCg0KICAgVVJJICBUaGUg Y2Fub25pY2FsIFVSSSB0byBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBhbGdvcml0aG0uDQoNCiAg IEFsZ29yaXRobSBEZWZpbml0aW9uICBBIHJlZmVyZW5jZSB0byB0aGUgZG9jdW1lbnQgaW4gd2hp Y2ggdGhlDQogICAgICBhbGdvcml0aG0gZGVzY3JpYmVkIGJ5IHRoZSBpZGVudGlmaWVyIGlzIGRl ZmluZWQuDQoNCiAgIElkZW50aWZpZXIgRGVmaW5pdGlvbiAgQSByZWZlcmVuY2UgdG8gdGhlIGRv Y3VtZW50IGluIHdoaWNoIHRoZSB1c2UNCiAgICAgIG9mIHRoZSBpZGVudGlmaWVyIHRvIHJlZmVy IHRvIHRoZSBhbGdvcml0aG0gaXMgZGVzY3JpYmVkLiAgVGhpcw0KICAgICAgd291bGQgaWRlYWxs eSBiZSB0aGUgZG9jdW1lbnQgaW4gd2hpY2ggdGhlIGFsZ29yaXRobSBpcyBkZWZpbmVkLg0KDQog ICBSZWdpc3RyYW50IENvbnRhY3QgIEEgcmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVudCBpbiB3aGlj aCB0aGUgdXNlIG9mDQogICAgICB0aGUgaWRlbnRpZmllciB0byByZWZlciB0byB0aGUgYWxnb3Jp dGhtIGlzIGRlc2NyaWJlZC4gIFRoaXMgd291bGQNCiAgICAgIGlkZWFsbHkgYmUgdGhlIGRvY3Vt ZW50IGluIHdoaWNoIHRoZSBhbGdvcml0aG0gaXMgZGVmaW5lZC4NCg0KOS40LjMuMy4gIEFsaWFz IFVSSQ0KDQogICBJbiB0aGUgY2FzZSB0aGF0IG11bHRpcGxlIGlkZW50aWZpZXJzIGhhdmUgYmVl biBhc3NpZ25lZCB0byB0aGUgc2FtZQ0KICAgaWRlbnRpZmllcnMsIGFkZGl0aW9uYWwgaWRlbnRp ZmllcnMgTUFZIGJlIHJlZ2lzdGVyZWQgYXMgYWxpYXNlcy4gIEFuDQogICBlbnRyeSBmb3IgYW4g YWxpYXMgY29udGFpbnMgYWxsIHRoZSBlbnRyaWVzIGZvciBhIGNhbm9uaWNhbCBVUkkgd2l0aA0K ICAgdGhlIGFkZGl0aW9uIG9mIGEgcmVmZXJlbmNlIHRvIHRoZSBjYW5vbmljYWwgVVJJIHRvIGJl IHVzZWQ6DQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJl ciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNDhdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAg IFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0K DQogICBBbGlhcyBmb3IgVVJJICBUaGUgY2Fub25pY2FsIFVSSSB0aGF0IGlkZW50aWZpZXMgdGhl IGFsZ29yaXRobS4gIFRoZQ0KICAgICAgVVJJIHJlZmVyZW5jZWQgTVVTVCBiZSBhIGNhbm9uaWNh bCBVUkkuDQoNCiAgIEluIHRoZSBjYXNlIG9mIGRpc3B1dGUgYXMgdG8gd2hpY2ggVVJJIGlzIHRv IGJlIGNvbnNpZGVyZWQgY2Fub25pY2FsDQogICB0aGUgbWF0dGVyIGlzIHRvIGJlIHNldHRsZWQg YnkgSUVTRyBhY3Rpb24uDQoNCjkuNC40LiAgSW5pdGlhbCBWYWx1ZXMNCg0KICAgVGhlIGZvbGxv d2luZyBpbml0aWFsIHZhbHVlcyBhcmUgZGVmaW5lZC4gIE5vdGUgdGhhdCB0aGVzZSB2YWx1ZXMg YXJlDQogICBsaW1pdGVkIHRvIGlkZW50aWZpZXJzIHRoYXQgYXJlIHJlcXVpcmVkIGJ5IEtFWVBS T1YgYnV0IG5vdCBzcGVjaWZpZWQNCiAgIGVsc2V3aGVyZToNCg0KOS40LjQuMS4gIEhPVFANCg0K ICAgQ29tbW9uIE5hbWU6ICBIT1RQDQoNCiAgIENsYXNzOiAgT1RQDQoNCiAgIFVSSTogIGh0dHA6 Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHANCg0KICAgQWxnb3JpdGhtIERlZmluaXRp b246ICBodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmM0MjI2LnR4dA0KDQogICBJZGVudGlmaWVy IERlZmluaXRpb24gICh0aGlzIFJGQykNCg0KICAgUmVnaXN0cmFudCBDb250YWN0OiAgSUVTRw0K DQo5LjQuNC4yLiAgSE9UUC1ITUFDLVNIQS0xDQoNCiAgIENvbW1vbiBOYW1lOiAgSE9UUC1ITUFD LVNIQS0xDQoNCiAgIENsYXNzOiAgT1RQDQoNCiAgIFVSSTogIGh0dHA6Ly93d3cuaWV0Zi5vcmcv cmZjL3JmYzQyMjYudHh0I0hPVFAtSE1BQy1TSEEtMQ0KDQogICBBbGdvcml0aG0gRGVmaW5pdGlv bjogIGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzQyMjYudHh0DQoNCiAgIElkZW50aWZpZXIg RGVmaW5pdGlvbiAgKHRoaXMgUkZDKQ0KDQogICBSZWdpc3RyYW50IENvbnRhY3Q6ICBJRVNHDQoN CjkuNC40LjMuICBLRVlQUk9WLVBJTg0KDQogICBDb21tb24gTmFtZTogIEtFWVBST1YtUElODQoN CiAgIENsYXNzOiAgU3ltbWV0cmljIHN0YXRpYyBjcmVkZW50aWFsIGNvbXBhcmlzb24NCg0KDQoN Cg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDgg ICAgICAgICAgICAgIFtQYWdlIDQ5XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBT eW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KICAgVVJJOiAg aHR0cDovL3d3dy5pZXRmLm9yZy9rZXlwcm92L3Bza2MjcGluDQoNCiAgIEFsZ29yaXRobSBEZWZp bml0aW9uOiAgKHRoaXMgZG9jdW1lbnQpDQoNCiAgIElkZW50aWZpZXIgRGVmaW5pdGlvbiAgKHRo aXMgZG9jdW1lbnQpDQoNCiAgIFJlZ2lzdHJhbnQgQ29udGFjdDogIElFU0cNCg0KOS40LjQuNC4g IFNlY3VySUQtQUVTDQoNCiAgIENvbW1vbiBOYW1lOiAgU2VjdXJJRC1BRVMNCg0KICAgQ2xhc3M6 ICBPVFANCg0KICAgVVJJOiAgaHR0cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcnNhbGFicy9vdHBz L3NjaGVtYXMvMjAwNS8wOS8NCiAgICAgIG90cHMtd3N0I1NlY3VySUQtQUVTDQoNCiAgIEFsZ29y aXRobSBEZWZpbml0aW9uOiAgaHR0cDovL3d3dy5yc2EuY29tL3JzYWxhYnMvbm9kZS5hc3A/aWQ9 MjgyMQ0KDQogICBJZGVudGlmaWVyIERlZmluaXRpb24gIGh0dHA6Ly93d3cucnNhLmNvbS9yc2Fs YWJzL25vZGUuYXNwP2lkPTI4MjENCg0KICAgUmVnaXN0cmFudCBDb250YWN0OiAgQW5kcmVhIERv aGVydHksIFJTQSB0aGUgU2VjdXJpdHkgRGl2aXNpb24gb2YNCiAgICAgIEVNQywgPGFuZHJlYS5k b2hlcnR5QHJzYS5jb20+DQoNCjkuNC40LjUuICBTZWN1cklELUFMR09SDQoNCiAgIENvbW1vbiBO YW1lOiAgU2VjdXJJRC1BTEdPUg0KDQogICBDbGFzczogIE9UUA0KDQogICBVUkk6ICBodHRwOi8v d3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJzL290cHMvc2NoZW1hcy8yMDA1LzA5Lw0KICAgICAg b3Rwcy13c3QjU2VjdXJJRC1BTEdPUg0KDQogICBBbGdvcml0aG0gRGVmaW5pdGlvbjogIGh0dHA6 Ly93d3cucnNhLmNvbS9yc2FsYWJzL25vZGUuYXNwP2lkPTI4MjENCg0KICAgSWRlbnRpZmllciBE ZWZpbml0aW9uICBodHRwOi8vd3d3LnJzYS5jb20vcnNhbGFicy9ub2RlLmFzcD9pZD0yODIxDQoN CiAgIFJlZ2lzdHJhbnQgQ29udGFjdDogIEFuZHJlYSBEb2hlcnR5LCBSU0EgdGhlIFNlY3VyaXR5 IERpdmlzaW9uIG9mDQogICAgICBFTUMsIDxhbmRyZWEuZG9oZXJ0eUByc2EuY29tPg0KDQo5LjQu NC42LiAgQWN0aXZJZGVudGl0eS0zREVTDQoNCiAgIENvbW1vbiBOYW1lOiAgQWN0aXZJZGVudGl0 eS0zREVTDQoNCiAgIENsYXNzOiAgT1RQDQoNCg0KDQoNCg0KDQpIb3llciwgZXQgYWwuICAgICAg ICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICBbUGFnZSA1MF0NCgwN CkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWluZXIgICAg ICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIFVSSTogIGh0dHA6Ly93d3cuYWN0aXZpZGVudGl0eS5j b20vMjAwOC8wNC9hbGdvcml0aG1zLw0KICAgICAgYWxnb3JpdGhtcyNBY3RpdklkZW50aXR5LTNE RVMNCg0KICAgQWxnb3JpdGhtIERlZmluaXRpb246ICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHku Y29tLzIwMDgvMDQvDQogICAgICBhbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVudGl0eS0z REVTDQoNCiAgIElkZW50aWZpZXIgRGVmaW5pdGlvbiAgaHR0cDovL3d3dy5hY3RpdmlkZW50aXR5 LmNvbS8yMDA4LzA0Lw0KICAgICAgYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHkt M0RFUw0KDQogICBSZWdpc3RyYW50IENvbnRhY3Q6ICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRlbnRp dHkgSW5jLA0KICAgICAgPHBoaWxpcC5ob3llckBhY3RpdmlkZW50aXR5LmNvbT4NCg0KOS40LjQu Ny4gIEFjdGl2SWRlbnRpdHktQUVTDQoNCiAgIENvbW1vbiBOYW1lOiAgQWN0aXZJZGVudGl0eS1B RVMNCg0KICAgQ2xhc3M6ICBPVFANCg0KICAgVVJJOiAgaHR0cDovL3d3dy5hY3RpdmlkZW50aXR5 LmNvbS8yMDA4LzA0L2FsZ29yaXRobXMvDQogICAgICBhbGdvcml0aG1zI0FjdGl2SWRlbnRpdHkt QUVTDQoNCiAgIEFsZ29yaXRobSBEZWZpbml0aW9uOiAgaHR0cDovL3d3dy5hY3RpdmlkZW50aXR5 LmNvbS8yMDA4LzA0Lw0KICAgICAgYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHkt QUVTDQoNCiAgIElkZW50aWZpZXIgRGVmaW5pdGlvbiAgaHR0cDovL3d3dy5hY3RpdmlkZW50aXR5 LmNvbS8yMDA4LzA0Lw0KICAgICAgYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHkt QUVTDQoNCiAgIFJlZ2lzdHJhbnQgQ29udGFjdDogIFBoaWxpcCBIb3llciwgQWN0aXZJZGVudGl0 eSBJbmMsDQogICAgICA8cGhpbGlwLmhveWVyQGFjdGl2aWRlbnRpdHkuY29tPg0KDQo5LjQuNC44 LiAgQWN0aXZJZGVudGl0eS1ERVMNCg0KICAgQ29tbW9uIE5hbWU6ICBBY3RpdklkZW50aXR5LURF Uw0KDQogICBDbGFzczogIE9UUA0KDQogICBVUkk6ICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHku Y29tLzIwMDgvMDQvYWxnb3JpdGhtcy8NCiAgICAgIGFsZ29yaXRobXMjQWN0aXZJZGVudGl0eS1E RVMNCg0KICAgQWxnb3JpdGhtIERlZmluaXRpb246ICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHku Y29tLzIwMDgvMDQvDQogICAgICBhbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVudGl0eS1E RVMNCg0KICAgSWRlbnRpZmllciBEZWZpbml0aW9uICBodHRwOi8vd3d3LmFjdGl2aWRlbnRpdHku Y29tLzIwMDgvMDQvDQogICAgICBhbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVudGl0eS1E RVMNCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJl ciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNTFdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAg IFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0K DQogICBSZWdpc3RyYW50IENvbnRhY3Q6ICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRlbnRpdHkgSW5j LA0KICAgICAgPHBoaWxpcC5ob3llckBhY3RpdmlkZW50aXR5LmNvbT4NCg0KOS40LjQuOS4gIEFj dGl2SWRlbnRpdHktRVZFTlQNCg0KICAgQ29tbW9uIE5hbWU6ICBBY3RpdklkZW50aXR5LUVWRU5U DQoNCiAgIENsYXNzOiAgT1RQDQoNCiAgIFVSSTogIGh0dHA6Ly93d3cuYWN0aXZpZGVudGl0eS5j b20vMjAwOC8wNC9hbGdvcml0aG1zLw0KICAgICAgYWxnb3JpdGhtcyNBY3RpdklkZW50aXR5LUVW RU5UDQoNCiAgIEFsZ29yaXRobSBEZWZpbml0aW9uOiAgaHR0cDovL3d3dy5hY3RpdmlkZW50aXR5 LmNvbS8yMDA4LzA0Lw0KICAgICAgYWxnb3JpdGhtcy9hbGdvcml0aG1zI0FjdGl2SWRlbnRpdHkt RVZFTlQNCg0KICAgSWRlbnRpZmllciBEZWZpbml0aW9uICBodHRwOi8vd3d3LmFjdGl2aWRlbnRp dHkuY29tLzIwMDgvMDQvDQogICAgICBhbGdvcml0aG1zL2FsZ29yaXRobXMjQWN0aXZJZGVudGl0 eS1FVkVOVA0KDQogICBSZWdpc3RyYW50IENvbnRhY3Q6ICBQaGlsaXAgSG95ZXIsIEFjdGl2SWRl bnRpdHkgSW5jLA0KICAgICAgPHBoaWxpcC5ob3llckBhY3RpdmlkZW50aXR5LmNvbT4NCg0KOS41 LiAgWE1MIERhdGEgVGFnIElkZW50aWZpZXIgUmVnaXN0cnkNCg0KICAgVGhpcyBzcGVjaWZpY2F0 aW9uIHJlcXVlc3RzIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBJQU5BIHJlZ2lzdHJ5IGZvcg0KICAg WE1MIERhdGEgVGFnIGlkZW50aWZpZXJzIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgcHJpbmNpcGxl cyBzZXQgb3V0IGluDQogICBSRkMgMjQzNCBbUkZDMjQzNF1hcyBmb2xsb3dzOg0KDQogICBbTW9y ZSBleHBsYW5hdGlvbiBvZiB3aHkgYW4gZXNjYXBlIHRvIHRhZyB2YWx1ZSBsaXN0cyBpcyBkZXNp cmFibGUNCiAgIHdoZW4gaW5zZXJ0aW5nIHVuc3RydWN0dXJlZCBkYXRhIGludG8gYW4gWE1MIHNj aGVtYV0NCg0KOS41LjEuICBBcHBsaWNhYmlsaXR5DQoNCiAgIEFzIHBhcnQgb2YgdGhpcyByZWdp c3RyeSB0aGUgSUFOQSB3aWxsIG1haW50YWluIHRoZSBmb2xsb3dpbmcNCiAgIGluZm9ybWF0aW9u Og0KDQogICBDb21tb24gTmFtZSAgQ29tbW9uIG5hbWUgZm9yIGJ5IHdoaWNoIHRoZSB0YWcgaXMg cmVmZXJyZWQgdG8NCg0KICAgQ2Fub25pY2FsIFVSSSAgVGhlIGNhbm9uaWNhbCBVUkkgdG8gYmUg ZW1wbG95ZWQgd2hlbiBjaXRpbmcgdGhlIHRhZy4NCg0KICAgRGF0YSBUeXBlICBUaGUgZGF0YSB0 eXBlIG9mIHRoZSBkYXRhIHRoYXQgaXMgYm91bmQgdG8gdGhlIHRhZy4NCg0KICAgIERlZmluaXRp b24gIEEgcmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgZGF0YSB0YWcNCiAg ICAgIGRlZmluZWQgYnkgdGhlIGlkZW50aWZpZXIgaXMgZGVmaW5lZC4NCg0KICAgSW4gdGhlIGNh c2Ugd2hlcmUgdGhlIHJlZ2lzdHJhbnQgZG9lcyBub3QgcmVxdWVzdCBhIHBhcnRpY3VsYXIgVVJJ LA0KICAgdGhlIElBTkEgd2lsbCBhc3NpZ24gaXQgYSBVbmlmb3JtIFJlc291cmNlIE5hbWUgKFVS TikgdGhhdCBmb2xsb3dzDQogICBSRkMgMzU1MyBbUkZDMzU1M10uDQoNCg0KDQoNCkhveWVyLCBl dCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAgICAgIFtQ YWdlIDUyXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENv bnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KOS41LjIuICBSZWdpc3RlcmFibGUgRGF0 YSBUYWdzDQoNCjkuNS4yLjEuICBBc3NpZ25lZCBVUklzDQoNCiAgIElmIHRoZSByZWdpc3RyYW50 IHdpc2hlcyB0byBoYXZlIGEgVVJJIGFzc2lnbmVkLCB0aGVuIGEgVVJOIG9mIHRoZQ0KICAgZm9y bQ0KDQogICB1cm46aWV0ZjpwYXJhbXM6eG1sOmRhdGF0YWc6PHRhZz4NCg0KICAgd2lsbCBiZSBh c3NpZ25lZCB3aGVyZSA8dGFnPiBpcyBhIHVuaXF1ZSBpZCBzcGVjaWZpZWQgYnkgdGhlIHBhcnR5 DQogICBtYWtpbmcgdGhlIHJlcXVlc3QgYW5kIHdpbGwgbm9ybWFsbHkgYmUgZWl0aGVyIHRoZSBj b21tb24gbmFtZSBvZiB0aGUNCiAgIHRhZyBvciBhbiBhYmJyZXZpYXRpb24gdGhlcmVvZi4NCg0K ICAgTk9URTogaW4gb3JkZXIgZm9yIGEgVVJOIG9mIHRoaXMgdHlwZSB0byBiZSBhc3NpZ25lZCwg dGhlIGl0ZW0gYmVpbmcNCiAgIHJlZ2lzdGVyZWQgTVVTVCBoYXZlIGJlZW4gdGhyb3VnaCB0aGUg SUVURiBjb25zZW5zdXMgcHJvY2Vzcy4NCiAgIEJhc2ljYWxseSwgdGhpcyBtZWFucyB0aGF0IGl0 IG11c3QgYmUgZG9jdW1lbnRlZCBpbiBhIFJGQy4NCg0KICAgTk9URTogRXhwZXJ0IFJldmlldyBp cyBzdWZmaWNpZW50IGluIGNhc2VzIHdoZXJlIHRoZSByZXF1ZXN0IGRvZXMgbm90DQogICByZXF1 aXJlIGEgVVJOIGFzc2lnbm1lbnQgaW4gdGhlIElFVEYgbmFtZXNwYWNlLiAgSUVURiBjb25zZW5z dXMgaXMNCiAgIG5vdCByZXF1aXJlZC4NCg0KOS41LjMuICBSZWdpc3RyYXRpb24gUHJvY2VkdXJl cw0KDQo5LjUuMy4xLiAgUmV2aWV3DQoNCiAgIERhdGEgdGFnIHJlZ2lzdHJhdGlvbnMgYXJlIHRv IGJlIHN1YmplY3QgdG8gRXhwZXJ0IFJldmlldyBhcyBwZXIgUkZDDQogICAyNDM0IFtSRkMyNDM0 XS4NCg0KOS41LjMuMi4gIERhdGEgVGFnIEVudHJ5DQoNCiAgIFVudGlsIHRoZSBJQU5BIHJlcXVl c3RzIG9yIGltcGxlbWVudHMgYW4gYXV0b21hdGVkIHByb2Nlc3MgZm9yIHRoZQ0KICAgcmVnaXN0 cmF0aW9uIG9mIHRoZXNlIGVsZW1lbnRzLCBhbnkgc3BlY2lmaWNhdGlvbnMgbXVzdCBtYWtlIHRo YXQNCiAgIHJlcXVlc3QgcGFydCBvZiB0aGUgSUFOQSBjb25zaWRlcmF0aW9ucyBzZWN0aW9uIG9m IHRoZWlyIHJlc3BlY3RpdmUNCiAgIGRvY3VtZW50cy4gIFRoYXQgcmVxdWVzdCBtdXN0IGJlIGlu IHRoZSBmb3JtIG9mIHRoZSBmb2xsb3dpbmcNCiAgIHRlbXBsYXRlOg0KDQogICBDb21tb24gTmFt ZSAgQ29tbW9uIG5hbWUgZm9yIGJ5IHdoaWNoIHRoZSB0YWcgaXMgcmVmZXJyZWQgdG8NCg0KICAg Q2Fub25pY2FsIFVSSSAgVGhlIGNhbm9uaWNhbCBVUkkgdG8gYmUgZW1wbG95ZWQgd2hlbiBjaXRp bmcgdGhlIHRhZy4NCg0KICAgRGF0YSBUeXBlICBUaGUgZGF0YSB0eXBlIG9mIHRoZSBkYXRhIHRo YXQgaXMgYm91bmQgdG8gdGhlIHRhZy4NCg0KICAgIERlZmluaXRpb24gIEEgcmVmZXJlbmNlIHRv IHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgZGF0YSB0YWcNCiAgICAgIGRlZmluZWQgYnkgdGhl IGlkZW50aWZpZXIgaXMgZGVmaW5lZC4NCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAg ICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNTNdDQoM DQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAg ICAgICAgICBKdW5lIDIwMDgNCg0KDQo5LjUuNC4gIEluaXRpYWwgVmFsdWVzDQoNCiAgIFRoZSBm b2xsb3dpbmcgaW5pdGlhbCB2YWx1ZXMgYXJlIGRlZmluZWQuICBOb3RlIHRoYXQgdGhlc2UgdmFs dWVzIGFyZQ0KICAgbGltaXRlZCB0byBpZGVudGlmaWVycyB0aGF0IGFyZSByZXF1aXJlZCBieSBL RVlQUk9WIGJ1dCBub3Qgc3BlY2lmaWVkDQogICBlbHNld2hlcmU6DQoNCjkuNS40LjEuICBTZWNy ZXQNCg0KICAgQ29tbW9uIE5hbWUgIFNlY3JldA0KDQogICBDYW5vbmljYWwgVVJJICB1cm46aWV0 ZjpwYXJhbXM6eG1sOmRhdGF0YWc6c2VjcmV0DQoNCiAgIERhdGEgVHlwZSAgYmluYXJ5LCBiYXNl NjQgZW5jb2RlZA0KDQogICBEZWZpbmVkIGluICAodGhpcyBkb2N1bWVudCkNCg0KOS41LjQuMi4g IENvdW50ZXINCg0KICAgQ29tbW9uIE5hbWUgIENvdW50ZXINCg0KICAgQ2Fub25pY2FsIFVSSSAg dXJuOmlldGY6cGFyYW1zOnhtbDpkYXRhdGFnOmNvdW50ZXINCg0KICAgRGF0YSBUeXBlICA4IGJ5 dGVzIHVuc2lnbmVkIGludGVnZXIgaW4gYmlnIGVuZGlhbiAoaS5lLiBuZXR3b3JrIGJ5dGUNCiAg ICAgIG9yZGVyKSBmb3JtIGJhc2U2NCBlbmNvZGVkDQoNCiAgIERlZmluZWQgaW4gICh0aGlzIGRv Y3VtZW50KQ0KDQo5LjUuNC4zLiAgVGltZQ0KDQogICBDb21tb24gTmFtZSAgVGltZQ0KDQogICBD YW5vbmljYWwgVVJJICB1cm46aWV0ZjpwYXJhbXM6eG1sOmRhdGF0YWc6dGltZQ0KDQogICBEYXRh IFR5cGUgIDggYnl0ZXMgdW5zaWduZWQgaW50ZWdlciBpbiBiaWcgZW5kaWFuIChpLmUuIG5ldHdv cmsgYnl0ZQ0KICAgICAgb3JkZXIpIGZvcm0gYmFzZTY0IGVuY29kZWQgKE51bWJlciBvZiBzZWNv bmRzIHNpbmNlIDE5NzApDQoNCiAgIERlZmluZWQgaW4gICh0aGlzIGRvY3VtZW50KQ0KDQo5LjUu NC40LiAgVGltZSBJbnRlcnZhbA0KDQogICBDb21tb24gTmFtZSAgVGltZSBJbnRlcnZhbA0KDQog ICBDYW5vbmljYWwgVVJJICB1cm46aWV0ZjpwYXJhbXM6eG1sOmRhdGF0YWc6dGltZV9pbnRlcnZh bA0KDQogICBEYXRhIFR5cGUgIDggYnl0ZXMgdW5zaWduZWQgaW50ZWdlciBpbiBiaWcgZW5kaWFu IChpLmUuIG5ldHdvcmsgYnl0ZQ0KICAgICAgb3JkZXIpIGZvcm0gYmFzZTY0IGVuY29kZWQuDQoN Cg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAw OCAgICAgICAgICAgICAgW1BhZ2UgNTRdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxl IFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQogICBEZWZp bmVkIGluICAodGhpcyBkb2N1bWVudCkNCg0KOS41LjQuNS4gIFRpbWUgRHJpZnQNCg0KICAgQ29t bW9uIE5hbWUgIHVybjppZXRmOnBhcmFtczp4bWw6ZGF0YXRhZzp0aW1lX2RyaWZ0DQoNCiAgIENh bm9uaWNhbCBVUkkgIFRpbWUgRHJpZnQNCg0KICAgRGF0YSBUeXBlICAyIGJ5dGVzIHVuc2lnbmVk IGludGVnZXIgaW4gYmlnIGVuZGlhbiAoaS5lLiBuZXR3b3JrIGJ5dGUNCiAgICAgIG9yZGVyKSBm b3JtIGJhc2U2NCBlbmNvZGVkLg0KDQogICBEZWZpbmVkIGluICAodGhpcyBkb2N1bWVudCkNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1i ZXIgMjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDU1XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAg ICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoN Cg0KMTAuICBTZWN1cml0eSBDb25zaWRlcmF0aW9ucw0KDQogICBUaGUgcG9ydGFibGUga2V5IGNv bnRhaW5lciBjYXJyaWVzIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiAoZS5nLiwNCiAgIGNyeXB0b2dy YXBoaWMga2V5cykgYW5kIG1heSBiZSB0cmFuc3BvcnRlZCBhY3Jvc3MgdGhlIGJvdW5kYXJpZXMg b2YNCiAgIG9uZSBzZWN1cmUgcGVyaW1ldGVyIHRvIGFub3RoZXIuICBGb3IgZXhhbXBsZSwgYSBj b250YWluZXIgcmVzaWRpbmcNCiAgIHdpdGhpbiB0aGUgc2VjdXJlIHBlcmltZXRlciBvZiBhIGJh Y2stZW5kIHByb3Zpc2lvbmluZyBzZXJ2ZXIgaW4gYQ0KICAgc2VjdXJlIHJvb20gbWF5IGJlIHRy YW5zcG9ydGVkIGFjcm9zcyB0aGUgaW50ZXJuZXQgdG8gYW4gZW5kLXVzZXINCiAgIGRldmljZSBh dHRhY2hlZCB0byBhIHBlcnNvbmFsIGNvbXB1dGVyLiAgVGhpcyBtZWFucyB0aGF0IHNwZWNpYWwg Y2FyZQ0KICAgbXVzdCBiZSB0YWtlbiB0byBlbnN1cmUgdGhlIGNvbmZpZGVudGlhbGl0eSwgaW50 ZWdyaXR5LCBhbmQNCiAgIGF1dGhlbnRpY2l0eSBvZiB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVk IHdpdGhpbi4NCg0KMTAuMS4gIFBheWxvYWQgY29uZmlkZW50aWFsaXR5DQoNCiAgIEJ5IGRlc2ln biwgdGhlIGNvbnRhaW5lciBhbGxvd3MgdHdvIG1haW4gYXBwcm9hY2hlcyB0byBndWFyYW50ZWVp bmcNCiAgIHRoZSBjb25maWRlbnRpYWxpdHkgb2YgdGhlIGluZm9ybWF0aW9uIGl0IGNvbnRhaW5z IHdoaWxlIHRyYW5zcG9ydGVkLg0KDQogICBGaXJzdCwgdGhlIGNvbnRhaW5lciBrZXkgZGF0YSBw YXlsb2FkIG1heSBiZSBlbmNyeXB0ZWQuDQoNCiAgIEluIHRoaXMgY2FzZSBubyB0cmFuc3BvcnQg bGF5ZXIgc2VjdXJpdHkgaXMgcmVxdWlyZWQuICBIb3dldmVyLA0KICAgc3RhbmRhcmQgc2VjdXJp dHkgYmVzdCBwcmFjdGljZXMgYXBwbHkgd2hlbiBzZWxlY3RpbmcgdGhlIHN0cmVuZ3RoIG9mDQog ICB0aGUgY3J5cHRvZ3JhcGhpYyBhbGdvcml0aG0gZm9yIHBheWxvYWQgZW5jcnlwdGlvbi4gIFN5 bW1ldHJpYw0KICAgY3J5cHRvZ3JhcGhpYyBjaXBoZXIgc2hvdWxkIGJlIHVzZWQgLSB0aGUgbG9u Z2VyIHRoZSBjcnlwdG9ncmFwaGljDQogICBrZXksIHRoZSBzdHJvbmdlciB0aGUgcHJvdGVjdGlv bi4gIEF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZyBib3RoDQogICAzREVTIGFuZCBBRVMgYXJl IG1hbmRhdG9yeSBhbGdvcml0aG1zIGJ1dCAzREVTIG1heSBiZSBkcm9wcGVkIGluIHRoZQ0KICAg cmVsYXRpdmVseSBuZWFyIGZ1dHVyZS4gIEFwcGxpY2F0aW9ucyBjb25jZXJuZWQgd2l0aCBhbGdv cml0aG0NCiAgIGxvbmdldml0eSBhcmUgYWR2aXNlZCB0byB1c2UgQUVTLTI1Ni1DQkMuICBJbiBj YXNlcyB3aGVyZSB0aGUNCiAgIGV4Y2hhbmdlIG9mIGVuY3J5cHRpb24ga2V5cyBiZXR3ZWVuIHRo ZSBzZW5kZXIgYW5kIHRoZSByZWNlaXZlciBpcw0KICAgbm90IHBvc3NpYmxlLCBhc3ltbWV0cmlj IGVuY3J5cHRpb24gb2YgdGhlIHNlY3JldCBrZXkgcGF5bG9hZCBtYXkgYmUNCiAgIGVtcGxveWVk LiAgU2ltaWxhcmx5IHRvIHN5bW1ldHJpYyBrZXkgY3J5cHRvZ3JhcGh5LCB0aGUgc3Ryb25nZXIg dGhlDQogICBhc3ltbWV0cmljIGtleSwgdGhlIG1vcmUgc2VjdXJlIHRoZSBwcm90ZWN0aW9uIGlz Lg0KDQogICBJZiB0aGUgcGF5bG9hZCBpcyBlbmNyeXB0ZWQgd2l0aCBhIG1ldGhvZCB0aGF0IHVz ZXMgb25lIG9mIHRoZQ0KICAgcGFzc3dvcmQtYmFzZWQgZW5jcnlwdGlvbiBtZXRob2RzIHByb3Zp ZGVkIGFib3ZlLCB0aGUgcGF5bG9hZCBtYXkgYmUNCiAgIHN1YmplY3RlZCB0byBwYXNzd29yZCBk aWN0aW9uYXJ5IGF0dGFja3MgdG8gYnJlYWsgdGhlIGVuY3J5cHRpb24NCiAgIHBhc3N3b3JkIGFu ZCByZWNvdmVyIHRoZSBpbmZvcm1hdGlvbi4gIFN0YW5kYXJkIHNlY3VyaXR5IGJlc3QNCiAgIHBy YWN0aWNlcyBmb3Igc2VsZWN0aW9uIG9mIHN0cm9uZyBlbmNyeXB0aW9uIHBhc3N3b3JkcyBhcHBs eQ0KICAgW1NjaG5laWVyXS4NCg0KICAgUHJhY3RpY2FsIGltcGxlbWVudGF0aW9ucyBzaG91bGQg dXNlIFBCRVNhbHQgYW5kIFBCRUl0ZXJhdGlvbkNvdW50DQogICB3aGVuIFBCRSBlbmNyeXB0aW9u IGlzIHVzZWQuICBEaWZmZXJlbnQgUEJFU2FsdCB2YWx1ZSBwZXIga2V5DQogICBjb250YWluZXIg c2hvdWxkIGJlIHVzZWQgZm9yIGJlc3QgcHJvdGVjdGlvbi4NCg0KICAgVGhlIHNlY29uZCBhcHBy b2FjaCB0byBwcm90ZWN0aW5nIHRoZSBjb25maWRlbnRpYWxpdHkgb2YgdGhlIHBheWxvYWQNCiAg IGlzIGJhc2VkIG9uIHVzaW5nIHRyYW5zcG9ydCBsYXllciBzZWN1cml0eS4gIFRoZSBzZWN1cmUg Y2hhbm5lbA0KICAgZXN0YWJsaXNoZWQgYmV0d2VlbiB0aGUgc291cmNlIHNlY3VyZSBwZXJpbWV0 ZXIgKHRoZSBwcm92aXNpb25pbmcNCiAgIHNlcnZlciBmcm9tIHRoZSBleGFtcGxlIGFib3ZlKSBh bmQgdGhlIHRhcmdldCBwZXJpbWV0ZXIgKHRoZSBkZXZpY2UNCiAgIGF0dGFjaGVkIHRvIHRoZSBl bmQtdXNlciBjb21wdXRlcikgdXRpbGl6ZXMgZW5jcnlwdGlvbiB0byB0cmFuc3BvcnQNCiAgIHRo ZSBtZXNzYWdlcyB0aGF0IHRyYXZlbCBhY3Jvc3MuICBObyBwYXlsb2FkIGVuY3J5cHRpb24gaXMg cmVxdWlyZWQNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIg MjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDU2XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQ b3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0K ICAgaW4gdGhpcyBtb2RlLiAgU2VjdXJlIGNoYW5uZWxzIHRoYXQgZW5jcnlwdCBhbmQgZGlnZXN0 IGVhY2ggbWVzc2FnZQ0KICAgcHJvdmlkZSBhbiBleHRyYSBtZWFzdXJlIG9mIHNlY3VyaXR5LCBl c3BlY2lhbGx5IHdoZW4gdGhlIHNpZ25hdHVyZQ0KICAgb2YgdGhlIHBheWxvYWQgZG9lcyBub3Qg ZW5jb21wYXNzIHRoZSBlbnRpcmUgcGF5bG9hZC4NCg0KICAgQmVjYXVzZSBvZiB0aGUgZmFjdCB0 aGF0IHRoZSBwbGFpbiB0ZXh0IHBheWxvYWQgaXMgcHJvdGVjdGVkIG9ubHkgYnkNCiAgIHRoZSB0 cmFuc3BvcnQgbGF5ZXIgc2VjdXJpdHksIHByYWN0aWNhbCBpbXBsZW1lbnRhdGlvbiBtdXN0IGVu c3VyZQ0KICAgcHJvdGVjdGlvbiBhZ2FpbnN0IG1hbi1pbi10aGUtbWlkZGxlIGF0dGFja3MgW1Nj aG5laWVyXS4gIFZhbGlkYXRpbmcNCiAgIHRoZSBzZWN1cmUgY2hhbm5lbCBlbmQtcG9pbnRzIGlz IGNyaXRpY2FsbHkgaW1wb3J0YW50IGZvciBlbGltaW5hdGluZw0KICAgaW50cnVkZXJzIHRoYXQg bWF5IGNvbXByb21pc2UgdGhlIGNvbmZpZGVudGlhbGl0eSBvZiB0aGUgcGF5bG9hZC4NCg0KMTAu Mi4gIFBheWxvYWQgaW50ZWdyaXR5DQoNCiAgIFRoZSBwb3J0YWJsZSBzeW1tZXRyaWMga2V5IGNv bnRhaW5lciBwcm92aWRlcyBhIG1lYW4gdG8gZ3VhcmFudGVlIHRoZQ0KICAgaW50ZWdyaXR5IG9m IHRoZSBpbmZvcm1hdGlvbiBpdCBjb250YWlucyB0aHJvdWdoIGRpZ2l0YWwgc2lnbmF0dXJlcy4N CiAgIEZvciBiZXN0IHNlY3VyaXR5IHByYWN0aWNlcywgdGhlIGRpZ2l0YWwgc2lnbmF0dXJlIG9m IHRoZSBjb250YWluZXINCiAgIHNob3VsZCBlbmNvbXBhc3MgdGhlIGVudGlyZSBwYXlsb2FkLiAg VGhpcyBwcm92aWRlcyBhc3N1cmFuY2VzIGZvcg0KICAgdGhlIGludGVncml0eSBvZiBhbGwgYXR0 cmlidXRlcy4gIEl0IGFsc28gYWxsb3dzIHZlcmlmaWNhdGlvbiBvZiB0aGUNCiAgIGludGVncml0 eSBvZiBhIGdpdmVuIHBheWxvYWQgZXZlbiBhZnRlciB0aGUgY29udGFpbmVyIGlzIGRlbGl2ZXJl ZA0KICAgdGhyb3VnaCB0aGUgY29tbXVuaWNhdGlvbiBjaGFubmVsIHRvIHRoZSB0YXJnZXQgcGVy aW1ldGVyIGFuZCBjaGFubmVsDQogICBtZXNzYWdlIGludGVncml0eSBjaGVjayBpcyBubyBsb25n ZXIgcG9zc2libGUuDQoNCjEwLjMuICBQYXlsb2FkIGF1dGhlbnRpY2l0eQ0KDQogICBUaGUgZGln aXRhbCBzaWduYXR1cmUgb2YgdGhlIHBheWxvYWQgaXMgdGhlIHByaW1hcnkgd2F5IG9mIHNob3dp bmcNCiAgIGl0cyBhdXRoZW50aWNpdHkuICBUaGUgcmVjaXBpZW50IG9mIHRoZSBjb250YWluZXIg bWF5IHVzZSB0aGUgcHVibGljDQogICBrZXkgYXNzb2NpYXRlZCB3aXRoIHRoZSBzaWduYXR1cmUg dG8gYXNzZXJ0IHRoZSBhdXRoZW50aWNpdHkgb2YgdGhlDQogICBzZW5kZXIgYnkgdHJhY2luZyBp dCBiYWNrIHRvIGEgcHJlbG9hZGVkIHB1YmxpYyBrZXkgb3IgY2VydGlmaWNhdGUuDQogICBOb3Rl IHRoYXQgdGhlIGRpZ2l0YWwgc2lnbmF0dXJlIG9mIHRoZSBwYXlsb2FkIGNhbiBiZSBjaGVja2Vk IGV2ZW4NCiAgIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIGJlZW4gZGVsaXZlcmVkIHRocm91Z2gg dGhlIHNlY3VyZSBjaGFubmVsIG9mDQogICBjb21tdW5pY2F0aW9uLg0KDQogICBBIHdlYWtlciBw YXlsb2FkIGF1dGhlbnRpY2l0eSBndWFyYW50ZWUgbWF5IGJlIHByb3ZpZGVkIGJ5IHRoZQ0KICAg dHJhbnNwb3J0IGxheWVyIGlmIGl0IGlzIGNvbmZpZ3VyZWQgdG8gZGlnZXN0IGVhY2ggbWVzc2Fn ZSBpdA0KICAgdHJhbnNwb3J0cy4gIEhvd2V2ZXIsIG5vIGF1dGhlbnRpY2l0eSB2ZXJpZmljYXRp b24gaXMgcG9zc2libGUgb25jZQ0KICAgdGhlIGNvbnRhaW5lciBpcyBkZWxpdmVyZWQgYXQgdGhl IHJlY2lwaWVudCBlbmQuICBUaGlzIGFwcHJvYWNoIG1heQ0KICAgYmUgdXNlZnVsIGluIGNhc2Vz IHdoZXJlIHRoZSBkaWdpdGFsIHNpZ25hdHVyZSBvZiB0aGUgY29udGFpbmVyIGRvZXMNCiAgIG5v dCBlbmNvbXBhc3MgdGhlIGVudGlyZSBwYXlsb2FkLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAg ICAgICAgICAgIFtQYWdlIDU3XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1t ZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KMTEuICBBY2tub3ds ZWRnZW1lbnRzDQoNCiAgIFRoZSBhdXRob3JzIG9mIHRoaXMgZHJhZnQgd291bGQgbGlrZSB0byB0 aGFuayB0aGUgZm9sbG93aW5nIHBlb3BsZQ0KICAgZm9yIHRoZWlyIGNvbnRyaWJ1dGlvbnMgYW5k IHN1cHBvcnQgdG8gbWFrZSB0aGlzIGEgYmV0dGVyDQogICBzcGVjaWZpY2F0aW9uOiBBcG9zdG9s IFZhc3NpbGV2LCBTaHVoIENoYW5nLCBKb24gTWFydGluc29uLCBTaWRkaGFydA0KICAgQmFqYWos IFN0dSBWZWF0aCwgS2V2aW4gTGV3aXMsIFBoaWxpcCBIYWxsYW0tQmFrZXIsIEhhbm5lcw0KICAg VHNjaG9mZW5pZywgQW5kcmVhIERvaGVydHksIE1hZ251cyBOeXN0cm9tLCBUaW0gTW9zZXMsIGFu ZCBBbmRlcnMNCiAgIFJ1bmRncmVuLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpIb3ll ciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAg ICBbUGFnZSA1OF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtl eSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjEyLiAgQXBwZW5kaXggQSAtIEV4 YW1wbGUgU3ltbWV0cmljIEtleSBDb250YWluZXJzDQoNCiAgIEFsbCBleGFtcGxlcyBhcmUgc3lu dGFjdGljYWxseSBjb3JyZWN0IGFuZCBjb21wYXRpYmxlIHdpdGggdGhlIFhNTA0KICAgc2NoZW1h IGluIHNlY3Rpb24gNy4NCg0KMTIuMS4gIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyIHdpdGggYSBz aW5nbGUgTm9uLUVuY3J5cHRlZCBIT1RQIFNlY3JldA0KICAgICAgIEtleQ0KDQoNCiAgIDw/eG1s IHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQogICA8S2V5Q29udGFpbmVyIFZlcnNp b249IjEuMCINCiAgICAgeG1sbnM9InVybjppZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tj OjEuMCI+DQogICAgICAgPERldmljZT4NCiAgICAgICAgICAgPERldmljZUluZm8+DQogICAgICAg ICAgICAgICA8TWFudWZhY3R1cmVyPkFDTUU8L01hbnVmYWN0dXJlcj4NCiAgICAgICAgICAgICAg IDxTZXJpYWxObz4wNzU1MjI1MjY2PC9TZXJpYWxObz4NCiAgICAgICAgICAgPC9EZXZpY2VJbmZv Pg0KICAgICAgICAgICA8S2V5IEtleUFsZ29yaXRobT0iaHR0cDovL3d3dy5pZXRmLm9yZy9rZXlw cm92L3Bza2MjaG90cCINCiAgICAgICAgICAgICBLZXlJZD0iMDc1NTIyNTI2NiI+DQogICAgICAg ICAgICAgICA8SXNzdWVyPkFuSXNzdWVyPC9Jc3N1ZXI+DQogICAgICAgICAgICAgICA8VXNhZ2Ug T1RQPSJ0cnVlIj4NCiAgICAgICAgICAgICAgICAgICA8UmVzcG9uc2VGb3JtYXQgTGVuZ3RoPSI2 IiBGb3JtYXQ9IkRFQ0lNQUwiLz4NCiAgICAgICAgICAgICAgIDwvVXNhZ2U+DQogICAgICAgICAg ICAgICA8RGF0YSBOYW1lPSJDT1VOVEVSIj4NCiAgICAgICAgICAgICAgICAgICA8UGxhaW5WYWx1 ZT5BcHJrdUE9PTwvUGxhaW5WYWx1ZT4NCiAgICAgICAgICAgICAgIDwvRGF0YT4NCiAgICAgICAg ICAgICAgIDxEYXRhIE5hbWU9IlNFQ1JFVCI+DQogICAgICAgICAgICAgICAgICAgPFBsYWluVmFs dWU+LzRoM3JPVGVCZWdKd0dwbVRUcTRGK1JsTlIwPTwvUGxhaW5WYWx1ZT4NCiAgICAgICAgICAg ICAgIDwvRGF0YT4NCiAgICAgICAgICAgICAgIDxFeHBpcnlEYXRlPjIwMTItMTItMzFUMDA6MDA6 MDA8L0V4cGlyeURhdGU+DQogICAgICAgICAgIDwvS2V5Pg0KICAgICAgIDwvRGV2aWNlPg0KICAg PC9LZXlDb250YWluZXI+DQoNCg0KMTIuMi4gIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyIHdpdGgg YSBzaW5nbGUgUElOIHByb3RlY3RlZCBOb24tRW5jcnlwdGVkDQogICAgICAgSE9UUCBTZWNyZXQg S2V5DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAg RXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNTldDQoMDQpJbnRl cm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAg ICBKdW5lIDIwMDgNCg0KDQogICA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/ Pg0KICAgPEtleUNvbnRhaW5lciBWZXJzaW9uPSIxLjAiDQogICAgIHhtbG5zPSJ1cm46aWV0Zjpw YXJhbXM6eG1sOm5zOmtleXByb3Y6cHNrYzoxLjAiPg0KICAgICAgIDxEZXZpY2U+DQogICAgICAg ICAgIDxEZXZpY2VJbmZvPg0KICAgICAgICAgICAgICAgPE1hbnVmYWN0dXJlcj5BQ01FPC9NYW51 ZmFjdHVyZXI+DQogICAgICAgICAgICAgICA8U2VyaWFsTm8+MDc1NTIyNTI2NjwvU2VyaWFsTm8+ DQogICAgICAgICAgIDwvRGV2aWNlSW5mbz4NCiAgICAgICAgICAgPEtleSBLZXlBbGdvcml0aG09 Imh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHAiDQogICAgICAgICAgICAgS2V5 SWQ9IjA3NTUyMjUyNjYiPg0KICAgICAgICAgICAgICAgPElzc3Vlcj5Bbklzc3VlcjwvSXNzdWVy Pg0KICAgICAgICAgICAgICAgPFVzYWdlIE9UUD0idHJ1ZSI+DQogICAgICAgICAgICAgICAgICAg PFJlc3BvbnNlRm9ybWF0IExlbmd0aD0iNiIgRm9ybWF0PSJERUNJTUFMIi8+DQogICAgICAgICAg ICAgICA8L1VzYWdlPg0KICAgICAgICAgICAgICAgPERhdGEgTmFtZT0iQ09VTlRFUiI+DQogICAg ICAgICAgICAgICAgICAgPFBsYWluVmFsdWU+QXBya3VBPT08L1BsYWluVmFsdWU+DQogICAgICAg ICAgICAgICA8L0RhdGE+DQogICAgICAgICAgICAgICA8RGF0YSBOYW1lPSJTRUNSRVQiPg0KICAg ICAgICAgICAgICAgICAgIDxQbGFpblZhbHVlPi80aDNyT1RlQmVnSndHcG1UVHE0RitSbE5SMD08 L1BsYWluVmFsdWU+DQogICAgICAgICAgICAgICA8L0RhdGE+DQogICAgICAgICAgICAgICA8UElO UG9saWN5IFBJTktleUlkPSIwNzU1MjI1MjY2MSI+DQogICAgICAgICAgICAgICAgICAgPFBJTlVz YWdlTW9kZT4NCiAgICAgICAgICAgICAgICAgICAgICAgPExvY2FsLz4NCiAgICAgICAgICAgICAg ICAgICA8L1BJTlVzYWdlTW9kZT4NCiAgICAgICAgICAgICAgIDwvUElOUG9saWN5Pg0KICAgICAg ICAgICA8L0tleT4NCiAgICAgICAgICAgPEtleSBLZXlJZD0iMDc1NTIyNTI2NjEiDQogICAgICAg ICAgICAgS2V5QWxnb3JpdGhtPSJodHRwOi8vd3d3LmlldGYub3JnL2tleXByb3YvcHNrYyNwaW4i Pg0KICAgICAgICAgICAgICAgPFVzYWdlPg0KICAgICAgICAgICAgICAgICAgIDxSZXNwb25zZUZv cm1hdCBMZW5ndGg9IjQiIEZvcm1hdD0iREVDSU1BTCIvPg0KICAgICAgICAgICAgICAgPC9Vc2Fn ZT4NCiAgICAgICAgICAgICAgIDxEYXRhIE5hbWU9IlNFQ1JFVCI+DQogICAgICAgICAgICAgICAg ICAgPFBsYWluVmFsdWU+TVRJek5BPT08L1BsYWluVmFsdWU+DQogICAgICAgICAgICAgICA8L0Rh dGE+DQogICAgICAgICAgIDwvS2V5Pg0KICAgICAgIDwvRGV2aWNlPg0KICAgPC9LZXlDb250YWlu ZXI+DQoNCjEyLjMuICBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciB3aXRoIGEgc2luZ2xlIEFFUy0y NTYtQ0JDIEVuY3J5cHRlZCBIT1RQDQogICAgICAgU2VjcmV0IEtleQ0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDgg ICAgICAgICAgICAgIFtQYWdlIDYwXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBT eW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVuZSAyMDA4DQoNCg0KPD94bWwgdmVy c2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxLZXlDb250YWluZXIgVmVyc2lvbj0iMS4w Ig0KICB4bWxucz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlwcm92OnBza2M6MS4wIg0KICB4 bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyINCiAgeG1sbnM6eGVu Yz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjIj4NCiAgICA8RW5jcnlwdGlvbktl eT4NCiAgICAgICAgPGRzOktleU5hbWU+UFJFX1NIQVJFRF9LRVk8L2RzOktleU5hbWU+DQogICAg PC9FbmNyeXB0aW9uS2V5Pg0KICAgIDxNQUNBbGdvcml0aG0+aHR0cDovL3d3dy53My5vcmcvMjAw MC8wOS94bWxkc2lnI2htYWMtc2hhMQ0KICAgIDwvTUFDQWxnb3JpdGhtPg0KICAgIDxEZXZpY2U+ DQogICAgICAgIDxEZXZpY2VJbmZvPg0KICAgICAgICAgICAgPE1hbnVmYWN0dXJlcj5BQ01FPC9N YW51ZmFjdHVyZXI+DQogICAgICAgICAgICA8U2VyaWFsTm8+MDc1NTIyNTI2NjwvU2VyaWFsTm8+ DQogICAgICAgIDwvRGV2aWNlSW5mbz4NCiAgICAgICAgPEtleSBLZXlBbGdvcml0aG09Imh0dHA6 Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHAiDQogICAgICAgICAgS2V5SWQ9IjA3NTUy MjUyNjYiPg0KICAgICAgICAgICAgPElzc3Vlcj5Bbklzc3VlcjwvSXNzdWVyPg0KICAgICAgICAg ICAgPFVzYWdlIE9UUD0idHJ1ZSI+DQogICAgICAgICAgICAgICAgPFJlc3BvbnNlRm9ybWF0IExl bmd0aD0iOCIgRm9ybWF0PSJERUNJTUFMIi8+DQogICAgICAgICAgICA8L1VzYWdlPg0KICAgICAg ICAgICAgPERhdGEgTmFtZT0iQ09VTlRFUiI+DQogICAgICAgICAgICAgICAgPFBsYWluVmFsdWU+ QXBya3VBPT08L1BsYWluVmFsdWU+DQogICAgICAgICAgICA8L0RhdGE+DQogICAgICAgICAgICA8 RGF0YSBOYW1lPSJTRUNSRVQiPg0KICAgICAgICAgICAgICAgIDxFbmNyeXB0ZWRWYWx1ZT4NCiAg ICAgICAgICAgICAgICAgICAgPHhlbmM6RW5jcnlwdGlvbk1ldGhvZA0KICAgICAgICAgICAgICAg QWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNhZXMyNTYtY2JjIi8+ DQogICAgICAgICAgICAgICAgICAgIDx4ZW5jOkNpcGhlckRhdGE+DQogICAgICAgICAgICAgICAg ICAgICAgPHhlbmM6Q2lwaGVyVmFsdWU+DQogICAgICAgICAgICAgICAgICAgICAgICBreXpyV1RK dWhKS1FIaFp0ZjJDV2JLQzVIM0xkZkFQdkt6SEhROFNkeHlFPQ0KICAgICAgICAgICAgICAgICAg ICAgIDwveGVuYzpDaXBoZXJWYWx1ZT4NCiAgICAgICAgICAgICAgICAgICAgPC94ZW5jOkNpcGhl ckRhdGE+DQogICAgICAgICAgICAgICAgPC9FbmNyeXB0ZWRWYWx1ZT4NCiAgICAgICAgICAgICAg ICA8VmFsdWVNQUM+Y3dKSTg5OHJScEdCeXRUcUNBc2VnYVFxUFpBPTwvVmFsdWVNQUM+DQogICAg ICAgICAgICA8L0RhdGE+DQogICAgICAgIDwvS2V5Pg0KICAgIDwvRGV2aWNlPg0KPC9LZXlDb250 YWluZXI+DQoNCjEyLjQuICBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciB3aXRoIHNpZ25hdHVyZSBh bmQgYSBzaW5nbGUgUGFzc3dvcmQtDQogICAgICAgYmFzZWQgRW5jcnlwdGVkIEhPVFAgU2VjcmV0 IEtleQ0KDQoNCiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KIDxwc2tj OktleUNvbnRhaW5lcg0KICAgeG1sbnM6cHNrYz0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlw cm92OnBza2M6MS4wIg0KICAgeG1sbnM6cGtjcy01PQ0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAg ICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNjFdDQoM DQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAg ICAgICAgICBKdW5lIDIwMDgNCg0KDQogICAgICJodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9y c2FsYWJzL3BrY3Mvc2NoZW1hcy9wa2NzLTV2Mi0wIyINCiAgIHhtbG5zOnhzaT0iaHR0cDovL3d3 dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiDQogICB4bWxuczpkcz0iaHR0cDovL3d3 dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyINCiAgIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMu b3JnLzIwMDEvMDQveG1sZW5jIyINCiAgIFZlcnNpb249IjEuMCI+DQogICAgIDxwc2tjOkVuY3J5 cHRpb25LZXk+DQogICAgICAgPHBza2M6RGVyaXZlZEtleSBJZD0iI1Bhc3NwaHJhc2UxIj4NCiAg ICAgICAgIDxwc2tjOkNhcnJpZWRLZXlOYW1lPlBhc3NwaHJhc2UxPC9wc2tjOkNhcnJpZWRLZXlO YW1lPg0KICAgICAgICAgPHBza2M6S2V5RGVyaXZhdGlvbk1ldGhvZA0KICAgICAgICAgICBBbGdv cml0aG09DQogICAgICAiaHR0cDovL3d3dy5yc2FzZWN1cml0eS5jb20vcnNhbGFicy9wa2NzL3Nj aGVtYXMvcGtjcy01I3Bia2RmMiI+DQogICAgICAgICAgIDxwa2NzLTU6UGFyYW1ldGVycyB4c2k6 dHlwZT0icGtjcy01OlBCS0RGMlBhcmFtZXRlclR5cGUiPg0KICAgICAgICAgICAgIDxTYWx0Pg0K ICAgICAgICAgICAgICAgPFNwZWNpZmllZD5EZjNkUkFoakdoOD08L1NwZWNpZmllZD4NCiAgICAg ICAgICAgICA8L1NhbHQ+DQogICAgICAgICAgICAgPEl0ZXJhdGlvbkNvdW50PjIwMDA8L0l0ZXJh dGlvbkNvdW50Pg0KICAgICAgICAgICAgIDxLZXlMZW5ndGg+MTY8L0tleUxlbmd0aD4NCiAgICAg ICAgICAgICA8UFJGLz4NCiAgICAgICAgICAgPC9wa2NzLTU6UGFyYW1ldGVycz4NCiAgICAgICAg IDwvcHNrYzpLZXlEZXJpdmF0aW9uTWV0aG9kPg0KICAgICAgICAgPHhlbmM6UmVmZXJlbmNlTGlz dD4NCiAgICAgICAgICAgPHhlbmM6RGF0YVJlZmVyZW5jZSBVUkk9IiNFRCIvPg0KICAgICAgICAg PC94ZW5jOlJlZmVyZW5jZUxpc3Q+DQogICAgICAgPC9wc2tjOkRlcml2ZWRLZXk+DQogICAgIDwv cHNrYzpFbmNyeXB0aW9uS2V5Pg0KICAgPHBza2M6RGV2aWNlPg0KICAgICA8cHNrYzpEZXZpY2VJ bmZvPg0KICAgICAgIDxwc2tjOk1hbnVmYWN0dXJlcj5BQ01FPC9wc2tjOk1hbnVmYWN0dXJlcj4N CiAgICAgICA8cHNrYzpTZXJpYWxObz4wNzU1MjI1MjY2PC9wc2tjOlNlcmlhbE5vPg0KICAgICA8 L3Bza2M6RGV2aWNlSW5mbz4NCiAgICAgICAgIDxwc2tjOktleSBLZXlBbGdvcml0aG09Imh0dHA6 Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHAiDQogICAgICAgICAgIEtleUlkPSIwNzU1 MjI1MjY2Ij4NCiAgICAgICAgICAgICA8cHNrYzpJc3N1ZXI+QW5Jc3N1ZXI8L3Bza2M6SXNzdWVy Pg0KICAgICAgICAgICAgIDxwc2tjOlVzYWdlIE9UUD0idHJ1ZSI+DQogICAgICAgICAgICAgICAg IDxwc2tjOlJlc3BvbnNlRm9ybWF0IExlbmd0aD0iNiIgRm9ybWF0PSJERUNJTUFMIi8+DQogICAg ICAgICAgICAgPC9wc2tjOlVzYWdlPg0KICAgICAgICAgICAgIDxwc2tjOkRhdGEgTmFtZT0iQ09V TlRFUiI+DQogICAgICAgICAgICAgICAgIDxwc2tjOlBsYWluVmFsdWU+QXBya3VBPT08L3Bza2M6 UGxhaW5WYWx1ZT4NCiAgICAgICAgICAgICA8L3Bza2M6RGF0YT4NCiAgICAgICAgICAgICA8cHNr YzpEYXRhIE5hbWU9IlNFQ1JFVCI+DQogICAgICAgICAgICAgICAgIDxwc2tjOkVuY3J5cHRlZFZh bHVlIElkPSJFRCI+DQogICAgICAgICAgICAgICAgICAgPHhlbmM6RW5jcnlwdGlvbk1ldGhvZCBB bGdvcml0aG09DQogICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQv eG1sZW5jI2t3LWFlczEyOCIvPg0KICAgICAgICAgICAgICAgICAgIDx4ZW5jOkNpcGhlckRhdGE+ DQogICAgICAgICAgICAgICAgICAgICA8eGVuYzpDaXBoZXJWYWx1ZT5yZjRkeDNydkVQTzB2S3RL TDE0TmJlVnU4bms9DQogICAgICAgICAgICAgICAgICAgICA8L3hlbmM6Q2lwaGVyVmFsdWU+DQog ICAgICAgICAgICAgICAgICAgPC94ZW5jOkNpcGhlckRhdGE+DQogICAgICAgICAgICAgICAgIDwv cHNrYzpFbmNyeXB0ZWRWYWx1ZT4NCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAgICAgIEV4cGly ZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDYyXQ0KDA0KSW50ZXJuZXQt RHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAgICAgICAgSnVu ZSAyMDA4DQoNCg0KICAgICAgICAgICAgIDwvcHNrYzpEYXRhPg0KICAgICAgICAgPC9wc2tjOktl eT4NCiAgIDwvcHNrYzpEZXZpY2U+DQogICA8cHNrYzpTaWduYXR1cmU+DQogICAgIDxkczpTaWdu ZWRJbmZvPg0KICAgICAgIDxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kDQogICAgICAgICBBbGdv cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPg0KICAgICAg IDxkczpTaWduYXR1cmVNZXRob2QNCiAgICAgICAgIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5v cmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIi8+DQogICAgICAgPGRzOlJlZmVyZW5jZSBVUkk9 IiI+DQogICAgICAgICA8ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0NCiAgICAgICAgICAgImh0 dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNzaGExIi8+DQogICAgICAgICA8ZHM6RGln ZXN0VmFsdWU+ajZsd3gzcnZFUE8wdkt0TXVwNE5iZVZ1OG5rPTwvZHM6RGlnZXN0VmFsdWU+DQog ICAgICAgPC9kczpSZWZlcmVuY2U+DQogICAgIDwvZHM6U2lnbmVkSW5mbz4NCiAgICAgPGRzOlNp Z25hdHVyZVZhbHVlPmo2bHd4M3J2RVBPMHZLdE11cDROYmVWdThuaz08L2RzOlNpZ25hdHVyZVZh bHVlPg0KICAgICA8ZHM6S2V5SW5mbz4NCiAgICAgICA8ZHM6WDUwOURhdGE+DQogICAgICAgICA8 ZHM6WDUwOUlzc3VlclNlcmlhbD4NCiAgICAgICAgICAgPGRzOlg1MDlJc3N1ZXJOYW1lPkNOPUtl eVByb3Zpc2lvbmluZydSJ1VzLmNvbSxDPVVTDQogICAgICAgICAgIDwvZHM6WDUwOUlzc3Vlck5h bWU+DQogICAgICAgICAgIDxkczpYNTA5U2VyaWFsTnVtYmVyPjEyMzQ1Njc4PC9kczpYNTA5U2Vy aWFsTnVtYmVyPg0KICAgICAgICAgPC9kczpYNTA5SXNzdWVyU2VyaWFsPg0KICAgICAgIDwvZHM6 WDUwOURhdGE+DQogICAgIDwvZHM6S2V5SW5mbz4NCiAgIDwvcHNrYzpTaWduYXR1cmU+DQogPC9w c2tjOktleUNvbnRhaW5lcj4NCg0KDQoxMi41LiAgU3ltbWV0cmljIEtleSBDb250YWluZXIgd2l0 aCBhIHNpbmdsZSBSU0EgMS41IEVuY3J5cHRlZCBIT1RQDQogICAgICAgU2VjcmV0IEtleQ0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCkhveWVyLCBldCBhbC4gICAgICAg ICAgIEV4cGlyZXMgRGVjZW1iZXIgMjksIDIwMDggICAgICAgICAgICAgIFtQYWdlIDYzXQ0KDA0K SW50ZXJuZXQtRHJhZnQgICAgICBQb3J0YWJsZSBTeW1tZXRyaWMgS2V5IENvbnRhaW5lciAgICAg ICAgICAgSnVuZSAyMDA4DQoNCg0KPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgi Pz4NCjxwc2tjOktleUNvbnRhaW5lciBWZXJzaW9uPSIxLjAiDQogIHhtbG5zOnBza2M9InVybjpp ZXRmOnBhcmFtczp4bWw6bnM6a2V5cHJvdjpwc2tjOjEuMCINCiAgeG1sbnM6ZHM9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiDQogIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMu b3JnLzIwMDEvMDQveG1sZW5jIyI+DQogICAgPHBza2M6RW5jcnlwdGlvbktleT4NCiAgICAgICAg PGRzOlg1MDlEYXRhPg0KICAgICAgICAgICAgPGRzOlg1MDlDZXJ0aWZpY2F0ZT5taWliPC9kczpY NTA5Q2VydGlmaWNhdGU+DQogICAgICAgIDwvZHM6WDUwOURhdGE+DQogICAgPC9wc2tjOkVuY3J5 cHRpb25LZXk+DQogICAgPHBza2M6RGV2aWNlPg0KICAgICAgICA8cHNrYzpEZXZpY2VJbmZvPg0K ICAgICAgICAgICAgPHBza2M6TWFudWZhY3R1cmVyPkFDTUU8L3Bza2M6TWFudWZhY3R1cmVyPg0K ICAgICAgICAgICAgPHBza2M6U2VyaWFsTm8+MDc1NTIyNTI2NjwvcHNrYzpTZXJpYWxObz4NCiAg ICAgICAgPC9wc2tjOkRldmljZUluZm8+DQogICAgICAgIDxwc2tjOktleSBLZXlBbGdvcml0aG09 Imh0dHA6Ly93d3cuaWV0Zi5vcmcva2V5cHJvdi9wc2tjI2hvdHAiDQogICAgICAgICAgICAgICAg ICBLZXlJZD0iMDc1NTIyNTI2NiI+DQogICAgICAgICAgICA8cHNrYzpJc3N1ZXI+QW5Jc3N1ZXI8 L3Bza2M6SXNzdWVyPg0KICAgICAgICAgICAgPHBza2M6VXNhZ2UgT1RQPSJ0cnVlIj4NCiAgICAg ICAgICAgICAgICA8cHNrYzpSZXNwb25zZUZvcm1hdCBMZW5ndGg9IjgiIEZvcm1hdD0iREVDSU1B TCIvPg0KICAgICAgICAgICAgPC9wc2tjOlVzYWdlPg0KICAgICAgICAgICAgPHBza2M6RGF0YSBO YW1lPSJDT1VOVEVSIj4NCiAgICAgICAgICAgICAgICA8cHNrYzpQbGFpblZhbHVlPkFwcmt1QT09 PC9wc2tjOlBsYWluVmFsdWU+DQogICAgICAgICAgICA8L3Bza2M6RGF0YT4NCiAgICAgICAgICAg IDxwc2tjOkRhdGEgTmFtZT0iU0VDUkVUIj4NCiAgICAgICAgICAgICAgPHBza2M6RW5jcnlwdGVk VmFsdWUgSWQ9IkVEIj4NCiAgICAgICAgICAgICAgICA8eGVuYzpFbmNyeXB0aW9uTWV0aG9kDQog ICAgICAgICAgICAgICAgICBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1s ZW5jI3JzYV8xXzUiLz4NCiAgICAgICAgICAgICAgICA8eGVuYzpDaXBoZXJEYXRhPg0KICAgICAg ICAgICAgICAgICAgPHhlbmM6Q2lwaGVyVmFsdWU+cmY0ZHgzcnZFUE8wdkt0S0wxNE5iZVZ1OG5r PQ0KICAgICAgICAgICAgICAgICAgPC94ZW5jOkNpcGhlclZhbHVlPg0KICAgICAgICAgICAgICAg IDwveGVuYzpDaXBoZXJEYXRhPg0KICAgICAgICAgICAgICA8L3Bza2M6RW5jcnlwdGVkVmFsdWU+ DQogICAgICAgICAgICA8L3Bza2M6RGF0YT4NCiAgICAgICAgPC9wc2tjOktleT4NCiAgICA8L3Bz a2M6RGV2aWNlPg0KPC9wc2tjOktleUNvbnRhaW5lcj4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQpIb3llciwgZXQgYWwuICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAg ICAgICAgICAgICBbUGFnZSA2NF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3lt bWV0cmljIEtleSBDb250YWluZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCjEzLiAgUmVmZXJl bmNlcw0KDQoxMy4xLiAgTm9ybWF0aXZlIFJlZmVyZW5jZXMNCg0KICAgW1BLQ1MxXSAgICBLYWxp c2tpLCBCLiwgIlJGQyAyNDM3OiBQS0NTICMxOiBSU0EgQ3J5cHRvZ3JhcGh5DQogICAgICAgICAg ICAgIFNwZWNpZmljYXRpb25zIFZlcnNpb24gMi4wLiIsDQogICAgICAgICAgICAgIFVSTDogaHR0 cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjQzNy50eHQsIFZlcnNpb246IDIuMCwNCiAgICAgICAg ICAgICAgT2N0b2JlciAxOTk4Lg0KDQogICBbUEtDUzVdICAgIFJTQSBMYWJvcmF0b3JpZXMsICJQ S0NTICM1OiBQYXNzd29yZC1CYXNlZCBDcnlwdG9ncmFwaHkNCiAgICAgICAgICAgICAgU3RhbmRh cmQiLCBWZXJzaW9uIDIuMCwNCiAgICAgICAgICAgICAgVVJMOiBodHRwOi8vd3d3LnJzYXNlY3Vy aXR5LmNvbS9yc2FsYWJzL3BrY3MvLCBNYXJjaCAxOTk5Lg0KDQogICBbUkZDMjExOV0gICJLZXkg d29yZHMgZm9yIHVzZSBpbiBSRkNzIHRvIEluZGljYXRlIFJlcXVpcmVtZW50DQogICAgICAgICAg ICAgIExldmVscyIsIEJDUCAxNCwgUkZDIDIxMTksIE1hcmNoIDE5OTcsDQogICAgICAgICAgICAg IDxodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMTE5LnR4dD4uDQoNCiAgIFtSRkMyNDM0XSAg TmFydGVuLCBULiwgIkd1aWRlbGluZXMgZm9yIFdyaXRpbmcgYW4gSUFOQSBDb25zaWRlcmF0aW9u cw0KICAgICAgICAgICAgICBTZWN0aW9uIGluIFJGQ3MiLCBSRkMgMjQzNCwgT2N0b2JlciAxOTk4 Lg0KDQogICBbUkZDMzAyM10gIE11cmF0YSwgTS4sIFN0LiBMYXVyZW50LCBTLiwgYW5kIEQuIEtv aG4sICJYTUwgTWVkaWENCiAgICAgICAgICAgICAgVHlwZXMiLCBSRkMgMzAyMywgSmFudWFyeSAy MDAxLg0KDQogICBbUkZDMzU1M10gIE1lYWxsaW5nLCBNLiwgIkFuIElFVEYgVVJOIFN1Yi1uYW1l c3BhY2UgZm9yIFJlZ2lzdGVyZWQNCiAgICAgICAgICAgICAgUHJvdG9jb2wgUGFyYW1ldGVycyIs IFJGQyAzNTUzLCBKdW5lIDIwMDMuDQoNCiAgIFtSRkMzNjg4XSAgTWVhbGxpbmcsIE0uLCAiVGhl IElFVEYgWE1MIFJlZ2lzdHJ5IiwgQkNQIDgxLCBSRkMgMzY4OCwNCiAgICAgICAgICAgICAgSmFu dWFyeSAyMDA0Lg0KDQogICBbUkZDNDI4OF0gIEZyZWVkLCBOLiBhbmQgSi4gS2xlbnNpbiwgIk1l ZGlhIFR5cGUgU3BlY2lmaWNhdGlvbnMgYW5kDQogICAgICAgICAgICAgIFJlZ2lzdHJhdGlvbiBQ cm9jZWR1cmVzIiwgQkNQIDEzLCBSRkMgNDI4OCwgRGVjZW1iZXIgMjAwNS4NCg0KICAgW1JGQzQ1 MTRdICBaZWlsZW5nYSwgSy4sICJMaWdodHdlaWdodCBEaXJlY3RvcnkgQWNjZXNzIFByb3RvY29s DQogICAgICAgICAgICAgIChMREFQKTogU3RyaW5nIFJlcHJlc2VudGF0aW9uIG9mIERpc3Rpbmd1 aXNoZWQgTmFtZXMiLA0KICAgICAgICAgICAgICBSRkMgNDUxNCwgSnVuZSAyMDA2Lg0KDQogICBb WE1MRFNJR10gIEVhc3RsYWtlLCBELiwgIlhNTC1TaWduYXR1cmUgU3ludGF4IGFuZCBQcm9jZXNz aW5nIiwNCiAgICAgICAgICAgICAgVVJMOiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAyL1JFQy14 bWxkc2lnLWNvcmUtMjAwMjAyMTIvLA0KICAgICAgICAgICAgICBXM0MgUmVjb21tZW5kYXRpb24s IEZlYnJ1YXJ5IDIwMDIuDQoNCiAgIFtYTUxFTkNdICAgRWFzdGxha2UsIEQuLCAiWE1MIEVuY3J5 cHRpb24gU3ludGF4IGFuZCBQcm9jZXNzaW5nLiIsDQogICAgICAgICAgICAgIFVSTDogaHR0cDov L3d3dy53My5vcmcvVFIveG1sZW5jLWNvcmUvLCBEZWNlbWJlciAyMDAyLg0KDQoxMy4yLiAgSW5m b3JtYXRpdmUgUmVmZXJlbmNlcw0KDQogICBbQ0FQXSAgICAgIE1hc3RlckNhcmQgSW50ZXJuYXRp b25hbCwgIkNoaXAgQXV0aGVudGljYXRpb24gUHJvZ3JhbQ0KICAgICAgICAgICAgICBGdW5jdGlv bmFsIEFyY2hpdGVjdHVyZSIsIFNlcHRlbWJlciAyMDA0Lg0KDQoNCg0KDQpIb3llciwgZXQgYWwu ICAgICAgICAgICBFeHBpcmVzIERlY2VtYmVyIDI5LCAyMDA4ICAgICAgICAgICAgICBbUGFnZSA2 NV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgUG9ydGFibGUgU3ltbWV0cmljIEtleSBDb250YWlu ZXIgICAgICAgICAgIEp1bmUgMjAwOA0KDQoNCiAgIFtEU0tQUF0gICAgRG9oZXJ0eSwgQS4sIFBl aSwgTS4sIE1hY2hhbmksIFMuLCBhbmQgTS4gTnlzdHJvbSwNCiAgICAgICAgICAgICAgIkR5bmFt aWMgU3ltbWV0cmljIEtleSBQcm92aXNpb25pbmcgUHJvdG9jb2wiLCBJbnRlcm5ldA0KICAgICAg ICAgICAgICBEcmFmdCBJbmZvcm1hdGlvbmFsLCBVUkw6IGh0dHA6Ly93d3cuaWV0Zi5vcmcvDQog ICAgICAgICAgICAgIGludGVybmV0LWRyYWZ0cy9kcmFmdC1pZXRmLWtleXByb3YtZHNrcHAtMDMu dHh0LA0KICAgICAgICAgICAgICBGZWJydWFyeSAyMDA4Lg0KDQogICBbSE9UUF0gICAgIE1SYWlo aSwgRC4sIEJlbGxhcmUsIE0uLCBIb29ybmFlcnQsIEYuLCBOYWNjYWNoZSwgRC4sIGFuZA0KICAg ICAgICAgICAgICBPLiBSYW5lbiwgIkhPVFA6IEFuIEhNQUMtQmFzZWQgT25lIFRpbWUgUGFzc3dv cmQNCiAgICAgICAgICAgICAgQWxnb3JpdGhtIiwgUkZDIDQyMjYsDQogICAgICAgICAgICAgIFVS TDogaHR0cDovL3JmYy5zdW5zaXRlLmRrL3JmYy9yZmM0MjI2Lmh0bWwsDQogICAgICAgICAgICAg IERlY2VtYmVyIDIwMDUuDQoNCiAgIFtOSVNULVNQODAwLTU3XQ0KICAgICAgICAgICAgICBOYXRp b25hbCBJbnN0aXR1dGUgb2YgU3RhbmRhcmRzIGFuZCBUZWNobm9sb2d5LA0KICAgICAgICAgICAg ICAiUmVjb21tZW5kYXRpb24gZm9yIEtleSBNYW5hZ2VtZW50IC0gUGFydCBJOiBHZW5lcmFsDQog ICAgICAgICAgICAgIChSZXZpc2VkKSIsIE5JU1QgODAwLTU3LCBVUkw6IGh0dHA6Ly9jc3JjLm5p c3QuZ292Lw0KICAgICAgICAgICAgICBwdWJsaWNhdGlvbnMvbmlzdHB1YnMvODAwLTU3Lw0KICAg ICAgICAgICAgICBzcDgwMC01Ny1QYXJ0MS1yZXZpc2VkMl9NYXIwOC0yMDA3LnBkZiwgTWFyY2gg MjAwNy4NCg0KICAgW09BVEhdICAgICAiSW5pdGlhdGl2ZSBmb3IgT3BlbiBBdVRIZW50aWNhdGlv biIsDQogICAgICAgICAgICAgIFVSTDogaHR0cDovL3d3dy5vcGVuYXV0aGVudGljYXRpb24ub3Jn Lg0KDQogICBbT0NSQV0gICAgIE1SYWloaSwgRC4sIFJ5ZGVsbCwgSi4sIE5hY2NhY2hlLCBELiwg TWFjaGFuaSwgUy4sIGFuZCBTLg0KICAgICAgICAgICAgICBCYWphaiwgIk9DUkE6IE9BVEggQ2hh bGxlbmdlIFJlc3BvbnNlIEFsZ29yaXRobSIsIEludGVybmV0DQogICAgICAgICAgICAgIERyYWZ0 IEluZm9ybWF0aW9uYWwsIFVSTDogaHR0cDovL3d3dy5pZXRmLm9yZy8NCiAgICAgICAgICAgICAg aW50ZXJuZXQtZHJhZnRzLw0KICAgICAgICAgICAgICBkcmFmdC1tcmFpaGktbXV0dWFsLW9hdGgt aG90cC12YXJpYW50cy0wNi50eHQsDQogICAgICAgICAgICAgIERlY2VtYmVyIDIwMDcuDQoNCiAg IFtQS0NTMTJdICAgUlNBIExhYm9yYXRvcmllcywgIlBLQ1MgIzEyOiBQZXJzb25hbCBJbmZvcm1h dGlvbiBFeGNoYW5nZQ0KICAgICAgICAgICAgICBTeW50YXggU3RhbmRhcmQiLCBWZXJzaW9uIDEu MCwNCiAgICAgICAgICAgICAgVVJMOiBodHRwOi8vd3d3LnJzYXNlY3VyaXR5LmNvbS9yc2FsYWJz L3BrY3MvLg0KDQogICBbU2NobmVpZXJdDQogICAgICAgICAgICAgIFNjaG5laWVyLCBCLiwgIlNl Y3JldHMgYW5kIExpZXM6IERpZ2l0aWFsIFNlY3VyaXR5IGluIGENCiAgICAgICAgICAgICAgTmV0 d29ya2VkIFdvcmxkIiwgIFdpbGV5IENvbXB1dGVyIFB1Ymxpc2hpbmcsIElTQk4gMC04NDkzLQ0K ICAgICAgICAgICAgICA4MjUzLTcsIDIwMDAuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K SG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAwOCAgICAgICAg ICAgICAgW1BhZ2UgNjZdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxlIFN5bW1ldHJp YyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQpBdXRob3JzJyBBZGRyZXNz ZXMNCg0KICAgUGhpbGlwIEhveWVyDQogICBBY3RpdklkZW50aXR5LCBJbmMuDQogICAxMTcgV2F0 ZXJsb28gUm9hZA0KICAgTG9uZG9uLCBTRTEgIDhVTA0KICAgVUsNCg0KICAgUGhvbmU6ICs0NCAo MCkgMjAgNzc0NCA2NDU1DQogICBFbWFpbDogUGhpbGlwLkhveWVyQGFjdGl2aWRlbnRpdHkuY29t DQoNCg0KICAgTWluZ2xpYW5nIFBlaQ0KICAgVmVyaVNpZ24sIEluYy4NCiAgIDQ4NyBFLiBNaWRk bGVmaWVsZCBSb2FkDQogICBNb3VudGFpbiBWaWV3LCBDQSAgOTQwNDMNCiAgIFVTQQ0KDQogICBQ aG9uZTogKzEgNjUwIDQyNiA1MTczDQogICBFbWFpbDogbXBlaUB2ZXJpc2lnbi5jb20NCg0KDQog ICBTYWxhaCBNYWNoYW5pDQogICBEaXZlcnNpbmV0LCBJbmMuDQogICAyMjI1IFNoZXBwYXJkIEF2 ZW51ZSBFYXN0DQogICBTdWl0ZSAxODAxDQogICBUb3JvbnRvLCBPbnRhcmlvICBNMkogNUMyDQog ICBDYW5hZGENCg0KICAgUGhvbmU6ICsxIDQxNiA3NTYgMjMyNCBFeHQuIDMyMQ0KICAgRW1haWw6 IHNtYWNoYW5pQGRpdmVyc2luZXQuY29tDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJlciAyOSwgMjAw OCAgICAgICAgICAgICAgW1BhZ2UgNjddDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgIFBvcnRhYmxl IFN5bW1ldHJpYyBLZXkgQ29udGFpbmVyICAgICAgICAgICBKdW5lIDIwMDgNCg0KDQpGdWxsIENv cHlyaWdodCBTdGF0ZW1lbnQNCg0KICAgQ29weXJpZ2h0IChDKSBUaGUgSUVURiBUcnVzdCAoMjAw OCkuDQoNCiAgIFRoaXMgZG9jdW1lbnQgaXMgc3ViamVjdCB0byB0aGUgcmlnaHRzLCBsaWNlbnNl cyBhbmQgcmVzdHJpY3Rpb25zDQogICBjb250YWluZWQgaW4gQkNQIDc4LCBhbmQgZXhjZXB0IGFz IHNldCBmb3J0aCB0aGVyZWluLCB0aGUgYXV0aG9ycw0KICAgcmV0YWluIGFsbCB0aGVpciByaWdo dHMuDQoNCiAgIFRoaXMgZG9jdW1lbnQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVy ZWluIGFyZSBwcm92aWRlZCBvbiBhbg0KICAgIkFTIElTIiBiYXNpcyBhbmQgVEhFIENPTlRSSUJV VE9SLCBUSEUgT1JHQU5JWkFUSU9OIEhFL1NIRSBSRVBSRVNFTlRTDQogICBPUiBJUyBTUE9OU09S RUQgQlkgKElGIEFOWSksIFRIRSBJTlRFUk5FVCBTT0NJRVRZLCBUSEUgSUVURiBUUlVTVCBBTkQN CiAgIFRIRSBJTlRFUk5FVCBFTkdJTkVFUklORyBUQVNLIEZPUkNFIERJU0NMQUlNIEFMTCBXQVJS QU5USUVTLCBFWFBSRVNTDQogICBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIEFOWSBXQVJSQU5UWSBUSEFUIFRIRSBVU0UgT0YNCiAgIFRIRSBJTkZPUk1BVElPTiBIRVJF SU4gV0lMTCBOT1QgSU5GUklOR0UgQU5ZIFJJR0hUUyBPUiBBTlkgSU1QTElFRA0KICAgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuDQoNCg0KSW50ZWxsZWN0dWFsIFByb3BlcnR5DQoNCiAgIFRoZSBJRVRGIHRha2VzIG5vIHBv c2l0aW9uIHJlZ2FyZGluZyB0aGUgdmFsaWRpdHkgb3Igc2NvcGUgb2YgYW55DQogICBJbnRlbGxl Y3R1YWwgUHJvcGVydHkgUmlnaHRzIG9yIG90aGVyIHJpZ2h0cyB0aGF0IG1pZ2h0IGJlIGNsYWlt ZWQgdG8NCiAgIHBlcnRhaW4gdG8gdGhlIGltcGxlbWVudGF0aW9uIG9yIHVzZSBvZiB0aGUgdGVj aG5vbG9neSBkZXNjcmliZWQgaW4NCiAgIHRoaXMgZG9jdW1lbnQgb3IgdGhlIGV4dGVudCB0byB3 aGljaCBhbnkgbGljZW5zZSB1bmRlciBzdWNoIHJpZ2h0cw0KICAgbWlnaHQgb3IgbWlnaHQgbm90 IGJlIGF2YWlsYWJsZTsgbm9yIGRvZXMgaXQgcmVwcmVzZW50IHRoYXQgaXQgaGFzDQogICBtYWRl IGFueSBpbmRlcGVuZGVudCBlZmZvcnQgdG8gaWRlbnRpZnkgYW55IHN1Y2ggcmlnaHRzLiAgSW5m b3JtYXRpb24NCiAgIG9uIHRoZSBwcm9jZWR1cmVzIHdpdGggcmVzcGVjdCB0byByaWdodHMgaW4g UkZDIGRvY3VtZW50cyBjYW4gYmUNCiAgIGZvdW5kIGluIEJDUCA3OCBhbmQgQkNQIDc5Lg0KDQog ICBDb3BpZXMgb2YgSVBSIGRpc2Nsb3N1cmVzIG1hZGUgdG8gdGhlIElFVEYgU2VjcmV0YXJpYXQg YW5kIGFueQ0KICAgYXNzdXJhbmNlcyBvZiBsaWNlbnNlcyB0byBiZSBtYWRlIGF2YWlsYWJsZSwg b3IgdGhlIHJlc3VsdCBvZiBhbg0KICAgYXR0ZW1wdCBtYWRlIHRvIG9idGFpbiBhIGdlbmVyYWwg bGljZW5zZSBvciBwZXJtaXNzaW9uIGZvciB0aGUgdXNlIG9mDQogICBzdWNoIHByb3ByaWV0YXJ5 IHJpZ2h0cyBieSBpbXBsZW1lbnRlcnMgb3IgdXNlcnMgb2YgdGhpcw0KICAgc3BlY2lmaWNhdGlv biBjYW4gYmUgb2J0YWluZWQgZnJvbSB0aGUgSUVURiBvbi1saW5lIElQUiByZXBvc2l0b3J5IGF0 DQogICBodHRwOi8vd3d3LmlldGYub3JnL2lwci4NCg0KICAgVGhlIElFVEYgaW52aXRlcyBhbnkg aW50ZXJlc3RlZCBwYXJ0eSB0byBicmluZyB0byBpdHMgYXR0ZW50aW9uIGFueQ0KICAgY29weXJp Z2h0cywgcGF0ZW50cyBvciBwYXRlbnQgYXBwbGljYXRpb25zLCBvciBvdGhlciBwcm9wcmlldGFy eQ0KICAgcmlnaHRzIHRoYXQgbWF5IGNvdmVyIHRlY2hub2xvZ3kgdGhhdCBtYXkgYmUgcmVxdWly ZWQgdG8gaW1wbGVtZW50DQogICB0aGlzIHN0YW5kYXJkLiAgUGxlYXNlIGFkZHJlc3MgdGhlIGlu Zm9ybWF0aW9uIHRvIHRoZSBJRVRGIGF0DQogICBpZXRmLWlwckBpZXRmLm9yZy4NCg0KDQpBY2tu b3dsZWRnbWVudA0KDQogICBGdW5kaW5nIGZvciB0aGUgUkZDIEVkaXRvciBmdW5jdGlvbiBpcyBw cm92aWRlZCBieSB0aGUgSUVURg0KICAgQWRtaW5pc3RyYXRpdmUgU3VwcG9ydCBBY3Rpdml0eSAo SUFTQSkuDQoNCg0KDQoNCg0KSG95ZXIsIGV0IGFsLiAgICAgICAgICAgRXhwaXJlcyBEZWNlbWJl ciAyOSwgMjAwOCAgICAgICAgICAgICAgW1BhZ2UgNjhdDQoMDQo= ------_=_NextPart_001_01C8D868.7CA86ECF Content-Type: application/octet-stream; name="keyprov-pskc-1.0_draft-05_wip_PH_270608.xsd" Content-Transfer-Encoding: base64 Content-Description: keyprov-pskc-1.0_draft-05_wip_PH_270608.xsd Content-Disposition: attachment; filename="keyprov-pskc-1.0_draft-05_wip_PH_270608.xsd" PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjx4czpzY2hlbWEgeG1sbnM6 eHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpwc2tjPSJ1cm46aWV0 ZjpwYXJhbXM6eG1sOm5zOmtleXByb3Y6cHNrYzoxLjAiIHhtbG5zOmRzPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx LzA0L3htbGVuYyMiIHRhcmdldE5hbWVzcGFjZT0idXJuOmlldGY6cGFyYW1zOnhtbDpuczprZXlw cm92OnBza2M6MS4wIiBlbGVtZW50Rm9ybURlZmF1bHQ9InF1YWxpZmllZCIgYXR0cmlidXRlRm9y bURlZmF1bHQ9InVucXVhbGlmaWVkIiB2ZXJzaW9uPSIxLjAiPg0KCTx4czppbXBvcnQgbmFtZXNw YWNlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiBzY2hlbWFMb2NhdGlvbj0i aHR0cDovL3d3dy53My5vcmcvVFIvMjAwMi9SRUMteG1sZHNpZy1jb3JlLTIwMDIwMjEyL3htbGRz aWctY29yZS1zY2hlbWEueHNkIi8+DQoJPHhzOmltcG9ydCBuYW1lc3BhY2U9Imh0dHA6Ly93d3cu dzMub3JnLzIwMDEvMDQveG1sZW5jIyIgc2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cudzMub3Jn L1RSL3htbGVuYy1jb3JlL3hlbmMtc2NoZW1hLnhzZCIvPg0KCTx4czpjb21wbGV4VHlwZSBuYW1l PSJLZXlDb250YWluZXJUeXBlIj4NCgkJPHhzOnNlcXVlbmNlPg0KCQkJPHhzOmVsZW1lbnQgbmFt ZT0iRW5jcnlwdGlvbktleSIgdHlwZT0iZHM6S2V5SW5mb1R5cGUiIG1pbk9jY3Vycz0iMCIvPg0K CQkJPHhzOmVsZW1lbnQgbmFtZT0iTUFDQWxnb3JpdGhtIiB0eXBlPSJwc2tjOktleUFsZ29yaXRo bVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iS2V5UHJvcGVydGll cyIgdHlwZT0icHNrYzpLZXlQcm9wZXJ0aWVzVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9 InVuYm91bmRlZCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iRGV2aWNlIiB0eXBlPSJwc2tjOkRl dmljZVR5cGUiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJT aWduYXR1cmUiIHR5cGU9ImRzOlNpZ25hdHVyZVR5cGUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhz OmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1cnM9 IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJCTwveHM6c2VxdWVuY2U+DQoJCTx4czphdHRy aWJ1dGUgbmFtZT0iVmVyc2lvbiIgdHlwZT0icHNrYzpWZXJzaW9uVHlwZSIgdXNlPSJyZXF1aXJl ZCIvPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IktleUNvbnRhaW5lcklEIiB0eXBlPSJ4czpJRCIg dXNlPSJvcHRpb25hbCIvPg0KCTwveHM6Y29tcGxleFR5cGU+DQoJPHhzOnNpbXBsZVR5cGUgbmFt ZT0iVmVyc2lvblR5cGUiIGZpbmFsPSJyZXN0cmljdGlvbiI+DQoJCTx4czpyZXN0cmljdGlvbiBi YXNlPSJ4czpzdHJpbmciPg0KCQkJPHhzOnBhdHRlcm4gdmFsdWU9IlxkezEsMn1cLlxkezEsM30i Lz4NCgkJPC94czpyZXN0cmljdGlvbj4NCgk8L3hzOnNpbXBsZVR5cGU+DQoJPHhzOmNvbXBsZXhU eXBlIG5hbWU9IktleVByb3BlcnRpZXNUeXBlIj4NCgkJPHhzOnNlcXVlbmNlPg0KCQkJPHhzOmVs ZW1lbnQgbmFtZT0iSXNzdWVyIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJ PHhzOmVsZW1lbnQgbmFtZT0iVXNhZ2UiIHR5cGU9InBza2M6VXNhZ2VUeXBlIiBtaW5PY2N1cnM9 IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IktleVByb2ZpbGVJZCIgdHlwZT0ieHM6c3RyaW5n IiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9Ik1hc3RlcktleUlkIiB0eXBl PSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iRGF0YSIg dHlwZT0icHNrYzpEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIv Pg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iUElOUG9saWN5IiB0eXBlPSJwc2tjOlBJTlBvbGljeVR5 cGUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSIgdHlw ZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iU3Rh cnREYXRlIiB0eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6YW55IG5h bWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0iMCIgbWF4 T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCgkJPC94czpzZXF1ZW5jZT4NCgkJPHhzOmF0dHJpYnV0ZSBu YW1lPSJLZXlQcm9wZXJ0aWVzSWQiIHR5cGU9InhzOklEIiB1c2U9InJlcXVpcmVkIi8+DQoJCTx4 czphdHRyaWJ1dGUgbmFtZT0iS2V5QWxnb3JpdGhtIiB0eXBlPSJwc2tjOktleUFsZ29yaXRobVR5 cGUiIHVzZT0ib3B0aW9uYWwiLz4NCgk8L3hzOmNvbXBsZXhUeXBlPg0KCTx4czpjb21wbGV4VHlw ZSBuYW1lPSJLZXlUeXBlIj4NCgkJPHhzOnNlcXVlbmNlPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0i SXNzdWVyIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQg bmFtZT0iVXNhZ2UiIHR5cGU9InBza2M6VXNhZ2VUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4 czplbGVtZW50IG5hbWU9IktleVByb2ZpbGVJZCIgdHlwZT0ieHM6c3RyaW5nIiBtaW5PY2N1cnM9 IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9Ik1hc3RlcktleUlkIiB0eXBlPSJ4czpzdHJpbmci IG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iRnJpZW5kbHlOYW1lIiB0eXBl PSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iRGF0YSIg dHlwZT0icHNrYzpEYXRhVHlwZSIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIv Pg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iUElOUG9saWN5IiB0eXBlPSJwc2tjOlBJTlBvbGljeVR5 cGUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iRXhwaXJ5RGF0ZSIgdHlw ZT0ieHM6ZGF0ZVRpbWUiIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iU3Rh cnREYXRlIiB0eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6YW55IG5h bWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgiIG1pbk9jY3Vycz0iMCIgbWF4 T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCgkJPC94czpzZXF1ZW5jZT4NCgkJPHhzOmF0dHJpYnV0ZSBu YW1lPSJLZXlJZCIgdHlwZT0ieHM6c3RyaW5nIiB1c2U9InJlcXVpcmVkIi8+DQoJCTx4czphdHRy aWJ1dGUgbmFtZT0iS2V5QWxnb3JpdGhtIiB0eXBlPSJwc2tjOktleUFsZ29yaXRobVR5cGUiIHVz ZT0ib3B0aW9uYWwiLz4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJLZXlQcm9wZXJ0aWVzSWQiIHR5 cGU9InhzOklEUkVGIiB1c2U9Im9wdGlvbmFsIi8+DQoJPC94czpjb21wbGV4VHlwZT4NCgk8eHM6 Y29tcGxleFR5cGUgbmFtZT0iRGVyaXZlZEtleVR5cGUiPg0KCQk8eHM6c2VxdWVuY2U+DQoJCQk8 eHM6ZWxlbWVudCBuYW1lPSJLZXlEZXJpdmF0aW9uTWV0aG9kIiB0eXBlPSJwc2tjOktleURlcml2 YXRpb25NZXRob2RUeXBlIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IHJlZj0ieGVu YzpSZWZlcmVuY2VMaXN0IiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IkNh cnJpZWRLZXlOYW1lIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQk8L3hzOnNl cXVlbmNlPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IklkIiB0eXBlPSJ4czpJRCIgdXNlPSJvcHRp b25hbCIvPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IlR5cGUiIHR5cGU9InhzOmFueVVSSSIgdXNl PSJvcHRpb25hbCIvPg0KCTwveHM6Y29tcGxleFR5cGU+DQoJPHhzOmNvbXBsZXhUeXBlIG5hbWU9 IktleURlcml2YXRpb25NZXRob2RUeXBlIj4NCgkJPHhzOnNlcXVlbmNlPg0KCQkJPHhzOmFueSBu YW1lc3BhY2U9IiMjb3RoZXIiIG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4N CgkJPC94czpzZXF1ZW5jZT4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJBbGdvcml0aG0iIHR5cGU9 InhzOmFueVVSSSIgdXNlPSJyZXF1aXJlZCIvPg0KCTwveHM6Y29tcGxleFR5cGU+DQoJPHhzOmNv bXBsZXhUeXBlIG5hbWU9IlBJTlBvbGljeVR5cGUiPg0KCQk8eHM6c2VxdWVuY2U+DQoJCQk8eHM6 ZWxlbWVudCBuYW1lPSJQSU5Vc2FnZU1vZGUiIHR5cGU9InBza2M6UElOVXNhZ2VNb2RlVHlwZSIv Pg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iTWF4RmFpbGVkQXR0ZW1wdHMiIHR5cGU9InhzOnVuc2ln bmVkSW50IiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBw cm9jZXNzQ29udGVudHM9ImxheCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIv Pg0KCQk8L3hzOnNlcXVlbmNlPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IlBJTlBvbGljeUlkIiB0 eXBlPSJ4czpJRCIgdXNlPSJvcHRpb25hbCIvPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IlBJTktl eUlkIiB0eXBlPSJ4czpzdHJpbmciIHVzZT0ib3B0aW9uYWwiLz4NCgk8L3hzOmNvbXBsZXhUeXBl Pg0KCTx4czpjb21wbGV4VHlwZSBuYW1lPSJQSU5Vc2FnZU1vZGVUeXBlIj4NCgkJPHhzOmNob2lj ZSBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJMb2NhbCIvPg0K CQkJPHhzOmVsZW1lbnQgbmFtZT0iUHJlcGVuZCIvPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iQWxn b3JpdGhtaWMiLz4NCgkJCTx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVu dHM9ImxheCIgbWluT2NjdXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQk8L3hzOmNo b2ljZT4NCgk8L3hzOmNvbXBsZXhUeXBlPg0KCTx4czpjb21wbGV4VHlwZSBuYW1lPSJEZXZpY2VJ bmZvVHlwZSI+DQoJCTx4czpzZXF1ZW5jZT4NCgkJCTx4czplbGVtZW50IG5hbWU9Ik1hbnVmYWN0 dXJlciIgdHlwZT0ieHM6c3RyaW5nIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJTZXJpYWxObyIg dHlwZT0ieHM6c3RyaW5nIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJNb2RlbCIgdHlwZT0ieHM6 c3RyaW5nIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9Iklzc3VlTm8iIHR5 cGU9InhzOnN0cmluZyIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJFeHBp cnlEYXRlIiB0eXBlPSJ4czpkYXRlVGltZSIgbWluT2NjdXJzPSIwIi8+DQoJCQk8eHM6ZWxlbWVu dCBuYW1lPSJTdGFydERhdGUiIHR5cGU9InhzOmRhdGVUaW1lIiBtaW5PY2N1cnM9IjAiLz4NCgkJ CTx4czphbnkgbmFtZXNwYWNlPSIjI290aGVyIiBwcm9jZXNzQ29udGVudHM9ImxheCIgbWluT2Nj dXJzPSIwIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQk8L3hzOnNlcXVlbmNlPg0KCTwveHM6 Y29tcGxleFR5cGU+DQoJPHhzOmNvbXBsZXhUeXBlIG5hbWU9IkRldmljZVR5cGUiPg0KCQk8eHM6 c2VxdWVuY2U+DQoJCQk8eHM6ZWxlbWVudCBuYW1lPSJEZXZpY2VJbmZvIiB0eXBlPSJwc2tjOkRl dmljZUluZm9UeXBlIiBtaW5PY2N1cnM9IjAiLz4NCgkJCTx4czplbGVtZW50IG5hbWU9IktleSIg dHlwZT0icHNrYzpLZXlUeXBlIiBtYXhPY2N1cnM9InVuYm91bmRlZCIvPg0KCQkJPHhzOmVsZW1l bnQgbmFtZT0iVXNlcklkIiB0eXBlPSJ4czpzdHJpbmciIG1pbk9jY3Vycz0iMCIvPg0KCQkJPHhz OmFueSBuYW1lc3BhY2U9IiMjb3RoZXIiIHByb2Nlc3NDb250ZW50cz0ibGF4IiBtaW5PY2N1cnM9 IjAiIG1heE9jY3Vycz0idW5ib3VuZGVkIi8+DQoJCTwveHM6c2VxdWVuY2U+DQoJPC94czpjb21w bGV4VHlwZT4NCgk8eHM6Y29tcGxleFR5cGUgbmFtZT0iVXNhZ2VUeXBlIj4NCgkJPHhzOnNlcXVl bmNlPg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iQ2hhbGxlbmdlRm9ybWF0IiBtaW5PY2N1cnM9IjAi Pg0KCQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJGb3JtYXQi IHR5cGU9InBza2M6VmFsdWVGb3JtYXRUeXBlIiB1c2U9InJlcXVpcmVkIi8+DQoJCQkJCTx4czph dHRyaWJ1dGUgbmFtZT0iTWluIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgdXNlPSJyZXF1aXJlZCIv Pg0KCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9Ik1heCIgdHlwZT0ieHM6dW5zaWduZWRJbnQiIHVz ZT0icmVxdWlyZWQiLz4NCgkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJDaGVja0RpZ2l0cyIgdHlw ZT0ieHM6Ym9vbGVhbiIgZGVmYXVsdD0iZmFsc2UiLz4NCgkJCQk8L3hzOmNvbXBsZXhUeXBlPg0K CQkJPC94czplbGVtZW50Pg0KCQkJPHhzOmVsZW1lbnQgbmFtZT0iUmVzcG9uc2VGb3JtYXQiPg0K CQkJCTx4czpjb21wbGV4VHlwZT4NCgkJCQkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJGb3JtYXQiIHR5 cGU9InBza2M6VmFsdWVGb3JtYXRUeXBlIiB1c2U9InJlcXVpcmVkIi8+DQoJCQkJCTx4czphdHRy aWJ1dGUgbmFtZT0iTGVuZ3RoIiB0eXBlPSJ4czp1bnNpZ25lZEludCIgdXNlPSJyZXF1aXJlZCIv Pg0KCQkJCQk8eHM6YXR0cmlidXRlIG5hbWU9IkNoZWNrRGlnaXRzIiB0eXBlPSJ4czpib29sZWFu IiBkZWZhdWx0PSJmYWxzZSIvPg0KCQkJCTwveHM6Y29tcGxleFR5cGU+DQoJCQk8L3hzOmVsZW1l bnQ+DQoJCQk8eHM6YW55IG5hbWVzcGFjZT0iIyNvdGhlciIgcHJvY2Vzc0NvbnRlbnRzPSJsYXgi IG1pbk9jY3Vycz0iMCIgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiLz4NCgkJPC94czpzZXF1ZW5jZT4N CgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJPVFAiIHR5cGU9InhzOmJvb2xlYW4iIGRlZmF1bHQ9ImZh bHNlIi8+DQoJCTx4czphdHRyaWJ1dGUgbmFtZT0iQ1IiIHR5cGU9InhzOmJvb2xlYW4iIGRlZmF1 bHQ9ImZhbHNlIi8+DQoJCTx4czphdHRyaWJ1dGUgbmFtZT0iSW50ZWdyaXR5IiB0eXBlPSJ4czpi b29sZWFuIiBkZWZhdWx0PSJmYWxzZSIvPg0KCQk8eHM6YXR0cmlidXRlIG5hbWU9IkVuY3J5cHQi IHR5cGU9InhzOmJvb2xlYW4iIGRlZmF1bHQ9ImZhbHNlIi8+DQoJCTx4czphdHRyaWJ1dGUgbmFt ZT0iVW5sb2NrIiB0eXBlPSJ4czpib29sZWFuIiBkZWZhdWx0PSJmYWxzZSIvPg0KCQk8eHM6YW55 QXR0cmlidXRlIG5hbWVzcGFjZT0iIyNvdGhlciIvPg0KCTwveHM6Y29tcGxleFR5cGU+DQoJPHhz OmNvbXBsZXhUeXBlIG5hbWU9IkRhdGFUeXBlIj4NCgkJPHhzOnNlcXVlbmNlPg0KCQkJPHhzOmNo b2ljZT4NCgkJCQk8eHM6ZWxlbWVudCBuYW1lPSJQbGFpblZhbHVlIiB0eXBlPSJ4czpiYXNlNjRC aW5hcnkiLz4NCgkJCQk8eHM6ZWxlbWVudCBuYW1lPSJFbmNyeXB0ZWRWYWx1ZSIgdHlwZT0ieGVu YzpFbmNyeXB0ZWREYXRhVHlwZSIvPg0KCQkJPC94czpjaG9pY2U+DQoJCQk8eHM6ZWxlbWVudCBu YW1lPSJWYWx1ZU1BQyIgdHlwZT0ieHM6YmFzZTY0QmluYXJ5IiBtaW5PY2N1cnM9IjAiLz4NCgkJ PC94czpzZXF1ZW5jZT4NCgkJPHhzOmF0dHJpYnV0ZSBuYW1lPSJOYW1lIiB0eXBlPSJ4czpzdHJp bmciIHVzZT0icmVxdWlyZWQiLz4NCgk8L3hzOmNvbXBsZXhUeXBlPg0KCTx4czpzaW1wbGVUeXBl IG5hbWU9IktleUFsZ29yaXRobVR5cGUiPg0KCQk8eHM6cmVzdHJpY3Rpb24gYmFzZT0ieHM6YW55 VVJJIi8+DQoJPC94czpzaW1wbGVUeXBlPg0KCTx4czpzaW1wbGVUeXBlIG5hbWU9IlZhbHVlRm9y bWF0VHlwZSI+DQoJCTx4czpyZXN0cmljdGlvbiBiYXNlPSJ4czpzdHJpbmciPg0KCQkJPHhzOmVu dW1lcmF0aW9uIHZhbHVlPSJERUNJTUFMIi8+DQoJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkhF WEFERUNJTUFMIi8+DQoJCQk8eHM6ZW51bWVyYXRpb24gdmFsdWU9IkFMUEhBTlVNRVJJQyIvPg0K CQkJPHhzOmVudW1lcmF0aW9uIHZhbHVlPSJCQVNFNjQiLz4NCgkJCTx4czplbnVtZXJhdGlvbiB2 YWx1ZT0iQklOQVJZIi8+DQoJCTwveHM6cmVzdHJpY3Rpb24+DQoJPC94czpzaW1wbGVUeXBlPg0K CTx4czplbGVtZW50IG5hbWU9IktleUNvbnRhaW5lciIgdHlwZT0icHNrYzpLZXlDb250YWluZXJU eXBlIi8+DQo8L3hzOnNjaGVtYT4NCg== ------_=_NextPart_001_01C8D868.7CA86ECF Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ KEYPROV mailing list KEYPROV@ietf.org https://www.ietf.org/mailman/listinfo/keyprov ------_=_NextPart_001_01C8D868.7CA86ECF--