From dev-return-9352-apmail-openjpa-dev-archive=openjpa.apache.org@openjpa.apache.org Wed Oct 15 09:17:52 2008 Return-Path: Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: (qmail 48318 invoked from network); 15 Oct 2008 09:17:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Oct 2008 09:17:52 -0000 Received: (qmail 62713 invoked by uid 500); 15 Oct 2008 09:17:53 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 62553 invoked by uid 500); 15 Oct 2008 09:17:52 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 62542 invoked by uid 99); 15 Oct 2008 09:17:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Oct 2008 02:17:52 -0700 X-ASF-Spam-Status: No, hits=0.8 required=10.0 tests=HTML_MESSAGE,MIME_BASE64_BLANKS,MIME_BASE64_TEXT,RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of luhongj@cn.ibm.com designates 202.81.18.163 as permitted sender) Received: from [202.81.18.163] (HELO e23smtp02.au.ibm.com) (202.81.18.163) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Oct 2008 09:16:44 +0000 Received: from sd0109e.au.ibm.com (d23rh905.au.ibm.com [202.81.18.225]) by e23smtp02.au.ibm.com (8.13.1/8.13.1) with ESMTP id m9F9GdK5027990 for ; Wed, 15 Oct 2008 20:16:39 +1100 Received: from d23av02.au.ibm.com (d23av02.au.ibm.com [9.190.235.138]) by sd0109e.au.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id m9F9HH7o269820 for ; Wed, 15 Oct 2008 20:17:18 +1100 Received: from d23av02.au.ibm.com (loopback [127.0.0.1]) by d23av02.au.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m9F9HHDF023118 for ; Wed, 15 Oct 2008 20:17:17 +1100 Received: from d23m0037.cn.ibm.com (d23m0037.cn.ibm.com [9.181.2.105]) by d23av02.au.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id m9F9HCYH023019 for ; Wed, 15 Oct 2008 20:17:12 +1100 Subject: Questions about OpenJPA's entity state To: dev@openjpa.apache.org X-Mailer: Lotus Notes Release 8.0.1 February 07, 2008 Message-ID: From: Hong Jin Lu Date: Wed, 15 Oct 2008 17:17:06 +0800 X-MIMETrack: Serialize by Router on D23M0037/23/M/IBM(Release 7.0.2FP2HF300 | September 14, 2007) at 10/15/2008 17:17:29 MIME-Version: 1.0 Content-type: multipart/alternative; Boundary="0__=C7BBFE70DFA2E8478f9e8a93df938690918cC7BBFE70DFA2E847" Content-Disposition: inline X-Virus-Checked: Checked by ClamAV on apache.org --0__=C7BBFE70DFA2E8478f9e8a93df938690918cC7BBFE70DFA2E847 Content-type: text/plain; charset=GB2312 Content-transfer-encoding: base64 DQpoaSwgZm9sa3M6DQoNCjEuIE15IGVudiBpcyA6IFdQUzYuMSwgREIyIDkuMCwgT3BlbkpQQSAx LjIuMA0KDQoyLiBUaGUgZm9sbG93ZWQgaXMgbXkgcGVyc2lzdGVuY2UueG1sIGNvbmZpZ3VyYXRp b24gZmlsZToNCjxwZXJzaXN0ZW5jZS11bml0IG5hbWU9ImRlcmJ5Lm9qcGEiPg0KICAgICAgICA8 cHJvdmlkZXI+DQogICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLm9wZW5qcGEucGVyc2lzdGVu Y2UuUGVyc2lzdGVuY2VQcm92aWRlckltcGwNCiAgICAgICAgICAgIDwvcHJvdmlkZXI+DQogICAg ICAgICAgICA8anRhLWRhdGEtc291cmNlPmpkYmMvanBhPC9qdGEtZGF0YS1zb3VyY2U+DQogICAg ICAgICAgICA8bWFwcGluZy1maWxlPm9ybS54bWw8L21hcHBpbmctZmlsZT4NCiAgICAgICAgICAg IDxwcm9wZXJ0aWVzPg0KICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im9wZW5qcGEu VHJhbnNhY3Rpb25Nb2RlIiB2YWx1ZT0ibWFuYWdlZCINCi8+DQogICAgICAgICAgICAgICAgICA8 cHJvcGVydHkgbmFtZT0ib3BlbmpwYS5Db25uZWN0aW9uRmFjdG9yeU1vZGUiIHZhbHVlPQ0KIm1h bmFnZWQiLz4NCiAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJvcGVuanBhLmpkYmMu REJEaWN0aW9uYXJ5IiB2YWx1ZT0iZGIyIi8+DQogICAgICAgICAgICAgICAgICA8cHJvcGVydHkg bmFtZT0ib3BlbmpwYS5qZGJjLkVhZ2VyRmV0Y2hNb2RlIiB2YWx1ZT0iam9pbiINCj48L3Byb3Bl cnR5Pg0KICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im9wZW5qcGEuSW52ZXJzZU1h bmFnZXIiIHZhbHVlPSJ0cnVlIi8+DQogICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0i b3BlbmpwYS5SZXRhaW5TdGF0ZSIgdmFsdWU9InRydWUiLz4NCiAgICAgICAgICAgICAgICAgIDxw cm9wZXJ0eSBuYW1lPSJvcGVuanBhLkF1dG9EZXRhY2giIHZhbHVlPSJub250eC1yZWFkIi8+DQog ICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ib3BlbmpwYS5Ob250cmFuc2FjdGlvbmFs UmVhZCIgdmFsdWU9DQoiZmFsc2UiLz4NCiAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJvcGVuanBhLk5vbnRyYW5zYWN0aW9uYWxXcml0ZSIgdmFsdWU9DQoiZmFsc2UiLz4NCiAgICAg ICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJvcGVuanBhLkNvbm5lY3Rpb25SZXRhaW5Nb2Rl IiB2YWx1ZT0NCiJ0cmFuc2FjdGlvbiIvPg0KICAgICAgICAgICAgPC9wcm9wZXJ0aWVzPg0KICAg IDwvcGVyc2lzdGVuY2UtdW5pdD4NCg0KMy4gSSBlbmFibGUgZ2xvYmFsIHRyYW5zYWN0aW9uIG9m IFNDQSBjb21wb25lbnQgLCBtYWtlIHN1cmUgdHggaXMgc3RhcnRlZCwNCmFuZCBpbnZva2VzIHNl dmVyYWwgREFPIG9wZXJhdGlvbnMgaW4gb25lIG9mIHRoZSBTQ0EgY29tcG9uZW50IG9wZXJhdGlv bg0KbmFtZWQgInVwZGF0ZUNhc2VTdGF0dXMiLg0Kc3VjaCBhcyBDYXNlTWdtdEltcGwgU0NBIGNv bXBvbmVudCBzZXF1ZW50aWFsbHkgaW52b2tlcyBEQU8gb3BlcmF0aW9ucw0KDQogICAgICBDYXNl U3RhdHVzIGNTdGF0dXMgPSBzdGF0dXNEQU8uZmluZEJ5Q2FzZVN0YXR1c1BLKGNhc2VlU3RhdHVz KTsNCiAgICAgIENhc2VlIGNhc2VlID0gY2FzZURBTy5maW5kQnlDYXNlZVBLV2l0aFJlZihjYXNl ZUlkKTsNCiAgICAgIGNhc2VlLnNldEJ1c2luZXNzU3RhdHVzKGNTdGF0dXMpOw0KICAgICAgY2Fz ZURBTy51cGRhdGVDYXNlZShjYXNlZSk7DQoNCkluIGNhc2VEQU8uZmluZEJ5Q2FzZWVQS1dpdGhS ZWYgOg0KICAgICAgZW0gPSBlbWYuY3JlYXRlRW50aXR5TWFuYWdlcigpOw0KICAgICAgZW0uam9p blRyYW5zYWN0aW9uKCk7DQogICAgICByZXN1bHQgPSAoQ2FzZWUpZW0uZmluZChDYXNlZS5jbGFz cywgY2FzZUlEKTsNCiAgICAgIGVtLmNsb3NlKCk7DQpJbiBzdGF0dXNEQU8uZmluZEJ5Q2FzZVN0 YXR1c1BLIDoNCiAgICAgIGVtID0gZW1mLmNyZWF0ZUVudGl0eU1hbmFnZXIoKTsNCiAgICAgIGVt LmpvaW5UcmFuc2FjdGlvbigpOw0KICAgICAgcmVzdWx0ID0gKENhc2VTdGF0dXMpZW0uZmluZChD YXNlU3RhdHVzLmNsYXNzLCBzdGF0dXNDb2RlKTsNCiAgICAgIGVtLmNsb3NlKCk7DQoNCkluIGNh c2VEQU8udXBkYXRlQ2FzZWUgOg0KICAgICAgZW0gPSBlbWYuY3JlYXRlRW50aXR5TWFuYWdlcigp Ow0KICAgICAgZW0uam9pblRyYW5zYWN0aW9uKCk7DQogICAgICBDYXNlZSBtZXJnZWRjYXNlZSA9 IGVtLm1lcmdlKGNhc2VlKTsNCiAgICAgIGVtLmZsdXNoKCk7DQogICAgICBlbS5jbG9zZSgpOw0K DQo0LiBUaGVuIGF0IHRoZSBlbmQgb2YgdGhlIHNjYSBjb21wb25lbnQgdXBkYXRlQ2FzZVN0YXR1 cyBtZXRob2QsIHN1Y2gNCmVycm9ycyB0aHJvd2VkLg0KDQpjb20uaWJtLnNicy5jY2kuZGFvLkRB T0V4Y2VwdGlvbjogPG9wZW5qcGEtMS4yLjAtcjQyMjI2Njo2ODMzMjUgZmF0YWwNCmdlbmVyYWwg ZXJyb3I+IG9yZy5hcGFjaGUub3BlbmpwYS5wZXJzaXN0ZW5jZS5QZXJzaXN0ZW5jZUV4Y2VwdGlv bjogREIyIFNRTA0KZXJyb3I6IFNRTENPREU6IC04MDMsIFNRTFNUQVRFOiAyMzUwNSwgU1FMRVJS TUM6IDE7REIyQURNSU4uQ0FTRUVTUUxDQQ0KT1VUUFVUW0VycnA9U1FMRE1JU1IsIEVycmQ9LTIx NDY4OTM4MTksIDUsIDAsIDAsIC05NTcsIDBdDQpEQjIgU1FMIGVycm9yOiBTUUxDT0RFOiAtODAz LCBTUUxTVEFURTogMjM1MDUsIFNRTEVSUk1DOiAxO0RCMkFETUlOLkNBU0VFDQpGYWlsZWRPYmpl Y3Q6IHByZXBzdG1udCAzMTUyMzI5NzAgSU5TRVJUIElOVE8gREIyQURNSU4uQ0FTRUUgKENBU0VJ RCwNCkNSRUFUSU9OVElNRSwgRUZGRUNUSVZFREFURSwgRU5EREFURSwgRVhQSVJZREFURSwNCkNB U0VTVEFUVVNfQlVTSU5FU1NTVEFUVVMsIENBU0VUWVBFX0NBU0VUWVBFKSBWQUxVRVMgKD8sID8s ID8sID8sID8sID8sID8pDQpbb3JnLmFwYWNoZS5vcGVuanBhLmpkYmMua2VybmVsLkpEQkNTdG9y ZU1hbmFnZXIkQ2FuY2VsUHJlcGFyZWRTdGF0ZW1lbnRdDQogICAgICBhdCBjb20uaWJtLnNicy5j Y2kuZGFvLkFic3RyYWN0Q2FzZWVEQU8udXBkYXRlQ2FzZWUoDQpBYnN0cmFjdENhc2VlREFPLmph dmE6MTA0KQ0KICAgICAgYXQgY29tLmlibS5zYnMuY2NpLkNhc2VNZ210SW1wbC51cGRhdGVDYXNl U3RhdHVzKA0KQ2FzZU1nbXRJbXBsLmphdmE6MTI5KQ0KICAgICAgYXQgc3VuLnJlZmxlY3QuTmF0 aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIE1ldGhvZCkNCiAgICAgIGF0IHN1 bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoDQpOYXRpdmVNZXRob2RB Y2Nlc3NvckltcGwuamF2YTo3OSkNCiAgICAgIGF0IHN1bi5yZWZsZWN0LkRlbGVnYXRpbmdNZXRo b2RBY2Nlc3NvckltcGwuaW52b2tlKA0KRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZh OjQzKQ0KICAgICAgYXQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShNZXRob2QuamF2 YTo2MTgpDQogICAgICBhdCBjb20uaWJtLndzLnNjYS5pbnRlcm5hbC5qYXZhLmhhbmRsZXIuSmF2 YVJlZmxlY3Rpb25BZGFwdGVyJDIucnVuKA0KSmF2YVJlZmxlY3Rpb25BZGFwdGVyLmphdmE6MTUy KQ0KICAgICAgYXQgamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZCgN CkFjY2Vzc0NvbnRyb2xsZXIuamF2YToxOTcpDQogICAgICBhdCBjb20uaWJtLndzLnNjYS5pbnRl cm5hbC5qYXZhLmhhbmRsZXIuSmF2YVJlZmxlY3Rpb25BZGFwdGVyLmludm9rZSgNCkphdmFSZWZs ZWN0aW9uQWRhcHRlci5qYXZhOjE0OSkNCiAgICAgIGF0DQpjb20uaWJtLndzLnNjYS5pbnRlcm5h bC5qYXZhLmhhbmRsZXIuSmF2YUltcGxlbWVudGF0aW9uSGFuZGxlci5pbnZva2VTeW5jKA0KSmF2 YUltcGxlbWVudGF0aW9uSGFuZGxlci5qYXZhOjQ0NykNCiAgICAgIGF0DQpjb20uaWJtLndzLnNj YS5pbnRlcm5hbC5qYXZhLmhhbmRsZXIuSmF2YUltcGxlbWVudGF0aW9uSGFuZGxlci5wcm9jZXNz TWVzc2FnZSgNCkphdmFJbXBsZW1lbnRhdGlvbkhhbmRsZXIuamF2YToxOTUpDQogICAgICBhdA0K Y29tLmlibS53cy5zY2EuaW50ZXJuYWwubWVzc2FnZS5pbXBsLk1lc3NhZ2VEaXNwYXRjaGVySW1w bC5wcm9jZXNzTWVzc2FnZVdpdGhQQ0koDQpNZXNzYWdlRGlzcGF0Y2hlckltcGwuamF2YTo3MTQp DQogICAgICBhdA0KY29tLmlibS53cy5zY2EuaW50ZXJuYWwubWVzc2FnZS5pbXBsLk1lc3NhZ2VE aXNwYXRjaGVySW1wbC5wcm9jZXNzTWVzc2FnZSgNCk1lc3NhZ2VEaXNwYXRjaGVySW1wbC5qYXZh OjExNjYpDQogICAgICBhdCBjb20uaWJtLndzLnNjYS5pbnRlcm5hbC5tZXNzYWdlLmltcGwuTWFu YWdlZE1lc3NhZ2VJbXBsLnByb2Nlc3MoDQpNYW5hZ2VkTWVzc2FnZUltcGwuamF2YTo4MjEpDQog ICAgICBhdA0KY29tLmlibS53c3NwaS5zY2EuZWpiLm1vZHVsZS5pbXBsLk1vZHVsZVNlc3Npb25C ZWFuLnByb2Nlc3NVT1dNZXNzYWdlKA0KTW9kdWxlU2Vzc2lvbkJlYW4uamF2YTozMzgpDQogICAg ICBhdA0KY29tLmlibS53c3NwaS5zY2EuZWpiLm1vZHVsZS5pbXBsLk1vZHVsZVNlc3Npb25CZWFu LnRyYW5zYWN0aW9uUmVxdWlyZWRBY3Rpdml0eVNlc3Npb25Ob3RTdXBwb3J0ZWQoDQpNb2R1bGVT ZXNzaW9uQmVhbi5qYXZhOjMxMSkNCiAgICAgIGF0DQpjb20uaWJtLndzc3BpLnNjYS5lamIubW9k dWxlLkVKU0xvY2FsU3RhdGVsZXNzTW9kdWxlXzQzMTMyODkyLnRyYW5zYWN0aW9uUmVxdWlyZWRB Y3Rpdml0eVNlc3Npb25Ob3RTdXBwb3J0ZWQoDQpFSlNMb2NhbFN0YXRlbGVzc01vZHVsZV80MzEz Mjg5Mi5qYXZhOjIzMykNCiAgICAgIGF0DQpjb20uaWJtLndzLnNjYS5pbnRlcm5hbC51b3cuaGFu ZGxlci5VT1dTdHJhdGVneUltcGwudHJhbnNhY3Rpb25HbG9iYWxBY3Rpdml0eVNlc3Npb25GYWxz ZSgNClVPV1N0cmF0ZWd5SW1wbC5qYXZhOjMxMSkNCiAgICAgIGF0IGNvbS5pYm0ud3Muc2NhLmlu dGVybmFsLnVvdy5oYW5kbGVyLkpvaW5VT1dIYW5kbGVyLnByb2Nlc3NNZXNzYWdlKA0KSm9pblVP V0hhbmRsZXIuamF2YToxNjUpDQogICAgICBhdA0KY29tLmlibS53cy5zY2EuaW50ZXJuYWwubWVz c2FnZS5pbXBsLk1lc3NhZ2VEaXNwYXRjaGVySW1wbC5wcm9jZXNzTWVzc2FnZVdpdGhQQ0koDQpN ZXNzYWdlRGlzcGF0Y2hlckltcGwuamF2YTo3MjUpDQogICAgICBhdA0KY29tLmlibS53cy5zY2Eu aW50ZXJuYWwubWVzc2FnZS5pbXBsLk1lc3NhZ2VEaXNwYXRjaGVySW1wbC5wcm9jZXNzTWVzc2Fn ZSgNCk1lc3NhZ2VEaXNwYXRjaGVySW1wbC5qYXZhOjExNjYpDQogICAgICBhdCBjb20uaWJtLndz LnNjYS5pbnRlcm5hbC5tZXNzYWdlLmltcGwuTWFuYWdlZE1lc3NhZ2VJbXBsLnByb2Nlc3MoDQpN YW5hZ2VkTWVzc2FnZUltcGwuamF2YTo4MTIpDQogICAgICBhdA0KY29tLmlibS53c3NwaS5zY2Eu ZWpiLm1vZHVsZS5pbXBsLk1vZHVsZVNlc3Npb25CZWFuLnByb2Nlc3NNZXNzYWdlKA0KTW9kdWxl U2Vzc2lvbkJlYW4uamF2YToxNDkpDQogICAgICBhdA0KY29tLmlibS53c3NwaS5zY2EuZWpiLm1v ZHVsZS5FSlNMb2NhbFN0YXRlbGVzc01vZHVsZV80MzEzMjg5Mi5wcm9jZXNzTWVzc2FnZSgNCkVK U0xvY2FsU3RhdGVsZXNzTW9kdWxlXzQzMTMyODkyLmphdmE6OTcpDQogICAgICBhdA0KY29tLmli bS53Yml0LmNvbXB0ZXN0LmNvbnRyb2xsZXIuaW52b2NhdGlvbi5pbXBsLkFkaG9jSW52b2tlci5w cm9jZXNzTWVzc2FnZShVbmtub3duDQogU291cmNlKQ0KICAgICAgYXQNCmNvbS5pYm0ud2JpdC5j b21wdGVzdC5jb250cm9sbGVyLmludm9jYXRpb24uaW1wbC5JbnZva2VyLm1hbmFnZWRJbnZva2Uo VW5rbm93bg0KIFNvdXJjZSkNCiAgICAgIGF0DQpjb20uaWJtLndiaXQuY29tcHRlc3QuY29udHJv bGxlci5pbnZvY2F0aW9uLmltcGwuSW52b2tlci5pbnZva2UoVW5rbm93bg0KU291cmNlKQ0KICAg ICAgYXQNCmNvbS5pYm0ud2JpdC5jb21wdGVzdC5jb250cm9sbGVyLmludm9jYXRpb24uaW1wbC5C YXNlSW52b2NhdGlvbkhhbmRsZXIuaW52b2tlKFVua25vd24NCiBTb3VyY2UpDQogICAgICBhdA0K Y29tLmlibS53Yml0LmNvbXB0ZXN0LmNvbnRyb2xsZXIuaW52b2NhdGlvbi5pbXBsLkludm9jYXRp b25NYW5hZ2VyLmRvSW52b2tlKFVua25vd24NCiBTb3VyY2UpDQogICAgICBhdA0KY29tLmlibS53 Yml0LmNvbXB0ZXN0LmNvbnRyb2xsZXIuaW52b2NhdGlvbi5pbXBsLkludm9jYXRpb25NYW5hZ2Vy JDEucnVuKFVua25vd24NCiBTb3VyY2UpDQogICAgICBhdCBqYXZhLnNlY3VyaXR5LkFjY2Vzc0Nv bnRyb2xsZXIuZG9Qcml2aWxlZ2VkKA0KQWNjZXNzQ29udHJvbGxlci5qYXZhOjIxOSkNCiAgICAg IGF0IGphdmF4LnNlY3VyaXR5LmF1dGguU3ViamVjdC5kb0FzKFN1YmplY3QuamF2YTo0OTUpDQog ICAgICBhdCBjb20uaWJtLndlYnNwaGVyZS5zZWN1cml0eS5hdXRoLldTU3ViamVjdC5kb0FzKFdT U3ViamVjdC5qYXZhOjExOCkNCiAgICAgIGF0DQpjb20uaWJtLndiaXQuY29tcHRlc3QuY29udHJv bGxlci5pbnZvY2F0aW9uLmltcGwuSW52b2NhdGlvbk1hbmFnZXIuaW52b2tlKFVua25vd24NCiBT b3VyY2UpDQogICAgICBhdA0KY29tLmlibS53Yml0LmNvbXB0ZXN0LmNvbnRyb2xsZXIuY29tbWFu ZC5pbXBsLkJhc2VDb21tYW5kSGFuZGxlci5kb0NvbW1hbmQoVW5rbm93bg0KIFNvdXJjZSkNCiAg ICAgIGF0DQpjb20uaWJtLndiaXQuY29tcHRlc3QuY29udHJvbGxlci5jb21tYW5kLmltcGwuQ29t bWFuZFByb2Nlc3Nvci5kb0NvbW1hbmQoVW5rbm93bg0KIFNvdXJjZSkNCiAgICAgIGF0DQpjb20u aWJtLndiaXQuY29tcHRlc3QuY29udHJvbGxlci5jb21tYW5kLmltcGwuQ29tbWFuZFByb2Nlc3Nv ci5kb0NvbW1hbmQoVW5rbm93bg0KIFNvdXJjZSkNCiAgICAgIGF0IGNvbS5pYm0ud2JpdC5jb21w dGVzdC5zZXJ2bGV0LlRlc3RDb250cm9sbGVyU2VydmxldC5wcm9jZXNzKA0KVGVzdENvbnRyb2xs ZXJTZXJ2bGV0LmphdmE6NzYpDQogICAgICBhdCBjb20uaWJtLndiaXQuY29tcHRlc3Quc2Vydmxl dC5UZXN0Q29udHJvbGxlclNlcnZsZXQuZG9Qb3N0KA0KVGVzdENvbnRyb2xsZXJTZXJ2bGV0Lmph dmE6NTEpDQogICAgICBhdCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQuc2VydmljZShI dHRwU2VydmxldC5qYXZhOjc2MykNCiAgICAgIGF0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vy dmxldC5zZXJ2aWNlKEh0dHBTZXJ2bGV0LmphdmE6ODU2KQ0KICAgICAgYXQgY29tLmlibS53cy53 ZWJjb250YWluZXIuc2VydmxldC5TZXJ2bGV0V3JhcHBlci5zZXJ2aWNlKA0KU2VydmxldFdyYXBw ZXIuamF2YTo5OTUpDQogICAgICBhdCBjb20uaWJtLndzLndlYmNvbnRhaW5lci5zZXJ2bGV0LlNl cnZsZXRXcmFwcGVyLmhhbmRsZVJlcXVlc3QoDQpTZXJ2bGV0V3JhcHBlci5qYXZhOjUwMSkNCiAg ICAgIGF0IGNvbS5pYm0ud3Mud3N3ZWJjb250YWluZXIuc2VydmxldC5TZXJ2bGV0V3JhcHBlci5o YW5kbGVSZXF1ZXN0KA0KU2VydmxldFdyYXBwZXIuamF2YTo0NjQpDQogICAgICBhdCBjb20uaWJt LndzLndlYmNvbnRhaW5lci5zZXJ2bGV0LkNhY2hlU2VydmxldFdyYXBwZXIuaGFuZGxlUmVxdWVz dCgNCkNhY2hlU2VydmxldFdyYXBwZXIuamF2YTo5MCkNCiAgICAgIGF0IGNvbS5pYm0ud3Mud2Vi Y29udGFpbmVyLldlYkNvbnRhaW5lci5oYW5kbGVSZXF1ZXN0KA0KV2ViQ29udGFpbmVyLmphdmE6 NzQ0KQ0KICAgICAgYXQgY29tLmlibS53cy53c3dlYmNvbnRhaW5lci5XZWJDb250YWluZXIuaGFu ZGxlUmVxdWVzdCgNCldlYkNvbnRhaW5lci5qYXZhOjE0NTUpDQogICAgICBhdCBjb20uaWJtLndz LndlYmNvbnRhaW5lci5jaGFubmVsLldDQ2hhbm5lbExpbmsucmVhZHkoDQpXQ0NoYW5uZWxMaW5r LmphdmE6MTEzKQ0KICAgICAgYXQNCmNvbS5pYm0ud3MuaHR0cC5jaGFubmVsLmluYm91bmQuaW1w bC5IdHRwSW5ib3VuZExpbmsuaGFuZGxlRGlzY3JpbWluYXRpb24oDQpIdHRwSW5ib3VuZExpbmsu amF2YTo0NTQpDQogICAgICBhdA0KY29tLmlibS53cy5odHRwLmNoYW5uZWwuaW5ib3VuZC5pbXBs Lkh0dHBJbmJvdW5kTGluay5oYW5kbGVOZXdJbmZvcm1hdGlvbigNCkh0dHBJbmJvdW5kTGluay5q YXZhOjM4MykNCiAgICAgIGF0IGNvbS5pYm0ud3MuaHR0cC5jaGFubmVsLmluYm91bmQuaW1wbC5I dHRwSW5ib3VuZExpbmsucmVhZHkoDQpIdHRwSW5ib3VuZExpbmsuamF2YToyNjMpDQogICAgICBh dA0KY29tLmlibS53cy50Y3AuY2hhbm5lbC5pbXBsLk5ld0Nvbm5lY3Rpb25Jbml0aWFsUmVhZENh bGxiYWNrLnNlbmRUb0Rpc2NyaW1pbmF0b3JzKA0KTmV3Q29ubmVjdGlvbkluaXRpYWxSZWFkQ2Fs bGJhY2suamF2YToyMTQpDQogICAgICBhdA0KY29tLmlibS53cy50Y3AuY2hhbm5lbC5pbXBsLk5l d0Nvbm5lY3Rpb25Jbml0aWFsUmVhZENhbGxiYWNrLmNvbXBsZXRlKA0KTmV3Q29ubmVjdGlvbklu aXRpYWxSZWFkQ2FsbGJhY2suamF2YToxMTMpDQogICAgICBhdA0KY29tLmlibS53cy50Y3AuY2hh bm5lbC5pbXBsLkFpb1JlYWRDb21wbGV0aW9uTGlzdGVuZXIuZnV0dXJlQ29tcGxldGVkKA0KQWlv UmVhZENvbXBsZXRpb25MaXN0ZW5lci5qYXZhOjE2NSkNCiAgICAgIGF0IGNvbS5pYm0uaW8uYXN5 bmMuQWJzdHJhY3RBc3luY0Z1dHVyZS5pbnZva2VDYWxsYmFjaygNCkFic3RyYWN0QXN5bmNGdXR1 cmUuamF2YToyMTcpDQogICAgICBhdCBjb20uaWJtLmlvLmFzeW5jLkFzeW5jQ2hhbm5lbEZ1dHVy ZS5maXJlQ29tcGxldGlvbkFjdGlvbnMoDQpBc3luY0NoYW5uZWxGdXR1cmUuamF2YToxNjEpDQog ICAgICBhdCBjb20uaWJtLmlvLmFzeW5jLkFzeW5jRnV0dXJlLmNvbXBsZXRlZChBc3luY0Z1dHVy ZS5qYXZhOjEzNikNCiAgICAgIGF0IGNvbS5pYm0uaW8uYXN5bmMuUmVzdWx0SGFuZGxlci5jb21w bGV0ZShSZXN1bHRIYW5kbGVyLmphdmE6MTk1KQ0KICAgICAgYXQgY29tLmlibS5pby5hc3luYy5S ZXN1bHRIYW5kbGVyLnJ1bkV2ZW50UHJvY2Vzc2luZ0xvb3AoDQpSZXN1bHRIYW5kbGVyLmphdmE6 NzQzKQ0KICAgICAgYXQgY29tLmlibS5pby5hc3luYy5SZXN1bHRIYW5kbGVyJDIucnVuKFJlc3Vs dEhhbmRsZXIuamF2YTo4NzMpDQogICAgICBhdCBjb20uaWJtLndzLnV0aWwuVGhyZWFkUG9vbCRX b3JrZXIucnVuKFRocmVhZFBvb2wuamF2YToxNDY5KQ0KQ2F1c2VkIGJ5OiA8b3BlbmpwYS0xLjIu MC1yNDIyMjY2OjY4MzMyNSBmYXRhbCBnZW5lcmFsIGVycm9yPg0Kb3JnLmFwYWNoZS5vcGVuanBh LnBlcnNpc3RlbmNlLlBlcnNpc3RlbmNlRXhjZXB0aW9uOiBEQjIgU1FMIGVycm9yOg0KU1FMQ09E RTogLTgwMywgU1FMU1RBVEU6IDIzNTA1LCBTUUxFUlJNQzogMTtEQjJBRE1JTi5DQVNFRVNRTENB DQpPVVRQVVRbRXJycD1TUUxETUlTUiwgRXJyZD0tMjE0Njg5MzgxOSwgNSwgMCwgMCwgLTk1Nywg MF0NCkRCMiBTUUwgZXJyb3I6IFNRTENPREU6IC04MDMsIFNRTFNUQVRFOiAyMzUwNSwgU1FMRVJS TUM6IDE7REIyQURNSU4uQ0FTRUUNCkZhaWxlZE9iamVjdDogcHJlcHN0bW50IDMxNTIzMjk3MCBJ TlNFUlQgSU5UTyBEQjJBRE1JTi5DQVNFRSAoQ0FTRUlELA0KQ1JFQVRJT05USU1FLCBFRkZFQ1RJ VkVEQVRFLCBFTkREQVRFLCBFWFBJUllEQVRFLA0KQ0FTRVNUQVRVU19CVVNJTkVTU1NUQVRVUywg Q0FTRVRZUEVfQ0FTRVRZUEUpIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPykNCltvcmcuYXBh Y2hlLm9wZW5qcGEuamRiYy5rZXJuZWwuSkRCQ1N0b3JlTWFuYWdlciRDYW5jZWxQcmVwYXJlZFN0 YXRlbWVudF0NCiAgICAgIGF0IG9yZy5hcGFjaGUub3BlbmpwYS5qZGJjLnNxbC5EQkRpY3Rpb25h cnkubmFycm93KA0KREJEaWN0aW9uYXJ5LmphdmE6NDIzOCkNCiAgICAgIGF0IG9yZy5hcGFjaGUu b3BlbmpwYS5qZGJjLnNxbC5EQkRpY3Rpb25hcnkubmV3U3RvcmVFeGNlcHRpb24oDQpEQkRpY3Rp b25hcnkuamF2YTo0MjAzKQ0KICAgICAgYXQgb3JnLmFwYWNoZS5vcGVuanBhLmpkYmMuc3FsLkRC MkRpY3Rpb25hcnkubmV3U3RvcmVFeGNlcHRpb24oDQpEQjJEaWN0aW9uYXJ5LmphdmE6NTAzKQ0K ICAgICAgYXQgb3JnLmFwYWNoZS5vcGVuanBhLmpkYmMuc3FsLlNRTEV4Y2VwdGlvbnMuZ2V0U3Rv cmUoDQpTUUxFeGNlcHRpb25zLmphdmE6MTAyKQ0KICAgICAgYXQgb3JnLmFwYWNoZS5vcGVuanBh LmpkYmMuc3FsLlNRTEV4Y2VwdGlvbnMuZ2V0U3RvcmUoDQpTUUxFeGNlcHRpb25zLmphdmE6NzIp DQogICAgICBhdA0Kb3JnLmFwYWNoZS5vcGVuanBhLmpkYmMua2VybmVsLkJhdGNoaW5nUHJlcGFy ZWRTdGF0ZW1lbnRNYW5hZ2VySW1wbC5mbHVzaEJhdGNoKA0KQmF0Y2hpbmdQcmVwYXJlZFN0YXRl bWVudE1hbmFnZXJJbXBsLmphdmE6MTk1KQ0KICAgICAgYXQgb3JnLmFwYWNoZS5vcGVuanBhLmpk YmMua2VybmVsLk15VXBkYXRlTWFuYWdlci5mbHVzaCgNCk15VXBkYXRlTWFuYWdlci5qYXZhOjM1 NykNCiAgICAgIGF0IG9yZy5hcGFjaGUub3BlbmpwYS5qZGJjLmtlcm5lbC5NeVVwZGF0ZU1hbmFn ZXIuZmx1c2goDQpNeVVwZGF0ZU1hbmFnZXIuamF2YTo3NykNCiAgICAgIGF0IG9yZy5hcGFjaGUu b3BlbmpwYS5qZGJjLmtlcm5lbC5NeVVwZGF0ZU1hbmFnZXIuZmx1c2goDQpNeVVwZGF0ZU1hbmFn ZXIuamF2YTo2MCkNCiAgICAgIGF0IG9yZy5hcGFjaGUub3BlbmpwYS5qZGJjLmtlcm5lbC5KREJD U3RvcmVNYW5hZ2VyLmZsdXNoKA0KSkRCQ1N0b3JlTWFuYWdlci5qYXZhOjY1NSkNCiAgICAgIGF0 IG9yZy5hcGFjaGUub3BlbmpwYS5rZXJuZWwuRGVsZWdhdGluZ1N0b3JlTWFuYWdlci5mbHVzaCgN CkRlbGVnYXRpbmdTdG9yZU1hbmFnZXIuamF2YToxMzApDQogICAgICBhdCBvcmcuYXBhY2hlLm9w ZW5qcGEua2VybmVsLkJyb2tlckltcGwuZmx1c2goQnJva2VySW1wbC5qYXZhOjIwMTApDQogICAg ICBhdCBvcmcuYXBhY2hlLm9wZW5qcGEua2VybmVsLkJyb2tlckltcGwuZmx1c2hTYWZlKA0KQnJv a2VySW1wbC5qYXZhOjE5MDgpDQogICAgICBhdCBvcmcuYXBhY2hlLm9wZW5qcGEua2VybmVsLkJy b2tlckltcGwuZmx1c2goQnJva2VySW1wbC5qYXZhOjE2NzkpDQogICAgICBhdCBvcmcuYXBhY2hl Lm9wZW5qcGEua2VybmVsLkRlbGVnYXRpbmdCcm9rZXIuZmx1c2goDQpEZWxlZ2F0aW5nQnJva2Vy LmphdmE6OTg5KQ0KICAgICAgYXQgb3JnLmFwYWNoZS5vcGVuanBhLnBlcnNpc3RlbmNlLkVudGl0 eU1hbmFnZXJJbXBsLmZsdXNoKA0KRW50aXR5TWFuYWdlckltcGwuamF2YTo1OTIpDQogICAgICBh dCBjb20uaWJtLnNicy5jY2kuZGFvLkFic3RyYWN0Q2FzZWVEQU8udXBkYXRlQ2FzZWUoDQpBYnN0 cmFjdENhc2VlREFPLmphdmE6OTgpDQogICAgICAuLi4gNjAgbW9yZQ0KQ2F1c2VkIGJ5OiBjb20u aWJtLndlYnNwaGVyZS5jZS5jbS5EdXBsaWNhdGVLZXlFeGNlcHRpb246IERCMiBTUUwgZXJyb3I6 DQpTUUxDT0RFOiAtODAzLCBTUUxTVEFURTogMjM1MDUsIFNRTEVSUk1DOiAxO0RCMkFETUlOLkNB U0VFDQogICAgICBhdCBzdW4ucmVmbGVjdC5OYXRpdmVDb25zdHJ1Y3RvckFjY2Vzc29ySW1wbC5u ZXdJbnN0YW5jZTAoTmF0aXZlDQpNZXRob2QpDQogICAgICBhdCBzdW4ucmVmbGVjdC5OYXRpdmVD b25zdHJ1Y3RvckFjY2Vzc29ySW1wbC5uZXdJbnN0YW5jZSgNCk5hdGl2ZUNvbnN0cnVjdG9yQWNj ZXNzb3JJbXBsLmphdmE6NjcpDQogICAgICBhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nQ29uc3Ry dWN0b3JBY2Nlc3NvckltcGwubmV3SW5zdGFuY2UoDQpEZWxlZ2F0aW5nQ29uc3RydWN0b3JBY2Nl c3NvckltcGwuamF2YTo0NSkNCiAgICAgIGF0IGphdmEubGFuZy5yZWZsZWN0LkNvbnN0cnVjdG9y Lm5ld0luc3RhbmNlKENvbnN0cnVjdG9yLmphdmE6NTIyKQ0KICAgICAgYXQNCmNvbS5pYm0ud2Vi c3BoZXJlLnJzYWRhcHRlci5HZW5lcmljRGF0YVN0b3JlSGVscGVyLm1hcEV4Y2VwdGlvbkhlbHBl cigNCkdlbmVyaWNEYXRhU3RvcmVIZWxwZXIuamF2YTo1MjMpDQogICAgICBhdCBjb20uaWJtLndl YnNwaGVyZS5yc2FkYXB0ZXIuR2VuZXJpY0RhdGFTdG9yZUhlbHBlci5tYXBFeGNlcHRpb24oDQpH ZW5lcmljRGF0YVN0b3JlSGVscGVyLmphdmE6NTc4KQ0KICAgICAgYXQgY29tLmlibS53cy5yc2Fk YXB0ZXIuamRiYy5XU0pkYmNVdGlsLm1hcEV4Y2VwdGlvbigNCldTSmRiY1V0aWwuamF2YTo5MDMp DQogICAgICBhdCBjb20uaWJtLndzLnJzYWRhcHRlci5qZGJjLldTSmRiY1ByZXBhcmVkU3RhdGVt ZW50LmV4ZWN1dGVVcGRhdGUoDQpXU0pkYmNQcmVwYXJlZFN0YXRlbWVudC5qYXZhOjYyNikNCiAg ICAgIGF0DQpvcmcuYXBhY2hlLm9wZW5qcGEubGliLmpkYmMuRGVsZWdhdGluZ1ByZXBhcmVkU3Rh dGVtZW50LmV4ZWN1dGVVcGRhdGUoDQpEZWxlZ2F0aW5nUHJlcGFyZWRTdGF0ZW1lbnQuamF2YToy NjkpDQogICAgICBhdA0Kb3JnLmFwYWNoZS5vcGVuanBhLmxpYi5qZGJjLkxvZ2dpbmdDb25uZWN0 aW9uRGVjb3JhdG9yJExvZ2dpbmdDb25uZWN0aW9uJExvZ2dpbmdQcmVwYXJlZFN0YXRlbWVudC5l eGVjdXRlVXBkYXRlKA0KTG9nZ2luZ0Nvbm5lY3Rpb25EZWNvcmF0b3IuamF2YTo4NjQpDQogICAg ICBhdA0Kb3JnLmFwYWNoZS5vcGVuanBhLmxpYi5qZGJjLkRlbGVnYXRpbmdQcmVwYXJlZFN0YXRl bWVudC5leGVjdXRlVXBkYXRlKA0KRGVsZWdhdGluZ1ByZXBhcmVkU3RhdGVtZW50LmphdmE6MjY5 KQ0KICAgICAgYXQNCm9yZy5hcGFjaGUub3BlbmpwYS5qZGJjLmtlcm5lbC5KREJDU3RvcmVNYW5h Z2VyJENhbmNlbFByZXBhcmVkU3RhdGVtZW50LmV4ZWN1dGVVcGRhdGUoDQpKREJDU3RvcmVNYW5h Z2VyLmphdmE6MTUwNCkNCiAgICAgIGF0DQpvcmcuYXBhY2hlLm9wZW5qcGEuamRiYy5rZXJuZWwu UHJlcGFyZWRTdGF0ZW1lbnRNYW5hZ2VySW1wbC5leGVjdXRlVXBkYXRlKA0KUHJlcGFyZWRTdGF0 ZW1lbnRNYW5hZ2VySW1wbC5qYXZhOjE1MSkNCiAgICAgIGF0DQpvcmcuYXBhY2hlLm9wZW5qcGEu amRiYy5rZXJuZWwuQmF0Y2hpbmdQcmVwYXJlZFN0YXRlbWVudE1hbmFnZXJJbXBsLmZsdXNoU2lu Z2xlUm93KA0KQmF0Y2hpbmdQcmVwYXJlZFN0YXRlbWVudE1hbmFnZXJJbXBsLmphdmE6MjE3KQ0K ICAgICAgYXQNCm9yZy5hcGFjaGUub3BlbmpwYS5qZGJjLmtlcm5lbC5CYXRjaGluZ1ByZXBhcmVk U3RhdGVtZW50TWFuYWdlckltcGwuZmx1c2hCYXRjaCgNCkJhdGNoaW5nUHJlcGFyZWRTdGF0ZW1l bnRNYW5hZ2VySW1wbC5qYXZhOjE1NikNCiAgICAgIC4uLiA3MSBtb3JlDQoNClswOC0xMC0xNSAx Njo1MTowODo3MTggQ1NUXSAwMDAwMDA3NCBSZWdpc3RlcmVkU3luIEUgICBXVFJOMDA3NEU6ILTT DQpiZWZvcmVfY29tcGxldGlvbiDNrLK9stnX97K2u/HS7LOjo7o8b3BlbmpwYS0xLjIuMC1yNDIy MjY2OjY4MzMyNSBub25mYXRhbA0KdXNlciBlcnJvcj4gb3JnLmFwYWNoZS5vcGVuanBhLnBlcnNp c3RlbmNlLkludmFsaWRTdGF0ZUV4Y2VwdGlvbjoNCkVuY291bnRlcmVkIHVubWFuYWdlZCBvYmpl Y3QgaW4gcGVyc2lzdGVudCBmaWVsZA0KImNvbS5pYm0uc2JzLmNjaS5wb2pvLkNhc2VlLmJ1c2lu ZXNzU3RhdHVzIiBkdXJpbmcgZmx1c2guICBIb3dldmVyLCB0aGlzDQpmaWVsZCBkb2VzIG5vdCBh bGxvdyBjYXNjYWRlIHBlcnNpc3QuIFNldCB0aGUgY2FzY2FkZSBhdHRyaWJ1dGUgZm9yIHRoaXMN CmZpZWxkIHRvIENhc2NhZGVUeXBlLlBFUlNJU1Qgb3IgQ2FzY2FkZVR5cGUuQUxMIChKUEEgYW5u b3RhdGlvbnMpIG9yDQoicGVyc2lzdCIgb3IgImFsbCIgKEpQQSBvcm0ueG1sKSwgb3IgZW5hYmxl IGNhc2NhZGUtcGVyc2lzdCBnbG9iYWxseSwgb3INCm1hbnVhbGx5IHBlcnNpc3QgdGhlIHJlbGF0 ZWQgZmllbGQgdmFsdWUgcHJpb3IgdG8gZmx1c2hpbmcuIFlvdSBjYW5ub3QNCmZsdXNoIHVubWFu YWdlZCBvYmplY3RzIG9yIGdyYXBocyB0aGF0IGhhdmUgcGVyc2lzdGVudCBhc3NvY2lhdGlvbnMg dG8NCnVubWFuYWdlZCBvYmplY3RzLg0KRmFpbGVkT2JqZWN0OiBjb20uaWJtLnNicy5jY2kucG9q by5DYXNlU3RhdHVzLUFQUFJPVkVEDQogICAgICBhdCBvcmcuYXBhY2hlLm9wZW5qcGEua2VybmVs LlNpbmdsZUZpZWxkTWFuYWdlci5wcmVGbHVzaFBDKA0KU2luZ2xlRmllbGRNYW5hZ2VyLmphdmE6 NzUzKQ0KICAgICAgYXQgb3JnLmFwYWNoZS5vcGVuanBhLmtlcm5lbC5TaW5nbGVGaWVsZE1hbmFn ZXIucHJlRmx1c2goDQpTaW5nbGVGaWVsZE1hbmFnZXIuamF2YTo1OTQpDQogICAgICBhdCBvcmcu YXBhY2hlLm9wZW5qcGEua2VybmVsLlNpbmdsZUZpZWxkTWFuYWdlci5wcmVGbHVzaCgNClNpbmds ZUZpZWxkTWFuYWdlci5qYXZhOjU2MikNCiAgICAgIGF0IG9yZy5hcGFjaGUub3BlbmpwYS5rZXJu ZWwuU2luZ2xlRmllbGRNYW5hZ2VyLnByZUZsdXNoKA0KU2luZ2xlRmllbGRNYW5hZ2VyLmphdmE6 NDc4KQ0KICAgICAgYXQgb3JnLmFwYWNoZS5vcGVuanBhLmtlcm5lbC5TdGF0ZU1hbmFnZXJJbXBs LnByZUZsdXNoKA0KU3RhdGVNYW5hZ2VySW1wbC5qYXZhOjI4MjgpDQogICAgICBhdCBvcmcuYXBh Y2hlLm9wZW5qcGEua2VybmVsLlBEaXJ0eVN0YXRlLmJlZm9yZUZsdXNoKA0KUERpcnR5U3RhdGUu amF2YTozNykNCiAgICAgIGF0IG9yZy5hcGFjaGUub3BlbmpwYS5rZXJuZWwuU3RhdGVNYW5hZ2Vy SW1wbC5iZWZvcmVGbHVzaCgNClN0YXRlTWFuYWdlckltcGwuamF2YTo5NTkpDQogICAgICBhdCBv cmcuYXBhY2hlLm9wZW5qcGEua2VybmVsLkJyb2tlckltcGwuZmx1c2goQnJva2VySW1wbC5qYXZh OjE5NDgpDQogICAgICBhdCBvcmcuYXBhY2hlLm9wZW5qcGEua2VybmVsLkJyb2tlckltcGwuZmx1 c2hTYWZlKA0KQnJva2VySW1wbC5qYXZhOjE5MDgpDQogICAgICBhdCBvcmcuYXBhY2hlLm9wZW5q cGEua2VybmVsLkJyb2tlckltcGwuYmVmb3JlQ29tcGxldGlvbigNCkJyb2tlckltcGwuamF2YTox ODI2KQ0KICAgICAgYXQNCm9yZy5hcGFjaGUub3BlbmpwYS5lZS5XQVNNYW5hZ2VkUnVudGltZSRX QVNTeW5jaHJvbml6YXRpb24uYmVmb3JlQ29tcGxldGlvbigNCldBU01hbmFnZWRSdW50aW1lLmph dmE6MzA0KQ0KICAgICAgYXQNCmNvbS5pYm0ud3MuanRhZXh0ZW5zaW9ucy5TeW5jaHJvbml6YXRp b25DYWxsYmFja1dyYXBwZXIuYmVmb3JlQ29tcGxldGlvbigNClN5bmNocm9uaXphdGlvbkNhbGxi YWNrV3JhcHBlci5qYXZhOjY1KQ0KICAgICAgYXQgY29tLmlibS53cy5UcmFuc2FjdGlvbi5KVEEu UmVnaXN0ZXJlZFN5bmNzLmRpc3RyaWJ1dGVCZWZvcmUoDQpSZWdpc3RlcmVkU3luY3MuamF2YToy NDIpDQogICAgICBhdCBjb20uaWJtLndzLlRyYW5zYWN0aW9uLkpUQS5UcmFuc2FjdGlvbkltcGwu cHJlUHJlcGFyZSgNClRyYW5zYWN0aW9uSW1wbC5qYXZhOjIzOTgpDQogICAgICBhdCBjb20uaWJt LndzLlRyYW5zYWN0aW9uLkpUQS5UcmFuc2FjdGlvbkltcGwuc3RhZ2UxQ29tbWl0UHJvY2Vzc2lu ZygNClRyYW5zYWN0aW9uSW1wbC5qYXZhOjE2MzEpDQogICAgICBhdCBjb20uaWJtLndzLlRyYW5z YWN0aW9uLkpUQS5UcmFuc2FjdGlvbkltcGwucHJvY2Vzc0NvbW1pdCgNClRyYW5zYWN0aW9uSW1w bC5qYXZhOjE2MDIpDQogICAgICBhdCBjb20uaWJtLndzLlRyYW5zYWN0aW9uLkpUQS5UcmFuc2Fj dGlvbkltcGwuY29tbWl0KA0KVHJhbnNhY3Rpb25JbXBsLmphdmE6MTUzNykNCiAgICAgIGF0IGNv bS5pYm0ud3MuVHJhbnNhY3Rpb24uSlRBLlRyYW5NYW5hZ2VySW1wbC5jb21taXQoDQpUcmFuTWFu YWdlckltcGwuamF2YToyMzkpDQogICAgICBhdCBjb20uaWJtLndzLlRyYW5zYWN0aW9uLkpUQS5U cmFuTWFuYWdlclNldC5jb21taXQoDQpUcmFuTWFuYWdlclNldC5qYXZhOjE2MykNCiAgICAgIGF0 IGNvbS5pYm0uZWpzLmNzaS5UcmFuU3RyYXRlZ3kuY29tbWl0KFRyYW5TdHJhdGVneS5qYXZhOjc1 NikNCiAgICAgIGF0IGNvbS5pYm0uZWpzLmNzaS5UcmFuU3RyYXRlZ3kucG9zdEludm9rZShUcmFu U3RyYXRlZ3kuamF2YToxODEpDQogICAgICBhdCBjb20uaWJtLmVqcy5jc2kuVHJhbnNhY3Rpb25D b250cm9sSW1wbC5wb3N0SW52b2tlKA0KVHJhbnNhY3Rpb25Db250cm9sSW1wbC5qYXZhOjU4MSkN CiAgICAgIGF0IGNvbS5pYm0uZWpzLmNvbnRhaW5lci5FSlNDb250YWluZXIucG9zdEludm9rZSgN CkVKU0NvbnRhaW5lci5qYXZhOjM5MTApDQogICAgICBhdA0KY29tLmlibS53c3NwaS5zY2EuZWpi Lm1vZHVsZS5FSlNMb2NhbFN0YXRlbGVzc01vZHVsZV80MzEzMjg5Mi50cmFuc2FjdGlvblJlcXVp cmVkQWN0aXZpdHlTZXNzaW9uTm90U3VwcG9ydGVkKA0KRUpTTG9jYWxTdGF0ZWxlc3NNb2R1bGVf NDMxMzI4OTIuamF2YToyNDQpDQogICAgICBhdA0KY29tLmlibS53cy5zY2EuaW50ZXJuYWwudW93 LmhhbmRsZXIuVU9XU3RyYXRlZ3lJbXBsLnRyYW5zYWN0aW9uR2xvYmFsQWN0aXZpdHlTZXNzaW9u RmFsc2UoDQpVT1dTdHJhdGVneUltcGwuamF2YTozMTEpDQogICAgICBhdCBjb20uaWJtLndzLnNj YS5pbnRlcm5hbC51b3cuaGFuZGxlci5Kb2luVU9XSGFuZGxlci5wcm9jZXNzTWVzc2FnZSgNCkpv aW5VT1dIYW5kbGVyLmphdmE6MTY1KQ0KICAgICAgYXQNCmNvbS5pYm0ud3Muc2NhLmludGVybmFs Lm1lc3NhZ2UuaW1wbC5NZXNzYWdlRGlzcGF0Y2hlckltcGwucHJvY2Vzc01lc3NhZ2VXaXRoUENJ KA0KTWVzc2FnZURpc3BhdGNoZXJJbXBsLmphdmE6NzI1KQ0KICAgICAgYXQNCmNvbS5pYm0ud3Mu c2NhLmludGVybmFsLm1lc3NhZ2UuaW1wbC5NZXNzYWdlRGlzcGF0Y2hlckltcGwucHJvY2Vzc01l c3NhZ2UoDQpNZXNzYWdlRGlzcGF0Y2hlckltcGwuamF2YToxMTY2KQ0KICAgICAgYXQgY29tLmli bS53cy5zY2EuaW50ZXJuYWwubWVzc2FnZS5pbXBsLk1hbmFnZWRNZXNzYWdlSW1wbC5wcm9jZXNz KA0KTWFuYWdlZE1lc3NhZ2VJbXBsLmphdmE6ODEyKQ0KICAgICAgYXQNCmNvbS5pYm0ud3NzcGku c2NhLmVqYi5tb2R1bGUuaW1wbC5Nb2R1bGVTZXNzaW9uQmVhbi5wcm9jZXNzTWVzc2FnZSgNCk1v ZHVsZVNlc3Npb25CZWFuLmphdmE6MTQ5KQ0KICAgICAgYXQNCmNvbS5pYm0ud3NzcGkuc2NhLmVq Yi5tb2R1bGUuRUpTTG9jYWxTdGF0ZWxlc3NNb2R1bGVfNDMxMzI4OTIucHJvY2Vzc01lc3NhZ2Uo DQpFSlNMb2NhbFN0YXRlbGVzc01vZHVsZV80MzEzMjg5Mi5qYXZhOjk3KQ0KICAgICAgYXQNCmNv bS5pYm0ud2JpdC5jb21wdGVzdC5jb250cm9sbGVyLmludm9jYXRpb24uaW1wbC5BZGhvY0ludm9r ZXIucHJvY2Vzc01lc3NhZ2UoVW5rbm93bg0KIFNvdXJjZSkNCiAgICAgIGF0DQpjb20uaWJtLndi aXQuY29tcHRlc3QuY29udHJvbGxlci5pbnZvY2F0aW9uLmltcGwuSW52b2tlci5tYW5hZ2VkSW52 b2tlKFVua25vd24NCiBTb3VyY2UpDQogICAgICBhdA0KY29tLmlibS53Yml0LmNvbXB0ZXN0LmNv bnRyb2xsZXIuaW52b2NhdGlvbi5pbXBsLkludm9rZXIuaW52b2tlKFVua25vd24NClNvdXJjZSkN CiAgICAgIGF0DQpjb20uaWJtLndiaXQuY29tcHRlc3QuY29udHJvbGxlci5pbnZvY2F0aW9uLmlt cGwuQmFzZUludm9jYXRpb25IYW5kbGVyLmludm9rZShVbmtub3duDQogU291cmNlKQ0KICAgICAg YXQNCmNvbS5pYm0ud2JpdC5jb21wdGVzdC5jb250cm9sbGVyLmludm9jYXRpb24uaW1wbC5JbnZv Y2F0aW9uTWFuYWdlci5kb0ludm9rZShVbmtub3duDQogU291cmNlKQ0KICAgICAgYXQNCmNvbS5p Ym0ud2JpdC5jb21wdGVzdC5jb250cm9sbGVyLmludm9jYXRpb24uaW1wbC5JbnZvY2F0aW9uTWFu YWdlciQxLnJ1bihVbmtub3duDQogU291cmNlKQ0KICAgICAgYXQgamF2YS5zZWN1cml0eS5BY2Nl c3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZCgNCkFjY2Vzc0NvbnRyb2xsZXIuamF2YToyMTkpDQog ICAgICBhdCBqYXZheC5zZWN1cml0eS5hdXRoLlN1YmplY3QuZG9BcyhTdWJqZWN0LmphdmE6NDk1 KQ0KICAgICAgYXQgY29tLmlibS53ZWJzcGhlcmUuc2VjdXJpdHkuYXV0aC5XU1N1YmplY3QuZG9B cyhXU1N1YmplY3QuamF2YToxMTgpDQogICAgICBhdA0KY29tLmlibS53Yml0LmNvbXB0ZXN0LmNv bnRyb2xsZXIuaW52b2NhdGlvbi5pbXBsLkludm9jYXRpb25NYW5hZ2VyLmludm9rZShVbmtub3du DQogU291cmNlKQ0KICAgICAgYXQNCmNvbS5pYm0ud2JpdC5jb21wdGVzdC5jb250cm9sbGVyLmNv bW1hbmQuaW1wbC5CYXNlQ29tbWFuZEhhbmRsZXIuZG9Db21tYW5kKFVua25vd24NCiBTb3VyY2Up DQogICAgICBhdA0KY29tLmlibS53Yml0LmNvbXB0ZXN0LmNvbnRyb2xsZXIuY29tbWFuZC5pbXBs LkNvbW1hbmRQcm9jZXNzb3IuZG9Db21tYW5kKFVua25vd24NCiBTb3VyY2UpDQogICAgICBhdA0K Y29tLmlibS53Yml0LmNvbXB0ZXN0LmNvbnRyb2xsZXIuY29tbWFuZC5pbXBsLkNvbW1hbmRQcm9j ZXNzb3IuZG9Db21tYW5kKFVua25vd24NCiBTb3VyY2UpDQogICAgICBhdCBjb20uaWJtLndiaXQu Y29tcHRlc3Quc2VydmxldC5UZXN0Q29udHJvbGxlclNlcnZsZXQucHJvY2VzcygNClRlc3RDb250 cm9sbGVyU2VydmxldC5qYXZhOjc2KQ0KICAgICAgYXQgY29tLmlibS53Yml0LmNvbXB0ZXN0LnNl cnZsZXQuVGVzdENvbnRyb2xsZXJTZXJ2bGV0LmRvUG9zdCgNClRlc3RDb250cm9sbGVyU2Vydmxl dC5qYXZhOjUxKQ0KICAgICAgYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNlcnZp Y2UoSHR0cFNlcnZsZXQuamF2YTo3NjMpDQogICAgICBhdCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0 cFNlcnZsZXQuc2VydmljZShIdHRwU2VydmxldC5qYXZhOjg1NikNCiAgICAgIGF0IGNvbS5pYm0u d3Mud2ViY29udGFpbmVyLnNlcnZsZXQuU2VydmxldFdyYXBwZXIuc2VydmljZSgNClNlcnZsZXRX cmFwcGVyLmphdmE6OTk1KQ0KICAgICAgYXQgY29tLmlibS53cy53ZWJjb250YWluZXIuc2Vydmxl dC5TZXJ2bGV0V3JhcHBlci5oYW5kbGVSZXF1ZXN0KA0KU2VydmxldFdyYXBwZXIuamF2YTo1MDEp DQogICAgICBhdCBjb20uaWJtLndzLndzd2ViY29udGFpbmVyLnNlcnZsZXQuU2VydmxldFdyYXBw ZXIuaGFuZGxlUmVxdWVzdCgNClNlcnZsZXRXcmFwcGVyLmphdmE6NDY0KQ0KICAgICAgYXQgY29t LmlibS53cy53ZWJjb250YWluZXIuc2VydmxldC5DYWNoZVNlcnZsZXRXcmFwcGVyLmhhbmRsZVJl cXVlc3QoDQpDYWNoZVNlcnZsZXRXcmFwcGVyLmphdmE6OTApDQogICAgICBhdCBjb20uaWJtLndz LndlYmNvbnRhaW5lci5XZWJDb250YWluZXIuaGFuZGxlUmVxdWVzdCgNCldlYkNvbnRhaW5lci5q YXZhOjc0NCkNCiAgICAgIGF0IGNvbS5pYm0ud3Mud3N3ZWJjb250YWluZXIuV2ViQ29udGFpbmVy LmhhbmRsZVJlcXVlc3QoDQpXZWJDb250YWluZXIuamF2YToxNDU1KQ0KICAgICAgYXQgY29tLmli bS53cy53ZWJjb250YWluZXIuY2hhbm5lbC5XQ0NoYW5uZWxMaW5rLnJlYWR5KA0KV0NDaGFubmVs TGluay5qYXZhOjExMykNCiAgICAgIGF0DQpjb20uaWJtLndzLmh0dHAuY2hhbm5lbC5pbmJvdW5k LmltcGwuSHR0cEluYm91bmRMaW5rLmhhbmRsZURpc2NyaW1pbmF0aW9uKA0KSHR0cEluYm91bmRM aW5rLmphdmE6NDU0KQ0KICAgICAgYXQNCmNvbS5pYm0ud3MuaHR0cC5jaGFubmVsLmluYm91bmQu aW1wbC5IdHRwSW5ib3VuZExpbmsuaGFuZGxlTmV3SW5mb3JtYXRpb24oDQpIdHRwSW5ib3VuZExp bmsuamF2YTozODMpDQogICAgICBhdCBjb20uaWJtLndzLmh0dHAuY2hhbm5lbC5pbmJvdW5kLmlt cGwuSHR0cEluYm91bmRMaW5rLnJlYWR5KA0KSHR0cEluYm91bmRMaW5rLmphdmE6MjYzKQ0KICAg ICAgYXQNCmNvbS5pYm0ud3MudGNwLmNoYW5uZWwuaW1wbC5OZXdDb25uZWN0aW9uSW5pdGlhbFJl YWRDYWxsYmFjay5zZW5kVG9EaXNjcmltaW5hdG9ycygNCk5ld0Nvbm5lY3Rpb25Jbml0aWFsUmVh ZENhbGxiYWNrLmphdmE6MjE0KQ0KICAgICAgYXQNCmNvbS5pYm0ud3MudGNwLmNoYW5uZWwuaW1w bC5OZXdDb25uZWN0aW9uSW5pdGlhbFJlYWRDYWxsYmFjay5jb21wbGV0ZSgNCk5ld0Nvbm5lY3Rp b25Jbml0aWFsUmVhZENhbGxiYWNrLmphdmE6MTEzKQ0KICAgICAgYXQNCmNvbS5pYm0ud3MudGNw LmNoYW5uZWwuaW1wbC5BaW9SZWFkQ29tcGxldGlvbkxpc3RlbmVyLmZ1dHVyZUNvbXBsZXRlZCgN CkFpb1JlYWRDb21wbGV0aW9uTGlzdGVuZXIuamF2YToxNjUpDQogICAgICBhdCBjb20uaWJtLmlv LmFzeW5jLkFic3RyYWN0QXN5bmNGdXR1cmUuaW52b2tlQ2FsbGJhY2soDQpBYnN0cmFjdEFzeW5j RnV0dXJlLmphdmE6MjE3KQ0KICAgICAgYXQgY29tLmlibS5pby5hc3luYy5Bc3luY0NoYW5uZWxG dXR1cmUuZmlyZUNvbXBsZXRpb25BY3Rpb25zKA0KQXN5bmNDaGFubmVsRnV0dXJlLmphdmE6MTYx KQ0KICAgICAgYXQgY29tLmlibS5pby5hc3luYy5Bc3luY0Z1dHVyZS5jb21wbGV0ZWQoQXN5bmNG dXR1cmUuamF2YToxMzYpDQogICAgICBhdCBjb20uaWJtLmlvLmFzeW5jLlJlc3VsdEhhbmRsZXIu Y29tcGxldGUoUmVzdWx0SGFuZGxlci5qYXZhOjE5NSkNCiAgICAgIGF0IGNvbS5pYm0uaW8uYXN5 bmMuUmVzdWx0SGFuZGxlci5ydW5FdmVudFByb2Nlc3NpbmdMb29wKA0KUmVzdWx0SGFuZGxlci5q YXZhOjc0MykNCiAgICAgIGF0IGNvbS5pYm0uaW8uYXN5bmMuUmVzdWx0SGFuZGxlciQyLnJ1bihS ZXN1bHRIYW5kbGVyLmphdmE6ODczKQ0KICAgICAgYXQgY29tLmlibS53cy51dGlsLlRocmVhZFBv b2wkV29ya2VyLnJ1bihUaHJlYWRQb29sLmphdmE6MTQ2OSkNCg0KNS4gQWNjb3JkaW5nIHRvIG15 IGFuYWx5c2lzLA0KDQogICAgICBDYXNlU3RhdHVzIGNTdGF0dXMgPSBzdGF0dXNEQU8uZmluZEJ5 Q2FzZVN0YXR1c1BLKGNhc2VlU3RhdHVzKTsgICAtLS0NCmNTdGF0dXMgd2l0aCBTdGF0ZU1hbmFn ZXJJbXBsICYgUE5vblRyYW5zU3RhdGUNCiAgICAgIENhc2VlIGNhc2VlID0gY2FzZURBTy5maW5k QnlDYXNlZVBLV2l0aFJlZihjYXNlZUlkKTsgICAgICAgICAgICAgIC0tLQ0KY2FzZWUgd2l0aCBT dGF0ZU1hbmFnZXJJbXBsICYgUE5vblRyYW5zU3RhdGUNCiAgICAgIGNhc2VlLnNldEJ1c2luZXNz U3RhdHVzKGNTdGF0dXMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLQ0KY2Fz ZWUgd2l0aCBTdGF0ZU1hbmFnZXJJbXBsICYgUERpcnR5U3RhdGUNCiAgICAgIGNhc2VEQU8udXBk YXRlQ2FzZWUoY2FzZWUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t LQ0KaW4gdXBkYXRlQ2FzZWUgbWV0aG9kLCBjYXNlZShQRGlydHlUcmFuc1N0YXRlIC0+IFBOZXdT dGF0ZSkNCg0KICAgICAgZW0gPSBlbWYuY3JlYXRlRW50aXR5TWFuYWdlcigpOw0KICAgICAgZW0u am9pblRyYW5zYWN0aW9uKCk7DQogICAgICBDYXNlZSBtZXJnZWRjYXNlZSA9IGVtLm1lcmdlKGNh c2VlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0NCmNhc2VlIHdpdGggU3RhdGVN YW5hZ2VySW1wbCAmIFBEaXJ0eVN0YXRlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0NCm1lcmdlZGNhc2Vl IHdpdGggU3RhdGVNYW5hZ2VySW1wbCAmIFBOZXdTdGF0ZQ0KICAgICAgZW0uZmx1c2goKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tDQpI ZXJlLCBhIHJlY29yZCB3b3VsZCBiZSBpbnNlcnRlZCBpbnRvIERCDQogICAgICBlbS5jbG9zZSgp Ow0KDQpTbyBhbnlvbmUgY291bGQgaGVscCBtZSBvdXQgb2YgdGhpcyBlcnJvcj8NCg0KSG9uZ2pp biBMdSAowrO67L3wKQ0KRGV2ZWxvcGVyLCBHQ0cgR2xvYmFsIEJ1c2luZXNzIFNvbHV0aW9uIENl bnRyZSAoR0JTQykgLSBHQlMgQXNzZXQNCk1hbmFnZW1lbnRAQ0RMDQpUZWw6ICs4NiAxMCA4MjQ1 NDcxOCwgVGllTGluZTogOTE1MjI0NCB4IDQ3MTgsIEZheDogKzg2LTEwLTgyNDUtMjkwNA0KRS1t YWlsOiBsdWhvbmdqQGNuLmlibS5jb20NCkFkZHJlc3M6IDMvRiBEZVNoaSBCdWlsZGluZywgTm8u IDkgU2hhbmdEaSBEb25nIEx1IChFYXN0IFJvYWQpICBIYWlkaWFuDQpEaXN0cmljdCBCZWlqaW5n LCAxMDAwOTQgUC5SLiBDaGluYQ== --0__=C7BBFE70DFA2E8478f9e8a93df938690918cC7BBFE70DFA2E847--