Return-Path: Delivered-To: apmail-hadoop-zookeeper-user-archive@minotaur.apache.org Received: (qmail 19864 invoked from network); 10 Sep 2010 20:50:28 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 10 Sep 2010 20:50:28 -0000 Received: (qmail 9749 invoked by uid 500); 10 Sep 2010 20:50:28 -0000 Delivered-To: apmail-hadoop-zookeeper-user-archive@hadoop.apache.org Received: (qmail 9729 invoked by uid 500); 10 Sep 2010 20:50:27 -0000 Mailing-List: contact zookeeper-user-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: zookeeper-user@hadoop.apache.org Delivered-To: mailing list zookeeper-user@hadoop.apache.org Received: (qmail 9721 invoked by uid 99); 10 Sep 2010 20:50:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Sep 2010 20:50:27 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=10.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of Camille.Fournier@gs.com designates 204.4.187.100 as permitted sender) Received: from [204.4.187.100] (HELO mxecd01.gs.com) (204.4.187.100) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Sep 2010 20:50:21 +0000 X-IronPort-AV: E=Sophos;i="4.56,347,1280721600"; d="scan'208";a="664248395" Received: from unknown (HELO mxpcd02-public.ny.fw.gs.com) ([148.86.97.79]) by mxecd01.idz.gs.com with ESMTP; 10 Sep 2010 16:50:00 -0400 From: "Fournier, Camille F. [Tech]" X-sendergroup: RELAYLIST Received: from gshcbdp02ex.firmwide.corp.gs.com ([139.172.19.141]) by cd02-mxp-vip-prod.ny.fw.gs.com with ESMTP; 10 Sep 2010 16:50:00 -0400 Received: from GSCMAMP02EX.firmwide.corp.gs.com ([139.172.184.156]) by gshcbdp02ex.firmwide.corp.gs.com ([139.172.19.141]) with mapi; Fri, 10 Sep 2010 16:49:59 -0400 To: 'Benjamin Reed' CC: "'zookeeper-user@hadoop.apache.org'" Date: Fri, 10 Sep 2010 16:49:58 -0400 Subject: RE: closing session on socket close vs waiting for timeout Thread-Topic: closing session on socket close vs waiting for timeout Thread-Index: ActRIw/5D/eE0WqRSm+FKcQXiEO19gAAWNVw Message-ID: <69D3016305F9084FBD2C4A0DF189BD5C16995AEAAE@GSCMAMP02EX.firmwide.corp.gs.com> References: <4C7E8754.30806@yahoo-inc.com> <4C7EADCB.7010807@apache.org> <4C8558E1.3060608@yahoo-inc.com> <69D3016305F9084FBD2C4A0DF189BD5C16995AE7C9@GSCMAMP02EX.firmwide.corp.gs.com> <4C87EBFE.2040806@yahoo-inc.com> <69D3016305F9084FBD2C4A0DF189BD5C16995AEA7D@GSCMAMP02EX.firmwide.corp.gs.com> <4C8A8EA7.10601@yahoo-inc.com> In-Reply-To: <4C8A8EA7.10601@yahoo-inc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US x-retentionstamp: Firmwide Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 V2VsbCwgdGhpcyBkaWQgd29yayB3aGVuIEkgdHJpZWQgaXQgb24gY2xpZW50cyBjb25uZWN0ZWQg dG8gZm9sbG93ZXIgbm9kZXMgaW4gdGhlIGNsdXN0ZXIuIFRoZSBmb2xsb3dlcnMgc3RpbGwgcHJv cGFnYXRlIGJhY2sgdGhlaXIgdG91Y2ggdGFibGUgdG8gdGhlIGxlYWRlciB3aGVuIHRoZXkgcGlu ZywgY29ycmVjdD8gQW5kIHRoZW4gdGhlIGxlYWRlciBkb2VzIHRoZSBzYW1lIGxvZ2ljIGFzIHdo ZW4gaXQgdG91Y2hlcyBhIHNlc3Npb24/IEFzIGxvbmcgYXMgdGhlIFNlc3Npb25UcmFja2VySW1w bCBsaW5lcyAxNzMtMTc2IGFyZSBjb21tZW50ZWQgb3V0IChpbiB0aGUgMy4zIGJyYW5jaCksIHlv dSBjYW4gdG91Y2ggd2l0aCBhIGxvd2VyZWQgZXhwaXJlIHRpbWUsIGFuZCBzbyBsb25nIGFzIHRo YXQgc2Vzc2lvbiBkb2VzIG5vdCByZS1jb25uZWN0IGR1cmluZyB0aGF0IHNob3J0ZW5lZCBpbnRl cnZhbCwgdGhlIGxlYWRlciB3aWxsIHByb3Blcmx5IHRpbWUgb3V0IHRoZSBzZXNzaW9uLiBBZ2Fp biwgSSBoYXZlbid0IHRob3VnaHQgdGhyb3VnaCB0aGlzIGxvZ2ljIGV4dHJlbWVseSBjbG9zZWx5 IHNvIGl0IGlzIHBvc3NpYmxlIEkgYW0gbWlzc2luZyBzb21lIGltcGxpY2F0aW9ucyAobGlrZSwg d2hhdCBoYXBwZW5zIHdoZW4gdHdvIGNsaWVudHMgYXJlIGNvbm5lY3RlZCB0byB0aGUgc2FtZSBz ZXNzaW9uIG9uIGRpZmZlcmVudCBzZXJ2ZXJzLCBidXQgdGhlbiwgd2hhdCBpbiB0aGUgd29ybGQg ZG9lcyB0aGF0IGV2ZW4gbWVhbj8pLCBidXQgaXQgZG9lcyB3b3JrIGluIHRoZSBiYXNpYyBjYXNl IHNvIGZhciBhcyBteSB0ZXN0aW5nIGhhcyBzaG93bi4gSSdsbCB0cnkgdG8gZ2V0IHRoZSBnby1h aGVhZCB0byBzdWJtaXQgYSB0aWNrZXQgd2l0aCB0aGUgY29kZSBzbyB5b3UgY2FuIGxvb2sgYXQg aXQgeW91cnNlbGYuIA0KDQpJIGFncmVlIHRoYXQgaWYgYSBuZXR3b3JrIGdsaXRjaCBjYXVzZXMg YSBidW5jaCBvZiBsaXZlIGNsaWVudHMgdG8gYXBwZWFyIHRvIGNsb3NlIHRoZWlyIHNvY2tldHMg b24gdGhlIHNlcnZlciB0aGV5IGFyZSBjb25uZWN0ZWQgdG8sIHlvdSBjb3VsZCBoYXZlIHByb2Js ZW1zLiBUaGlzIGNvdWxkIGJlIHNvbWV3aGF0IHJlbWVkaWF0ZWQgYnkgc2V0dGluZyB0aGUgbWlu c2Vzc2lvbnRpbWVvdXQgdG8gYSB2YWx1ZSB0aGF0IGFsbG93cyBmb3Igc29tZSBzbG9wLCBidXQg bm90IHRoZSBhbW91bnQgb2Ygc2xvcCB5b3Ugd2FudCB0byBhbGxvdyBmb3Igc29tZXRoaW5nIGxp a2UgYSBmdWxsIGdjIG9uIGEgY2xpZW50LiBCdXQgd2hhdCBJJ20gbm90IHN1cmUgYWJvdXQgaXMg dGhlIGdsaXRjaCB0aGF0IGFjdHVhbGx5IGNhdXNlcyB0aGlzIHNvcnQgb2Ygb2JzZXJ2ZWQgYmVo YXZpb3IuIEkgYW0gbm90IGEgbmV0d29ya2luZyBleHBlcnQsIGJ1dCBpbiBteSBleHBlcmllbmNl IEkndmUgc2VlbiBuZXR3b3JrIGdsaXRjaGVzIHRoYXQgY2F1c2Ugc29ja2V0cyB0byBhcHBlYXIg dG8gYmUgbGl2ZSB0aGF0IGFyZSBhY3R1YWxseSBkZWFkLCBidXQgbm90IHZpY2UtdmVyc2EuIENh biB5b3UgdGVsbCBtZSB3aGF0IHdvdWxkIGNhdXNlIGEgc29ja2V0IGNsb3N1cmUgd2l0aCBvdGhl cndpc2UgYWxpdmUgY2xpZW50IGFuZCBzZXJ2ZXI/IA0KDQpUaGFua3MgZm9yIHRoZSBmZWVkYmFj aywNCkNhbWlsbGUNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEJlbmphbWlu IFJlZWQgW21haWx0bzpicmVlZEB5YWhvby1pbmMuY29tXSANClNlbnQ6IEZyaWRheSwgU2VwdGVt YmVyIDEwLCAyMDEwIDQ6MDIgUE0NClRvOiBGb3VybmllciwgQ2FtaWxsZSBGLiBbVGVjaF0NCkNj OiAnem9va2VlcGVyLXVzZXJAaGFkb29wLmFwYWNoZS5vcmcnDQpTdWJqZWN0OiBSZTogY2xvc2lu ZyBzZXNzaW9uIG9uIHNvY2tldCBjbG9zZSB2cyB3YWl0aW5nIGZvciB0aW1lb3V0DQoNCiAgdGhl IHByb2JsZW0gaXMgdGhhdCBmb2xsb3dlcnMgZG9uJ3QgdHJhY2sgc2Vzc2lvbiB0aW1lb3V0cy4g dGhleSB0cmFjayANCndoZW4gdGhleSBsYXN0IGhlYXJkIGZyb20gdGhlIHNlc3Npb25zIHRoYXQg YXJlIGNvbm5lY3RlZCB0byB0aGVtIGFuZCANCnRoZXkgcGVyaW9kaWNhbGx5IHByb3BhZ2F0ZSB0 aGlzIGluZm9ybWF0aW9uIHRvIHRoZSBsZWFkZXIuIHRoZSBsZWFkZXIgDQppcyB0aGUgb25lIHRo YXQgZXhwaXJlcyB0aGUgc2Vzc2lvbi4geW91ciB0ZWNobmlxdWUgb25seSB3b3JrcyB3aGVuIHRo ZSANCmNsaWVudCBpcyBjb25uZWN0ZWQgdG8gdGhlIGxlYWRlci4NCg0Kb25lIHRoaW5nIHlvdSBj YW4gZG8gaXMgZ2VuZXJhdGUgYSBjbG9zZSByZXF1ZXN0IGZvciB0aGUgc29ja2V0IGFuZCBwdXNo IA0KdGhhdCB0aHJvdWdoIHRoZSBzeXN0ZW0uIHRoYXQgd2lsbCBjYXVzZSBpdCB0byBnZXQgcHJv cGFnYXRlZCB0aHJvdWdoIA0KdGhlIGZvbGxvd2VycyBhbmQgcHJvY2Vzc2VkIGF0IHRoZSBsZWFk ZXIuIGl0IHdvdWxkIGFsc28gYWxsb3cgeW91IHRvIA0KZ2V0IHlvdXIgZnVuY3Rpb25hbGl0eSB3 aXRob3V0IHRvdWNoaW5nIHRoZSBwcm9jZXNzaW5nIHBpcGVsaW5lLg0KDQp0aGUgdGhpbmcgdGhh dCB3b3JyaWVzIG1lIGFib3V0IHRoaXMgZnVuY3Rpb25hbGl0eSBpbiBnZW5lcmFsIGlzIHRoYXQg DQpuZXR3b3JrIGFub21hbGllcyBjYW4gY2F1c2UgYSB3aG9sZSByYWZ0IG9mIHNlc3Npb25zIHRv IGdldCBleHBpcmVkIGluIA0KdGhpcyB3YXkuIGZvciBleGFtcGxlLCB5b3UgaGF2ZSAzIHNlcnZl cnMgd2l0aCBsb2FkIHNwcmVhZCB3ZWxsOyB0aGVyZSANCmlzIGEgbmV0d29ya2luZyBnbGl0Y2gg dGhhdCBjYXVzZSBjbGllbnRzIHRvIGFiYW5kb24gYSBzZXJ2ZXI7IHN1ZGRlbmx5IA0KMS8zIG9m IHlvdXIgY2xpZW50cyB3aWxsIGdldCBleHBpcmVkIHNlc3Npb25zLg0KDQpiZW4NCg0KT24gMDkv MTAvMjAxMCAxMjoxNyBQTSwgRm91cm5pZXIsIENhbWlsbGUgRi4gW1RlY2hdIHdyb3RlOg0KPiBC ZW4sIGNvdWxkIHlvdSBleHBsYWluIGEgYml0IG1vcmUgd2h5IHlvdSB0aGluayB0aGlzIHdvbid0 IHdvcms/IEknbSB0cnlpbmcgdG8gZGVjaWRlIGlmIEkgc2hvdWxkIHB1dCBpbiB0aGUgd29yayB0 byB0YWtlIHRoZSBQT0MgSSB3cm90ZSBhbmQgY29tcGxldGUgaXQsIGJ1dCBJIGRvbid0IHJlYWxs eSB3YW50IHRvIHdhc3RlIG15IHRpbWUgaWYgdGhlcmUncyBhIGZ1bmRhbWVudGFsIHJlYXNvbiBp dCdzIGEgYmFkIGlkZWEuDQo+DQo+IFRoYW5rcywNCj4gQ2FtaWxsZQ0KPg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBCZW5qYW1pbiBSZWVkIFttYWlsdG86YnJlZWRAeWFo b28taW5jLmNvbV0NCj4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgMDgsIDIwMTAgNDowMyBQ TQ0KPiBUbzogem9va2VlcGVyLXVzZXJAaGFkb29wLmFwYWNoZS5vcmcNCj4gU3ViamVjdDogUmU6 IGNsb3Npbmcgc2Vzc2lvbiBvbiBzb2NrZXQgY2xvc2UgdnMgd2FpdGluZyBmb3IgdGltZW91dA0K Pg0KPiB1bmZvcnR1bmF0ZWx5LCB0aGF0IG9ubHkgd29ya3Mgb24gdGhlIHN0YW5kYWxvbmUgc2Vy dmVyLg0KPg0KPiBiZW4NCj4NCj4gT24gMDkvMDgvMjAxMCAxMjo1MiBQTSwgRm91cm5pZXIsIENh bWlsbGUgRi4gW1RlY2hdIHdyb3RlOg0KPj4gVGhpcyB3b3VsZCBiZSB0aGUgaWRlYWwgc29sdXRp b24gdG8gdGhpcyBwcm9ibGVtIEkgdGhpbmsuDQo+PiBQb2tpbmcgYXJvdW5kIHRoZSAoMy4zKSBj b2RlIHRvIGZpZ3VyZSBvdXQgaG93IGhhcmQgaXQgd291bGQgYmUgdG8gaW1wbGVtZW50LCBJIGZp Z3VyZSBvbmUgd2F5IHRvIGRvIGl0IHdvdWxkIGJlIHRvIG1vZGlmeSB0aGUgc2Vzc2lvbiB0aW1l b3V0IHRvIHRoZSBtaW4gc2Vzc2lvbiB0aW1lb3V0IGFuZCB0b3VjaCB0aGUgY29ubmVjdGlvbiBi ZWZvcmUgY2FsbGluZyBjbG9zZSB3aGVuIHlvdSBnZXQgY2VydGFpbiBleGNlcHRpb25zIGluIE5J T1NlcnZlckNueG4uZG9JTy4gSSBkaWQgdGhpcyAocmVtb3ZpbmcgdGhlIGNvZGUgaW4gdG91Y2gg c2Vzc2lvbiB0aGF0IHJldHVybnMgaWYgdGhlIHRpY2tUaW1lIGlzIGdyZWF0ZXIgdGhhbiB0aGUg ZXhwaXJlIHRpbWUpIGFuZCBpdCB3b3JrZWQgKGluIHRoZSBzdGFuZGFsb25lIHNlcnZlciBhbnl3 YXkpLiBJbnRlcmVzdGluZyBzb2x1dGlvbiwgb3IgdG90YWwgaGFjayB0aGF0IHdpbGwgbm90IHdv cmsgYmV5b25kIG1vc3QgYmFzaWMgdGVzdCBjYXNlPw0KPj4NCj4+IEMNCj4+DQo+PiAoZm9yZ2l2 ZSBsYWNrIG9mIGFjdHVhbCBjb2RlIGluIHRoaXMgZW1haWwpDQo+Pg0KPj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4+IEZyb206IFRlZCBEdW5uaW5nIFttYWlsdG86dGVkLmR1bm5pbmdA Z21haWwuY29tXQ0KPj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDA3LCAyMDEwIDE6MTEgUE0N Cj4+IFRvOiB6b29rZWVwZXItdXNlckBoYWRvb3AuYXBhY2hlLm9yZw0KPj4gQ2M6IEJlbmphbWlu IFJlZWQNCj4+IFN1YmplY3Q6IFJlOiBjbG9zaW5nIHNlc3Npb24gb24gc29ja2V0IGNsb3NlIHZz IHdhaXRpbmcgZm9yIHRpbWVvdXQNCj4+DQo+PiBUaGlzIHJlYWxseSBpcywganVzdCBhcyBCZW4g c2F5cyBhIHByb2JsZW0gb2YgZmFsc2UgcG9zaXRpdmVzIGFuZCBmYWxzZQ0KPj4gbmVnYXRpdmVz IGluIGRldGVjdGluZyBzZXNzaW9uDQo+PiBleHBpcmF0aW9uLg0KPj4NCj4+IE9uIHRoZSBvdGhl ciBoYW5kLCB0aGUgY3VycmVudCBhbGdvcml0aG0gaXNuJ3QgcmVhbGx5IHVzaW5nIGFsbCB0aGUN Cj4+IGluZm9ybWF0aW9uIGF2YWlsYWJsZS4gIFRoZSBjdXJyZW50IGFsZ29yaXRobSBpcw0KPj4g dXNpbmcgdGltZSBzaW5jZSBsYXN0IGNsaWVudCBpbml0aWF0ZWQgaGVhcnRiZWF0LiAgVGhlIG5l dyBwcm9wb3NhbCBpcw0KPj4gc29tZXdoYXQgd29yc2UgaW4gdGhhdCBpdCBwcm9wb3NlcyB0byB1 c2UNCj4+IGp1c3QgdGhlIGJvb2xlYW4gImhhcy1UQ1AtZGlzY29ubmVjdC1oYXBwZW5lZCIuDQo+ Pg0KPj4gUGVyaGFwcyBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gdXNlIG11bHRpcGxlIGZlYXR1cmVz IGluIG9yZGVyIHRvIGRlY3JlYXNlDQo+PiBib3RoIGZhbHNlIHBvc2l0aXZlcyBhbmQgZmFsc2Ug bmVnYXRpdmVzLg0KPj4NCj4+IEZvciBpbnN0YW5jZSwgSSBjb3VsZCBpbWFnaW5lIHRoYXQgd2Ug dXNlIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6DQo+Pg0KPj4gLSB0aW1lIHNpbmNlIGxhc3QgY2xp ZW50IGhlYXJiZWF0IG9yIGRpc2Nvbm5lY3Qgb3IgcmVjb25uZWN0DQo+Pg0KPj4gLSB3aGF0IHdh cyB0aGUgbGFzdCBldmVudD8gKGEgaGVhcnRiZWF0IG9yIGEgZGlzY29ubmVjdCBvciBhIHJlY29u bmVjdCkNCj4+DQo+PiBUaGVuIHRoZSBleHBpcmF0aW9uIGFsZ29yaXRobSBjb3VsZCB1c2UgYSBy ZWxhdGl2ZWx5IGxvbmcgdGltZSBzaW5jZSBsYXN0DQo+PiBoZWFydGJlYXQgYW5kIGEgcmVsYXRp dmVseSBzaG9ydCB0aW1lIHNpbmNlIGxhc3QgZGlzY29ubmVjdCB0byBtYXJrIGENCj4+IHNlc3Np b24gYXMgZGlzY29ubmVjdGVkLg0KPj4NCj4+IFdvdWxkbid0IHRoaXMgYXZvaWQgZXhwaXJhdGlv biBkdXJpbmcgR0MgYW5kIGNsdXN0ZXIgcGFydGl0aW9uIGFuZCBjYXVzZQ0KPj4gZXhwaXJhdGlv biBxdWlja2x5IGFmdGVyIGEgY2xpZW50IGRpc2Nvbm5lY3Q/DQo+Pg0KPj4NCj4+IE9uIE1vbiwg U2VwIDYsIDIwMTAgYXQgMTE6MjYgUE0sIFBhdHJpY2sgSHVudDxwaHVudEBhcGFjaGUub3JnPiAg IHdyb3RlOg0KPj4NCj4+DQo+Pj4gVGhhdCdzIGEgZ29vZCBwb2ludCwgaG93ZXZlciB3aXRoIHN1 aXRhYmxlIGRvY3VtZW50YXRpb24sIHdhcm5pbmdzIGFuZCBzdWNoDQo+Pj4gaXQgc2VlbXMgbGlr ZSBhIHJlYXNvbmFibGUgZmVhdHVyZSB0byBwcm92aWRlIGZvciB0aG9zZSB1c2VycyB3aG8gcmVx dWlyZQ0KPj4+IGl0LiBVc2VkIGluIG1vZGVyYXRpb24gaXQgc2VlbXMgZmluZSB0byBtZS4gUGVy aGFwcyB3ZSBhbHNvIG1ha2UgaXQNCj4+PiBjb25maWd1cmFibGUgYXQgdGhlIHNlcnZlciBsZXZl bCBmb3IgdGhvc2UgYWRtaW5pc3RyYXRvcnMvb3BzIHdobyBkb24ndA0KPj4+IHdhbnQNCj4+PiB0 byBkZWFsIHdpdGggaXQgKGRpc2FibGUgdGhlIGZlYXR1cmUgZW50aXJlbHksIG9yIG9ubHkgZW5h YmxlIG9uIHBhcnRpY3VsYXINCj4+PiBzZXJ2ZXJzLCBldGMuLi4pLg0KPj4+DQo+Pj4gUGF0cmlj aw0KPj4+DQo+Pj4gT24gTW9uLCBTZXAgNiwgMjAxMCBhdCAyOjEwIFBNLCBCZW5qYW1pbiBSZWVk PGJyZWVkQHlhaG9vLWluYy5jb20+ICAgd3JvdGU6DQo+Pj4NCj4+Pg0KPj4+PiBpZiB0aGlzIG1l Y2hhbmlzbSB3ZXJlIHVzZWQgdmVyeSBvZnRlbiwgd2Ugd291bGQgZ2V0IGEgaHVnZSBudW1iZXIg b2YNCj4+Pj4gc2Vzc2lvbiBleHBpcmF0aW9ucyB3aGVuIGEgc2VydmVyIGZhaWxzLiB5b3UgYXJl IHRyYWRpbmcgZmFzdCBlcnJvcg0KPj4+PiBkZXRlY3Rpb24gZm9yIHRoZSBhYmlsaXR5IHRvIHRv bGVyYXRlIHRlbXBvcmFyeSBuZXR3b3JrIGFuZCBzZXJ2ZXINCj4+Pj4NCj4+PiBvdXRhZ2VzLg0K Pj4+DQo+Pj4+IHRvIGJlIGhvbmVzdCB0aGlzIHNlZW1zIGxpa2Ugc29tZXRoaW5nIHRoYXQgaW4g dGhlb3J5IHNvdW5kcyBsaWtlIGl0IHdpbGwNCj4+Pj4gd29yayBpbiBwcmFjdGljZSwgYnV0IG9u Y2UgZGVwbG95ZWQgd2Ugc3RhcnQgZ2V0dGluZyBzZXNzaW9uIGV4cGlyYXRpb25zDQo+Pj4+DQo+ Pj4gZm9yDQo+Pj4NCj4+Pj4gY2FzZXMgdGhhdCB3ZSByZWFsbHkgZG8gbm90IHdhbnQgb3IgZXhw ZWN0Lg0KPj4+Pg0KPj4+PiBiZW4NCj4+Pj4NCj4+Pj4NCj4+Pj4gT24gMDkvMDEvMjAxMCAxMjo0 NyBQTSwgUGF0cmljayBIdW50IHdyb3RlOg0KPj4+Pg0KPj4+Pg0KPj4+Pj4gQmVuLCBpbiB0aGlz IGNhc2UgdGhlIHNlc3Npb24gd291bGQgYmUgdGllZCBkaXJlY3RseSB0byB0aGUgY29ubmVjdGlv biwNCj4+Pj4+IHdlJ2QgZXhwbGljaXRseSBkZW55IHNlc3Npb24gcmUtZXN0YWJsaXNobWVudCBm b3IgdGhpcyBzZXNzaW9uIHR5cGUgKHNvDQo+Pj4+PiA0IHdvdWxkIGZhaWwpLiBXb3VsZCB0aGF0 IGFkZHJlc3MgeW91ciBjb25jZXJuLCBvdGhlcnM/DQo+Pj4+Pg0KPj4+Pj4gUGF0cmljaw0KPj4+ Pj4NCj4+Pj4+IE9uIDA5LzAxLzIwMTAgMTA6MDMgQU0sIEJlbmphbWluIFJlZWQgd3JvdGU6DQo+ Pj4+Pg0KPj4+Pj4NCj4+Pj4+DQo+Pj4+Pj4gaSdtIGEgYml0IHNrZXB0aWNhbCB0aGF0IHRoaXMg aXMgZ29pbmcgdG8gd29yayBvdXQgcHJvcGVybHkuIGEgc2VydmVyDQo+Pj4+Pj4gbWF5IHJlY2Vp dmUgYSBzb2NrZXQgcmVzZXQgZXZlbiB0aG91Z2ggdGhlIGNsaWVudCBpcyBzdGlsbCBhbGl2ZToN Cj4+Pj4+Pg0KPj4+Pj4+IDEpIGNsaWVudCBzZW5kcyBhIHJlcXVlc3QgdG8gYSBzZXJ2ZXINCj4+ Pj4+PiAyKSBjbGllbnQgaXMgcGFydGl0aW9uZWQgZnJvbSB0aGUgc2VydmVyDQo+Pj4+Pj4gMykg c2VydmVyIHN0YXJ0cyB0cnlpbmcgdG8gc2VuZCByZXNwb25zZQ0KPj4+Pj4+IDQpIGNsaWVudCBy ZWNvbm5lY3RzIHRvIGEgZGlmZmVyZW50IHNlcnZlcg0KPj4+Pj4+IDUpIHBhcnRpdGlvbiBoZWFs cw0KPj4+Pj4+IDYpIHNlcnZlciBnZXRzIGEgcmVzZXQgZnJvbSBjbGllbnQNCj4+Pj4+Pg0KPj4+ Pj4+IGF0IHN0ZXAgNiBpIGRvbid0IHRoaW5rIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZXBoZW1l cmFsIG5vZGVzLg0KPj4+Pj4+DQo+Pj4+Pj4gYmVuDQo+Pj4+Pj4NCj4+Pj4+PiBPbiAwOC8zMS8y MDEwIDAxOjQxIFBNLCBGb3VybmllciwgQ2FtaWxsZSBGLiBbVGVjaF0gd3JvdGU6DQo+Pj4+Pj4N Cj4+Pj4+Pg0KPj4+Pj4+DQo+Pj4+Pj4+IFllcyB0aGF0J3MgcmlnaHQuIFdoaWNoIG5ldHdvcmsg aXNzdWVzIGNhbiBjYXVzZSB0aGUgc29ja2V0IHRvIGNsb3NlDQo+Pj4+Pj4+IHdpdGhvdXQgdGhl IGluaXRpYXRpbmcgcHJvY2VzcyBjbG9zaW5nIHRoZSBzb2NrZXQ/IEluIG15IGxpbWl0ZWQNCj4+ Pj4+Pj4gZXhwZXJpZW5jZSBpbiB0aGlzIGFyZWEgbmV0d29yayBpc3N1ZXMgd2VyZSBtb3JlIHBy b25lIHRvIGxlYXZlIGRlYWQNCj4+Pj4+Pj4gc29ja2V0cyBvcGVuIHJhdGhlciB0aGFuIHZpY2Ug dmVyc2Egc28gSSBkb24ndCBrbm93IHdoYXQgdG8gbG9vayBvdXQNCj4+Pj4+Pj4gZm9yLg0KPj4+ Pj4+Pg0KPj4+Pj4+PiBUaGFua3MsDQo+Pj4+Pj4+IENhbWlsbGUNCj4+Pj4+Pj4NCj4+Pj4+Pj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+Pj4gRnJvbTogRGF2ZSBXcmlnaHQgW21h aWx0bzp3cmlnaHRkQGdtYWlsLmNvbV0NCj4+Pj4+Pj4gU2VudDogVHVlc2RheSwgQXVndXN0IDMx LCAyMDEwIDE6MTQgUE0NCj4+Pj4+Pj4gVG86IHpvb2tlZXBlci11c2VyQGhhZG9vcC5hcGFjaGUu b3JnDQo+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBjbG9zaW5nIHNlc3Npb24gb24gc29ja2V0IGNsb3Nl IHZzIHdhaXRpbmcgZm9yIHRpbWVvdXQNCj4+Pj4+Pj4NCj4+Pj4+Pj4gSSB0aGluayBoZSdzIHNh eWluZyB0aGF0IGlmIHRoZSBzb2NrZXQgY2xvc2VzIGJlY2F1c2Ugb2YgYSBjcmFzaCAoaS5lLg0K Pj4+Pj4+PiBub3QgYQ0KPj4+Pj4+PiBub3JtYWwgem9va2VlcGVyIGNsb3NlIHJlcXVlc3QpIHRo ZW4gdGhlIHNlc3Npb24gc3RheXMgYWxpdmUgdW50aWwgdGhlDQo+Pj4+Pj4+IHNlc3Npb24gdGlt ZW91dCwgd2hpY2ggaXMgb2YgY291cnNlIHRydWUgc2luY2UgWksgYWxsb3dzIHJlY29ubmVjdGlv bg0KPj4+Pj4+PiBhbmQNCj4+Pj4+Pj4gcmVzdW1wdGlvbiBvZiB0aGUgc2Vzc2lvbiBpbiBjYXNl IG9mIGRpc2Nvbm5lY3QgZHVlIHRvIG5ldHdvcmsgaXNzdWVzLg0KPj4+Pj4+Pg0KPj4+Pj4+PiAt RGF2ZSBXcmlnaHQNCj4+Pj4+Pj4NCj4+Pj4+Pj4gT24gVHVlLCBBdWcgMzEsIDIwMTAgYXQgMTow MyBQTSwgVGVkIER1bm5pbmc8dGVkLmR1bm5pbmdAZ21haWwuY29tPg0KPj4+Pj4+PiB3cm90ZToN Cj4+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+Pj4NCj4+Pj4+Pj4+IFRoYXQgZG9lc24n dCBzb3VuZCByaWdodCB0byBtZS4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBJcyB0aGVyZSBhIFpvb2tl ZXBlciBleHBlcnQgaW4gdGhlIGhvdXNlPw0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IE9uIFR1ZSwgQXVn IDMxLCAyMDEwIGF0IDg6NTggQU0sIEZvdXJuaWVyLCBDYW1pbGxlIEYuIFtUZWNoXTwNCj4+Pj4+ Pj4+IENhbWlsbGUuRm91cm5pZXJAZ3MuY29tPiAgICB3cm90ZToNCj4+Pj4+Pj4+DQo+Pj4+Pj4+ Pg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gSSBmb29saXNobHkgZGlkIG5vdCBpbnZl c3RpZ2F0ZSB0aGUgWksgY29kZSBjbG9zZWx5IGVub3VnaCBhbmQgaXQNCj4+Pj4+Pj4+PiBzZWVt cw0KPj4+Pj4+Pj4+IHRoYXQgY2xvc2luZyB0aGUgc29ja2V0IHN0aWxsIHdhaXRzIGZvciB0aGUg c2Vzc2lvbiB0aW1lb3V0IHRvDQo+Pj4+Pj4+Pj4gcmVtb3ZlIHRoZQ0KPj4+Pj4+Pj4+IHNlc3Np b24uDQo+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pg0KPj4+Pj4+DQo+ Pj4+Pg0KPj4+Pg0KPj4+DQoNCg==