From dev-return-2469-archive-asf-public=cust-asf.ponee.io@openwhisk.apache.org Thu Aug 23 00:34:00 2018 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 [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 628B7180662 for ; Thu, 23 Aug 2018 00:33:59 +0200 (CEST) Received: (qmail 97312 invoked by uid 500); 22 Aug 2018 22:33:58 -0000 Mailing-List: contact dev-help@openwhisk.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openwhisk.apache.org Delivered-To: mailing list dev@openwhisk.apache.org Received: (qmail 97291 invoked by uid 99); 22 Aug 2018 22:33:57 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 22 Aug 2018 22:33:57 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 460ACC636E for ; Wed, 22 Aug 2018 22:33:57 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.112 X-Spam-Level: X-Spam-Status: No, score=-0.112 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (1024-bit key) header.d=adobe.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id EhM7JrZXCf5D for ; Wed, 22 Aug 2018 22:33:55 +0000 (UTC) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0044.outbound.protection.outlook.com [104.47.38.44]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id E554C5F2AD for ; Wed, 22 Aug 2018 22:33:54 +0000 (UTC) Received: from CO1PR02MB112.namprd02.prod.outlook.com (10.242.164.27) by CO1PR02MB096.namprd02.prod.outlook.com (10.242.163.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.1080.13; Wed, 22 Aug 2018 22:33:46 +0000 Received: from CO1PR02MB112.namprd02.prod.outlook.com ([fe80::195f:4267:50e1:b91f]) by CO1PR02MB112.namprd02.prod.outlook.com ([fe80::195f:4267:50e1:b91f%18]) with mapi id 15.20.1059.023; Wed, 22 Aug 2018 22:33:46 +0000 From: Tyson Norris To: "dev@openwhisk.apache.org" Subject: Re: Kafka and Proposal on a future architecture of OpenWhisk Thread-Topic: Kafka and Proposal on a future architecture of OpenWhisk Thread-Index: AQHUNne2PlnqwhhxlEGvB2Wt8Ke7Y6TEqhSAgAJI4wCAAjoHgIAAtKAAgAHvLwCAAHioAP//lNwAgAB6WID//5VugA== Date: Wed, 22 Aug 2018 22:33:46 +0000 Message-ID: References: <7E0959FF-737B-4285-AD02-08C1BEA79C76@gmail.com> <2E9F5594-7A74-4CCA-A38C-A21525054FAB@adobe.com> <4CCC0377-E0D6-47EE-9108-B1C03EF2C17B@adobe.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/10.10.0.180812 authentication-results: spf=none (sender IP is ) smtp.mailfrom=tnorris@adobe.com; x-originating-ip: [192.150.10.202] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CO1PR02MB096;6:OGmsItd/bbHNNoMPxt3eDz22aorOnNRgw2dgwXvZE+9Kydmpc1wBxcQjOhDqWFar0INupNLZhocBtLK1wZSGRPNtl3JiAQJYYhowjMn4gfNDt2MNsDtSbkLTWhCWhdFYElYUVALgYhEq3+i5h0e7CkEeP91V5Md7tBZFeGFcJqhORmXCaYxTht29xz51OFegma//l5xt6m8mClTqtOvxeKEC/Rg6sRT8Cp2yKsSmZXUPZzK7jDQrMw0EBSRz38ad3sS9H3zngdVEq7tJGqOp55spfjkL8YsZmw1WPwwgdxQXIaWB7QMK+FN8MZZSh/hrqWSGA1ykhVupaMSWvRX7LxJdii8bpiTMqeJHLo+91JQV9d138w0ZtfJyVM0zvRyXmYt25u2SdZ3km5dFO+4eb+xKmeJaEfxKTLE/XeyK+2xa9t9B6K6cVVMXI68PHnJe1FOjHz3yUrm+ABEtWUdBpg==;5:f0oDRwWgei7fpDxy9i9kKfvuze16MKanc0I+dEqIF2imgqjYm6JvAJk7imIh+Bgl6Po+bzWyciEhBMm/ZvEUVRBkNAI7pfxLQ69pw8tETFS++SJ2Zi53SrjKAN7l27J8EpO1zwyqumezOjdnZdmLEZfuAkHrbj5fJvgvoZoDH9A=;7:PgFtuXdKGIlKWCMRn3uwTzSEojgC2WzRAOegc2akx5HcxpyN/NmQbDWlVBCiUB/FyCZuo8A3HygFItvQFadZf49ljPTZCbWLcHFohV8DpQkzhUxcZ8z2p2Xrm3sdoZrHV5gB7GOHxsUcQwYZ4GkZwfYRct+4ALy0RvdCHC9bFZkHjx3GRO5BFqhKCsosENh76plOr2Jto/hhW5W0s+6IXSDgxb7ysqnT0w9/Vih4CpGedE5IJaw59YWS49mEzPT4 x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 5c4ef806-400b-4b2d-c698-08d6087f52fa x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);SRVR:CO1PR02MB096; x-ms-traffictypediagnostic: CO1PR02MB096: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(158342451672863); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231311)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(201708071742011)(7699016);SRVR:CO1PR02MB096;BCL:0;PCL:0;RULEID:;SRVR:CO1PR02MB096; x-forefront-prvs: 0772E5DAD5 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(346002)(366004)(136003)(376002)(396003)(189003)(199004)(51914003)(51234002)(33656002)(102836004)(26005)(68736007)(93886005)(6486002)(2501003)(186003)(486006)(25786009)(229853002)(14454004)(8936002)(11346002)(5640700003)(8676002)(446003)(6506007)(6246003)(76176011)(6436002)(1730700003)(476003)(97736004)(561944003)(6512007)(83716003)(36756003)(2616005)(256004)(10090500001)(5250100002)(14444005)(58126008)(82746002)(6916009)(316002)(99286004)(3846002)(105586002)(106356001)(5660300001)(66066001)(7736002)(2351001)(81166006)(53936002)(2900100001)(305945005)(478600001)(81156014)(86362001)(2906002)(6116002);DIR:OUT;SFP:1101;SCL:1;SRVR:CO1PR02MB096;H:CO1PR02MB112.namprd02.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: adobe.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: ZO/egYYgQg/rKSTMEmmSN7JgJx6Lqi8SmJX7gfUIDBsvABX0s815qAu0Do0OHEGAaQsqpjmD1XLv+3eTWzYjrJSBCR6ZvxKR+vNp8g+8F69OXN4zk288owOzPaa0jA+g2DfIy7Ovikc68ZpNpRuAONBQR4Po7pEIN8shXaRlhcC02oY6nJHXDMK7RY7lbslcexe7JH0AMFgmW5b0z4T8tS00F1/7dUaVWZTy4l5oMnFliQbPQXAktRZEsWCcZ6U26aaY368SZqSA6oHnsSs+7BU+oWQkl9d2MrQmMXaXJMBCwDz+XBkiPTnAfj7bfI0ap3dsrF/t2zlRPohZRDQrxaF+OoMFxMpIff0wQagVRLk= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <2083338062FC104086B16E1C083663C2@namprd02.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: adobe.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c4ef806-400b-4b2d-c698-08d6087f52fa X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2018 22:33:46.3820 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fa7b1b5a-7b34-4387-94ae-d2c178decee1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR02MB096 SGkgLSB0aGFua3MgZm9yIHRoZSBkaXNjdXNzaW9uISBNb3JlIGlubGluZS4uLg0KDQrvu79PbiA4 LzIyLzE4LCAyOjU1IFBNLCAiTWFya3VzIFRow7ZtbWVzIiA8bWFya3VzdGhvZW1tZXNAYXBhY2hl Lm9yZz4gd3JvdGU6DQoNCiAgICBIaSBUeXNvbiwNCiAgICANCiAgICBBbSBNaS4sIDIyLiBBdWcu IDIwMTggdW0gMjM6MzcgVWhyIHNjaHJpZWIgVHlzb24gTm9ycmlzDQogICAgPHRub3JyaXNAYWRv YmUuY29tLmludmFsaWQ+Og0KICAgIA0KICAgID4gSGkgLQ0KICAgID4gICAgID4NCiAgICA+ICAg ICA+IFdoZW4gZXhhY3RseSBpcyB0aGUgY2FzZSB0aGF0IGEgQ29udGFpbmVyUm91dGVyIHNob3Vs ZCBwdXQgYSBibG9ja2luZw0KICAgID4gICAgID4gYWN0aXZhdGlvbiB0byBhIHF1ZXVlIGZvciBz dGVhbGluZz8gU2luY2UgYSkgaXQgaXMgbm90IHNwYXduaW5nDQogICAgPiBjb250YWluZXJzDQog ICAgPiAgICAgPiBhbmQgYikgaXQgaXMgbm90IHBhcnNpbmcgcmVxdWVzdC9yZXNwb25zZSBib2Rp ZXMsIGNhbiB3ZSBzYXkgdGhpcw0KICAgID4gd291bGQNCiAgICA+ICAgICA+IG9ubHkgaGFwcGVu IHdoZW4gYSBDb250YWluZXJSb3V0ZXIgbWF4ZXMgb3V0IGl0cyBpbmNvbWluZyByZXF1ZXN0DQog ICAgPiBoYW5kbGluZz8NCiAgICA+ICAgICA+DQogICAgPg0KICAgID4gICAgIFRoYXQncyBleGFj dGx5IHRoZSBpZGVhISBUaGUgd29yay1zdGVhbGluZyBxdWV1ZSB3aWxsIG9ubHkgYmUgdXNlZCBp Zg0KICAgID4gdGhlDQogICAgPiAgICAgUm91dGVyIHdoZXJlIHRvIHJlcXVlc3QgbGFuZGVkIGNh bm5vdCBzZXJ2ZSB0aGUgZGVtYW5kIHJpZ2h0IG5vdy4gRm9yDQogICAgPiAgICAgZXhhbXBsZSwg aWYgaXQgbWF4ZWQgb3V0IHRoZSBzbG90cyBpdCBoYXMgZm9yIGEgY2VydGFpbiBhY3Rpb24gKGFs bA0KICAgID4gICAgIGNvbnRhaW5lcnMgYXJlIHdvcmtpbmcgdG8gdGhlaXIgZnVsbCBleHRlbnQp IGl0IHJlcXVlc3RzIG1vcmUNCiAgICA+IHJlc291cmNlcyBhbmQNCiAgICA+ICAgICBwdXRzIHRo ZSByZXF1ZXN0LXRva2VuIG9uIHRoZSB3b3JrLXN0ZWFsaW5nIHF1ZXVlLg0KICAgID4NCiAgICA+ IFNvIHRvIGNsYXJpZnksIENvbnRhaW5lclJvdXRlciAibG9hZCIgKHdoaWNoIGNhbiB0cmlnZ2Vy IHVzZSBvZiBxdWV1ZSkgaXMNCiAgICA+IG1vc3RseSAob25seT8pIGJhc2VkIG9uOg0KICAgID4g KiB0aGUgbnVtYmVyIG9mIENvbnRhaW5lciByZWZlcmVuY2VzDQogICAgPiAqIHRoZSBudW1iZXIg b2Ygb3V0c3RhbmRpbmcgaW5ib3VuZCAgSFRUUCByZXF1ZXN0cywgZS5nLiB3aGVuIGxvdHMgb2YN CiAgICA+IHJlcXVlc3RzIGNhbiBiZSByb3V0ZWQgdG8gdGhlIHNhbWUgY29udGFpbmVyDQogICAg PiAqIHRoZSBudW1iZXIgb2Ygb3V0c3RhbmQgb3V0Ym91bmQgSFRUUCByZXF1ZXN0cyB0byByZW1v dGUgYWN0aW9uDQogICAgPiBjb250YWluZXJzIChhc3N1bWUgYWxsIGFyZSByZW1vdGUpDQogICAg PiBJdCBpcyB1bmNsZWFyIHRoZSBvcmRlciBvZiBtYWduaXR1ZGUgY29uc2lkZXJlZCBmb3IgIm1h eGVkIG91dCBzbG90cyIsDQogICAgPiBzaW5jZSBjb250YWluZXIgcmVmcyBzaG91bGQgYmUgc2lt cGxlIChsaWtlIGlwK3BvcnQsIGFjdGlvbiBtZXRhZGF0YSwNCiAgICA+IGFjdGl2YXRpb24gY291 bnQsIGFuZCB3YXJtIHN0YXRlKSwgaW5ib3VuZCBjb25uZWN0aW9uIGhhbmRsaW5nIGlzIGJhc2lj YWxseQ0KICAgID4gYSBodHRwIHNlcnZlciwgYW5kIG91dGJvdW5kIGlzIGEgY29ubmVjdGlvbiBw b29sIHBlciBhY3Rpb24gY29udGFpbmVyDQogICAgPiAobGV0J3MgcHJlc3VtZSBjb25uZWN0aW9u IHJldXNlIGZvciB0aGUgbW9tZW50KS4NCiAgICA+IEkgdGhpbmsgaXQgd2lsbCBjZXJ0YWlubHkg bmVlZCB0ZXN0aW5nIHRvIGRldGVybWluZSB0aGVzZSBhbmQgdG8gYmUNCiAgICA+IGNvbmZpZ3Vy YWJsZSBpbiBhbnkgY2FzZSwgZm9yIGVhY2ggb2YgdGhlc2Ugc2VwYXJhdGUgc3RhdHMuLiBJcyB0 aGVyZQ0KICAgID4gYW55dGhpbmcgZWxzZSB0aGF0IGFmZmVjdHMgdGhlIGxvYWQgZm9yIENvbnRh aW5lclJvdXRlcj8NCiAgICA+DQogICAgDQogICAgIk92ZXJsb2FkIiBpcyBkZXRlcm1pbmVkIGJ5 IHRoZSBhdmFpbGFiaWxpdHkgb2YgZnJlZSBzbG90cyBvbiBhbnkgY29udGFpbmVyDQogICAgYmVp bmcgYWJsZSB0byBzZXJ2ZSB0aGUgY3VycmVudCBhY3Rpb24gaW52b2NhdGlvbiAob3IgcmF0aGVy IHRoZSBhYnNlbmNlDQogICAgdGhlcmVvZikuIEFuIGV4YW1wbGU6DQogICAgU2F5IFJvdXRlckEg aGFzIDIgY29udGFpbmVycyBmb3IgYWN0aW9uIFguIEVhY2ggY29udGFpbmVyIGhhcyBhbiBhbGxv d2VkDQogICAgY29uY3VycmVuY3kgb2YgMTAuIE9uIGVhY2ggb2YgdGhvc2UgMiB0aGVyZSBhcmUg MTAgYWN0aXZlIGludm9jYXRpb25zDQogICAgYWxyZWFkeSBydW5uaW5nICh0aGUgQ29udGFpbmVy Um91dGVyIGtub3dzIHRoaXMsIHRoZXNlIGFyZSBvcGVuIGNvbm5lY3Rpb25zDQogICAgdG8gdGhl IGNvbnRhaW5lcnMpLiBJZiBhbm90aGVyIHJlcXVlc3QgY29tZXMgaW4gZm9yIFgsIHdlIGtub3cg d2UgZG9uJ3QNCiAgICBoYXZlIGNhcGFjaXR5IGZvciBpdC4gV2UgcmVxdWVzdCBtb3JlIHJlc291 cmNlcyBhbmQgb2ZmZXIgdGhlIHdvcmsgd2UgZ290DQogICAgZm9yIHN0ZWFsaW5nLg0KICAgIA0K ICAgIEkgZG9uJ3QgdGhpbmsgdGhlcmUgYXJlIHR3ZWFrcyBuZWVkZWQgaGVyZS4gVGhlIFJvdXRl ciBrZWVwcyBhbg0KICAgICJhY3RpdmVJbnZvY2F0aW9ucyIgbnVtYmVyIHBlciBjb250YWluZXIg YW5kIGNvbXBhcmVzIHRoYXQgdG8gdGhlIGFsbG93ZWQNCiAgICBjb25jdXJyZW5jeSBvbiB0aGF0 IGNvbnRhaW5lci4gSWYgYWN0aXZlSW52b2NhdGlvbnMgPT0gYWxsb3dlZENvbmN1cnJlbmN5DQog ICAgd2UncmUgb3V0IG9mIGNhcGFjaXR5IGFuZCBuZWVkIG1vcmUuDQogICAgDQogICAgV2UgbmVl ZCBhIHdvcmstc3RlYWxpbmcgcXVldWUgaGVyZSB0byBkeW5hbWljYWxseSByZWJhbGFuY2UgYmV0 d2VlbiB0aGUNCiAgICBSb3V0ZXJzIHNpbmNlIHRoZSBsYXllciBhYm92ZSB0aGUgUm91dGVycyBo YXMgbm8gaWRlYSBhYm91dCBjYXBhY2l0eSBhbmQNCiAgICAoYXQgbGVhc3QgdGhhdCdzIG15IGFz c3VtcHRpb24pIHNjaGVkdWxlcyByYW5kb21seS4NCiAgICANCkkgdGhpbmsgaXQgaXMgY29uZnVz aW5nIHRvIHNheSB0aGF0IHRoZSBDb250YWluZXJSb3V0ZXIgZG9lc24ndCBoYXZlIGNhcGFjaXR5 IGZvciBpdCAtIHJhdGhlciwgdGhlIGV4aXN0aW5nIHNldCBvZiBjb250aW5lcnMgaW4gdGhlIENv bnRhaW5lclJvdXRlciBkb24ndCBoYXZlIGNhcGFjaXR5IGZvciBpdC4gSSB1bmRlcnN0YW5kIG5v dywgaW4gYW55IGNhc2UuDQpTbyB0aGVyZSBhcmUgYSBjb3VwbGUgb2YgYWN0aXZlIHBhdGhzIGlu IENvbnRhaW5lclJvdXRlciwgc3RpbGwgb25seSBjb25zaWRlcmluZyBzeW5jL2Jsb2NraW5nIGFj dGl2YXRpb25zOg0KKiB3YXJtcGF0aCAtIHJ1biBpbW1lZGlhdGVseQ0KKiBjb2xkcGF0aCAtIHNl bmQgdG8gcXVldWUNCg0KQW5kIGVhY2ggQ29udGFpbmVyUm91dGVyIGhhcyBhIHF1ZXVlIGNvbnN1 bWVyIHRoYXQgcHJlc3VtYWJseSBwdWxscyBmcm9tIHRoZSBxdWV1ZSBjb25zdGFudGx5PyBPciBp cyBjb25zdW1wdGlvbiBiYXNlZCBvbiBzb21ldGhpbmcgZWxzZT8gSWYgYWxsIENvbnRhaW5lclJv dXRlcnMgYXJlIGNvbnN1bWluZyBhdCB0aGUgc2FtZSByYXRlLCB0aGVuIHdoaWxlIHRoaXMgZG9l cyBkaXN0cmlidXRlIHRoZSBsb2FkIGFjcm9zcyBDb250YWluZXJSb3V0ZXJzLCBpdCBkb2Vzbid0 IHJlYWxseSBndWFyYW50ZWUgYW55IHNpbWlsYXIgc3RhdGUgKG51bWJlciBvZiBjb250YWluZXJz LCBhY3RpdmUgY29ubmVjdGlvbnMsIGV0YykgYXQgZWFjaCBDb250YWluZXJSb3V0ZXIsIEkgdGhp bmsuIE1heWJlIEkgYW0gbWlzc2luZyBzb21ldGhpbmcgaGVyZT8NCiAgDQoNCg0KDQogICAgDQog ICAgPg0KICAgID4gICAgIFRoYXQgcmVxdWVzdC10b2tlbiB3aWxsIHRoZW4gYmUgdGFrZW4gYnkg YW55IFJvdXRlciB0aGF0IGhhcyBmcmVlDQogICAgPiBjYXBhY2l0eQ0KICAgID4gICAgIGZvciB0 aGF0IGFjdGlvbiAobm90ZTogdGhpcyBpcyBub3Qgc2ltcGxlIHdpdGgga2Fma2EsIGJ1dCBtaWdo dCBiZQ0KICAgID4gc2ltcGxlcg0KICAgID4gICAgIHdpdGggb3RoZXIgTVEgdGVjaG5vbG9naWVz KS4gU2luY2UgbmV3IHJlc291cmNlcyBoYXZlIGJlZW4gcmVxdWVzdGVkLA0KICAgID4gaXQgaXMN CiAgICA+ICAgICBndWFyYW50ZWVkIHRoYXQgb25lIFJvdXRlciB3aWxsIGV2ZW50dWFsbHkgYmVj b21lIGZyZWUuDQogICAgPg0KICAgID4gSXMgInJlcXVlc3RzIHJlc291cmNlcyIgaGVyZSByZXF1 ZXN0aW5nIG5ldyBhY3Rpb24gY29udGFpbmVycywgd2hpY2ggaXQNCiAgICA+IHdvbid0IGJlIGFi bGUgdG8gcHJvY2VzcyBpdHNlbGYgaW1tZWRpYXRlbHksIGJ1dCBzaG91bGQgc3RhcnR1cCArIHdh cm0gYW5kDQogICAgPiBiZSBwcm92aWRlZCB0byAiYW55IENvbnRhaW5lclJvdXRlciI/IFRoaXMg bWFrZXMsIHNlbnNlLCBqdXN0IHdhbnQgdG8NCiAgICA+IGNsYXJpZnkgdGhhdCAicmVzb3VyY2Vz ID09IGNvbnRhaW5lcnMiLg0KICAgID4NCiAgICANCiAgICBZZXMsIHJlc291cmNlcyA9PSBjb250 YWluZXJzLg0KICAgIA0KICAgIA0KICAgID4NCiAgICA+ICAgICA+DQogICAgPiAgICAgPiBJZiBD b250YWluZXJNYW5hZ2VyIGhhcyBlbm91Z2ggYXdhcmVuZXNzIG9mIENvbnRhaW5lclJvdXRlcnMn DQogICAgPiBzdGF0ZXMsIEknbQ0KICAgID4gICAgID4gbm90IHN1cmUgd2hlcmUgdXNpbmcgYSBx dWV1ZSB3b3VsZCBiZSB1c2VkIChmb3IgcmVkaXJlY3RpbmcgdG8gb3RoZXINCiAgICA+ICAgICA+ IENvbnRhaW5lclJvdXRlcnMpIHZzIENvbnRhaW5lck1hbmFnZXIgcmVzcG9uZGluZyB3aXRoIGEN CiAgICA+IENvbnRhaW5lclJvdXRlcnMNCiAgICA+ICAgICA+IHJlZmVyZW5jZSAoaW5zdGVhZCBv ZiBhbiBhY3Rpb24gY29udGFpbmVyIHJlZmVyZW5jZSkgLSBJJ20gbm90DQogICAgPiBmb2xsb3dp bmcNCiAgICA+ICAgICA+IHRoZSBsb2dpYyBvZiB0aGUgZWRnZSBjYXNlIGluIHRoZSBwcm9wb3Nh bCAtIHRoZXJlIGlzIG1lbnRpb24gb2YNCiAgICA+ICJ3aGljaA0KICAgID4gICAgID4gY29udHJv bGxlciB0aGUgcmVxdWVzdCBuZWVkcyB0byBnbyIsIGJ1dCBtYXliZSB0aGlzIGlzIGEgdHlwbyBh bmQNCiAgICA+IHNob3VsZA0KICAgID4gICAgID4gc2F5IENvbnRhaW5lclJvdXRlcj8NCiAgICA+ ICAgICA+DQogICAgPg0KICAgID4gICAgIEluZGVlZCB0aGF0J3MgYSB0eXBvLCBpdCBzaG91bGQg c2F5IENvbnRhaW5lclJvdXRlci4NCiAgICA+DQogICAgPiAgICAgVGhlIENvbnRhaW5lck1hbmFn ZXIgb25seSBrbm93cyB3aGljaCBSb3V0ZXIgaGFzIHdoaWNoIENvbnRhaW5lci4gSXQNCiAgICA+ IGRvZXMNCiAgICA+ICAgICBub3Qga25vdyB3aGV0aGVyIHRoZSByZXNwZWN0aXZlIFJvdXRlciBo YXMgY2FwYWNpdHkgb24gdGhhdCBjb250YWluZXINCiAgICA+ICh0aGUNCiAgICA+ICAgICBjYXBh Y2l0eSBtZXRyaWMgaXMgdmVyeSBoYXJkIHRvIHNoYXJlIHNpbmNlIGl0J3MgZXZlciBjaGFuZ2lu ZykuDQogICAgPg0KICAgID4gICAgIEhlbmNlLCBpbiBhbiBlZGdlLWNhc2Ugd2hlcmUgdGhlcmUg YXJlIGxlc3MgQ29udGFpbmVycyB0aGFuIFJvdXRlcnMsDQogICAgPiB0aGUNCiAgICA+ICAgICBD b250YWluZXJNYW5hZ2VyIGNhbiBoYW5kIG91dCByZWZlcmVuY2VzIHRvIHRoZSBSb3V0ZXJzIGl0 IGdhdmUNCiAgICA+IENvbnRhaW5lcnMNCiAgICA+ICAgICB0byB0aGUgUm91dGVycyB0aGF0IGhh dmUgbm9uZS4gKFRoaXMgaXMgdGhlIGVkZ2UtY2FzZSBkZXNjcmliZWQgaW4gdGhlDQogICAgPiAg ICAgcHJvcG9zYWwpLg0KICAgID4NCiAgICA+IEknbSBub3Qgc3VyZSB3aHkgaW4gdGhpcyBjYXNl IHRoZSBDb250YWluZXJNYW5hZ2VyIGRvZXMgbm90IGp1c3QgY3JlYXRlIGENCiAgICA+IG5ldyBj b250YWluZXIsIGluc3RlYWQgb2Ygc2VuZGluZyB0byBhbm90aGVyIFJvdXRlcj8gSWYgdGhlcmUg aXMgc29tZQ0KICAgID4gaW50ZW5kZWQgbGltaXQgb24gIm51bWJlciBvZiBjb250YWluZXJzIGZv ciBhIHBhcnRpY3VsYXIgYWN0aW9uIiwgdGhhdA0KICAgID4gd291bGQgYmUgYSByZWFzb24sIGJ1 dCBnaXZlbiB0aGF0IHRoZSBDb250YWluZXJNYW5hZ2VyIGNhbm5vdCBrbm93IHRoZQ0KICAgID4g c3RhdGUgb2YgdGhlIGV4aXN0aW5nIGNvbnRhaW5lcnMsIGl0IHNlZW1zIGxpa2Ugc2VuZGluZyB0 byBhbm90aGVyIFJvdXRlcg0KICAgID4gd2hpY2ggaGFzIHRoZSBjb250YWluZXIsIGJ1dCBtYXkg bm90IGJlIGFibGUgdG8gdXNlIGl0IGltbWVkaWF0ZWx5LCBtYXkNCiAgICA+IGNhdXNlIGZhaWx1 cmVzIGluIHNvbWUgY2FzZXMuDQogICAgPg0KICAgIA0KICAgIFRoZSBlZGdlLWNhc2UgaGVyZSBp cyBmb3IgdmVyeSBzbG93IGxvYWQuIEl0J3MgbWluaW1pemluZyB0aGUgYW1vdW50IG9mDQogICAg Q29udGFpbmVycyBuZWVkZWQuIEFub3RoZXIgZXhhbXBsZToNCiAgICBTYXkgeW91IGhhdmUgMyBS b3V0ZXJzLiBBIHJlcXVlc3QgZm9yIGFjdGlvbiBYIGNvbWVzIGluLCBnb2VzIHRvIFJvdXRlcjEu DQogICAgSXQgcmVxdWVzdHMgYSBjb250YWluZXIsIHB1dHMgdGhlIHdvcmsgb24gdGhlIHF1ZXVl LCBub2JvZHkgc3RlYWxzIGl0LCBhcw0KICAgIHNvb24gYXMgdGhlIENvbnRhaW5lciBnZXRzIHJl YWR5LCB0aGUgd29yayBpcyB0YWtlbiBmcm9tIHRoZSBxdWV1ZSBhbmQNCiAgICBleGVjdXRlZC4g QWxsIG5pY2UgYW5kIGRhbmR5Lg0KICAgIA0KICAgIEltcG9ydGFudCByZW1hcms6IFRoZSBSb3V0 ZXIgdGhhdCByZXF1ZXN0ZWQgbW9yZSBDb250YWluZXJzIGlzIG5vdA0KICAgIG5lY2Vzc2FyaWx5 IHRoZSBvbmUgdGhhdCdzIGdldHRpbmcgdGhlIENvbnRhaW5lcnMuIFdlIG5lZWQgdG8gbWFrZSBz dXJlIHRvDQogICAgZXZlbmx5IGRpc3RyaWJ1dGUgQ29udGFpbmVycyBhY3Jvc3MgdGhlIHN5c3Rl bS4NCiAgICANCiAgICBTbyBiYWNrIHRvIG91ciBleGFtcGxlOiBXaGF0IGhhcHBlbnMgaWYgcmVx dWVzdHMgZm9yIGFjdGlvbiBYIGFyZSBtYWRlIG9uZQ0KICAgIGFmdGVyIHRoZSBvdGhlcj8gV2Vs bCwgdGhlIGxheWVyIGFib3ZlIHRoZSBSb3V0ZXJzIChzb21ldGhpbmcgbmVlZHMgdG8NCiAgICBs b2FkYmFsYW5jZSB0aGVtLCBiZSBpdCBETlMgb3IgYW5vdGhlciB0eXBlIG9mIHJvdXRpbmcgbGF5 ZXIpIGlzbid0IGF3YXJlDQogICAgb2YgdGhlIGxvY2FsaXR5IG9mIHRoZSBDb250YWluZXIgdGhh dCB3ZSBjcmVhdGVkIHRvIGV4ZWN1dGUgYWN0aW9uIFguIEFzIGl0DQogICAgc2NoZWR1bGVzIGZh aXJseSByYW5kb21seSAocm91bmQtcm9iaW4gaW4gYSBtdWx0aS10ZW5hbnQgc3lzdGVtIGlzDQog ICAgZXNzZW50aWFsbHkgcmFuZG9tKSB0aGUgYWN0aW9uIHdpbGwgaGl0IGVhY2ggUm91dGVyIG9u Y2UgdmVyeSBzb29uLiBBcw0KICAgIHdlJ3JlIG9ubHkgZ2VuZXJhdGluZyBvbmUgcmVxdWVzdCBh ZnRlciB0aGUgb3RoZXIsIGFyZ3VhYmx5IHdlIG9ubHkgd2FudCB0bw0KICAgIGNyZWF0ZSBvbmx5 IG9uZSBjb250YWluZXIuDQogICAgDQogICAgVGhhdCdzIHdoeSBpbiB0aGlzIGV4YW1wbGUgdGhl IDIgcmVtYWluaW5nIFJvdXRlcnMgd2l0aCBubyBjb250YWluZXIgZ2V0IGENCiAgICByZWZlcmVu Y2UgdG8gUm91dGVyMS4NCiAgICANCiAgICBJbiB0aGUgY2FzZSB5b3UgbWVudGlvbmVkOg0KICAg ID4gaXQgc2VlbXMgbGlrZSBzZW5kaW5nIHRvIGFub3RoZXIgUm91dGVyIHdoaWNoIGhhcyB0aGUg Y29udGFpbmVyLCBidXQgbWF5DQogICAgbm90IGJlIGFibGUgdG8gdXNlIGl0IGltbWVkaWF0ZWx5 LCBtYXkgY2F1c2UgZmFpbHVyZXMgaW4gc29tZSBjYXNlcy4NCiAgICANCiAgICBJIGRvbid0IHJl Y2FsbCBpZiBpdCdzIGluIHRoZSBkb2N1bWVudCBvciBpbiB0aGUgZGlzY3Vzc2lvbiBvbiB0aGUN CiAgICBkZXYtbGlzdDogVGhlIHJvdXRlciB3b3VsZCByZXNwb25kIHRvIHRoZSBwcm94aWVkIHJl cXVlc3Qgd2l0aCBhIDUwMw0KICAgIGltbWVkaWF0bHkuIFRoYXQgdGVsbHMgdGhlIHByb3h5aW5n IHJvdXRlcjogT2gsIGFwcGFyZW50bHkgd2UgbmVlZCBtb3JlDQogICAgcmVzb3VyY2VzLiBTbyBp dCByZXF1ZXN0cyBhbm90aGVyIGNvbnRhaW5lciBldGMgZXRjLg0KICAgIA0KICAgIERvZXMgdGhh dCBjbGFyaWZ5IHRoYXQgc3BlY2lmaWMgZWRnZS1jYXNlPw0KDQpZZXMsIGJ1dCBJIHdvdWxkIG5v dCBjYWxsIHRoaXMgYW4gZWRnZS1jYXNlIC0gIEkgdGhpbmsgaXQgaXMgbW9yZSBvZiBhIHJhbXAg dXAgdG8gbWF4aW11bSBjb250YWluZXIgcmV1c2UsIGFuZCB3aWxsIHByb2JhYmx5IGRyYW1hdGlj YWxseSBpbXBhY3RlZCBieSBjb250YWluZXJzIHRoYXQgZG8gTk9UIHN1cHBvcnQgY29uY3VycmVu Y3kgKHdpbGwgZ2V0IGEgNTAzIHdoZW4gYSBzaW5nbGUgYWN0aXZhdGlvbiBpcyBpbiBmbGlnaHQs IHZzIGhpZ2ggY29uY3VycmVuY3kgY29udGFpbmVyLCB3aGljaCB3b3VsZCBjYXVzZSA1MDMgb25s eSBvbmNlIG1heCBjb25jdXJyZW5jeSByZWFjaGVkKS4NCklmIGVhY2ggQ29udGFpbmVyUm91dGVy IGlzIGFzIGxpa2VseSB0byByZWNlaXZlIHRoZSBvcmlnaW5hbCByZXF1ZXN0LCBhbmQgZWFjaCBp cyBhbHNvIGFzIGxpa2VseSB0byByZWNlaXZlIHRoZSBxdWV1ZWQgaXRlbSBmcm9tIHRoZSBzdGVh bGluZyBxdWV1ZSwgdGhlbiB0aGVyZSB3aWxsIGJlIGEgbG90IG9mIGNyb3NzIHRyYWZmaWMgZHVy aW5nIHRoZSByYW1wIHVwIGZyb20gMSBjb250YWluZXIgdG8gPFJvdXRlciBjb3VudD4gY29udGFp bmVycy4gRS5nLg0KDQpGcm9tIGNsaWVudDoNClJlcXVlc3QxIC0+IFJvdXRlciAxIC0+IHF1ZXVl IChubyBjb250YWluZXJzKQ0KUmVxdWVzdDIgLT4gUm91dGVyIDIgLT4gcXVldWUgKG5vIGNvbnRh aW5lcnMpDQpSZXF1ZXN0MyAtPiBSb3V0ZXIgMyAtPiBxdWV1ZSAobm8gY29udGFpbmVycykNCkZy b20gcXVldWU6DQpSZXF1ZXN0MSAtPiBSb3V0ZXIxICAtPiBjcmVhdGUgYW5kIHVzZSBjb250YWlu ZXINClJldXFlc3QyIC0+IFJvdXRlcjIgLT4gUm91dGVyMSAtPiA1MDMgLT4gY3JlYXRlIGNvbnRh aW5lcg0KUmVxdWVzdDMgLT4gUm91dGVyMyAtPiBSb3V0ZXIxIC0+IDUwMyAtPiBSb3V0ZXIyIC0+ IDUwMyAtPiBjcmVhdGUgY29udGFpbmVyDQoNCkluIG90aGVyIHdvcmRzIC0gdGhlIDUwMyBtYXkg aGVscCB3aGVuIHRoZXJlIGlzIG9uZSBjb250YWluZXIgZXhpc3RpbmcsIGFuZCBpdCBpcyBkZWVt ZWQgdG8gYmUgYnVzeSwgYnV0IHdoYXQgaWYgdGhlcmUgYXJlIDEwIGNvbnRhaW5lcnMgZXhpc3Rp bmcgKG9uIGRpZmZlcmVudCBSb3V0ZXJzIG90aGVyIHRoYW4gd2hlcmUgdGhlIHJlcXVlc3Qgd2Fz IHB1bGxlZCBmcm9tIHRoZSBzdGVhbGluZyBxdWV1ZSkgLSBkbyB5b3UgbWFrZSBIVFRQIHJlcXVl c3RzIHRvIGFsbCAxMCBSb3V0ZXJzIHRvIHNlZSBpZiB0aGV5IGFyZSBidXN5IGJlZm9yZSBjcmVh dGluZyBhIG5ldyBjb250YWluZXI/DQoNCiAgICANCiAgICBNZW1vIHRvIHNlbGY6IEkgbmVlZCB0 byBpbmNvb3BlcmF0ZSBhbGwgdGhlIHN0dWZmIGZyb20gdGhlc2UgZGlzY3Vzc2lvbnMNCiAgICBp bnRvIHRoZSBkb2N1bWVudC4NCiAgICANCiAgICANCiAgICA+DQogICAgPg0KICAgID4gICAgIFRo ZSB3b3JrLXN0ZWFsaW5nIHF1ZXVlIHRob3VnaCBpcyB1c2VkIHRvIHJlYmFsYW5jZSB3b3JrIGlu IGNhc2Ugb25lDQogICAgPiBvZiB0aGUNCiAgICA+ICAgICBSb3V0ZXJzIGdldCBvdmVybG9hZGVk Lg0KICAgID4NCiAgICA+IEdvdCBpdC4NCiAgICA+DQogICAgPiBUaGFua3MNCiAgICA+IFR5c29u DQogICAgPg0KICAgID4NCiAgICA+DQogICAgDQoNCg==