Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 6F890200CCA for ; Wed, 5 Jul 2017 01:12:44 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 6E4B416208C; Tue, 4 Jul 2017 23:12:44 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 3E67916208A for ; Wed, 5 Jul 2017 01:12:43 +0200 (CEST) Received: (qmail 76437 invoked by uid 500); 4 Jul 2017 23:12:42 -0000 Mailing-List: contact kerby-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: kerby@directory.apache.org Delivered-To: mailing list kerby@directory.apache.org Received: (qmail 76421 invoked by uid 99); 4 Jul 2017 23:12:42 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Jul 2017 23:12:42 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id C2DAAC06D2 for ; Tue, 4 Jul 2017 23:12:41 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -2.301 X-Spam-Level: X-Spam-Status: No, score=-2.301 tagged_above=-999 required=6.31 tests=[RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id U6cFJ8CRLPy9 for ; Tue, 4 Jul 2017 23:12:34 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 3B8485FC1C for ; Tue, 4 Jul 2017 23:12:34 +0000 (UTC) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jul 2017 16:12:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,309,1496127600"; d="scan'208";a="1168077617" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga001.fm.intel.com with ESMTP; 04 Jul 2017 16:12:27 -0700 Received: from fmsmsx117.amr.corp.intel.com (10.18.116.17) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 4 Jul 2017 16:12:27 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx117.amr.corp.intel.com (10.18.116.17) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 4 Jul 2017 16:12:26 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.146]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.122]) with mapi id 14.03.0319.002; Wed, 5 Jul 2017 07:12:25 +0800 From: "Li, Jiajia" To: "kerby@directory.apache.org" , "coheigea@apache.org" Subject: RE: Kerby JWT support Thread-Topic: Kerby JWT support Thread-Index: AQHS6PcH7kyUzIKT+kOdxg16c0cZCqI4bwaQgAEeNwCAAz3A8P//6EgAgASmynCAABkPgIABjWSw///fQQCAANHoMP//kDEAACQ8G8A= Date: Tue, 4 Jul 2017 23:12:24 +0000 Message-ID: <9037BCED616A964EB486B12FCA9DCFCF3BCD7FFE@shsmsx102.ccr.corp.intel.com> References: <9037BCED616A964EB486B12FCA9DCFCF3BCD4288@shsmsx102.ccr.corp.intel.com> <9037BCED616A964EB486B12FCA9DCFCF3BCD5C78@shsmsx102.ccr.corp.intel.com> <9037BCED616A964EB486B12FCA9DCFCF3BCD6FF8@shsmsx102.ccr.corp.intel.com> <9037BCED616A964EB486B12FCA9DCFCF3BCD77BA@shsmsx102.ccr.corp.intel.com> <9037BCED616A964EB486B12FCA9DCFCF3BCD7CF2@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZmRjNWVlMTEtNjU2OC00ZTIzLTk5MzEtYmQxYjk3MzI3MDU1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IkdybnVrRGYxQVUrcldweFNrRll4Rmd2b0l5TlwvU3RcL3RTYU1LZFwvYWRzZHM9In0= x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 archived-at: Tue, 04 Jul 2017 23:12:44 -0000 PiBNYXliZSB3ZSBjb3VsZCBjcmVhdGUgYSBuZXcgY2xhc3MgaW4ga2VyYi1jb3JlIHRoYXQgZW5j YXBzdWxhdGVzIHNvbWUgb2YgdGhlc2UgdGhpbmdzIHRoYXQgY291bGQgDQo+IGJlIHVzZWQgaW5z dGVhZD8NCg0KSXQncyBhIGdvb2QgaWRlYS4NCg0KVGhhbmtzDQpKaWFqaWENCg0KLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENvbG0gTyBoRWlnZWFydGFpZ2ggW21haWx0bzpjb2hl aWdlYUBhcGFjaGUub3JnXSANClNlbnQ6IFR1ZXNkYXksIEp1bHkgNCwgMjAxNyA5OjU0IFBNDQpU bzoga2VyYnlAZGlyZWN0b3J5LmFwYWNoZS5vcmcNClN1YmplY3Q6IFJlOiBLZXJieSBKV1Qgc3Vw cG9ydA0KDQpUaGUgcHJvYmxlbSB3aXRoIHRoaXMgaXMgdGhhdCBpdCBtaWdodCBiZSB0b28gcmVz dHJpY3RpdmUuIFdoYXQgaWYgeW91IHdhbnRlZCBhY2Nlc3MgdG8gdGhlIGNsaWVudCBwcmluY2lw YWwgb3IgdGhlIGNsaWVudCBhZGRyZXNzIGV0Yy4gd2hlbiBjcmVhdGluZyB0aGUgQXV0aG9yaXph dGlvbkRhdGE/IE1heWJlIHdlIGNvdWxkIGNyZWF0ZSBhIG5ldyBjbGFzcyBpbiBrZXJiLWNvcmUg dGhhdCBlbmNhcHN1bGF0ZXMgc29tZSBvZiB0aGVzZSB0aGluZ3MgdGhhdCBjb3VsZCBiZSB1c2Vk IGluc3RlYWQ/DQoNCkNvbG0uDQoNCk9uIFR1ZSwgSnVsIDQsIDIwMTcgYXQgMTozOCBQTSwgTGks IEppYWppYSA8amlhamlhLmxpQGludGVsLmNvbT4gd3JvdGU6DQoNCj4gPiBDdXJyZW50bHkgSSdt IHVzaW5nICJrZGNSZXF1ZXN0LmlzVG9rZW4oKSIgYW5kICJrZGNSZXF1ZXN0LmdldFRva2VuKCki Lg0KPiBJIGd1ZXNzIHdlIGNvdWxkIGNoYW5nZQ0KPiA+IHRoZSBtZXRob2QgdG8ganVzdCB0YWtl IHRoZSBrZGNSZXF1ZXN0LmdldFRva2VuKCk/DQo+DQo+IFllcywgc2V0IHRoZSBBdXRoVG9rZW4g YXMgdGhlIHBhcmFtZXRlciBvZiANCj4gZ2V0SWRlbnRpdHlBdXRob3JpemF0aW9uRGF0YSBpcyBh IGdvb2QgY2hvaWNlLg0KPg0KPiBUaGFua3MNCj4gSmlhamlhDQo+DQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IENvbG0gTyBoRWlnZWFydGFpZ2ggW21haWx0bzpjb2hlaWdl YUBhcGFjaGUub3JnXQ0KPiBTZW50OiBUdWVzZGF5LCBKdWx5IDQsIDIwMTcgNDowMyBQTQ0KPiBU bzoga2VyYnlAZGlyZWN0b3J5LmFwYWNoZS5vcmcNCj4gU3ViamVjdDogUmU6IEtlcmJ5IEpXVCBz dXBwb3J0DQo+DQo+IE9uIFR1ZSwgSnVsIDQsIDIwMTcgYXQgMzoxNiBBTSwgTGksIEppYWppYSA8 amlhamlhLmxpQGludGVsLmNvbT4gd3JvdGU6DQo+DQo+ID4NCj4gPiBXaGljaCBpbmZvcm1hdGlv biBpbiBLZGNSZXF1ZXN0IGlzIHVzZWQ/IEkgdGhpbmsgdGhlIEtkY1JlcXVlc3QgY2FuIA0KPiA+ IGJlIHJlcGxhY2VkIGJ5IHNvbWUgY2xhc3MgcmVhbGx5IHVzZWQgaW4gZ2V0dGluZyBBdXRob3Jp emF0aW9uRGF0YS4NCj4gPg0KPg0KPiBDdXJyZW50bHkgSSdtIHVzaW5nICJrZGNSZXF1ZXN0Lmlz VG9rZW4oKSIgYW5kIA0KPiAia2RjUmVxdWVzdC5nZXRUb2tlbigpIi4gSSBndWVzcyB3ZSBjb3Vs ZCBjaGFuZ2UgdGhlIG1ldGhvZCB0byBqdXN0IHRha2UgdGhlIGtkY1JlcXVlc3QuZ2V0VG9rZW4o KT8NCj4NCj4gQ29sbS4NCj4NCj4NCj4gPg0KPiA+ID5iKSBJbiBteSB0ZXN0cywgSSdtIGp1c3Qg ZGVmaW5pbmcgYSBjdXN0b20gQXV0aG9yaXphdGlvblR5cGUNCj4gPiAoQURfVE9LRU4oMjU2KSku IFdoYXQgc2hvdWxkIEkgdXNlIGhlcmUgaW5zdGVhZD8gSSBkb24ndCB0aGluayB0aGUgDQo+ID4g c3BlYyBkZWZpbmVzIHdoYXQgaXQgc2hvdWxkIGJlLi4uDQo+ID4NCj4gPiBJIHRoaW5rIHRoZSBB RCB0b2tlbiB0eXBlIGlzIGEgbmV3IHR5cGUgd2hpY2ggdW5kZWZpbmVkIGluIA0KPiA+IHNwZWMo UkZDNDEyMC0+Ny41LjQuICBBdXRob3JpemF0aW9uIERhdGEgVHlwZXMpLCBJIHRoaW5rIHRoaXMg bmV3IA0KPiA+IHR5cGUgbmFtZSBpcyBvay4NCj4gPg0KPiA+IFRoYW5rcw0KPiA+IEppYWppYQ0K PiA+DQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IENvbG0g TyBoRWlnZWFydGFpZ2ggW21haWx0bzpjb2hlaWdlYUBhcGFjaGUub3JnXQ0KPiA+IFNlbnQ6IE1v bmRheSwgSnVseSAzLCAyMDE3IDY6MTggUE0NCj4gPiBUbzoga2VyYnlAZGlyZWN0b3J5LmFwYWNo ZS5vcmcNCj4gPiBTdWJqZWN0OiBSZTogS2VyYnkgSldUIHN1cHBvcnQNCj4gPg0KPiA+IE9LIHRo YW5rcywgSSBtYW5hZ2VkIHRvIGZpZ3VyZSBpdCBvdXQgYW55d2F5LiBJIGhhdmUgdHdvIG1vcmUg DQo+ID4gcXVlc3Rpb25zIG9uIHRoaXMgdG9waWMgV1JUIERJUktSQi02MzI6DQo+ID4NCj4gPiBh KSBJIHdhbnQgdG8gYWRkIHRoZSBhdXRob3JpemF0aW9uIGRhdGEgaW4gdGhlIHJlbGV2YW50IG1l dGhvZCBpbiANCj4gPiBBYnN0cmFjdElkZW50aXR5QmFja2VuZC4gSG93ZXZlciwgdGhlIHByb2Js ZW0gaGVyZSBpcyB0aGF0IHRoZSANCj4gPiBrZXJiLWlkZW50aXR5IG1vZHVsZSBkb2VzIG5vdCBo YXZlIGtlcmItc2VydmVyIGFzIGEgZGVwZW5kZW5jeSwgYW5kIA0KPiA+IGhlbmNlIEkgY2FuJ3Qg cmVmZXJlbmNlIEtkY1JlcXVlc3QuIFRoZSBBYnN0cmFjdElkZW50aXR5QmFja2VuZCBnZXRzIA0K PiA+IGFyb3VuZCB0aGlzIGJ5IHVzaW5nICJPYmplY3QiIGluc3RlYWQgb2YgS2RjUmVxdWVzdCBp biB0aGUgbWV0aG9kIA0KPiA+IHNpZ25hdHVyZSwgd2hpY2ggaXMgbm90IGEgZ3JlYXQgaWRlYSBy ZWFsbHkuDQo+ID4NCj4gPiBXaGF0IGlzIHRoZSBiZXN0IHdheSBvZiBoYW5kbGluZyB0aGlzPw0K PiA+DQo+ID4gYikgSW4gbXkgdGVzdHMsIEknbSBqdXN0IGRlZmluaW5nIGEgY3VzdG9tIEF1dGhv cml6YXRpb25UeXBlIA0KPiA+IChBRF9UT0tFTigyNTYpKS4gV2hhdCBzaG91bGQgSSB1c2UgaGVy ZSBpbnN0ZWFkPyBJIGRvbid0IHRoaW5rIHRoZSANCj4gPiBzcGVjIGRlZmluZXMgd2hhdCBpdCBz aG91bGQgYmUuLi4NCj4gPg0KPiA+IENvbG0uDQo+ID4NCj4gPg0KPiA+IE9uIE1vbiwgSnVsIDMs IDIwMTcgYXQgMTo0OSBBTSwgTGksIEppYWppYSA8amlhamlhLmxpQGludGVsLmNvbT4gd3JvdGU6 DQo+ID4NCj4gPiA+ID5UaGUgcXVlc3Rpb24gSSBoYXZlIGhlcmUgaXMgdGhhdCB0aGUgS3JiVG9r ZW4gbmVlZHMgdG8gY2FsbCB0aGUgDQo+ID4gPiA+Zm9sbG93aW5nDQo+ID4gPiBjb2RlIGludGVy bmFsbHkgc29tZWhvdzoNCj4gPiA+DQo+ID4gPiA+dGhpcy5pbm5lclRva2VuID0NCj4gPiA+ID5n ZXRUb2tlbkRlY29kZXIoKS5kZWNvZGVGcm9tQnl0ZXMoZ2V0VG9rZW5WYWx1ZSgpKTsNCj4gPiA+ ID5zZXRUb2tlblR5cGUoKTsNCj4gPiA+DQo+ID4gPiA+VGhlcmUgaXMgYSBjb21tZW50ZWQgb3V0 ICJkZWNvZGUoQnl0ZUJ1ZmZlcikiIG1ldGhvZCB0aGF0IA0KPiA+ID4gPmNvbnRhaW5zIGNvZGUN Cj4gPiA+IHRoYXQgZG9lcyB0aGlzIGZvciBhIHN1cHBsaWVkIEJ5dGVCdWZmZXIgdmFsdWUuIFNo b3VsZCB0aGlzIG1ldGhvZCANCj4gPiA+IGJlIGNhbGxlZCBpbXBsaWNpdGx5IGJ5DQo+ID4gPiA+ dGhlIEFkVG9rZW4gY29kZSBzb21laG93PyBPciBpcyBpdCB1cCB0byB0aGUgY2xpZW50IGNvZGUg dG8gY2FsbCANCj4gPiA+ID5kZWNvZGUNCj4gPiA+IG9uIEtyYlRva2VuPw0KPiA+ID4NCj4gPiA+ IEknbSBub3QgdmVyeSBzdXJlLCBJIHRoaW5rIGl0J3MgdXAgdG8gdGhlIGNsaWVudCBjb2RlIHRv IGNhbGwgdG8gDQo+ID4gPiBkZWNvZGUgdGhlIEtyYlRva2VuLg0KPiA+ID4NCj4gPiA+IFRoYW5r cw0KPiA+ID4gSmlhamlhDQo+ID4gPg0KPiA+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4gPiBGcm9tOiBDb2xtIE8gaEVpZ2VhcnRhaWdoIFttYWlsdG86Y29oZWlnZWFA YXBhY2hlLm9yZ10NCj4gPiA+IFNlbnQ6IEZyaWRheSwgSnVuZSAzMCwgMjAxNyA1OjQ2IFBNDQo+ ID4gPiBUbzoga2VyYnlAZGlyZWN0b3J5LmFwYWNoZS5vcmcNCj4gPiA+IFN1YmplY3Q6IFJlOiBL ZXJieSBKV1Qgc3VwcG9ydA0KPiA+ID4NCj4gPiA+IE9uIEZyaSwgSnVuIDMwLCAyMDE3IGF0IDQ6 MTYgQU0sIExpLCBKaWFqaWEgPGppYWppYS5saUBpbnRlbC5jb20+DQo+IHdyb3RlOg0KPiA+ID4N Cj4gPiA+ID4NCj4gPiA+ID4gWWVzLCBhZ3JlZSB3aXRoIHlvdSwgY3JlZGVudGlhbCBjYWNoZSBp dCBub3QgcmVhbGx5IG5lZWRlZC4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+IE9LIEkgaGF2ZSBj b21taXR0ZWQgdGhpcyBmaXguDQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4gVGhlIEVuY1RpY2tldFBh cnQgc2hvdWxkIGJlIHVuc2VhbCwgSSB0aGluayB0aGUgZm9sbG93aW5nIGNvZGUgDQo+ID4gPiA+ IGNvdWxkIGhlbHAgeW91Lg0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgVGlja2V0IHRpY2tldCA9 IGFwUmVxLmdldFRpY2tldCgpOw0KPiA+ID4gPiAgICAgICAgIEVuY1RpY2tldFBhcnQgZW5jUGFy dCA9IEVuY3J5cHRpb25VdGlsLnVuc2VhbCh0aWNrZXQuZyANCj4gPiA+ID4gZXRFbmNyeXB0ZWRF bmNQYXJ0KCksDQo+ID4gPiA+ICAgICAgICAgICAgICAgICBlbmNLZXksIEtleVVzYWdlLktEQ19S RVBfVElDS0VULA0KPiBFbmNUaWNrZXRQYXJ0LmNsYXNzKTsNCj4gPiA+ID4gICAgICAgICB0aWNr ZXQuc2V0RW5jUGFydChlbmNQYXJ0KTsNCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiBJdCBkb2VzLCB0 aGFua3MhIEkgaGF2ZSBpdCBraW5kIG9mIHdvcmtpbmcgbm93IHdpdGggYSBmZXcgaGFja3MuIEkg DQo+ID4gPiBjYW4gZ2V0IHRoZSBLcmJUb2tlbiBmcm9tIHRoZSBBdXRob3JpemF0aW9uRGF0YSBu b3cgYXMgZm9sbG93czoNCj4gPiA+DQo+ID4gPiBBdXRob3JpemF0aW9uRGF0YSBhdXRoekRhdGEg PSBlbmNQYXJ0LmdldEF1dGhvcml6YXRpb25EYXRhKCk7IA0KPiA+ID4gQXV0aG9yaXphdGlvbkRh dGFFbnRyeSBkYXRhRW50cnkgPSBhdXRoekRhdGEuZ2V0RWxlbWVudHMoKS4NCj4gPiA+IGl0ZXJh dG9yKCkubmV4dCgpOw0KPiA+ID4gQWRUb2tlbiB0b2tlbiA9IGRhdGFFbnRyeS5nZXRBdXRoekRh dGFBcyhBZFRva2VuLmNsYXNzKTsNCj4gPiA+IEtyYlRva2VuIGRlY29kZWRLcmJUb2tlbiA9IHRv a2VuLmdldFRva2VuKCk7DQo+ID4gPg0KPiA+ID4gVGhlIHF1ZXN0aW9uIEkgaGF2ZSBoZXJlIGlz IHRoYXQgdGhlIEtyYlRva2VuIG5lZWRzIHRvIGNhbGwgdGhlIA0KPiA+ID4gZm9sbG93aW5nIGNv ZGUgaW50ZXJuYWxseSBzb21laG93Og0KPiA+ID4NCj4gPiA+IHRoaXMuaW5uZXJUb2tlbiA9DQo+ ID4gPiBnZXRUb2tlbkRlY29kZXIoKS5kZWNvZGVGcm9tQnl0ZXMoZ2V0VG9rZW5WYWx1ZSgpKTsN Cj4gPiA+IHNldFRva2VuVHlwZSgpOw0KPiA+ID4NCj4gPiA+IFRoZXJlIGlzIGEgY29tbWVudGVk IG91dCAiZGVjb2RlKEJ5dGVCdWZmZXIpIiBtZXRob2QgdGhhdCBjb250YWlucyANCj4gPiA+IGNv ZGUgdGhhdCBkb2VzIHRoaXMgZm9yIGEgc3VwcGxpZWQgQnl0ZUJ1ZmZlciB2YWx1ZS4gU2hvdWxk IHRoaXMgDQo+ID4gPiBtZXRob2QgYmUgY2FsbGVkIGltcGxpY2l0bHkgYnkgdGhlIEFkVG9rZW4g Y29kZSBzb21laG93PyBPciBpcyBpdCANCj4gPiA+IHVwIHRvIHRoZSBjbGllbnQgY29kZSB0byBj YWxsIGRlY29kZSBvbiBLcmJUb2tlbj8NCj4gPiA+DQo+ID4gPiBDb2xtLg0KPiA+ID4NCj4gPiA+ DQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MNCj4gPiA+ID4gSmlhamlhDQo+ID4gPiA+ DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IENvbG0g TyBoRWlnZWFydGFpZ2ggW21haWx0bzpjb2hlaWdlYUBhcGFjaGUub3JnXQ0KPiA+ID4gPiBTZW50 OiBXZWRuZXNkYXksIEp1bmUgMjgsIDIwMTcgNTo0MSBQTQ0KPiA+ID4gPiBUbzogTGksIEppYWpp YSA8amlhamlhLmxpQGludGVsLmNvbT4NCj4gPiA+ID4gQ2M6IGtlcmJ5QGRpcmVjdG9yeS5hcGFj aGUub3JnDQo+ID4gPiA+IFN1YmplY3Q6IFJlOiBLZXJieSBKV1Qgc3VwcG9ydA0KPiA+ID4gPg0K PiA+ID4gPiBIaSBKaWFqaWEsDQo+ID4gPiA+DQo+ID4gPiA+IE9uIFR1ZSwgSnVuIDI3LCAyMDE3 IGF0IDk6MzcgQU0sIExpLCBKaWFqaWEgDQo+ID4gPiA+IDxqaWFqaWEubGlAaW50ZWwuY29tPg0K PiA+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gMikgRG8geW91IG1lYW4g aWYgdGhlIGNyZWRlbnRpYWwgY2FjaGUgaXMgbnVsbCBvciBub3Qgc2V0LCB3ZSANCj4gPiA+ID4g PiBjYW4gc2tpcCB0aGUgc3RlcCB0byBzdG9yZSB0aGUgVEdUIHRpY2tldCB0byBjcmVkZW50aWFs IGNhY2hlPw0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ICBZZXMgZXhhY3RseS4gInRndFRp Y2tldCIgaXMgc3RvcmVkIGFzIGEgdmFyaWFibGUgaW4gdGhlIA0KPiA+ID4gPiBUb2tlbkF1dGhM b2dpbk1vZHVsZSBzbyB3ZSBtYXkgbm90IG5lZWQgdGhlIGNyZWRlbnRpYWwgY2FjaGUgYXQgYWxs Lg0KPiA+ID4gPiBJZiB5b3UgYWdyZWUgSSB3aWxsIGZpeCB0aGlzLg0KPiA+ID4gPg0KPiA+ID4g Pg0KPiA+ID4gPiA+IDMpIFdlIGdldCB0aGUgYXJtb3Iga2V5IGZyb20gYXJtb3IgY2FjaGUsIGRv IHlvdSBtZWFuIHRvIHNldCANCj4gPiA+ID4gPiB0aGUgYXJtb3Iga2V5IGluIGNsaWVudCBhbmQg S0RDIHRvIHJlcGxhY2UgdGhlIGFybW9yIGNhY2hlPw0KPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4g PiA+IE5vLCBJIHdhbnQgdG8gZmluZCBhIHdheSB0byBhdm9pZCBoYXZpbmcgYW4gYXJtb3Iga2V5 IGF0IGFsbC4gSWYgDQo+ID4gPiA+IHRoZSBwdXJwb3NlIG9mIHRoZSBhcm1vciBrZXkgaXMgdG8g ZW5jcnlwdCB0aGUgY29tbXVuaWNhdGlvbiANCj4gPiA+ID4gd2l0aCB0aGUgS0RDLCB0aGVuIGlm IHRoZSBKV1QgdG9rZW4gaXMgZW5jcnlwdGVkIHRoaXMgDQo+ID4gPiA+IHJlcXVpcmVtZW50IGlz IG5vdA0KPiA+IG5lY2Vzc2FyeS4NCj4gPiA+ID4gQnV0IHBlcmhhcHMgaXQncyBub3QgcG9zc2li bGUgdG8gc2tpcCB0aGlzIHN0ZXA/DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiA0KSBJIHRoaW5rcyBpdCdzIGdyZWF0IHRvIHB1dCBjbGFpbXMgZnJvbSB0aGUgSldUIHRv a2VuIGludG8gDQo+ID4gPiA+ID4gdGhlIGF1dGhvcml6YXRpb24gZGF0YSBvZiB0aGUgdGlja2V0 LCB0aGF0IHdpbGwgYmUgYW4gDQo+ID4gPiA+ID4gaW1wb3J0YW50DQo+IGZlYXR1cmUuDQo+ID4g PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gT0sgSSBoYXZlIGNyZWF0ZWQgYSBKSVJBIGZvciB0aGlz Lg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gNSkgQWN0dWFsbHksICBB dXRob3JpemF0aW9uRGF0YSBpcyBub3QgcmVhbGx5IHNldCBpbiB0aGUgDQo+ID4gPiA+ID4gRW5j VGlja2V0UGFydCwgaW4gQWJzdHJhY3RJZGVudGl0eUJhY2tlbmQgd2l0aCB0aGUgZm9sbG93aW5n DQo+ID4gPiA+IGltcGxlbWVudGF0aW9uOg0KPiA+ID4gPiA+ICAgICBwcm90ZWN0ZWQgQXV0aG9y aXphdGlvbkRhdGEgZG9HZXRJZGVudGl0eUF1dGhvcml6YXRpb25EYXRhKA0KPiA+ID4gPiA+ICAg ICAgICAgICAgIE9iamVjdCBrZGNSZXF1ZXN0LCBFbmNUaWNrZXRQYXJ0IGVuY1RpY2tldFBhcnQp DQo+ID4gPiA+ID4gICAgICAgICAgICAgdGhyb3dzIEtyYkV4Y2VwdGlvbiB7DQo+ID4gPiA+ID4g ICAgICAgICByZXR1cm4gbnVsbDsNCj4gPiA+ID4gPiAgICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+IFJpZ2h0LCBidXQgSSBhbSBkb2luZyB0aGlzIGxvY2FsbHkuIFRoZSBwcm9ibGVt IGlzIG9uIHRoZSBjbGllbnQgDQo+ID4gPiA+IHNpZGUgdGhhdCAidGt0LmdldFRpY2tldCgpLmdl dEVuY1BhcnQoKSIgaXMgbnVsbC4gSG93IGNhbiBJIHNlZSANCj4gPiA+ID4gd2hhdCB0aGUgYXV0 aG9yaXphdGlvbiBkYXRhIG9mIHRoZSB0aWNrZXQgaXMgb24gdGhlIGNsaWVudCBzaWRlLCANCj4g PiA+ID4gc28gdGhhdCBJIGNhbiB0ZXN0IHRoYXQgaXQgd2FzIGluc2VydGVkIGNvcnJlY3RseT8N Cj4gPiA+ID4NCj4gPiA+ID4gQ29sbS4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IFRoYW5rcw0KPiA+ID4gPiA+IEppYWppYQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBDb2xtIE8gaEVpZ2VhcnRh aWdoIFttYWlsdG86Y29oZWlnZWFAYXBhY2hlLm9yZ10NCj4gPiA+ID4gPiBTZW50OiBNb25kYXks IEp1bmUgMTksIDIwMTcgODoyNCBQTQ0KPiA+ID4gPiA+IFRvOiBrZXJieUBkaXJlY3RvcnkuYXBh Y2hlLm9yZw0KPiA+ID4gPiA+IFN1YmplY3Q6IEtlcmJ5IEpXVCBzdXBwb3J0DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBIaSBhbGwsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJJ2QgbGlrZSB0byByZXN1 cnJlY3Qgc29tZSBvZiB0aGUgaXNzdWVzIHN1cnJvdW5kaW5nIHRoZSBKV1QgDQo+ID4gPiA+ID4g c3VwcG9ydCBpbiBLZXJieS4gSWYgbm90aGluZyBlbHNlIHdlIGNhbiBob3BlZnVsbHkgYWdyZWUg b24gDQo+ID4gPiA+ID4gd2hhdCB0aGUgb3V0c3RhbmRpbmcgaXNzdWVzIGFyZSBhbmQgdGhlbiBw dXQgdGhlbSBpbnRvIEpJUkEgc28gDQo+ID4gPiA+ID4gdGhhdCB3ZSBoYXZlIGEgcmVjb3JkIG9m IHdoYXQgbmVlZHMgdG8gYmUgZG9uZS4gU29tZSBvZiB0aGUgDQo+ID4gPiA+ID4gdGFza3MgYXJl IGZhaXJseSB0cml2aWFsIGFuZCBjb3VsZCBiZSBhZGRyZXNzZWQgZm9yIHRoZSBuZXh0IHJlbGVh c2UuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAxKSBUaGVyZSB3YXMgYSBwcm9wb3NhbCBsYXN0IHll YXIgdG8gbW92ZSB0aGUgDQo+ID4gPiA+ID4gVG9rZW5BdXRoTG9naW5Nb2R1bGUgZnJvbSB0aGUg ImludGVncmF0aW9uLXRlc3QiIG1vZHVsZSBpbnRvIA0KPiA+ID4gPiA+IHRoZSAia2VyYi1jbGll bnQiIG1vZHVsZSBpbiBhIHNlcGFyYXRlIHBhY2thZ2UgbGlrZSAnamFhcycuDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiAyKSBJJ2QgbGlrZSB0byBtYWtlIHRoZSBjcmVkZW50aWFsIGNhY2hlIGNvbmZp Z3VyYXRpb24gaXRlbSBpbiANCj4gPiA+ID4gPiB0aGUgVG9rZW5BdXRoTG9naW5Nb2R1bGUgb3B0 aW9uYWwgdG8gc2ltcGxpZnkgdGhlIGNvbmZpZ3VyYXRpb24uDQo+ID4gPiA+ID4gSXQncyBub3Qg YWN0dWFsbHkgbmVlZGVkIGFzIHdlIGp1c3Qga2VlcCB0aGUgVGd0VGlja2V0IA0KPiA+ID4gPiA+ IGludGVybmFsbHkgaW4gdGhlIExvZ2luTW9kdWxlIGFueXdheS4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IDMpIFJpZ2h0IG5vdywgd2UgbmVlZCBhbiBhcm1vciBjYWNoZSB0byB0aGVuIGdldCBhIFRH VCB1c2luZyBhIEpXVC4NCj4gPiA+ID4gPiBIb3dldmVyLCBJIHRoaW5rIHdlIHNob3VsZCBhbHNv IHN1cHBvcnQgY29uZmlndXJpbmcgdGhlIEtEQyANCj4gPiA+ID4gPiB3aXRoIGEgcHJpdmF0ZSBk ZWNyeXB0aW9uIGtleS4gSWYgdGhlIGluY29taW5nIEpXVCB0b2tlbiBpcyANCj4gPiA+ID4gPiBl bmNyeXB0ZWQgdG8gdGhlIEtEQyB0aGVuIHdlIHNob3VsZCBiZSBhYmxlIHRvIHNraXAgdGhlIGFy bW9yIGNhY2hlIHN0ZXAuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA0KSBGb3IgdGhlIGFjY2VzcyB0 b2tlbiBjYXNlLCBtYWtlIGl0IHBvc3NpYmxlIHRvIHB1dCBjbGFpbXMgDQo+ID4gPiA+ID4gZnJv bSB0aGUgSldUIHRva2VuIGludG8gdGhlIGF1dGhvcml6YXRpb24gZGF0YSBvZiB0aGUgdGlja2V0 Lg0KPiA+ID4gPiA+IEkndmUgZG9uZSBzb21lIHdvcmsgb24gdGhpcyBsYXN0IHllYXIgdGhhdCBj b3VsZCBiZSByZS11c2VkLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gNSkgVG8gdGVzdCAoNCksIEkn ZCBsaWtlIHRvIGJlIGFibGUgdG8gcXVlcnkgdGhlIGF1dGhvcml6YXRpb24gDQo+ID4gPiA+ID4g ZGF0YSBvZiB0aGUgaXNzdWVkIHNlcnZpY2UgdGlja2V0LiBIb3dldmVyLCB1c2luZyB0aGUgS2Vy YnkgDQo+ID4gPiA+ID4gQVBJLCB0aGUgZm9sbG93aW5nIHJldHVybnMgbnVsbD8NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IHRrdC5nZXRUaWNrZXQoKS5nZXRFbmNQYXJ0KCkgKC5nZXRBdXRob3JpemF0 aW9uRGF0YSgpKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSXMgdGhlcmUgYSB3YXkgZm9yIG1lIHRv IGFjY2VzcyB0aGUgYXV0aG9yaXphdGlvbiBkYXRhIG9mIHRoZSANCj4gPiA+ID4gPiB0aWNrZXQg dXNpbmcgdGhlIEtlcmJ5IEFQSSBpbiBzb21lIHdheSB0byBjaGVjayB0aGF0IGl0J3MgDQo+ID4g PiA+ID4gYWN0dWFsbHkgZ2V0dGluZyBpbnNlcnRlZCBwcm9wZXJseT8NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IFRob3VnaHRzPyBBbSBJIG1pc3NpbmcgYW55dGhpbmcgZWxzZT8NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IENvbG0uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0tDQo+ID4g PiA+ID4gQ29sbSBPIGhFaWdlYXJ0YWlnaA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGFsZW5kIENv bW11bml0eSBDb2Rlcg0KPiA+ID4gPiA+IGh0dHA6Ly9jb2RlcnMudGFsZW5kLmNvbQ0KPiA+ID4g PiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IC0tDQo+ID4gPiA+IENvbG0g TyBoRWlnZWFydGFpZ2gNCj4gPiA+ID4NCj4gPiA+ID4gVGFsZW5kIENvbW11bml0eSBDb2Rlcg0K PiA+ID4gPiBodHRwOi8vY29kZXJzLnRhbGVuZC5jb20NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPg0K PiA+ID4NCj4gPiA+IC0tDQo+ID4gPiBDb2xtIE8gaEVpZ2VhcnRhaWdoDQo+ID4gPg0KPiA+ID4g VGFsZW5kIENvbW11bml0eSBDb2Rlcg0KPiA+ID4gaHR0cDovL2NvZGVycy50YWxlbmQuY29tDQo+ ID4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+IC0tDQo+ID4gQ29sbSBPIGhFaWdlYXJ0YWlnaA0KPiA+ DQo+ID4gVGFsZW5kIENvbW11bml0eSBDb2Rlcg0KPiA+IGh0dHA6Ly9jb2RlcnMudGFsZW5kLmNv bQ0KPiA+DQo+DQo+DQo+DQo+IC0tDQo+IENvbG0gTyBoRWlnZWFydGFpZ2gNCj4NCj4gVGFsZW5k IENvbW11bml0eSBDb2Rlcg0KPiBodHRwOi8vY29kZXJzLnRhbGVuZC5jb20NCj4NCg0KDQoNCi0t DQpDb2xtIE8gaEVpZ2VhcnRhaWdoDQoNClRhbGVuZCBDb21tdW5pdHkgQ29kZXINCmh0dHA6Ly9j b2RlcnMudGFsZW5kLmNvbQ0K