From dev-return-31768-archive-asf-public=cust-asf.ponee.io@geode.apache.org Thu Aug 29 10:56:27 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 89288180608 for ; Thu, 29 Aug 2019 12:56:26 +0200 (CEST) Received: (qmail 12094 invoked by uid 500); 29 Aug 2019 10:56:25 -0000 Mailing-List: contact dev-help@geode.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.apache.org Delivered-To: mailing list dev@geode.apache.org Received: (qmail 12082 invoked by uid 99); 29 Aug 2019 10:56:25 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Aug 2019 10:56:25 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id B427B1A43A6 for ; Thu, 29 Aug 2019 10:56:24 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.001 X-Spam-Level: X-Spam-Status: No, score=-0.001 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=estab.onmicrosoft.com Received: from mx1-he-de.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id LKZjrt5suAow for ; Thu, 29 Aug 2019 10:56:20 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=40.107.8.131; helo=eur04-vi1-obe.outbound.protection.outlook.com; envelope-from=alberto.gomez@est.tech; receiver= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80131.outbound.protection.outlook.com [40.107.8.131]) by mx1-he-de.apache.org (ASF Mail Server at mx1-he-de.apache.org) with ESMTPS id A5B7A7D3FC for ; Thu, 29 Aug 2019 10:56:19 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i1T0IzGj77E7dCffMfzmyz9mjG8r842GRSOZrAr44qJDBJYkGXtpUB8o9VjuYk/nOf62W1oHfEKqwJcPe4w/iVkDzIPbgDW0v35ekVRHwcEaZRMzVr0n/eLeOLI/q0Ink93Raz7Q2Ne2gHn66+i129R3+jji5yWP71iN5wmI6L8e+2oPa5Irq1eVPftGz4QDuT/2ZT+AWSzfVSag/VhDAzCaxXY16KpfHBxxr7mhN4wTSsrbLghSSBrqdHrtSfoHexkqiBVGwPwnubFwKpikCODNW3c11O7m8Xy54bDjrNyg1M+aYx6TI05bq1C5KFYHZMt+19y/CYsw1pOj99hgpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nY8EAJANFABr4pKPcOwspXBwZI+lEvsaNzMTHZ31hII=; b=B8qYfwglNCVO4UZKpHn0e7BJZgsMqCUDG4IkVmmwJIsuN5ItrXFhzJX01QhBb8WOq6QONNkbDCC69KMHp3jz8b7RjnNry8lRSmves/fqaQDNfS5sDVkMHZXfm6Q9qw2Xqm0tkc9CHHwqPTsEloiW2ZUEFFYYGOjoeLe9/PJaj2iFZE0DdCW7h9msyHGPhxLObAZHga2NxfcCkNAOszxm0OTxSUO858SdVLmVKIQ80twYinbcozdd/z/aEqN2fKAtNTZwVgyRDOe6TcpIZUwWfObFle2ULjkbHSVk2e946PorXL9JA4nr3Bvgz6IdJrUxFZRKNIkY3zsMCTCowvEfXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=est.tech; dmarc=pass action=none header.from=est.tech; dkim=pass header.d=est.tech; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=estab.onmicrosoft.com; s=selector2-estab-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nY8EAJANFABr4pKPcOwspXBwZI+lEvsaNzMTHZ31hII=; b=Viwvh1ylLVBGSRG5mLVW4vqOHlk6AOErUwGJY+giJ9QahYfeKUpvG/ufOysPf5atgvcURf2i9Qc2WTZkGcnqooRym/9sBQ3x4RabTWJhiVwOZBC34PXTva5IEtZNy4LdYU/4O0NGOFusOkZy763127kYjxxzoU6KNkQjRDxmbF0= Received: from AM5P189MB0354.EURP189.PROD.OUTLOOK.COM (10.161.66.151) by AM5P189MB0275.EURP189.PROD.OUTLOOK.COM (10.161.66.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2220.19; Thu, 29 Aug 2019 10:56:12 +0000 Received: from AM5P189MB0354.EURP189.PROD.OUTLOOK.COM ([fe80::39:1e4:bb70:c490]) by AM5P189MB0354.EURP189.PROD.OUTLOOK.COM ([fe80::39:1e4:bb70:c490%2]) with mapi id 15.20.2199.021; Thu, 29 Aug 2019 10:56:12 +0000 From: Alberto Gomez To: "dev@geode.apache.org" Subject: Re: [DISCUSS] Improvements on client function execution API Thread-Topic: [DISCUSS] Improvements on client function execution API Thread-Index: AQHVWDf0U+6LoYlTEEKSpB6HzyyHD6cHi8yAgAEw5wCACHiQgIAAywgA Date: Thu, 29 Aug 2019 10:56:12 +0000 Message-ID: References: <750F34D4-52FC-4729-93CE-67126F6F0E99@pivotal.io> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0205.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9e::25) To AM5P189MB0354.EURP189.PROD.OUTLOOK.COM (2603:10a6:206:20::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=alberto.gomez@est.tech; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [195.235.15.200] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6f366d7b-612b-4fd8-cbb8-08d72c6f814e x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(7021145)(8989299)(4534185)(7022145)(4603075)(4627221)(201702281549075)(8990200)(7048125)(7024125)(7027125)(7023125)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:AM5P189MB0275; x-ms-traffictypediagnostic: AM5P189MB0275: x-ms-exchange-purlcount: 2 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0144B30E41 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(346002)(376002)(39840400004)(396003)(366004)(136003)(199004)(189003)(561944003)(6512007)(6116002)(3846002)(6306002)(26005)(6436002)(5640700003)(31696002)(186003)(6486002)(86362001)(2351001)(8936002)(386003)(99286004)(8676002)(5660300002)(1730700003)(81166006)(81156014)(31686004)(305945005)(7736002)(53546011)(6506007)(102836004)(52116002)(76176011)(44832011)(6246003)(229853002)(25786009)(14454004)(11346002)(446003)(14444005)(256004)(2616005)(476003)(966005)(316002)(486006)(71190400001)(71200400001)(53936002)(66556008)(66476007)(64756008)(2906002)(66946007)(66446008)(6916009)(66066001)(36756003)(2501003)(508600001);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5P189MB0275;H:AM5P189MB0354.EURP189.PROD.OUTLOOK.COM;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:0;MX:1; received-spf: None (protection.outlook.com: est.tech does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 4YqpMzQLHoC52nrcIeM3ItXhSKPAtJeeePPTyTT1jT4QyNojSO9Se9fdQ+U54BMoZ+Ei8t9Ehk+vVoJJa5abMP0aqki7X89wE2/CgV3ViCwWAuJrzfllI+XFO550hQSJgn3ycG1bH66JMbpmhhLq4bKzrBmHzykTzEp1LCW4q+c1N1JwP1LlaVKUOWm3DUoymF1yrd3wReLkXaCBb6f4qugvahG6KIEnBJwFrCbGL1MjqAWCOCAKGW5djHOM7RCmE4e4yXzaUCFDfJeIsdfaqNPJcBpVMnVl1GBCEK9Qu4EpreCX9oG9tBdMLEHcDFtHFwp8XSOPf4hRsS7HjPe13BR1EcpeE1xJdpKL2OAsOIZ6ovSdVwHNheX9Yyt0C88w+Me3p2mTZ6fdyrgzfKPduJazGoZ8XUF0bI/diATDVuw= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <9493B4294A3CE4469A80907704B0FD99@EURP189.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: est.tech X-MS-Exchange-CrossTenant-Network-Message-Id: 6f366d7b-612b-4fd8-cbb8-08d72c6f814e X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2019 10:56:12.0520 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d2585e63-66b9-44b6-a76e-4f4b217d97fd X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GxY2AdGmGchjJpxO7yNjiStZ0Qj7Kaj0rOg9lECHJh6PbnaT0glSm+LhcfDK1PCPvsizJIuHVPI0OM9dUOj+eg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5P189MB0275 SGkgRGFuLA0KDQpEaXNjdXNzaW5nIHRoZXNlIG1hdHRlcnMgYnkgZS1tYWlsIGlzIGdldHRpbmcg dHJpY2t5Lg0KDQpMZXQncyBzZWUgaWYgSSB1bmRlcnN0YW5kIHlvdSBjb3JyZWN0bHkgYW5kIGFs c28gaWYgSSBhbSBiZWluZyBjbGVhciBlbm91Z2guDQoNClBsZWFzZSwgc2VlIG15IGNvbW1lbnRz IGlubGluZS4NCg0KT24gMjkvOC8xOSAwOjQ5LCBEYW4gU21pdGggd3JvdGU6DQo+IFNvcnJ5IGZv ciB0aGUgc2xvdyByZXNwb25zZSwgSSd2ZSBiZWVuIHRyeWluZyB0byBkZWNpZGUgd2hhdCBJIHRo aW5rIGlzIHRoZQ0KPiByaWdodCBhcHByb2FjaCBoZXJlLg0KPg0KPiBGb3IgKDEpIC0gY29uY2Vw dHVhbGx5LCBJIGRvbid0IGhhdmUgYSBwcm9ibGVtIHdpdGggaGF2aW5nIGJvdGggYmxvY2tpbmcN Cj4gYW5kIG5vbiBibG9ja2luZyBtZXRob2RzIG9uIEV4ZWN1dGlvbi4gU28gYWRkaW5nIGJsb2Nr aW5nIHZlcnNpb25zIG9mDQo+IGV4ZWN1dGUoKSB3aXRoIGEgdGltZW91dCBzZWVtcyBvay4gQnV0 IEkgZG8gdGhpbmsgaWYgd2UgYWRkIHRoZW0gd2UgbmVlZCB0bw0KPiBpbXBsZW1lbnQgdGhlbSBv biBib3RoIHRoZSBjbGllbnQgYW5kIHRoZSBzZXJ2ZXIgdG8gYmVoYXZlIHRoZSBzYW1lIHdheS4N Cj4gVGhhdCBzaG91bGRuJ3QgYmUgdG9vIGhhcmQgb24gdGhlIHNlcnZlciBzaW5jZSBleGVjdXRl KHRpbWVvdXQpIGNhbiBqdXN0DQo+IGNhbGwgZ2V0UmVzdWx0KHRpbWVvdXQpIGludGVybmFsbHku DQoNCldlIGhhdmUgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhhdCwgY3VycmVudGx5LCB0aGUgdGlt ZW91dCBpbiBleGVjdXRlKCkgDQppcyBub3QgdGhlIHNhbWUgdGhpbmcgYXMgdGhlIHRpbWVvdXQg aW4gZ2V0UmVzdWx0KCkuDQoNCk9uIHRoZSBvbmUgaGFuZCwgdGhlIHRpbWVvdXQgc2V0IGluIGV4 ZWN1dGUoKSAodmlhIFN5c3RlbSBwcm9wZXJ0eSBpbiANCnRoZSBKYXZhIGNsaWVudCwgYW5kIHdp dGggYSBwYXJhbWV0ZXIgaW4gdGhlIG5hdGl2ZSBjbGllbnQpIHNldHMgYSANCnJlYWR0aW1lb3V0 IG9uIHRoZSBzb2NrZXQgd2hpY2gganVzdCBtZWFucyB0aGF0IGlmIG5vdGhpbmcgaXMgcmVhZCBm cm9tIA0KdGhlIHNvY2tldCBhZnRlciBzZW5kaW5nIHRoZSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIg Zm9yIHRoZSBnaXZlbiANCnRpbWVvdXQsIHRoZSBjb3JyZXNwb25kaW5nIGV4Y2VwdGlvbiB3aWxs IGJlIHRocm93bi4gSXQgbG9va3MgdG8gbWUgbW9yZSANCmxpa2UgYSBwcm90ZWN0aW9uIGFnYWlu c3QgcG9zc2libGUgY29tbXVuaWNhdGlvbiBmYWlsdXJlcyByYXRoZXIgdGhhbiBhIA0KbWVjaGFu aXNtIHRvIGRlY2lkZSBpZiByZXN1bHRzIHRvb2sgdG9vIGxvbmcgdG8gYmUgcHJvdmlkZWQuIFNv IEkgd291bGQgDQpub3QgbGluayB0aGUgcHJlc2VuY2Ugb2YgdGhlIHRpbWVvdXQgcGFyYW1ldGVy IGluIHRoZSBtZXRob2QgdG8gdGhlIA0KbmF0dXJlIG9mIHRoZSBtZXRob2QgKGJsb2NraW5nIG9y IG5vbi1ibG9ja2luZykuIEkgdGhpbmsgd2UgY291bGQgaGF2ZSANCnRoaXMgcmVhZCB0aW1lb3V0 IHNldCBhbmQgYXQgdGhlIHNhbWUgdGltZSBrZWVwIHRoYXQgbWV0aG9kIGFzIG5vbi1ibG9ja2lu Zy4NCg0KT24gdGhlIG90aGVyIGhhbmQsIHRoZSB0aW1lb3V0IHNldCBpbiBnZXRSZXN1bHQoKSBp cyBhIHRpbWVvdXQgdG8gd2FpdCANCmZvciBhbGwgdGhlIHJlc3VsdHMgdG8gYmUgcmVjZWl2ZWQg ZnJvbSB0aGUgbW9tZW50IHRoZSBtZXRob2QgaXMgaW52b2tlZC4NCg0KVGhlcmVmb3JlLCBJIHdv dWxkIG5vdCBpbXBsZW1lbnQgdGhlIGJsb2NraW5nIHZlcnNpb24gb2YgZXhlY3V0ZSgpIG9uIA0K dGhlIHNlcnZlciBieSBjYWxsaW5nIGdldFJlc3VsdCgpIGF0IHRoZSBlbmQuDQoNCkFwYXJ0IGZy b20gdGhhdCwgSSBkb3VidCBpZiBpdCB3b3VsZCBtYWtlIHNlbnNlIHRvIHNldCB0aGlzIHJlYWRU aW1lb3V0IA0KaW4gdGhlIGV4ZWN1dGUoKSBtZXRob2RzIGZyb20gc2VydmVycyBnaXZlbiB0aGF0 IHRoZSBjb21tdW5pY2F0aW9uIGlzIA0KdmVyeSBkaWZmZXJlbnQgdG8gdGhlIG9uZSBkb25lIHdp dGggY2xpZW50cy4gSSBhbHNvIGRvdWJ0IHRoYXQgYW55b25lIA0Kd291bGQgYmUgaW50ZXJlc3Rl ZCBpbiB0aGUgYmxvY2tpbmcgdmVyc2lvbiBvZiBleGVjdXRlKCkgb24gdGhlIHNlcnZlci4NCg0K TXkgcHJvcG9zYWwgd2FzIHRvIGFkZCB0aGUgcmVhZHRpbWVvdXQgdG8gdGhlIGV4ZWN1dGUoKSBt ZXRob2RzIGluIHRoZSANCkphdmEgY2xpZW50IGluIG9yZGVyIHRvIGFsaWduIHRoZSBKYXZhIGNs aWVudCBhbmQgdGhlIG5hdGl2ZSBjbGllbnQuIA0KVGhpcyBjaGFuZ2Ugd291bGQgYmUgaW5kZXBl bmRlbnQgdG8gdGhlIGRlY2lzaW9uIHdlIG1ha2UgcmVnYXJkaW5nIHRoZSANCmNoYW5nZSBvZiBl eGVjdXRlKCkgdG8gbm9uLWJsb2NraW5nLiBUbyBhY2hpZXZlIHRoaXMgYWxpZ25tZW50LCANCmFs dGVybmF0aXZlbHksIHdlIGNvdWxkIHJlbW92ZSB0aGUgdGltZW91dCBwYXJhbWV0ZXIgaW4gZXhl Y3V0ZSgpIGZyb20gDQp0aGUgbmF0aXZlIGNsaWVudHMgYW5kIGhhdmUgaXQgYXMgYSBnbG9iYWwg cHJvcGVydHkgZm9yIHRoZSBjbGllbnQgdG8gYmUgDQpzZXQgYnkgd2hhdGV2ZXIgbWVjaGFuaXNt IGF2YWlsYWJsZSBhcyBpdCBpcyBkb25lIGluIHRoZSBKYXZhIGNsaWVudCB0b2RheS4NCg0KV2Vy ZSB5b3UgcHJvcG9zaW5nIHRoYXQgdGhlIGV4ZWN1dGUoKSBtZXRob2RzIHdpdGggdGltZW91dCB3 ZXJlIGJsb2NraW5nIA0KYW5kIHRoZSBvbmVzIHdpdGhvdXQgdGltZW91dCBub24tYmxvY2tpbmc/ IE5vdCBzdXJlIGlmIHRoaXMgaXMgc29tZXRoaW5nIA0KeW91IG1lYW50Lg0KDQo+DQo+IEZvciAo MikgLSBBbHRob3VnaCBJIHRoaW5rIHRoZSBvcmlnaW5hbCBhdXRob3JzIG9mIHRoaXMgQVBJIHBy b2JhYmx5IGRpZA0KPiBpbnRlbmQgZm9yIGV4ZWN1dGUoKSB0byBiZSBub24tYmxvY2tpbmcsIHRo ZSBmYWN0IGlzIHRoYXQgaXQgZG9lcyBibG9jayBvbg0KPiB0aGUgY2xpZW50IGFuZCBtb3N0IHVz ZXJzIGFyZSBwcm9iYWJseSBjYWxsaW5nIGV4ZWN1dGUgZnJvbSBhIGNsaWVudC4gU28gSQ0KPiBk byBhZ3JlZSB3ZSBwcm9iYWJseSBzaG91bGRuJ3QgY2hhbmdlIHRoZSBiZWhhdmlvciBhdCB0aGlz IHBvaW50LiBQZXJoYXBzDQo+IHdlIGNhbiBqdXN0IGNsZWFybHkgZG9jdW1lbnQgdGhlIGN1cnJl bnQgYmVoYXZpb3Igb2YgZXhlY3V0ZSgpIGFzIHBhcnQgb2YNCj4gYWRkaW5nIHRoZXNlIG5ldyBt ZXRob2RzLiBHb2luZyBmb3J3YXJkIHdlIGNhbiBhZGQgbmV3IG1ldGhvZHMgdG8gRXhlY3V0aW9u DQo+IHRoYXQgYXJlIGNsZWFybHkgbm9uLWJsb2NraW5nIChzdWJtaXQ/LCBpbnZva2U/KSBhbmQg aW1wbGVtZW50IHRoZW0NCj4gY29uc2lzdGVudGx5IG9uICpib3RoKiB0aGUgY2xpZW50IGluIHRo ZSBzZXJ2ZXIsIGJ1dCB0aGF0IGRvZXNuJ3QgaGF2ZSB0bw0KPiBiZSBpbiB0aGUgc2NvcGUgb2Yg dGhpcyBwcm9wb3NhbC4NCg0KVGhlIHByb2JsZW0gSSBzZWUgd2l0aCBhZGRpbmcgbmV3IG5vbi1i bG9ja2luZyBtZXRob2RzIChuZXcvc3VibWl0Li4uKSANCmlzIHRoYXQgaXQgd291bGQgYmUgYSBz b2x1dGlvbiBmb3IgdGhlIGN1cnJlbnQgdXNlcnMgb2YgdGhlIGNsaWVudCANCnJlZ2FyZGluZyBi YWNrd2FyZHMgY29tcGF0aWJpbGl0eS4gQnV0LCBvbiB0aGUgc2VydmVyIHNpZGUsIHdlIHdvdWxk IA0KaGF2ZSB0byBtb3ZlIHRoZSBjdXJyZW50IGxvZ2ljIG9mIGV4ZWN1dGUoKSB3aGljaCBpcyBu b24tYmxvY2tpbmcgdG8gdGhlIA0KbmV3IG1ldGhvZHMgYW5kIGNoYW5nZSB0aGUgY3VycmVudCBl eGVjdXRlKCkgYmVoYXZpb3IgdG8gYmxvY2tpbmcuIFdlIA0Kd291bGQgbm90IGltcGFjdCB0aGUg dXNlcnMgb2YgdGhlIGNsaWVudCBidXQgd2Ugd291bGQgaW1wYWN0IHRoZSB1c2VycyANCm9mIHRo ZSBzZXJ2ZXIuDQoNCkFnYWluLCBJIHdvdWxkIHByb3Bvc2UgdG8gYWltIGF0Og0KDQphKSBlaXRo ZXIgbGVhdmUgZXhlY3V0ZSgpIG9uIHRoZSBjbGllbnQgYXMgYmxvY2tpbmcNCg0KYikgb3IgY2hh bmdlIGV4ZWN1dGUoKSBvbiB0aGUgY2xpZW50IHRvIGJlIG5vbi1ibG9ja2luZyBidXQgb24gdGhl IEdlb2RlIA0KcmVsZWFzZSB0aGlzIGlzIGludHJvZHVjZWQsIGhhdmUgaXQgY29uZmlndXJhYmxl LiBUaGUgZGVmYXVsdCBiZWhhdmlvciANCndvdWxkIGJlIGJsb2NraW5nIChkZXByZWNhdGVkIGJl aGF2aW9yKSBidXQgY291bGQgYmUgc2V0IHRvIG5vbi1ibG9ja2luZyANCndpdGggYSBzeXN0ZW0g cHJvcGVydHkuIE9uIHRoZSBuZXh0IHJlbGVhc2UsIHRoZSBibG9ja2luZyBiZWhhdmlvciB3b3Vs ZCANCmJlIHJlbW92ZWQuDQoNCi0gQWxiZXJ0byBHLg0KDQo+IC1EYW4NCj4NCj4gT24gRnJpLCBB dWcgMjMsIDIwMTkgYXQgNDoyOCBBTSBBbGJlcnRvIEdvbWV6IDxhbGJlcnRvLmdvbWV6QGVzdC50 ZWNoPg0KPiB3cm90ZToNCj4NCj4+IEhpIEpha2UsDQo+Pg0KPj4gUGxlYXNlLCBzZWUgbXkgYW5z d2VycyBiZWxvdy4NCj4+DQo+PiBPbiAyMi84LzE5IDIxOjE2LCBKYWNvYiBCYXJyZXR0IHdyb3Rl Og0KPj4+PiBPbiBBdWcgMjEsIDIwMTksIGF0IDg6NDkgQU0sIEFsYmVydG8gR29tZXogPGFsYmVy dG8uZ29tZXpAZXN0LnRlY2g+DQo+PiB3cm90ZToNCj4+Pj4gMi4gVGltZW91dCBpbiBSZXN1bHRD b2xsZWN0b3I6OmdldFJlc3VsdCgpIGFuZCBFeGVjdXRpb246OmV4ZWN1dGUoKQ0KPj4gYmxvY2tp bmcNCj4+Pj4gUmVnYXJkaW5nIHRoZSB0aW1lb3V0IGluIHRoZSBSZXN1bHRDb2xsZWN0b3I6Omdl dFJlc3VsdCgpIG1ldGhvZA0KPj4gcHJvYmxlbSBhbmQgdGhlIGJsb2NraW5nL25vbi1ibG9ja2lu ZyBjb25mdXNpb24gZm9yIEV4ZWN1dGlvbjo6ZXhlY3V0ZSgpDQo+PiB0d28gYWx0ZXJuYXRpdmVz IGFyZSBjb25zaWRlcmVkOg0KPj4+PiBhKSBSZW1vdmUgdGhlIHBvc3NpYmlsaXR5IG9mIHNldHRp bmcgYSB0aW1lb3V0IG9uIHRoZQ0KPj4gUmVzdWx0Q29sbGVjdG9yOjpnZXRSZXN1bHQoKSBtZXRo b2Qgb24gdGhlIGNsaWVudCBzaWRlIGFzIHdpdGggdGhlIGN1cnJlbnQNCj4+IGNsaWVudCBpbXBs ZW1lbnRhdGlvbiBpdCBpcyB1c2VsZXNzLiBUaGlzIGNvdWxkIGJlIGRvbmUgYnkgcmVtb3Zpbmcg dGhlDQo+PiBtZXRob2Qgd2l0aCB0aGUgdGltZW91dCBwYXJhbWV0ZXIgZnJvbSB0aGUgcHVibGlj IEFQSS4NCj4+Pj4gSXQgd291bGQgYmUgYWR2aXNhYmxlIHRvIG1ha2UgZXhwbGljaXQgaW4gdGhl IGRvY3VtZW50YXRpb24gdGhhdCB0aGUNCj4+IGdldFJlc3VsdCgpIG1ldGhvZCBkb2VzIG5vdCB3 YWl0IGZvciByZXN1bHRzIHRvIGFycml2ZSBhcyB0aGF0IHNob3VsZCBoYXZlDQo+PiBhbHJlYWR5 IGJlZW4gZG9uZSBpbiB0aGUgRXhlY3V0aW9uOjpleGVjdXRlKCkgaW52b2NhdGlvbi4NCj4+Pj4g VGhpcyBhbHRlcm5hdGl2ZSBpcyB2ZXJ5IHNpbXBsZSBhbmQgd291bGQga2VlcCB0aGluZ3MgcHJl dHR5IG11Y2ggYXMNCj4+IHRoZXkgYXJlIHRvZGF5Lg0KPj4+IFRvIGJlIGhvbmVzdCBJIHRoaW5r IGFwcHJvYWNoIHdvdWxkIGdvIGFnYWluc3Qgd2hhdCBhIHVzZXIg4oCcdGhpbmtz4oCdIGlzDQo+ PiBnb2luZyBvbi4gR2l2ZW4gdGhhdCB0aGVyZSBoYXNu4oCZdCBiZWVuIGEgdGltZW91dCBvbiBl eGVjdXRlIEkgYXNzdW1lZCBpdA0KPj4gd2FzIGFzeW5jaHJvbm91cyBhbmQgdGhhdCB0aGUgZ2V0 UmVzdWx0IGJsb2NrZWQgdW50aWwgdGltZW91dCBvciByZXN1bHRzDQo+PiBhcnJpdmVkLiBUeXBp Y2FsbHkgdGhlc2UgdHdvIGNhbGxzIHdlcmUgZG9uZSBiYWNrIHRvIGJhY2suDQo+Pg0KPj4gWW91 IGFyZSByaWdodCBpZiB5b3UgbG9vayBhdCB0aGUgSmF2YSBjbGllbnQuIEJ1dCBpZiB5b3UgbG9v ayBhdCB0aGUNCj4+IG5hdGl2ZSBjbGllbnRzLCB0aGUgdGltZW91dCBpcyB0aGVyZSwgYm90aCBp biB0aGUgQysrIGFuZCB0aGUgQyMgY2FzZXMNCj4+IHdoaWNoIHdvdWxkIGluZGljYXRlIHRoYXQg aXQgaXMgYSBibG9ja2luZyBjYWxsLg0KPj4NCj4+IFNlZQ0KPj4NCj4+IGh0dHBzOi8vZ2VvZGUu YXBhY2hlLm9yZy9yZWxlYXNlcy9sYXRlc3QvY3BwZG9jcy9hMDA3MjUuaHRtbCNhYTkxOGE1ZTE5 Mzc0NTk1MGUxMmNhNGZlYjljNWQ3NzYNCj4+IGFuZA0KPj4NCj4+IGh0dHBzOi8vZ2VvZGUuYXBh Y2hlLm9yZy9yZWxlYXNlcy9sYXRlc3QvZG90bmV0ZG9jcy9hMDA4ODIuaHRtbCNhZTBhODE0MDQ5 NDgyY2E0MjRmODljMTNhYjEwOTljM2QNCj4+Pj4gYikgVHJhbnNmb3JtIHRoZSBFeGVjdXRpb246 OmV4ZWN1dGUoKSBtZXRob2Qgb24gdGhlIGNsaWVudCBzaWRlIGludG8gYQ0KPj4gbm9uLWJsb2Nr aW5nIG1ldGhvZC4NCj4+Pj4gVGhpcyBhbHRlcm5hdGl2ZSBpcyBtb3JlIGNvbXBsZXggYW5kIHJl cXVpcmVzIGNoYW5nZXMgaW4gYWxsIHRoZQ0KPj4gY2xpZW50cy4gQXBhcnQgZnJvbSB0aGF0IGl0 IGhhcyBpbXBsaWNhdGlvbnMgb24gdGhlIHB1YmxpYyBjbGllbnQgQVBJIGl0DQo+PiByZXF1aXJl cyBtb3ZpbmcgdGhlIGV4Y2VwdGlvbnMgb2ZmZXJlZCBjdXJyZW50bHkgYnkgdGhlDQo+PiBFeGVj dXRpb246OmV4ZWN1dGUoKSBtZXRob2QgdG8gdGhlIFJlc3VsdENvbGxlY3Rvcjo6Z2V0UmVzdWx0 KCkgYW5kIG5ldw0KPj4gdGhyZWFkcyB3aWxsIGhhdmUgdG8gYmUgbWFuYWdlZC4NCj4+PiBJIHRo aW5rIHRoaXMgaXMgbW9yZSBpbiBsaW5lIHdpdGggd2hhdCB1c2VycyBleHBlY3QgaXMgZ29pbmcg b24gYmFzZWQgb24NCj4+IHRoZSBjdXJyZW50IEFQSSwgSSBrbm93IEkgaGF2ZS4gSWYgd2VyZSBh cmUgZ29pbmcgdG8gbWFrZSBhbnkgY2hhbmdlIEkNCj4+IHRoaW5rIHRoaXMgaXMgdGhlIG9uZS4g SSBkb27igJl0IHRoaW5rIHRoZSBiZWhhdmlvciBjaGFuZ2UgaXMgYSBwcm9ibGVtIHNpbmNlDQo+ PiBpdCdzIHdoYXQgaXMgZXhwZWN0ZWQgdG8gYmUgaGFwcGVuaW5nIGFueXdheS4NCj4+Pj4gQW4g b3V0bGluZSBvZiBhIHBvc3NpYmxlIGltcGxlbWVudGF0aW9uIGZvciBvcHRpb24gYikgd291bGQg YmU6DQo+Pj4+DQo+Pj4+ICAgICogICBJbnN0ZWFkIG9mIGludm9raW5nIHRoZSBTZXJ2ZXJSZWdp b25Qcm94eTo6ZXhlY3V0ZUZ1bmN0aW9uKCkNCj4+IGRpcmVjdGx5IGFzIGl0IGlzIGRvbmUgdG9k YXksIGNyZWF0ZSBhIEZ1dHVyZSB0aGF0IGludm9rZXMgdGhpcyBtZXRob2QgYW5kDQo+PiByZXR1 cm5zIHRoZSByZXN1bHRDb2xsZWN0b3IgcGFzc2VkIGFzIHBhcmFtZXRlci4NCj4+PiBEbyB5b3Ug cmVhbGx5IHRoaW5rIHdlIG5lZWQgdG8gaW50cm9kdWNlIEZ1dHVyZXMgaGVyZSBpbnRvIHRoZSBB UEk/IEkNCj4+IGZlZWwgbGlrZSB0aGUgUmVzdWx0Q29sbGVjdG9yIGFjdHMgYXMgdGhlIEZ1dHVy ZS4gSSBkb27igJl0IHRoaW5rIGFueSBjaGFuZ2UNCj4+IG5lZWRzIHRvIGJlIG1hZGUgdG8gdGhl IEFQSSBpbiB0aGlzIHJlZ2FyZC4gVGhlIFJlc3VsdENvbGxlY3Rvcg0KPj4gaW1wbGVtZW50YXRp b24gd291bGQganVzdCBzaW1wbHkgYmxvY2sgYXMgaW1wbGllZCBieSB0aGUgYXBpIGZvciB0aGUN Cj4+IHRpbWVvdXQgcGVyaW9kLiBJIHdvdWxkIGNoYW5nZSB0aGUgbWV0aG9kIHRvIGhhdmUgdW5p dHMgdGhvdWdoIGFuZA0KPj4gZGVwcmVjYXRlIHRoZSBtZXRob2Qgd2l0aG91dCB1bml0cy4NCj4+ DQo+PiBJIGRpZCBub3QgbWVhbiB0byBpbnRyb2R1Y2UgRnV0dXJlcyBpbiB0aGUgQVBJLiBNeSBp ZGVhIHdhcyB0byB1c2UgSmF2YQ0KPj4gRnV0dXJlcyBpbnRlcm5hbGx5IHNvIHRoYXQgdGhlIFJl c3VsdENvbGxlY3RvciByZXR1cm5lZCBieSB0aGUNCj4+IGdldFJlc3VsdCgpIG1ldGhvZCB3b3Vs ZCB3cmFwIHRoZSBKYXZhIEZ1dHVyZSB3aXRoIHRoZSBSZXN1bHRDb2xsZWN0b3INCj4+IHRoYXQg d291bGQgYWN0dWFsbHkgaG9sZCB0aGUgcmVzdWx0Lg0KPj4NCj4+IEFuIGFsdGVybmF0aXZlIHdv dWxkIGJlIHRvIGxlYXZlIHRoZSBsb2dpYyBvZiBibG9ja2luZyB0byBlYWNoDQo+PiBpbXBsZW1l bnRhdGlvbiBSZXN1bHRDb2xsZWN0b3IuIEluIHRoZSBjYXNlIG9mIHRoZQ0KPj4gRGVmYXVsdFJl c3VsdENvbGxlY3Rvciwgd2UgY291bGQgdXNlIGEgQ291bnREb3duTGF0Y2ggdGhhdCB3b3VsZCBi ZQ0KPj4gZGVjcmVtZW50ZWQgd2hlbiBlbmRSZXN1bHRzKCkgaXMgY2FsbGVkIGFuZCB0aGF0IHdv dWxkIG1ha2UgZ2V0UmVzdWx0KCkNCj4+IGJsb2NrIGJ5IHVzaW5nIENvdW50RG93bi5hd2FpdCgu Li4pLg0KPj4NCj4+IFRoZSBhZHZhbnRhZ2Ugb2YgdXNpbmcgRnV0dXJlcyBpbnRlcm5hbGx5IGlz IHRoYXQgdGhlIGJsb2NraW5nIGxvZ2ljDQo+PiB3b3VsZCBub3QgaGF2ZSB0byBiZSBpbXBsZW1l bnRlZCBvbiBldmVyeSBSZXN1bHRDb2xsZWN0b3IgaW1wbGVtZW50YXRpb24uDQo+Pg0KPj4+IC1K YWtlDQo+Pj4NCj4+Pg0KPj4gLSBBbGJlcnRvDQo+Pg0K