RE: Suggestion needed for a case of Lucene Migration with TokenStream
"Saha, Rajib" <[email protected]> Thu, 24 Apr 2025 07:37:08 +0000
| Newsgroups | gmane.comp.jakarta.lucene.user |
|---|---|
| Message-ID | <DB9PR02MB8371B5C594C9C28F307FF1A690852@DB9PR02MB8371.eurprd02.prod.outlook.com> |
VGhhbmtzIE1pa2hhaWwgZm9yIHRoZSBzdWdnZXN0aW9uLg0KTm93IHRoZSBwcmV2aW91cyBleGNl cHRpb24gaGFzIGdvbmUuIEJ1dCBhIG5ldyBleGNlcHRpb24gaGFzIGNvbWUgZnJvbSBGaWVsZC5q YXZhLg0KSGVyZSBiZWxvdyBhcmUgdGhlIGV4Y2VwdGlvbiBkZXRhaWxzLg0KPT09PT09PT0NCmph dmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb246IFRva2VuU3RyZWFtIGZpZWxkcyBjYW5u b3QgYmUgc3RvcmVkDQogICAgICAgIGF0IG9yZy5hcGFjaGUubHVjZW5lLmRvY3VtZW50LkZpZWxk Ljxpbml0PihGaWVsZC5qYXZhOjE1NSkNCj09PT09PT09PQ0KDQpDYW4geW91IHBsZWFzZSBzdWdn ZXN0IGhlcmUgdG9vPw0KDQpSZWdhcmRzDQpSYWppYg0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQpGcm9tOiBNaWtoYWlsIEtobHVkbmV2IDxta2hsQGFwYWNoZS5vcmc+DQpTZW50OiAy NCBBcHJpbCAyMDI1IDEyOjEwDQpUbzogamF2YS11c2VyQGx1Y2VuZS5hcGFjaGUub3JnDQpTdWJq ZWN0OiBSZTogU3VnZ2VzdGlvbiBuZWVkZWQgZm9yIGEgY2FzZSBvZiBMdWNlbmUgTWlncmF0aW9u IHdpdGggVG9rZW5TdHJlYW0NCg0KSGkNClVzZSBUZXh0RmllbGQuVFlQRV9TVE9SRUQgYXMgdGhl IHRoaXJkIGFyZ3VtZW50IGluIG5ldyBGaWVsZCgpDQpzZWUNCmh0dHBzOi8vZ2l0aHViLmNvbS9h cGFjaGUvbHVjZW5lLXNvbHIvYmxvYi9lMjdmNDRlM2Q3OGRmY2VjMjMwYzk3ZTBhMTI0MGUzNzUx ZGFlZmY5L2x1Y2VuZS9jb3JlL3NyYy9qYXZhL29yZy9hcGFjaGUvbHVjZW5lL2RvY3VtZW50L1Rl eHRGaWVsZC5qYXZhI0wzNUMzMy1MMzVDNDQNCg0KDQpPbiBUaHUsIEFwciAyNCwgMjAyNSBhdCA4 OjM34oCvQU0gU2FoYSwgUmFqaWIgPHJhamliLnNhaGFAc2FwLmNvbS5pbnZhbGlkPg0Kd3JvdGU6 DQoNCj4gSGkgRXhwZXJ0cywNCj4NCj4gV2UgYXJlIG1pZ3JhdGluZyBMdWNlbmUgZnJvbSAyLjQu MSB0byA4LjExLjIuDQo+DQo+IER1cmluZyBNaWdyYXRpb24gZm9yIGEgcGFydCBvZiBjb2RlLCB3 ZSBhcmUgZ2V0dGluZyBiZWxvdyBleGNlcHRpb24gaW4NCj4gOC4xMS4yIGJhc2VkIGNoYW5nZXMg ZnJvbSBSZWQgbGluZSBjb2xvcmVkLg0KPiA9PT09PT09PT09PT09DQo+IGphdmEubGFuZy5JbGxl Z2FsQXJndW1lbnRFeGNlcHRpb246IFRva2VuU3RyZWFtIGZpZWxkcyBtdXN0IGJlIGluZGV4ZWQg YW5kDQo+IHRva2VuaXplZA0KPiBhdCBvcmcuYXBhY2hlLmx1Y2VuZS5kb2N1bWVudC5GaWVsZC48 aW5pdD4oRmllbGQuamF2YToxNTIpDQo+DQo+IEkgdGllZCBmZXcgb3B0aW9ucy4gQnV0LCBjb3Vs ZCBub3QgYWJsZSB0byByZXNvbHZlIHRoZSBlcnJvci4gQmVpaXcNCj4gQ2FuIHNvbWVib2R5IG9m IHlvdSBwbGVhc2UgaGVscCBtZSB0byBpZGVudGlmeSwgd2hlcmUgaXQgaXMgZ29pbmcgYXMgd3Jv bmc/DQo+DQo+IFdlIGhhZCBjb2RlIGJhc2VkIG9uIDIuNC4xIGFzIGxpa2UgYmVsb3c6DQo+ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IEludCBjdXJyZW50VmFsPA0KPiBo dHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPWN1cnJlbnRWYWwmcHJvamVj dD0yMDI1X1JUTT4gPQ0KPiAvL3NvbWUgdmFsdWUNCj4gUGF5bG9hZFRva2VuU3RyZWFtPA0KPiBo dHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPVBheWxvYWRUb2tlblN0cmVh bSZwcm9qZWN0PTIwMjVfUlRNPg0KPiB0b2tlblN0cmVhbTwNCj4gaHR0cDovLzEwLjIzOC4yMzYu MTAxOjgwODAvc291cmNlL3M/cmVmcz10b2tlblN0cmVhbSZwcm9qZWN0PTIwMjVfUlRNPiA9DQo+ IG5ldyBQYXlsb2FkVG9rZW5TdHJlYW08DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3Nv dXJjZS9zP2RlZnM9UGF5bG9hZFRva2VuU3RyZWFtJnByb2plY3Q9MjAyNV9SVE0NCj4gPigpOw0K PiB0b2tlblN0cmVhbTwNCj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYv MjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2Vy dmljZXBsdWdpbnMvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9s dWNlbmUvaW5kZXgvZW5naW5lL0x1Y2VuZUluZGV4RW5naW5lLmphdmEjdG9rZW5TdHJlYW0NCj4g Pi5zZXRQYXlsb2FkPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZz PXNldFBheWxvYWQmcHJvamVjdD0yMDI1X1JUTQ0KPiA+KGN1cnJlbnRWYWw8DQo+IGh0dHA6Ly8x MC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9Y3VycmVudFZhbCZwcm9qZWN0PTIwMjVf UlRNPik7DQo+IGx1Y0ZpZWxkPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uv eHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2 YS9zZXJ2aWNlcGx1Z2lucy9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2Vh cmNoL2x1Y2VuZS9pbmRleC9lbmdpbmUvTHVjZW5lSW5kZXhFbmdpbmUuamF2YSNsdWNGaWVsZD4N Cj4gPSBuZXcgRmllbGQ8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2Rl ZnM9RmllbGQmcHJvamVjdD0yMDI1X1JUTT4oY29uZmlnPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4x MDE6ODA4MC9zb3VyY2Uvcz9kZWZzPWNvbmZpZyZwcm9qZWN0PTIwMjVfUlRNDQo+ID4ucGF5bG9h ZFVpZDwNCj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1wYXlsb2Fk VWlkJnByb2plY3Q9MjAyNV9SVE0NCj4gPigpLm5hbWU8aHR0cDovLzEwLjIzOC4yMzYuMTAxOjgw ODAvc291cmNlL3M/ZGVmcz1uYW1lJnByb2plY3Q9MjAyNV9SVE0+LA0KPiB0b2tlblN0cmVhbTwN Cj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZv cm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2VydmljZXBsdWdpbnMvc3Jj L2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9sdWNlbmUvaW5kZXgvZW5n aW5lL0x1Y2VuZUluZGV4RW5naW5lLmphdmEjdG9rZW5TdHJlYW0NCj4gPik7DQo+IGRvYzxodHRw Oi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPWRvYyZwcm9qZWN0PTIwMjVfUlRN Pi5hZGQ8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9YWRkJnBy b2plY3Q9MjAyNV9SVE0+KGx1Y0ZpZWxkPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9z b3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdv cmsvamF2YS9zZXJ2aWNlcGx1Z2lucy9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZv cm0vc2VhcmNoL2x1Y2VuZS9pbmRleC9lbmdpbmUvTHVjZW5lSW5kZXhFbmdpbmUuamF2YSNsdWNG aWVsZA0KPiA+KTsNCj4NCj4gLi4uLi4uDQo+IHB1YmxpYyBjbGFzcyBQYXlsb2FkVG9rZW5TdHJl YW08DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3JlZnM9UGF5bG9hZFRv a2VuU3RyZWFtJnByb2plY3Q9MjAyNV9SVE0+DQo+IGV4dGVuZHMgVG9rZW5TdHJlYW08DQo+IGh0 dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9VG9rZW5TdHJlYW0mcHJvamVj dD0yMDI1X1JUTT57DQo+IHB1YmxpYyBzdGF0aWMgU3RyaW5nPA0KPiBodHRwOi8vMTAuMjM4LjIz Ni4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPVN0cmluZyZwcm9qZWN0PTIwMjVfUlRNPg0KPiBVSURf UEFZTE9BRF9TVEFSVF9WQUw8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9z P3JlZnM9VUlEX1BBWUxPQURfU1RBUlRfVkFMJnByb2plY3Q9MjAyNV9SVE0+DQo+ID0gIl9VSURf IjsNCj4gICAgICAgICAgICAgICBwcml2YXRlIFRva2VuPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4x MDE6ODA4MC9zb3VyY2Uvcz9kZWZzPVRva2VuJnByb2plY3Q9MjAyNV9SVE0+IHRva2VuPA0KPiBo dHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPXRva2VuJnByb2plY3Q9MjAy NV9SVE0+ID0gbmV3DQo+IFRva2VuPGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9z P2RlZnM9VG9rZW4mcHJvamVjdD0yMDI1X1JUTQ0KPiA+KFVJRF9QQVlMT0FEX1NUQVJUX1ZBTDwN Cj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZv cm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3NyYy9jb20vc2FwL2J1 c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxvYWRUb2tlblN0cmVh bS5qYXZhI1VJRF9QQVlMT0FEX1NUQVJUX1ZBTA0KPiA+LDAsMCk7DQo+ICAgICAgICAgICAgICAg cHJpdmF0ZSBieXRlW10gYnVmZmVyPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3Vy Y2Uvcz9yZWZzPWJ1ZmZlciZwcm9qZWN0PTIwMjVfUlRNPiA9IG5ldw0KPiBieXRlWzRdOw0KPiAg ICAgICAgICAgICAgIHByaXZhdGUgYm9vbGVhbiByZXR1cm5Ub2tlbjwNCj4gaHR0cDovLzEwLjIz OC4yMzYuMTAxOjgwODAvc291cmNlL3M/cmVmcz1yZXR1cm5Ub2tlbiZwcm9qZWN0PTIwMjVfUlRN PiA9DQo+IGZhbHNlOw0KPg0KPiAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNldFBheWxvYWQ8 DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3JlZnM9c2V0UGF5bG9hZCZw cm9qZWN0PTIwMjVfUlRNPihpbnQNCj4gdWlkPGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3Nv dXJjZS9zP3JlZnM9dWlkJnByb2plY3Q9MjAyNV9SVE0+KXsNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBidWZmZXI8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94 cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZh L3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRl eC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSNidWZmZXI+WzBdDQo+ID0gKGJ5dGUpdWlkPA0KPiBo dHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5z ZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5l c3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmph dmEjdWlkDQo+ID47DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyPA0KPiBo dHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5z ZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5l c3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmph dmEjYnVmZmVyPlsxXQ0KPiA9IChieXRlKSh1aWQ8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4 MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2Zy YW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2Vh cmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSN1aWQNCj4gPj4+OCk7DQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4x MDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2 YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3Jt L3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEjYnVmZmVyPlsyXQ0KPiA9 IChieXRlKSh1aWQ8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIw MjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9z cmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXls b2FkVG9rZW5TdHJlYW0uamF2YSN1aWQNCj4gPj4+MTYpOw0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJ1ZmZlcjwNCj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hy ZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEv c2RrL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4 L1BheWxvYWRUb2tlblN0cmVhbS5qYXZhI2J1ZmZlcj5bM10NCj4gPSAoYnl0ZSkodWlkPA0KPiBo dHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5z ZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5l c3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmph dmEjdWlkDQo+ID4+PjI0KTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbjwN Cj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZv cm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3NyYy9jb20vc2FwL2J1 c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxvYWRUb2tlblN0cmVh bS5qYXZhI3Rva2VuDQo+ID4uc2V0UGF5bG9hZDwNCj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgw ODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJh bWV3b3JrL2phdmEvc2RrL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFy Y2gvc2RrL2luZGV4L1BheWxvYWRUb2tlblN0cmVhbS5qYXZhI3NldFBheWxvYWQ+KG5ldw0KPiBQ YXlsb2FkPGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9UGF5bG9hZCZw cm9qZWN0PTIwMjVfUlRNDQo+ID4oYnVmZmVyPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4 MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFt ZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJj aC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEjYnVmZmVyDQo+ID4pKTsNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5Ub2tlbiA9IHRydWU7DQo+ICAgICAgICAg ICAgICAgfQ0KPiAgICAgICAgICAgICAgIHB1YmxpYyBUb2tlbjwNCj4gaHR0cDovLzEwLjIzOC4y MzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1Ub2tlbiZwcm9qZWN0PTIwMjVfUlRNPiBuZXh0PA0K PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPW5leHQmcHJvamVjdD0y MDI1X1JUTT4oKSB0aHJvd3MNCj4gSU9FeGNlcHRpb248DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEw MTo4MDgwL3NvdXJjZS9zP2RlZnM9SU9FeGNlcHRpb24mcHJvamVjdD0yMDI1X1JUTT57DQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldHVyblRva2VuPA0KPiBodHRwOi8vMTAu MjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5z ZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3Rz L3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEjcmV0dXJu VG9rZW4+KXsNCj4gcmV0dXJuVG9rZW48DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3Nv dXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29y ay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nk ay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSNyZXR1cm5Ub2tlbj4NCj4gPSBmYWxzZTsg cmV0dXJuIHRva2VuPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8y MDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsv c3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5 bG9hZFRva2VuU3RyZWFtLmphdmEjdG9rZW4+Ow0KPiB9DQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZWxzZSB7IHJldHVybiBudWxsPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4 MC9zb3VyY2Uvcz9kZWZzPW51bGwmcHJvamVjdD0yMDI1X1JUTT47IH0NCj4NCj4gICAgICAgICAg ICAgICB9DQo+IH0NCj4NCj4NCj4gV2UgaGF2ZSBtYWRlIGNvZGUgYmFzZWQgb24gOC4xMS4yIGFz IGxpa2UgYmVsb3c6DQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KPiBQYXlsb2FkVG9rZW5TdHJlYW0gdG9rZW5TdHJlYW0gPSBuZXcgUGF5bG9hZFRva2VuU3Ry ZWFtKCk7DQo+IHRva2VuU3RyZWFtLnNldFBheWxvYWQoY3VycmVudFZhbCk7DQo+IEZpZWxkVHlw ZSBmaWVsZFR5cGUgPSBuZXcgRmllbGRUeXBlKCk7DQo+IGx1Y0ZpZWxkID0gbmV3IEZpZWxkKGNv bmZpZy5wYXlsb2FkVWlkKCkubmFtZSwgdG9rZW5TdHJlYW0sIGZpZWxkVHlwZSk7DQo+IGRvYy5h ZGQobHVjRmllbGQpOw0KPiAtLS0tDQo+IHB1YmxpYyBjbGFzcyBQYXlsb2FkVG9rZW5TdHJlYW08 DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3JlZnM9UGF5bG9hZFRva2Vu U3RyZWFtJnByb2plY3Q9MjAyNV9SVE0+DQo+IGV4dGVuZHMgVG9rZW5TdHJlYW08DQo+IGh0dHA6 Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9VG9rZW5TdHJlYW0mcHJvamVjdD0y MDI1X1JUTT57DQo+IHB1YmxpYyBzdGF0aWMgU3RyaW5nPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4x MDE6ODA4MC9zb3VyY2Uvcz9kZWZzPVN0cmluZyZwcm9qZWN0PTIwMjVfUlRNPg0KPiBVSURfUEFZ TE9BRF9TVEFSVF9WQUw8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3Jl ZnM9VUlEX1BBWUxPQURfU1RBUlRfVkFMJnByb2plY3Q9MjAyNV9SVE0+DQo+ID0gIl9VSURfIjsN Cj4gcHJpdmF0ZSBieXRlW10gYnVmZmVyPA0KPiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9z b3VyY2Uvcz9yZWZzPWJ1ZmZlciZwcm9qZWN0PTIwMjVfUlRNPiA9IG5ldw0KPiBieXRlWzRdOw0K PiAgICAgICAgICAgICAgIHByaXZhdGUgYm9vbGVhbiByZXR1cm5Ub2tlbjwNCj4gaHR0cDovLzEw LjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/cmVmcz1yZXR1cm5Ub2tlbiZwcm9qZWN0PTIwMjVf UlRNPiA9DQo+IGZhbHNlOw0KPg0KPiAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNldFBheWxv YWQ8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3JlZnM9c2V0UGF5bG9h ZCZwcm9qZWN0PTIwMjVfUlRNPihpbnQNCj4gdWlkPGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgw L3NvdXJjZS9zP3JlZnM9dWlkJnByb2plY3Q9MjAyNV9SVE0+KXsNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBidWZmZXI8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJj ZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9q YXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9p bmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSNidWZmZXI+WzBdDQo+ID0gKGJ5dGUpdWlkPA0K PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9y bS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVz aW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFt LmphdmEjdWlkDQo+ID47DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyPA0K PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9y bS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVz aW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFt LmphdmEjYnVmZmVyPlsxXQ0KPiA9IChieXRlKSh1aWQ8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEw MTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZh L2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0v c2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSN1aWQNCj4gPj4+OCk7DQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyPA0KPiBodHRwOi8vMTAuMjM4LjIz Ni4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2gu amF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRm b3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEjYnVmZmVyPlsyXQ0K PiA9IChieXRlKSh1aWQ8DQo+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVm LzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nk ay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9Q YXlsb2FkVG9rZW5TdHJlYW0uamF2YSN1aWQNCj4gPj4+MTYpOw0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJ1ZmZlcjwNCj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNl L3hyZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2ph dmEvc2RrL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2lu ZGV4L1BheWxvYWRUb2tlblN0cmVhbS5qYXZhI2J1ZmZlcj5bM10NCj4gPSAoYnl0ZSkodWlkPA0K PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9y bS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVz aW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFt LmphdmEjdWlkDQo+ID4+PjI0KTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXls b2FkQXR0cmlidXRlSW1wbCBhdHRyaWJ1dGVJbXBsID0gbmV3DQo+IFBheWxvYWRBdHRyaWJ1dGVJ bXBsKG5ldyBCeXRlc1JlZihidWZmZXIpKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFkZEF0dHJpYnV0ZUltcGwoYXR0cmlidXRlSW1wbCk7DQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuVG9rZW4gPSB0cnVlOw0KPiAgICAgICAgICAgICAgIH0NCj4gICAgICAg ICAgICAgICBwdWJsaWMgYm9vbGVhbiBpbmNyZW1lbnRUb2tlbigpIHRocm93cyBJT0V4Y2VwdGlv biB7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldHVyblRva2VuKXsNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblRva2VuID0g ZmFsc2U7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gdHJ1ZTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZWxzZSB7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KPiAgICAgICAgICAgICAgIH0NCj4gfQ0KPg0KPiBSZWdhcmRzDQo+IFJhamliDQo+DQo+ DQoNCi0tDQpTaW5jZXJlbHkgeW91cnMNCk1pa2hhaWwgS2hsdWRuZXYNCg== DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGphdmEtdXNlci11 bnN1YnNjcmliZUBsdWNlbmUuYXBhY2hlLm9yZw0KRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMs IGUtbWFpbDogamF2YS11c2VyLWhlbHBAbHVjZW5lLmFwYWNoZS5vcmcNCg0K