From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) by sourceware.org (Postfix) with ESMTPS id EC6F83858020 for ; Wed, 1 Mar 2023 12:13:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EC6F83858020 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp71t1677672832tdasg575 Received: from LAPTOP-EPITNQBU ( [113.104.211.210]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 01 Mar 2023 20:13:51 +0800 (CST) X-QQ-SSF: 01400000000000E0M000000A0000000 X-QQ-FEAT: UYv57O1xLrvOUCCtoG3CB6UQ+X2YlguC6MKyK/Abc4h4gH658S2qH58oIXtPN GZ7UhECLqu6fWqsETP7WBnqhHrSRLv8u4EF603dh4/jcXG/Nf5nfb0cFOsTViTrEWz/IICm G7KFqZynzTZoKt41BW6ZRXGAw/175Hka4u73dfegr4cUj6OJdpB39cAg3+lCqQtwDadFvLX aBQMFh8u9f1dFM00e3+EojfmVyt71y/8qU/2OlBEvE+CytDKHjUAKJ5uCFW6teAMibCnosc hrSQd/e67t1sOBVWLdF5XCG+fi3T5EdhtnAfQLZiXokwI3C5lctEOWsDmwtHy7Y+BQTxuth w6FdWs3rR7I0x/xBaar92vKRfmcAlebiitOpIxGyhRM6AiGfeqcmyma/7JZW/x2RyM5KPzW 6CG0OEdQ0+4CjtV9QzTNyfRku/XpB0ok X-QQ-GoodBg: 2 Date: Wed, 1 Mar 2023 20:13:52 +0800 From: "juzhe.zhong@rivai.ai" To: richard.sandiford , gcc-patches Cc: incarnation.p.lee , pan2.li , Kito.cheng , rguenther Subject: Re: Re: [PATCH] RISC-V: Bugfix for rvv bool mode precision adjustment References: , , , , , , , , <6F429B8CF9C3B3EF+2023030118462950633032@rivai.ai>, , , , X-Priority: 3 X-GUID: 74486372-F41B-4B1F-AF84-0D0A98B30E44 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <57D5114CA3C3BC82+2023030120135151352039@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart156271306325_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart156271306325_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 QWN0dWFsbHksIHdlIGp1c3Qgd2FudCB0byBkaWZmZXJlbnRpYXRlIFZOeDFC SSBWTngyQkkgVk54NEJJIFZOeDhCSSwgYW5kIHRoZXkgYXJlIGNvbnNpZGVy ZWQgdGhlIHNhbWUgaW4gR0NDIHdoaWNoIHByb2R1Y2UgQlVHIGluIFJWViBj dXJyZW50bHkuDQpUaGlzIHBhdGNoIGlzIGp1c3QgYWRqdXN0IHByZWNpc2lv biB0byBkaWZmZXJlbnRpYXRlIHRoZW0gYnV0IG1heSBub3QgYmUgKGxpa2Ug eW91IHNheSksIHRoZXkgbWF5IG5vdCBiZSBoYW5kbGVkIGFjY3VyYXRlbHkg YWNjb3JkaW5nIHByZWNpc2lvbi4gDQpIb3dldmVyLCBhdCBsZWFzdCBpdCBj YW4gaGVscCB1cyBkaWZmZXJlbnRpYXRlIHRoZXNlIDQgbWFzayBtb2RlcyBh bmQgYXZvaWQgZW5jb3VudGVyIHRoZSBidWdzLg0KVGhlIGlzIHRoZSBjdXJy ZW50IHNvbHV0aW9uIHRoYXQgd2UgaGF2ZSB0byBmaXggdGhlIGJ1ZyBvZiBS VlYgYW5kIGF2b2lkIGluZmx1ZW5jZSBvdGhlciB0YXJnZXRzLg0KDQpEbyB5 b3UgaGF2ZSBvdGhlciBpZGVhcyB0byBmaXggdGhpcyBpc3N1ZT8gT3Igc3Vj aCBwYXRjaCB3aXRoIGFkZGluZyBhZGp1c3RfcHJlY2lzaW9uIHN1cHBvcnQg aXMgT0sgdG8gR0NDPw0KDQpUaGFua3MuDQoNCg0KanV6aGUuemhvbmdAcml2 YWkuYWkNCiANCkZyb206IFJpY2hhcmQgU2FuZGlmb3JkDQpEYXRlOiAyMDIz LTAzLTAxIDIwOjAzDQpUbzog55u8IOadjiB2aWEgR2NjLXBhdGNoZXMNCkND OiDnm7wg5p2OOyBqdXpoZS56aG9uZ1xAcml2YWkuYWk7IHBhbjIubGk7IEtp dG8uY2hlbmc7IHJndWVudGhlcg0KU3ViamVjdDogUmU6IFtQQVRDSF0gUklT Qy1WOiBCdWdmaXggZm9yIHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIGFkanVz dG1lbnQNCuebvCDmnY4gdmlhIEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0Bn Y2MuZ251Lm9yZz4gd3JpdGVzOg0KPiBKdXN0IGhhdmUgYSB0ZXN0IHdpdGgg dGhlIGJlbG93IGNvZGUsIHRoZSBbMHg0LCAweDRdIHRlc3QgY29tZXMgZnJv bSBWTng0QkkuIFlvdSBjYW4gbm90aWNlIHRoYXQgdGhlIG1vZGUgc2l6ZSBp cyB1bmNoYW5nZWQuDQo+DQo+IHByaW50ZiAoIiAgICBjYW5fZGl2X2F3YXlf ZnJvbV96ZXJvX3AgKG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwgIg0KPiAg ICJCSVRTX1BFUl9VTklULCAmbW9kZV9zaXplW0VfJXNtb2RlXSk7XG4iLCBt LT5uYW1lLCBtLT5uYW1lKTsNCj4NCj4gVk54NEJJIEJlZm9yZSBwcmVjaXNp b24gWzB4NCwgMHg0XSwgc2l6ZSBbMHg0LCAwXQ0KPiBWTng0QkkgQWZ0ZXIg cHJlY2lzaW9uIFsweDQsIDB4NF0sIHNpemUgWzB4NCwgMF0NCiANClllYWgs IHRoZSByZXN1bHQgaXMgZXhwZWN0ZWQgdG8gYmUgdW5jaGFuZ2VkIGlmIHRo ZSBkaXZpc2lvbiBmYWlscy4NClRoYXQncyBhIGRlbGliZXJhdGUgcGFydCBv ZiB0aGUgaW50ZXJmYWNlLiAgVGhlIGNhbl8qIGZ1bmN0aW9ucw0Kc2hvdWxk IG5ldmVyIGJlIHVzZWQgd2l0aG91dCB0ZXN0aW5nIHRoZSBib29sZWFuIHJl dHVybiB2YWx1ZS4NCiANCkJ1dCB0aGlzIHByZWNpc2lvbiBvZiBbNCw0XSBm b3IgVk54NEJJIGlzIGRpZmZlcmVudCBmcm9tIHdoYXQgeW91DQpsaXN0ZWQg YmVsb3cuICBMaWtlIEkgc2F5LCBpZiB0aGUgcHJlY2lzaW9uIHJlYWxseSBp cyBbNCw0XSwgYW5kIGlmDQp0aGUgc2l6ZSByZWFsbHkgaXMgY2VpbChbNCw0 XS84KSwgdGhlbiBJIGRvbid0IHRoaW5rIHdlIGNhbiByZXByZXNlbnQNCnRo YXQgd2l0aCBjdXJyZW50IGluZnJhc3RydWN0dXJlLg0KIA0KVGhhbmtzLA0K UmljaGFyZA0KIA0KPg0KPiBQYW4NCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18NCj4gRnJvbTogUmljaGFyZCBTYW5kaWZvcmQgPHJpY2hh cmQuc2FuZGlmb3JkQGFybS5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgTWFy Y2ggMSwgMjAyMyAxOToxMQ0KPiBUbzog55u8IOadjiB2aWEgR2NjLXBhdGNo ZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPg0KPiBDYzoganV6aGUuemhv bmdAcml2YWkuYWkgPGp1emhlLnpob25nQHJpdmFpLmFpPjsgcGFuMi5saSA8 cGFuMi5saUBpbnRlbC5jb20+OyDnm7wg5p2OIDxpbmNhcm5hdGlvbi5wLmxl ZUBvdXRsb29rLmNvbT47IEtpdG8uY2hlbmcgPGtpdG8uY2hlbmdAc2lmaXZl LmNvbT47IHJndWVudGhlciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+IFN1Ympl Y3Q6IFJlOiBbUEFUQ0hdIFJJU0MtVjogQnVnZml4IGZvciBydnYgYm9vbCBt b2RlIHByZWNpc2lvbiBhZGp1c3RtZW50DQo+DQo+IOebvCDmnY4gdmlhIEdj Yy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4gd3JpdGVzOg0K Pj4gVGhhbmsgeW91IGFsbCBmb3IgeW91ciBxdWljayByZXNwb25zZS4NCj4+ DQo+PiBBcyBqdXpoZSBtZW50aW9uZWQsIHRoZSBtZW1vcnkgYWNjZXNzIG9m IFJJU0MtViB3aWxsIGJlIGFsd2F5cyBhbGlnbmVkIHRvIHRoZSBieXRlcyBi b3VuZGFyeSB3aXRoIHRoZSBjb21wYWN0IG1vZGUsIGFrYSBjZWlsKHZsIC8g OCkgYnl0ZXMgZm9yIHZib29sKi4NCj4NCj4gT0ssIHRoYW5rcyB0byBib3Ro IG9mIHlvdS4gIFRoaXMgaXMgd2hhdCBJJ2QgaGF2ZSBleHBlY3RlZC4NCj4N Cj4gSW4gdGhhdCBjYXNlLCBJIHRoaW5rIGJvdGggdGhlIGNhbl9kaXZfYXdh eV9mcm9tX3plcm9fcCBhbmQgdGhlDQo+IG9yaWdpbmFsIHBhdGNoICh1c2lu ZyBzaXplX29uZSkgd2lsbCBnaXZlIHRoZSB3cm9uZyByZXN1bHRzLg0KPiBU aGVyZSBpc24ndCBhIHdheSBvZiByZXByZXNlbnRpbmcgY2VpbChbNCw0XS84 KSBhcyBhIHBvbHlfaW50Lg0KPiBUaGUgcmVzdWx0IGlzICg0KzRYKS84IHdo ZW4gWCBpcyBvZGQgYW5kICg4KzRYKS84IHdoZW4gWCBpcyBldmVuLg0KPg0K Pj4gQWN0dWFsbHksIHRoZSBkYXRhIFs0LDRdIGNvbWVzIGZyb20gdGhlIHNl bGYtdGVzdCwgdGhlIFJJU0MtViBwcmVjaXNpb24gbW9kZSBhcyBiZWxvdy4N Cj4+DQo+PiBWTng2NEJJIHByZWNpc2lvbiBbMHg0MCwgMHg0MF0uDQo+PiBW TngzMkJJIHByZWNpc2lvbiBbMHgyMCwgMHgyMF0uDQo+PiBWTngxNkJJIHBy ZWNpc2lvbiBbMHgxMCwgMHgxMF0uDQo+PiBWTng4QkkgcHJlY2lzaW9uIFsw eDgsIDB4OF0uDQo+PiBWTng0QkkgcHJlY2lzaW9uIFsweDgsIDB4OF0uDQo+ PiBWTngyQkkgcHJlY2lzaW9uIFsweDgsIDB4OF0uDQo+PiBWTngxQkkgcHJl Y2lzaW9uIFsweDgsIDB4OF0uDQo+DQo+IEFoLCBPSy4gIFdoaWNoIHNlbGYt dGVzdCBjYXVzZXMgdGhpcz8NCj4NCj4gUmljaGFyZA0KPg0KPj4gVGhlIGlt cGFjdCBvZiBkYXRhIFs0LCA0XSB3aWxsIGltcGFjdCB0aGUgZ2VubW9kZSBw YXJ0LCB3ZSBjYW5ub3Qgd3JpdGUgbGlrZSBiZWxvdyBhcyB0aGUgZ2NjX3Vu cmVhY2hhYmxlIHdpbGwgYmUgaGl0dGVuLg0KPj4NCj4+IGlmICghY2FuX2Rp dl9hd2F5X2Zyb21femVyb19wIChtb2RlX3ByZWNpc2lvbltFXyVzbW9kZV0s IEJJVFNfUEVSX1VOSVQsICAmbW9kZV9zaXplW0VfJXNtb2RlXSkpDQo+PiAg IGdjY191bnJlYWNoYWJsZSAoKTsgLy8gSGl0IG9uIFs0LCA0XSBvZiB0aGUg c2VsZi10ZXN0Lg0KPj4NCj4+IFBhbg0KPj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18NCj4+IEZyb206IGp1emhlLnpob25nQHJpdmFpLmFp IDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NCj4+IFNlbnQ6IFdlZG5lc2RheSwg TWFyY2ggMSwgMjAyMyAxODo0Ng0KPj4gVG86IHJpY2hhcmQuc2FuZGlmb3Jk IDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPjsgcGFuMi5saSA8cGFuMi5s aUBpbnRlbC5jb20+DQo+PiBDYzogaW5jYXJuYXRpb24ucC5sZWUgPGluY2Fy bmF0aW9uLnAubGVlQG91dGxvb2suY29tPjsgZ2NjLXBhdGNoZXMgPGdjYy1w YXRjaGVzQGdjYy5nbnUub3JnPjsgS2l0by5jaGVuZyA8a2l0by5jaGVuZ0Bz aWZpdmUuY29tPjsgcmd1ZW50aGVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NCj4+ IFN1YmplY3Q6IFJlOiBSZTogW1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3Ig cnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24gYWRqdXN0bWVudA0KPj4NCj4+Pj4g SXMgaXQgcmlnaHQgdGhhdCwgZm9yIFJWViwgYSBsb2FkIG9yIHN0b3JlIG9m IFs0LDRdIHdpbGwgYWNjZXNzIFs4LDhdDQo+Pj4+Yml0cywgZXZlbiB3aGVu IHRoYXQgbWVhbnMgYWNjZXNzaW5nIGZ1bGx5LXVudXNlZCBieXRlcz8gIEUu Zy4gNCs0WA0KPj4+PndoZW4gWD0zIHdvdWxkIGJlIDE2IGJpdHMvMiBieXRl cyBvZiB1c2VmdWwgZGF0YSwgYnV0IGEgYml0c2l6ZSBvZg0KPj4+PjgrOFgg d291bGQgYmUgMzIgYml0cy80IGJ5dGVzLiAgU28gYSBzdG9yZSBvZiBbOCw4 XSBmb3IgYSBwcmVjaXNpb24NCj4+Pj5vZiBbNCw0XSB3b3VsZCBzdG9yZSAy IGJ5dGVzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSB1c2VmdWwgZGF0YSB3aGVu IFg9PTM/DQo+Pg0KPj4gSGksIFJpY2hhcmQuIFRoYW5rIHlvdSBmb3IgaGVs cGluZyB1cy4NCj4+IE15IHVuZGVyc3RhbmRpbmcgb2YgUlZWIElTQToNCj4+ DQo+PiBJbiBSVlYsIHdlIGhhdmUgbWFzayBtb2RlIChWTngxQkksIFZOeDJC SSwuLi4uZXRjKSwgZGF0YSBtb2RlIChWTngxUUksVk54NFFJLCBWTngyREks Li4uZXRjKQ0KPj4gRm9yIGRhdGEgbW9kZSwgd2UgZnVsbHkgYWNjZXNzIHRo ZSBkYXRhIGFuZCB3ZSBkb24ndCBoYXZlIHVudXNlZCBieXRlcywgc28gd2Ug ZG9uJ3QgbmVlZCB0byBhZGp1c3QgcHJlY2lzaW9uLg0KPj4gSG93ZXZlciwg Zm9yIG1hc2sgbW9kZSB3ZSBhY2Nlc3MgbWFzayBiaXQgaW4gY29tcGFjdCBt b2RlbCAoc2luY2UgZWFjaCBtYXNrIGJpdCBmb3IgY29ycmVzcG9uZGluZyBl bGVtZW50IGFyZSBjb25zZWN1dGl2ZSkuDQo+PiBmb3IgZXhhbXBsZSwgY3Vy cmVudCBjb25maWd1cmF0aW9uOiBWTngxQkksIFZOeDJCSSwgVk54NEJJLCBW Tng4QkksIHRoZXNlIDQgbW9kZXMgaGF2ZSBzYW1lIGJ5dGVzaXplICgxLDEp ICBidXQgZGlmZmVyZW50IGJpdHNpemUuDQo+Pg0KPj4gVk54OEJJIGlzIGFj Y2Vzc2VkIGZ1bGx5LCBidXQgVk54NEJJIGlzIG9ubHkgYWNjZXNzZWQgMS8y LCBWTngyQkkgMS80LCBWTngxQkkgMS84IGJ1dCBieXRlIGFsaWdubWVudCAo SSBhbSBub3Qgc3VyZSB3aGV0aGVyIFJWViBzdXBwb3J0IGJpdCBhbGlnbm1l bnQsIEkgZ3Vlc3MgaXQgY2FuIG5vdCkuDQo+Pg0KPj4gSWYgVk54OEJJIG9u bHkgb2NjdXB5IDEgYnl0ZSAoRGVwZW5kIG9uIG1hY2hpbmUgdmVjdG9yLWxl bmd0aCksIHNvIFZOeDJCSSxWTjRCSSwgVk54MUJJLCBhcmUgMi84IGJ5dGUs IDQvOCBieXRlLCAxLzggYnl0ZXMuIEkgdGhpbmsgd2UgY2FuJ3QgYWNjZXNz IGluIGJpdCBhbGlnbm1lbnQuIHNvIHRoZXkgd2lsbCB0aGUgc2FtZSBpbiB0 aGUgYWNjZXNzLg0KPj4gSG93ZXZlciwgaWYgVk54OEJJIG9jY3VwdHkgOCBi eXRlLCBXZWxsLCBWTngyQkksVk40QkksIFZOeDFCSSBhcmUgMWJ5dGUsIDJi eXRlcywgNGJ5dGVzLiBUaGV5IGFyZSBhY2Nlc3NpbmcgZGlmZmVyZW50IHNp emUuDQo+Pg0KPj4gVGhpcyBpcyBteSBjb21wcmVoZW5zaW9uIG9mIFJWViBJ U0EsIGZlZWwgZnJlZSB0byBjb3JyZWN0IG1lLg0KPj4gVGhhbmtzLg0KPj4N Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+PiBqdXpo ZS56aG9uZ0ByaXZhaS5haQ0KPj4NCj4+IEZyb206IFJpY2hhcmQgU2FuZGlm b3JkPG1haWx0bzpyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPg0KPj4gRGF0 ZTogMjAyMy0wMy0wMSAxODoxMQ0KPj4gVG86IExpXCwgUGFuMjxtYWlsdG86 cGFuMi5saUBpbnRlbC5jb20+DQo+PiBDQzog55u8IOadjjxtYWlsdG86aW5j YXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb20+OyBpbmNhcm5hdGlvbi5wLmxl ZS0tLSB2aWEgR2NjLXBhdGNoZXM8bWFpbHRvOmdjYy1wYXRjaGVzQGdjYy5n bnUub3JnPjsganV6aGUuemhvbmdcQHJpdmFpLmFpPG1haWx0bzpqdXpoZS56 aG9uZ0ByaXZhaS5haT47IGtpdG8uY2hlbmdcQHNpZml2ZS5jb208bWFpbHRv OmtpdG8uY2hlbmdAc2lmaXZlLmNvbT47IHJndWVudGhlclxAc3VzZS5kZTxt YWlsdG86cmd1ZW50aGVyQHN1c2UuZGU+DQo+PiBTdWJqZWN0OiBSZTogW1BB VENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wgbW9kZSBwcmVjaXNp b24gYWRqdXN0bWVudA0KPj4gIkxpLCBQYW4yIiA8cGFuMi5saUBpbnRlbC5j b20+IHdyaXRlczoNCj4+PiBIaSBSaWNoYXJkIFNhbmRpZm9yZCwNCj4+Pg0K Pj4+IEp1c3QgdHJpZWQgdGhlIG92ZXJsb2FkZWQgY29uc3RhbnQgZGl2aXNv cnMgd2l0aCBiZWxvdyBwcmludCBkaXYsIGl0IHdvcmtzIGFzIHlvdSBtZW50 aW9uZWQsIO+YiSENCj4+Pg0KPj4+IHByaW50ZiAoIiAgICBjYW5fZGl2X2F3 YXlfZnJvbV96ZXJvX3AgKG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwgIg0K Pj4+ICAgICAgIkJJVFNfUEVSX1VOSVQsICZtb2RlX3NpemVbRV8lc21vZGVd KTtcbiIsIG0tPm5hbWUsIG0tPm5hbWUpOw0KPj4+DQo+Pj4gdGVtcGxhdGU8 dW5zaWduZWQgaW50IE4sIHR5cGVuYW1lIENhLCB0eXBlbmFtZSBDYiwgdHlw ZW5hbWUgQ3E+DQo+Pj4gaW5saW5lIHR5cGVuYW1lIGlmX25vbnBvbHk8Q2Is IGJvb2w+Ojp0eXBlDQo+Pj4gY2FuX2Rpdl9hd2F5X2Zyb21femVyb19wIChj b25zdCBwb2x5X2ludF9wb2Q8TiwgQ2E+ICZhLA0KPj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICBDYiBiLA0KPj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICBwb2x5X2ludF9wb2Q8TiwgQ3E+ICpxdW90aWVudCkNCj4+PiB7DQo+ Pj4gICBpZiAoIWNhbl9kaXZfdHJ1bmNfcCAoYSwgYiwgcXVvdGllbnQpKQ0K Pj4+ICAgICByZXR1cm4gZmFsc2U7DQo+Pj4gICBpZiAobWF5YmVfbmUgKCpx dW90aWVudCAqIGIsIGEpKQ0KPj4+ICAgICBmb3IgKHVuc2lnbmVkIGludCBp ID0gMDsgaSA8IE47ICsraSkNCj4+PiAgICAgICBxdW90aWVudC0+Y29lZmZz W2ldICs9IChxdW90aWVudC0+Y29lZmZzW2ldIDwgMCA/IC0xIDogMSk7DQo+ Pj4gICByZXR1cm4gdHJ1ZTsNCj4+PiB9DQo+Pj4NCj4+PiBCdXQgSSBtYXkg aGF2ZSBhIHF1ZXN0aW9uIGFib3V0IHRoZSBvbmUgY2FzZSBhcyBiZWxvdy4N Cj4+Pg0KPj4+IEFzc3VtZToNCj4+PiBhID0gWzQsIDRdLCBiID0gOC4NCj4+ Pg0KPj4+IFdoZW4gbWVldCBjYW5fZGl2X3RydW5jX3AsIGl0IHdpbGwgY2hl Y2sgaWYgdGhlIHJlbWluZGVyIGlzIGNvbnN0YW50IG9yIG5vdCwgYWthIGEu Y29lZmZzW2ldICUgOCA9PSAwIChpID49IDEpLiBJZiBub3QgY29uc3RhbnQg cmVtaW5kZXIsIHRoZSBjYW5fZGl2X3RydW5jX3Agd2lsbCBkbyBub3RoaW5n IGFib3V0IHF1b3RpZW50IGFuZCByZXR1cm4gZmFsc2UuDQo+Pj4NCj4+PiBU aHVzLCB3aGVuIGEgPSBbNCwgNF0gZm9yIGNhbl9kaXZfYXdheV9mcm9tX3pl cm9fcCwgdGhlIG91dHB1dCAqcXVvdGllbnQgd2lsbCBiZSB1bmNoYW5nZWQs IGFrYSB0aGUgbW9kX3NpemVbRV8lc21vZGVdIHdpbGwgYmUgdW5jaGFuZ2Vk IGZvciB0aGlzIGNhc2UuIEhvd2V2ZXIsIHRoZSB1bmRlcmx5aW5nIG1vZGVf c2l6ZSB3aWxsIGFkanVzdCBpdCB0byB0aGUgcmVhbCBieXRlIHNpemUsIGFu ZCBJIGFtIG5vdCBzdXJlIGlmIGl0IGlzIGJ5IGRlc2lnbiBvciByZXF1aXJl cyBhZGRpdGlvbmFsIGhhbmRsaW5nLg0KPj4NCj4+IElzIGl0IHJpZ2h0IHRo YXQsIGZvciBSVlYsIGEgbG9hZCBvciBzdG9yZSBvZiBbNCw0XSB3aWxsIGFj Y2VzcyBbOCw4XQ0KPj4gYml0cywgZXZlbiB3aGVuIHRoYXQgbWVhbnMgYWNj ZXNzaW5nIGZ1bGx5LXVudXNlZCBieXRlcz8gIEUuZy4gNCs0WA0KPj4gd2hl biBYPTMgd291bGQgYmUgMTYgYml0cy8yIGJ5dGVzIG9mIHVzZWZ1bCBkYXRh LCBidXQgYSBiaXRzaXplIG9mDQo+PiA4KzhYIHdvdWxkIGJlIDMyIGJpdHMv NCBieXRlcy4gIFNvIGEgc3RvcmUgb2YgWzgsOF0gZm9yIGEgcHJlY2lzaW9u DQo+PiBvZiBbNCw0XSB3b3VsZCBzdG9yZSAyIGJ5dGVzIGJleW9uZCB0aGUg ZW5kIG9mIHRoZSB1c2VmdWwgZGF0YSB3aGVuIFg9PTM/DQo+Pg0KPj4gUmlj aGFyZA0KPj4NCj4+PiBQYW4NCj4+Pg0KPj4+IEZyb206IOebvCDmnY4gPGlu Y2FybmF0aW9uLnAubGVlQG91dGxvb2suY29tPg0KPj4+IFNlbnQ6IFR1ZXNk YXksIEZlYnJ1YXJ5IDI4LCAyMDIzIDU6NTkgUE0NCj4+PiBUbzogUmljaGFy ZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+OyBMaSwg UGFuMiA8cGFuMi5saUBpbnRlbC5jb20+DQo+Pj4gQ2M6IGluY2FybmF0aW9u LnAubGVlLS0tIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdu dS5vcmc+OyBqdXpoZS56aG9uZ0ByaXZhaS5haTsga2l0by5jaGVuZ0BzaWZp dmUuY29tOyByZ3VlbnRoZXJAc3VzZS5kZQ0KPj4+IFN1YmplY3Q6IFJlOiBb UEFUQ0hdIFJJU0MtVjogQnVnZml4IGZvciBydnYgYm9vbCBtb2RlIHByZWNp c2lvbiBhZGp1c3RtZW50DQo+Pj4NCj4+PiBVbmRlcnN0b29kLCB0aGFua3Mg Zm9yIHRoZSBleHBsYW5hdGlvbnMgYW5kIHN1Z2dlc3Rpb25zLiBMZXQgbWUg aGF2ZSBhIHRyeSBhbmQga2VlcCB5b3UgcG9zdGVkLg0KPj4+DQo+Pj4gUGFu DQo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+PiBG cm9tOiBSaWNoYXJkIFNhbmRpZm9yZCA8cmljaGFyZC5zYW5kaWZvcmRAYXJt LmNvbTxtYWlsdG86cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4+DQo+Pj4g U2VudDogVHVlc2RheSwgRmVicnVhcnkgMjgsIDIwMjMgMTc6NTANCj4+PiBU bzogTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPG1haWx0bzpwYW4yLmxp QGludGVsLmNvbT4+DQo+Pj4gQ2M6IOebvCDmnY4gPGluY2FybmF0aW9uLnAu bGVlQG91dGxvb2suY29tPG1haWx0bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRs b29rLmNvbT4+OyBpbmNhcm5hdGlvbi5wLmxlZS0tLSB2aWEgR2NjLXBhdGNo ZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPG1haWx0bzpnY2MtcGF0Y2hl c0BnY2MuZ251Lm9yZz4+OyBqdXpoZS56aG9uZ0ByaXZhaS5haTxtYWlsdG86 anV6aGUuemhvbmdAcml2YWkuYWk+IDxqdXpoZS56aG9uZ0ByaXZhaS5haTxt YWlsdG86anV6aGUuemhvbmdAcml2YWkuYWk+Pjsga2l0by5jaGVuZ0BzaWZp dmUuY29tPG1haWx0bzpraXRvLmNoZW5nQHNpZml2ZS5jb20+IDxraXRvLmNo ZW5nQHNpZml2ZS5jb208bWFpbHRvOmtpdG8uY2hlbmdAc2lmaXZlLmNvbT4+ OyByZ3VlbnRoZXJAc3VzZS5kZTxtYWlsdG86cmd1ZW50aGVyQHN1c2UuZGU+ IDxyZ3VlbnRoZXJAc3VzZS5kZTxtYWlsdG86cmd1ZW50aGVyQHN1c2UuZGU+ Pg0KPj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIFJJU0MtVjogQnVnZml4IGZv ciBydnYgYm9vbCBtb2RlIHByZWNpc2lvbiBhZGp1c3RtZW50DQo+Pj4NCj4+ PiAiTGksIFBhbjIiIDxwYW4yLmxpQGludGVsLmNvbTxtYWlsdG86cGFuMi5s aUBpbnRlbC5jb20+PiB3cml0ZXM6DQo+Pj4+IEhpIFJpY2hhcmQgU2FuZGlm b3JkLA0KPj4+Pg0KPj4+PiBBZnRlciBzb21lIGludmVzdGlnYXRpb24sIEkg YW0gbm90IHN1cmUgaWYgaXQgaXMgcG9zc2libGUgdG8gbWFrZSBpdCBnZW5l cmFsIHdpdGhvdXQgYW55IGNoYW5nZXMgdG8gZXhhY3RfZGl2LiBXZSBjYW4g YWRkIG9uZSBtZXRob2QgbGlrZSBiZWxvdyB0byBnZXQgdGhlIHVuaXQgcG9s eSBmb3IgYWxsIHBvc3NpYmxlIE4uDQo+Pj4+DQo+Pj4+IHRlbXBsYXRlPHVu c2lnbmVkIGludCBOLCB0eXBlbmFtZSBDYT4NCj4+Pj4gaW5saW5lIFBPTFlf Q09OU1RfUkVTVUxUIChOLCBDYSwgQ2EpDQo+Pj4+IG5vcm1hbGl6ZV90b191 bml0IChjb25zdCBwb2x5X2ludF9wb2Q8TiwgQ2E+ICZhKQ0KPj4+PiB7DQo+ Pj4+ICAgdHlwZWRlZiBQT0xZX0NPTlNUX0NPRUZGIChDYSwgQ2EpIEM7DQo+ Pj4+DQo+Pj4+ICAgcG9seV9pbnQ8TiwgQz4gbm9ybWFsaXplZCA9IGE7DQo+ Pj4+DQo+Pj4+ICAgaWYgKG5vcm1hbGl6ZWQuaXNfY29uc3RhbnQoKSkNCj4+ Pj4gICAgIG5vcm1hbGl6ZWQuY29lZmZzWzBdID0gMTsNCj4+Pj4gICBlbHNl DQo+Pj4+ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IE47IGkr KykNCj4+Pj4gICAgICAgUE9MWV9TRVRfQ09FRkYgKEMsIG5vcm1hbGl6ZWQs IGksIDEpOw0KPj4+Pg0KPj4+PiAgIHJldHVybiBub3JtYWxpemVkOw0KPj4+ PiB9DQo+Pj4+DQo+Pj4+IEFuZCB0aGVuIGFkanVzdCB0aGUgZ2VubW9kZXMg bGlrZSBiZWxvdyB0byBjb25zdW1lIHRoZSB1bml0IHBvbHkuDQo+Pj4+DQo+ Pj4+ICAgICAgIHByaW50ZiAoIiAgICBwb2x5X3VpbnQxNiB1bml0X3BvbHkg PSAiDQo+Pj4+ICAgICAgICAgICAgICAibm9ybWFsaXplX3RvX3VuaXQgKG1v ZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSk7XG4iLCBtLT5uYW1lKTsNCj4+Pj4g ICAgICAgcHJpbnRmICgiICAgIGlmIChrbm93bl9sdCAobW9kZV9wcmVjaXNp b25bRV8lc21vZGVdLCAiDQo+Pj4+ICAgICAgICAgICAgICAidW5pdF9wb2x5 ICogQklUU19QRVJfVU5JVCkpXG4iLCBtLT5uYW1lKTsNCj4+Pj4gICAgICAg cHJpbnRmICgiICAgICAgbW9kZV9zaXplW0VfJXNtb2RlXSA9IHVuaXRfcG9s eTtcbiIsIG0tPm5hbWUpOw0KPj4+Pg0KPj4+PiBJIGFtIG5vdCBzdXJlIGlm IGl0IGlzIGEgZ29vZCBpZGVhIHRvIGludHJvZHVjZSBhYm92ZSBub3JtYWxp emUgY29kZSBpbnRvIGV4YWN0X2Rpdi4gR2l2ZW4gdGhlIGNvbW1lbnQgb2Yg dGhlIGV4YWN0X2RpdiBpbmRpY2F0ZXMgdGhhdCDigJwvKiBSZXR1cm4gQSAv IEIsIGdpdmVuIHRoYXQgQSBpcyBrbm93biB0byBiZSBhIG11bHRpcGxlIG9m IEIuICov4oCdLg0KPj4+DQo+Pj4gTXkgcG9pbnQgd2FzIHRoYXQgd2UgaGF2 ZSBtdWx0aXBsZSB3YXlzIG9mIGRpdmlkaW5nIHBvbHlfaW50czoNCj4+Pg0K Pj4+IC0gZXhhY3RfZGl2LCBmb3Igd2hlbiB0aGUgY2FsbGVyIGtub3dzIHRo YXQgdGhlIHJlc3VsdCBpcyBhbHdheXMgZXhhY3QNCj4+PiAtIGNhbl9kaXZf dHJ1bmNfcCwgZm9yIHRydW5jYXRpbmcgZGl2aXNpb24gKHJvdW5kIHRvd2Fy ZHMgMCkNCj4+PiAtIGNhbl9kaXZfYXdheV9mcm9tX3plcm9fcCwgZm9yIHJv dW5kaW5nIGF3YXkgZnJvbSAwDQo+Pj4gLSAuLi4NCj4+Pg0KPj4+IFRoaXMg aXMgbGlrZSBob3cgd2UgaGF2ZSBtdWx0aXBsZSBkaXZpc2lvbiAqX0VYUFJz IG9uIHRyZWVzLg0KPj4+DQo+Pj4gVW50aWwgbm93LCBleGFjdF9kaXYgd2Fz IHRoZSBjb3JyZWN0IGNob2ljZSBmb3IgbW9kZXMgYmVjYXVzZSB2ZWN0b3IN Cj4+PiBtb2RlcyBkaWRuJ3QgaGF2ZSBwYWRkaW5nLiAgV2UncmUgbm93IGNo YW5naW5nIHRoYXQsIHNvIG15IHN1Z2dlc3Rpb24NCj4+PiBpbiB0aGUgcmV2 aWV3IHdhcyB0byBjaGFuZ2UgdGhlIGRpdmlzaW9uIG9wZXJhdGlvbiB0aGF0 IHdlIHVzZS4NCj4+PiBSYXRoZXIgdGhhbiB1c2UgZXhhY3RfZGl2LCB3ZSBz aG91bGQgbm93IHVzZSBjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3AsDQo+Pj4g d2hpY2ggd291bGQgaGF2ZSB0aGUgZWZmZWN0IG9mIHJvdW5kaW5nIHRoZSBx dW90aWVudCB1cC4NCj4+Pg0KPj4+IFNvbWV0aGluZyBsaWtlOg0KPj4+DQo+ Pj4gICAgICAgaWYgKCFjYW5fZGl2X2F3YXlfZnJvbV96ZXJvX3AgKG1vZGVf cHJlY2lzaW9uW0VfJXNtb2RlXSwgQklUU19QRVJfVU5JVCwNCj4+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1vZGVfc2l6ZVtF XyVzbW9kZV0pKQ0KPj4+ICAgICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0K Pj4+DQo+Pj4gQnV0IHRoaXMgd2lsbCByZXF1aXJlIGEgbmV3IG92ZXJsb2Fk IG9mIGNhbl9kaXZfYXdheV9mcm9tX3plcm9fcCwgc2luY2UNCj4+PiB0aGUg ZXhpc3Rpbmcgb25lIGlzIGZvciBjb25zdGFudCBxdW90aWVudHMgcmF0aGVy IHRoYW4gY29uc3RhbnQgZGl2aXNvcnMuDQo+Pj4NCj4+PiBUaGFua3MsDQo+ Pj4gUmljaGFyZA0KPj4+DQo+Pj4+DQo+Pj4+IENvdWxkIHlvdSBwbGVhc2Ug aGVscCB0byBzaGFyZSB5b3VyIG9waW5pb24gYWJvdXQgdGhpcyBmcm9tIHRo ZSBleHBlcnTigJlzIHBlcnNwZWN0aXZlID8gVGhhbmsgeW91IQ0KPj4+Pg0K Pj4+PiBQYW4NCj4+Pj4NCj4+Pj4gRnJvbTog55u8IOadjiA8aW5jYXJuYXRp b24ucC5sZWVAb3V0bG9vay5jb208bWFpbHRvOmluY2FybmF0aW9uLnAubGVl QG91dGxvb2suY29tPj4NCj4+Pj4gU2VudDogTW9uZGF5LCBGZWJydWFyeSAy NywgMjAyMyAxMToxMyBQTQ0KPj4+PiBUbzogUmljaGFyZCBTYW5kaWZvcmQg PHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb208bWFpbHRvOnJpY2hhcmQuc2Fu ZGlmb3JkQGFybS5jb20+PjsgaW5jYXJuYXRpb24ucC5sZWUtLS0gdmlhIEdj Yy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzxtYWlsdG86Z2Nj LXBhdGNoZXNAZ2NjLmdudS5vcmc+Pg0KPj4+PiBDYzoganV6aGUuemhvbmdA cml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJpdmFpLmFpPjsga2l0by5j aGVuZ0BzaWZpdmUuY29tPG1haWx0bzpraXRvLmNoZW5nQHNpZml2ZS5jb20+ OyByZ3VlbnRoZXJAc3VzZS5kZTxtYWlsdG86cmd1ZW50aGVyQHN1c2UuZGU+ OyBMaSwgUGFuMiA8cGFuMi5saUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlA aW50ZWwuY29tPj4NCj4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSF0gUklTQy1W OiBCdWdmaXggZm9yIHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIGFkanVzdG1l bnQNCj4+Pj4NCj4+Pj4gTmV2ZXIgbWluZCwgd2lzaCB5b3UgaGF2ZSBhIGdv b2QgaG9saWRheS4NCj4+Pj4NCj4+Pj4gVGhhbmtzIGZvciBwb2ludGluZyB0 aGlzIG91dCwgdGhlIGlmIHBhcnQgY2Fubm90IHRha2UgY2FyZSBvZiBwb2x5 X2ludCB3aXRoIE4gPiAyLiBBcyBJIHVuZGVyc3RhbmQsIHdlIG5lZWQgdG8g bWFrZSBpdCBnZW5lcmFsIGZvciBhbGwgdGhlIE4gb2YgcG9seV9pbnQuDQo+ Pj4+DQo+Pj4+IFRodXMgSSB3b3VsZCBsaWtlIHRvIGRvdWJsZSBjb25maXJt IHdpdGggeW91IGFib3V0IGhvdyB0byBtYWtlIGl0IGdlbmVyYWwuIEkgc3Vw cG9zZSB0aGVyZSB3aWxsIGJlIGEgbmV3IGZ1bmN0aW9uIGNhbl9kaXZfYXdh eV9mcm9tX3plcm9fcCB0byByZXBsYWNlIHRoZSBpZiAoa25vd25fbHQoLCkp IHBhcnQgaW4gZ2VubW9kZXMuY2MsIGFuZCBsZWF2ZSBleGFjdF9kaXYgdW5j aGFuZ2VkKGNvbnNpZGVyIHRoZSB3b3JkIGV4YWN0LCBJIHN1cHBvc2Ugd2Ug c2hvdWxkIG5vdCB0b3VjaCBoZXJlKSwgcmlnaHQ/IFRoZW4gd2Ugc3RpbGwg bmVlZCBvbmUgcG9seV9pbnQgd2l0aCBhbGwgMSBmb3IgTiBhcyB0aGUgcmV0 dXJuIGlmIGNhbl9kaXZfYXdheV9mcm9tX3plcm9fcCBpcyB0cnVlLg0KPj4+ Pg0KPj4+PiBUaGFua3MgYWdhaW4gZm9yIHlvdXIgcHJvZmVzc2lvbmFsIHN1 Z2dlc3Rpb24sIGhhdmUgYSBuaWNlIGRheSwg75iJIQ0KPj4+Pg0KPj4+PiBQ YW4NCj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+ Pj4gRnJvbTogUmljaGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3Jk QGFybS5jb208bWFpbHRvOnJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb208bWFp bHRvOnJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20lM2NtYWlsdG86cmljaGFy ZC5zYW5kaWZvcmRAYXJtLmNvbT4+Pg0KPj4+PiBTZW50OiBNb25kYXksIEZl YnJ1YXJ5IDI3LCAyMDIzIDIyOjI0DQo+Pj4+IFRvOiBpbmNhcm5hdGlvbi5w LmxlZS0tLSB2aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUu b3JnPG1haWx0bzpnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzxtYWlsdG86Z2Nj LXBhdGNoZXNAZ2NjLmdudS5vcmclM2NtYWlsdG86Z2NjLXBhdGNoZXNAZ2Nj LmdudS5vcmc+Pj4NCj4+Pj4gQ2M6IGluY2FybmF0aW9uLnAubGVlQG91dGxv b2suY29tPG1haWx0bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbTxt YWlsdG86aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb20lM2NtYWlsdG86 aW5jYXJuYXRpb24ucC5sZWVAb3V0bG9vay5jb20+PiA8aW5jYXJuYXRpb24u cC5sZWVAb3V0bG9vay5jb208bWFpbHRvOmluY2FybmF0aW9uLnAubGVlQG91 dGxvb2suY29tPG1haWx0bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNv bSUzY21haWx0bzppbmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbT4+Pjsg anV6aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJpdmFp LmFpPG1haWx0bzpqdXpoZS56aG9uZ0ByaXZhaS5haSUzY21haWx0bzpqdXpo ZS56aG9uZ0ByaXZhaS5haT4+IDxqdXpoZS56aG9uZ0ByaXZhaS5haTxtYWls dG86anV6aGUuemhvbmdAcml2YWkuYWk8bWFpbHRvOmp1emhlLnpob25nQHJp dmFpLmFpJTNjbWFpbHRvOmp1emhlLnpob25nQHJpdmFpLmFpPj4+OyBraXRv LmNoZW5nQHNpZml2ZS5jb208bWFpbHRvOmtpdG8uY2hlbmdAc2lmaXZlLmNv bTxtYWlsdG86a2l0by5jaGVuZ0BzaWZpdmUuY29tJTNjbWFpbHRvOmtpdG8u Y2hlbmdAc2lmaXZlLmNvbT4+IDxraXRvLmNoZW5nQHNpZml2ZS5jb208bWFp bHRvOmtpdG8uY2hlbmdAc2lmaXZlLmNvbTxtYWlsdG86a2l0by5jaGVuZ0Bz aWZpdmUuY29tJTNjbWFpbHRvOmtpdG8uY2hlbmdAc2lmaXZlLmNvbT4+Pjsg cmd1ZW50aGVyQHN1c2UuZGU8bWFpbHRvOnJndWVudGhlckBzdXNlLmRlPiA8 cmd1ZW50aGVyQHN1c2UuZGU8bWFpbHRvOnJndWVudGhlckBzdXNlLmRlPG1h aWx0bzpyZ3VlbnRoZXJAc3VzZS5kZSUzY21haWx0bzpyZ3VlbnRoZXJAc3Vz ZS5kZT4+PjsgcGFuMi5saUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlAaW50 ZWwuY29tPiA8cGFuMi5saUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlAaW50 ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbSUzY21haWx0bzpwYW4y LmxpQGludGVsLmNvbT4+Pg0KPj4+PiBTdWJqZWN0OiBSZTogW1BBVENIXSBS SVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24gYWRq dXN0bWVudA0KPj4+Pg0KPj4+PiBTb3JyeSBmb3IgdGhlIHNsb3cgcmVwbHks IGJlZW4gYXdheSBmb3IgYSBjb3VwbGUgb2Ygd2Vla3MuDQo+Pj4+DQo+Pj4+ ICJpbmNhcm5hdGlvbi5wLmxlZS0tLSB2aWEgR2NjLXBhdGNoZXMiIDxnY2Mt cGF0Y2hlc0BnY2MuZ251Lm9yZzxtYWlsdG86Z2NjLXBhdGNoZXNAZ2NjLmdu dS5vcmc8bWFpbHRvOmdjYy1wYXRjaGVzQGdjYy5nbnUub3JnJTNjbWFpbHRv OmdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPj4+IHdyaXRlczoNCj4+Pj4+IEZy b206IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlA aW50ZWwuY29tPG1haWx0bzpwYW4yLmxpQGludGVsLmNvbSUzY21haWx0bzpw YW4yLmxpQGludGVsLmNvbT4+Pg0KPj4+Pj4NCj4+Pj4+ICAgICAgICBGaXgg dGhlIGJ1ZyBvZiB0aGUgcnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24gd2l0aCB0 aGUgYWRqdXN0bWVudC4NCj4+Pj4+ICAgICAgICBUaGUgYml0cyBzaXplIG9m IHZib29sKl90IHdpbGwgYmUgYWRqdXN0ZWQgdG8NCj4+Pj4+ICAgICAgICBb MSwgMiwgNCwgOCwgMTYsIDMyLCA2NF0gYWNjb3JkaW5nIHRvIHRoZSBydnYg c3BlYyAxLjAgaXNhLiBUaGUNCj4+Pj4+ICAgICAgICBhZGp1c3RlZCBtb2Rl IHByZWNpc29uIG9mIHZib29sKl90IHdpbGwgaGVscCB1bmRlcmx5aW5nIHBh c3MgdG8NCj4+Pj4+ICAgICAgICBtYWtlIHRoZSByaWdodCBkZWNpc2lvbiBm b3IgYm90aCB0aGUgY29ycmVjdG5lc3MgYW5kIG9wdGltaXphdGlvbi4NCj4+ Pj4+DQo+Pj4+PiAgICAgICAgR2l2ZW4gYmVsb3cgc2FtcGxlIGNvZGU6DQo+ Pj4+PiAgICAgICAgdm9pZCB0ZXN0XzEoaW50OF90ICogcmVzdHJpY3QgaW4s IGludDhfdCAqIHJlc3RyaWN0IG91dCkNCj4+Pj4+ICAgICAgICB7DQo+Pj4+ PiAgICAgICAgICB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4X3QqKWluOw0KPj4+ Pj4gICAgICAgICAgdmJvb2wxNl90IHY1ID0gKih2Ym9vbDE2X3QqKWluOw0K Pj4+Pj4gICAgICAgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjU7 DQo+Pj4+PiAgICAgICAgICAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYy Ow0KPj4+Pj4gICAgICAgIH0NCj4+Pj4+DQo+Pj4+PiAgICAgICAgQmVmb3Jl IHRoZSBwcmVjaXNpb24gYWRqdXN0bWVudDoNCj4+Pj4+ICAgICAgICBhZGRp ICAgIGE0LGExLDEwMA0KPj4+Pj4gICAgICAgIHZzZXR2bGkgYTUsemVybyxl OCxtMSx0YSxtYQ0KPj4+Pj4gICAgICAgIGFkZGkgICAgYTEsYTEsMjAwDQo+ Pj4+PiAgICAgICAgdmxtLnYgICB2MjQsMChhMCkNCj4+Pj4+ICAgICAgICB2 c20udiAgIHYyNCwwKGE0KQ0KPj4+Pj4gICAgICAgIC8vIE5lZWQgb25lIHZz ZXR2bGkgYW5kIHZsbS52IGZvciBjb3JyZWN0bmVzcyBoZXJlLg0KPj4+Pj4g ICAgICAgIHZzbS52ICAgdjI0LDAoYTEpDQo+Pj4+Pg0KPj4+Pj4gICAgICAg IEFmdGVyIHRoZSBwcmVjaXNpb24gYWRqdXN0bWVudDoNCj4+Pj4+ICAgICAg ICBjc3JyICAgIHQwLHZsZW5iDQo+Pj4+PiAgICAgICAgc2xsaSAgICB0MSx0 MCwxDQo+Pj4+PiAgICAgICAgY3NyciAgICBhMyx2bGVuYg0KPj4+Pj4gICAg ICAgIHN1YiAgICAgc3Asc3AsdDENCj4+Pj4+ICAgICAgICBzbGxpICAgIGE0 LGEzLDENCj4+Pj4+ICAgICAgICBhZGQgICAgIGE0LGE0LHNwDQo+Pj4+PiAg ICAgICAgc3ViICAgICBhMyxhNCxhMw0KPj4+Pj4gICAgICAgIHZzZXR2bGkg YTUsemVybyxlOCxtMSx0YSxtYQ0KPj4+Pj4gICAgICAgIGFkZGkgICAgYTIs YTEsMjAwDQo+Pj4+PiAgICAgICAgdmxtLnYgICB2MjQsMChhMCkNCj4+Pj4+ ICAgICAgICB2c20udiAgIHYyNCwwKGEzKQ0KPj4+Pj4gICAgICAgIGFkZGkg ICAgYTEsYTEsMTAwDQo+Pj4+PiAgICAgICAgdnNldHZsaSBhNCx6ZXJvLGU4 LG1mMix0YSxtYQ0KPj4+Pj4gICAgICAgIGNzcnIgICAgdDAsdmxlbmINCj4+ Pj4+ICAgICAgICB2bG0udiAgIHYyNSwwKGEzKQ0KPj4+Pj4gICAgICAgIHZz bS52ICAgdjI1LDAoYTIpDQo+Pj4+PiAgICAgICAgc2xsaSAgICB0MSx0MCwx DQo+Pj4+PiAgICAgICAgdnNldHZsaSBhNSx6ZXJvLGU4LG0xLHRhLG1hDQo+ Pj4+PiAgICAgICAgdnNtLnYgICB2MjQsMChhMSkNCj4+Pj4+ICAgICAgICBh ZGQgICAgIHNwLHNwLHQxDQo+Pj4+PiAgICAgICAganIgICAgICByYQ0KPj4+ Pj4NCj4+Pj4+ICAgICAgICBIb3dldmVyLCB0aGVyZSBtYXkgYmUgc29tZSBv cHRpbWl6YXRpb24gb3Bwb3J0dW5hdGVzIGFmdGVyDQo+Pj4+PiAgICAgICAg dGhlIG1vZGUgcHJlY2lzaW9uIGFkanVzdG1lbnQuIEl0IGNhbiBiZSB0b2tl biBjYXJlIG9mIGluDQo+Pj4+PiAgICAgICAgdGhlIFJJU0MtViBiYWNrZW5k IGluIHRoZSB1bmRlcmx5aW5nIHNlcGFydGVkIFBSKHMpLg0KPj4+Pj4NCj4+ Pj4+ICAgICAgICBQUiAxMDgxODUNCj4+Pj4+ICAgICAgICBQUiAxMDg2NTQN Cj4+Pj4+DQo+Pj4+PiBnY2MvQ2hhbmdlTG9nOg0KPj4+Pj4NCj4+Pj4+ICAg ICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYgKEFESlVTVF9Q UkVDSVNJT04pOg0KPj4+Pj4gICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2 LmNjIChyaXNjdl92X2FkanVzdF9wcmVjaXNpb24pOg0KPj4+Pj4gICAgICAg ICogY29uZmlnL3Jpc2N2L3Jpc2N2LmggKHJpc2N2X3ZfYWRqdXN0X3ByZWNp c2lvbik6DQo+Pj4+PiAgICAgICAgKiBnZW5tb2Rlcy5jYyAoQURKVVNUX1BS RUNJU0lPTik6DQo+Pj4+PiAgICAgICAgKGVtaXRfbW9kZV9hZGp1c3RtZW50 cyk6DQo+Pj4+Pg0KPj4+Pj4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+ Pj4+Pg0KPj4+Pj4gICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS0xLmM6IE5ldyB0ZXN0Lg0KPj4+Pj4gICAgICAgICogZ2NjLnRhcmdldC9y aXNjdi9wcjEwODE4NS0yLmM6IE5ldyB0ZXN0Lg0KPj4+Pj4gICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0zLmM6IE5ldyB0ZXN0Lg0KPj4+ Pj4gICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS00LmM6IE5l dyB0ZXN0Lg0KPj4+Pj4gICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9wcjEw ODE4NS01LmM6IE5ldyB0ZXN0Lg0KPj4+Pj4gICAgICAgICogZ2NjLnRhcmdl dC9yaXNjdi9wcjEwODE4NS02LmM6IE5ldyB0ZXN0Lg0KPj4+Pj4gICAgICAg ICogZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS03LmM6IE5ldyB0ZXN0Lg0K Pj4+Pj4gICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS04LmM6 IE5ldyB0ZXN0Lg0KPj4+Pj4NCj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFBhbiBM aSA8cGFuMi5saUBpbnRlbC5jb208bWFpbHRvOnBhbjIubGlAaW50ZWwuY29t PG1haWx0bzpwYW4yLmxpQGludGVsLmNvbSUzY21haWx0bzpwYW4yLmxpQGlu dGVsLmNvbT4+Pg0KPj4+Pj4gLS0tDQo+Pj4+PiAgZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi1tb2Rlcy5kZWYgICAgICAgICAgICB8ICA4ICsrKw0KPj4+Pj4g IGdjYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgICAgICAgICAgICAgICAgICAg fCAxMiArKysrDQo+Pj4+PiAgZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oICAg ICAgICAgICAgICAgICAgICB8ICAxICsNCj4+Pj4+ICBnY2MvZ2VubW9kZXMu Y2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjUgKysrKysrLQ0K Pj4+Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS0xLmMgfCA2OCArKysrKysrKysrKysrKysrKysNCj4+Pj4+ICBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMi5jIHwgNjggKysr KysrKysrKysrKysrKysrDQo+Pj4+PiAgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3ByMTA4MTg1LTMuYyB8IDY4ICsrKysrKysrKysrKysrKysr Kw0KPj4+Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEw ODE4NS00LmMgfCA2OCArKysrKysrKysrKysrKysrKysNCj4+Pj4+ICBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNS5jIHwgNjgg KysrKysrKysrKysrKysrKysrDQo+Pj4+PiAgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYyB8IDY4ICsrKysrKysrKysrKysr KysrKw0KPj4+Pj4gIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS03LmMgfCA2OCArKysrKysrKysrKysrKysrKysNCj4+Pj4+ICBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtOC5jIHwg NzcgKysrKysrKysrKysrKysrKysrKysrDQo+Pj4+PiAgMTIgZmlsZXMgY2hh bmdlZCwgNTk4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4+Pj4+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3ByMTA4MTg1LTEuYw0KPj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMi5j DQo+Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9wcjEwODE4NS0zLmMNCj4+Pj4+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4 MTg1LTQuYw0KPj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNS5jDQo+Pj4+PiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9wcjEwODE4NS02LmMNCj4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYw0KPj4+ Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcHIxMDgxODUtOC5jDQo+Pj4+Pg0KPj4+Pj4gZGlmZiAtLWdp dCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtbW9kZXMuZGVmIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYNCj4+Pj4+IGluZGV4IGQ1MzA1 ZWZhOGE2Li4xMTBiZGRjZTg1MSAxMDA2NDQNCj4+Pj4+IC0tLSBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YtbW9kZXMuZGVmDQo+Pj4+PiArKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZg0KPj4+Pj4gQEAgLTcyLDYg KzcyLDE0IEBAIEFESlVTVF9CWVRFU0laRSAoVk54MTZCSSwgcmlzY3ZfdmVj dG9yX2NodW5rcyAqIHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1bmspOw0K Pj4+Pj4gIEFESlVTVF9CWVRFU0laRSAoVk54MzJCSSwgcmlzY3ZfdmVjdG9y X2NodW5rcyAqIHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1bmspOw0KPj4+ Pj4gIEFESlVTVF9CWVRFU0laRSAoVk54NjRCSSwgcmlzY3Zfdl9hZGp1c3Rf bnVuaXRzIChWTng2NEJJbW9kZSwgOCkpOw0KPj4+Pj4NCj4+Pj4+ICtBREpV U1RfUFJFQ0lTSU9OIChWTngxQkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lv biAoVk54MUJJbW9kZSwgMSkpOw0KPj4+Pj4gK0FESlVTVF9QUkVDSVNJT04g KFZOeDJCSSwgcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uIChWTngyQkltb2Rl LCAyKSk7DQo+Pj4+PiArQURKVVNUX1BSRUNJU0lPTiAoVk54NEJJLCByaXNj dl92X2FkanVzdF9wcmVjaXNpb24gKFZOeDRCSW1vZGUsIDQpKTsNCj4+Pj4+ ICtBREpVU1RfUFJFQ0lTSU9OIChWTng4QkksIHJpc2N2X3ZfYWRqdXN0X3By ZWNpc2lvbiAoVk54OEJJbW9kZSwgOCkpOw0KPj4+Pj4gK0FESlVTVF9QUkVD SVNJT04gKFZOeDE2QkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54 MTZCSW1vZGUsIDE2KSk7DQo+Pj4+PiArQURKVVNUX1BSRUNJU0lPTiAoVk54 MzJCSSwgcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uIChWTngzMkJJbW9kZSwg MzIpKTsNCj4+Pj4+ICtBREpVU1RfUFJFQ0lTSU9OIChWTng2NEJJLCByaXNj dl92X2FkanVzdF9wcmVjaXNpb24gKFZOeDY0Qkltb2RlLCA2NCkpOw0KPj4+ Pj4gKw0KPj4+Pj4gIC8qDQo+Pj4+PiAgICAgfCBNb2RlICAgICAgICB8IE1J Tl9WTEVOPTMyIHwgTUlOX1ZMRU49MzIgfCBNSU5fVkxFTj02NCB8IE1JTl9W TEVOPTY0IHwNCj4+Pj4+ICAgICB8ICAgICAgICAgICAgIHwgTE1VTCAgICAg ICAgfCBTRVcvTE1VTCAgICB8IExNVUwgICAgICAgIHwgU0VXL0xNVUwgICAg fA0KPj4+Pj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Yu Y2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQo+Pj4+PiBpbmRleCBk ZTNlMWY5MDNjNy4uY2JlNjZjMGUzNWIgMTAwNjQ0DQo+Pj4+PiAtLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQo+Pj4+PiArKysgYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LmNjDQo+Pj4+PiBAQCAtMTAwMyw2ICsxMDAzLDE4 IEBAIHJpc2N2X3ZfYWRqdXN0X251bml0cyAobWFjaGluZV9tb2RlIG1vZGUs IGludCBzY2FsZSkNCj4+Pj4+ICAgIHJldHVybiBzY2FsZTsNCj4+Pj4+ICB9 DQo+Pj4+Pg0KPj4+Pj4gKy8qIENhbGwgZnJvbSBBREpVU1RfUFJFQ0lTSU9O IGluIHJpc2N2LW1vZGVzLmRlZi4gIFJldHVybiB0aGUgY29ycmVjdA0KPj4+ Pj4gKyAgIFBSRUNJU0lPTiBzaXplIGZvciBjb3JyZXNwb25kaW5nIG1hY2hp bmVfbW9kZS4gICovDQo+Pj4+PiArDQo+Pj4+PiArcG9seV9pbnQ2NA0KPj4+ Pj4gK3Jpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAobWFjaGluZV9tb2RlIG1v ZGUsIGludCBzY2FsZSkNCj4+Pj4+ICt7DQo+Pj4+PiArICBpZiAocmlzY3Zf dl9leHRfdmVjdG9yX21vZGVfcCAobW9kZSkpDQo+Pj4+PiArICAgIHJldHVy biByaXNjdl92ZWN0b3JfY2h1bmtzICogc2NhbGU7DQo+Pj4+PiArDQo+Pj4+ PiArICByZXR1cm4gc2NhbGU7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4g IC8qIFJldHVybiB0cnVlIGlmIFggaXMgYSB2YWxpZCBhZGRyZXNzIGZvciBt YWNoaW5lIG1vZGUgTU9ERS4gIElmIGl0IGlzLA0KPj4+Pj4gICAgIGZpbGwg aW4gSU5GTyBhcHByb3ByaWF0ZWx5LiAgU1RSSUNUX1AgaXMgdHJ1ZSBpZiBS RUdfT0tfU1RSSUNUIGlzIGluDQo+Pj4+PiAgICAgZWZmZWN0LiAgKi8NCj4+ Pj4+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmggYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmgNCj4+Pj4+IGluZGV4IDViYzdmMmY0 NjdkLi4xNWI5MzE3YThjZSAxMDA2NDQNCj4+Pj4+IC0tLSBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YuaA0KPj4+Pj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi5oDQo+Pj4+PiBAQCAtMTAyNSw2ICsxMDI1LDcgQEAgZXh0ZXJu IHVuc2lnbmVkIHJpc2N2X3N0YWNrX2JvdW5kYXJ5Ow0KPj4+Pj4gIGV4dGVy biB1bnNpZ25lZCByaXNjdl9ieXRlc19wZXJfdmVjdG9yX2NodW5rOw0KPj4+ Pj4gIGV4dGVybiBwb2x5X3VpbnQxNiByaXNjdl92ZWN0b3JfY2h1bmtzOw0K Pj4+Pj4gIGV4dGVybiBwb2x5X2ludDY0IHJpc2N2X3ZfYWRqdXN0X251bml0 cyAoZW51bSBtYWNoaW5lX21vZGUsIGludCk7DQo+Pj4+PiArZXh0ZXJuIHBv bHlfaW50NjQgcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uIChlbnVtIG1hY2hp bmVfbW9kZSwgaW50KTsNCj4+Pj4+ICAvKiBUaGUgbnVtYmVyIG9mIGJpdHMg YW5kIGJ5dGVzIGluIGEgUlZWIHZlY3Rvci4gICovDQo+Pj4+PiAgI2RlZmlu ZSBCSVRTX1BFUl9SSVNDVl9WRUNUT1IgKHBvbHlfdWludDE2IChyaXNjdl92 ZWN0b3JfY2h1bmtzICogcmlzY3ZfYnl0ZXNfcGVyX3ZlY3Rvcl9jaHVuayAq IDgpKQ0KPj4+Pj4gICNkZWZpbmUgQllURVNfUEVSX1JJU0NWX1ZFQ1RPUiAo cG9seV91aW50MTYgKHJpc2N2X3ZlY3Rvcl9jaHVua3MgKiByaXNjdl9ieXRl c19wZXJfdmVjdG9yX2NodW5rKSkNCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2Mv Z2VubW9kZXMuY2MgYi9nY2MvZ2VubW9kZXMuY2MNCj4+Pj4+IGluZGV4IDJk NDE4ZjA5YWFiLi4xMmY0ZTYzMzVlNiAxMDA2NDQNCj4+Pj4+IC0tLSBhL2dj Yy9nZW5tb2Rlcy5jYw0KPj4+Pj4gKysrIGIvZ2NjL2dlbm1vZGVzLmNjDQo+ Pj4+PiBAQCAtMTE0LDYgKzExNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgbW9kZV9h ZGp1c3QgKmFkal9hbGlnbm1lbnQ7DQo+Pj4+PiAgc3RhdGljIHN0cnVjdCBt b2RlX2FkanVzdCAqYWRqX2Zvcm1hdDsNCj4+Pj4+ICBzdGF0aWMgc3RydWN0 IG1vZGVfYWRqdXN0ICphZGpfaWJpdDsNCj4+Pj4+ICBzdGF0aWMgc3RydWN0 IG1vZGVfYWRqdXN0ICphZGpfZmJpdDsNCj4+Pj4+ICtzdGF0aWMgc3RydWN0 IG1vZGVfYWRqdXN0ICphZGpfcHJlY2lzaW9uOw0KPj4+Pj4NCj4+Pj4+ICAv KiBNb2RlIGNsYXNzIG9wZXJhdGlvbnMuICAqLw0KPj4+Pj4gIHN0YXRpYyBl bnVtIG1vZGVfY2xhc3MNCj4+Pj4+IEBAIC04MTksNiArODIwLDcgQEAgbWFr ZV92ZWN0b3JfbW9kZSAoZW51bSBtb2RlX2NsYXNzIGJjbGFzcywNCj4+Pj4+ ICAjZGVmaW5lIEFESlVTVF9OVU5JVFMoTSwgWCkgICAgX0FERF9BREpVU1Qg KG51bml0cywgTSwgWCwgUkFORE9NLCBSQU5ET00pDQo+Pj4+PiAgI2RlZmlu ZSBBREpVU1RfQllURVNJWkUoTSwgWCkgIF9BRERfQURKVVNUIChieXRlc2l6 ZSwgTSwgWCwgUkFORE9NLCBSQU5ET00pDQo+Pj4+PiAgI2RlZmluZSBBREpV U1RfQUxJR05NRU5UKE0sIFgpIF9BRERfQURKVVNUIChhbGlnbm1lbnQsIE0s IFgsIFJBTkRPTSwgUkFORE9NKQ0KPj4+Pj4gKyNkZWZpbmUgQURKVVNUX1BS RUNJU0lPTihNLCBYKSBfQUREX0FESlVTVCAocHJlY2lzaW9uLCBNLCBYLCBS QU5ET00sIFJBTkRPTSkNCj4+Pj4+ICAjZGVmaW5lIEFESlVTVF9GTE9BVF9G T1JNQVQoTSwgWCkgICAgX0FERF9BREpVU1QgKGZvcm1hdCwgTSwgWCwgRkxP QVQsIEZMT0FUKQ0KPj4+Pj4gICNkZWZpbmUgQURKVVNUX0lCSVQoTSwgWCkg IF9BRERfQURKVVNUIChpYml0LCBNLCBYLCBBQ0NVTSwgVUFDQ1VNKQ0KPj4+ Pj4gICNkZWZpbmUgQURKVVNUX0ZCSVQoTSwgWCkgIF9BRERfQURKVVNUIChm Yml0LCBNLCBYLCBGUkFDVCwgVUFDQ1VNKQ0KPj4+Pj4gQEAgLTE4MjksNyAr MTgzMSwxNSBAQCBlbWl0X21vZGVfYWRqdXN0bWVudHMgKHZvaWQpDQo+Pj4+ PiAgICAgICAgICAgICAgIiAobW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCBt b2RlX251bml0c1tFXyVzbW9kZV0pO1xuIiwNCj4+Pj4+ICAgICAgICAgICAg ICBtLT5uYW1lLCBtLT5uYW1lKTsNCj4+Pj4+ICAgICAgICBwcmludGYgKCIg ICAgbW9kZV9wcmVjaXNpb25bRV8lc21vZGVdID0gcHMgKiBvbGRfZmFjdG9y O1xuIiwgbS0+bmFtZSk7DQo+Pj4+PiAtICAgICAgcHJpbnRmICgiICAgIG1v ZGVfc2l6ZVtFXyVzbW9kZV0gPSBleGFjdF9kaXYgKG1vZGVfcHJlY2lzaW9u W0VfJXNtb2RlXSwiDQo+Pj4+PiArICAgICAgLyogTm9ybWFsaXplIHRoZSBz aXplIHRvIDEgaWYgcHJlY2lzb24gaXMgbGVzcyB0aGFuIEJJVFNfUEVSX1VO SVQuICAqLw0KPj4+Pj4gKyAgICAgIHByaW50ZiAoIiAgICBwb2x5X3VpbnQx NiBzaXplX29uZSA9ICINCj4+Pj4+ICsgICAgICAgICAgICJtb2RlX3ByZWNp c2lvbltFXyVzbW9kZV0uaXNfY29uc3RhbnQgKClcbiIsIG0tPm5hbWUpOw0K Pj4+Pj4gKyAgICAgIHByaW50ZiAoIiAgICAgID8gcG9seV91aW50MTYgKDEs IDApIDogcG9seV91aW50MTYgKDEsIDEpO1xuIik7DQo+Pj4+DQo+Pj4+IEhh dmUgeW91IHRyaWVkIHRoaXMgb24gYW4geDg2XzY0IHN5c3RlbT8gIEkgd291 bGRuJ3QgZXhwZWN0IGl0IHRvIHdvcmsNCj4+Pj4gYmVjYXVzZSBvZiB0aGU6 DQo+Pj4+DQo+Pj4+ICAgU1RBVElDX0FTU0VSVCAoTiA+PSAyKTsNCj4+Pj4N Cj4+Pj4gaW4gdGhlIHBvbHlfdWludDE2IGNvbnN0cnVjdG9yLg0KPj4+Pg0K Pj4+Pj4gKyAgICAgIHByaW50ZiAoIiAgICBpZiAoa25vd25fbHQgKG1vZGVf cHJlY2lzaW9uW0VfJXNtb2RlXSwgIg0KPj4+Pj4gKyAgICAgICAgICAgInNp emVfb25lICogQklUU19QRVJfVU5JVCkpXG4iLCBtLT5uYW1lKTsNCj4+Pj4+ ICsgICAgICBwcmludGYgKCIgICAgICBtb2RlX3NpemVbRV8lc21vZGVdID0g c2l6ZV9vbmU7XG4iLCBtLT5uYW1lKTsNCj4+Pj4+ICsgICAgICBwcmludGYg KCIgICAgZWxzZVxuIik7DQo+Pj4+PiArICAgICAgcHJpbnRmICgiICAgICAg bW9kZV9zaXplW0VfJXNtb2RlXSA9IGV4YWN0X2RpdiAobW9kZV9wcmVjaXNp b25bRV8lc21vZGVdLCINCj4+Pj4NCj4+Pj4gTm93IHRoYXQgdGhlIGFzc2Vy dCBpbXBsaWNpdCBpbiB0aGUgb3JpZ2luYWwgZXhhY3RfZGl2IG5vIGxvbmdl ciBob2xkcywNCj4+Pj4gSSB0aGluayB3ZSBzaG91bGQgaW5zdGVhZCBnZW5l cmFsaXNlIGl0IHRvIGNhbl9kaXZfYXdheV9mcm9tX3plcm9fcA0KPj4+PiAo d2hpY2ggd2lsbCBpbnZvbHZlIGRlZmluaW5nIGEgbmV3IG92ZXJsb2FkIG9m IGNhbl9kaXZfYXdheV9mcm9tX3plcm9fcCkuDQo+Pj4+IEkgdGhpbmsgdGhh dCB3aWxsIGdpdmUgdGhlIHNhbWUgcmVzdWx0IGFzIHRoZSBjb2RlIGFib3Zl IGZvciB0aGUgY2FzZXMNCj4+Pj4gdGhhdCB0aGUgY29kZSBhYm92ZSBoYW5k bGVzLiAgQnV0IGl0IHNob3VsZCBiZSBtb3JlIGdlbmVyYWwgdG9vLg0KPj4+ Pg0KPj4+PiBUQkgsIEknbSBzdGlsbCBzY2VwdGljYWwgdGhhdCB0aGlzIGlz IGFsbCB0aGF0IGlzIG5lZWRlZC4gIEl0IHNlZW1zDQo+Pj4+IHVubGlrZWx5 IHRoYXQgd2UndmUgYmVlbiBzbyBnb29kIGF0IHdyaXRpbmcgdmVjdG9yIHN1 cHBvcnQgY29kZSB0aGF0DQo+Pj4+IHdlJ3ZlIG1hZGUgaXQgd29yayBmb3Ig cHJlY2lzaW9uIDwgYml0c2l6ZSwgZGVzcGl0ZSB0aGF0IGJlaW5nIGFuDQo+ Pj4+IHVuc3VwcG9ydGVkIGNvbWJpbmF0aW9uIHVudGlsIG5vdy4gIEJ1dCBJ IGd1ZXNzIHdlIGNhbiBmaXggcHJvYmxlbXMNCj4+Pj4gb24gYSBjYXNlLWJ5 LWNhc2UgYmFzaXMuDQo+Pj4+DQo+Pj4+IFRoYW5rcywNCj4+Pj4gUmljaGFy ZA0KPj4+Pg0KPj4+Pj4gICAgICAgICAgICAgICIgQklUU19QRVJfVU5JVCk7 XG4iLCBtLT5uYW1lLCBtLT5uYW1lKTsNCj4+Pj4+ICAgICAgICBwcmludGYg KCIgICAgbW9kZV9udW5pdHNbRV8lc21vZGVdID0gcHM7XG4iLCBtLT5uYW1l KTsNCj4+Pj4+ICAgICAgICBwcmludGYgKCIgICAgYWRqdXN0X21vZGVfbWFz ayAoRV8lc21vZGUpO1xuIiwgbS0+bmFtZSk7DQo+Pj4+PiBAQCAtMTk2Myw2 ICsxOTczLDE5IEBAIGVtaXRfbW9kZV9hZGp1c3RtZW50cyAodm9pZCkNCj4+ Pj4+ICAgICAgcHJpbnRmICgiXG4gIC8qICVzOiVkICovXG4gIFJFQUxfTU9E RV9GT1JNQVQgKEVfJXNtb2RlKSA9ICVzO1xuIiwNCj4+Pj4+ICAgICAgICAg ICAgYS0+ZmlsZSwgYS0+bGluZSwgYS0+bW9kZS0+bmFtZSwgYS0+YWRqdXN0 bWVudCk7DQo+Pj4+Pg0KPj4+Pj4gKyAgLyogQWRqdXN0IHByZWNpc2lvbiB0 byB0aGUgYWN0dWFsIGJpdHMgc2l6ZS4gICovDQo+Pj4+PiArICBmb3IgKGEg PSBhZGpfcHJlY2lzaW9uOyBhOyBhID0gYS0+bmV4dCkNCj4+Pj4+ICsgICAg c3dpdGNoIChhLT5tb2RlLT5jbCkNCj4+Pj4+ICsgICAgICB7DQo+Pj4+PiAr ICAgICBjYXNlIE1PREVfVkVDVE9SX0JPT0w6DQo+Pj4+PiArICAgICAgIHBy aW50ZiAoIlxuICAvKiAlczolZC4gICovXG4gIHBzID0gJXM7XG4iLCBhLT5m aWxlLCBhLT5saW5lLA0KPj4+Pj4gKyAgICAgICAgICAgICAgIGEtPmFkanVz dG1lbnQpOw0KPj4+Pj4gKyAgICAgICBwcmludGYgKCIgIG1vZGVfcHJlY2lz aW9uW0VfJXNtb2RlXSA9IHBzO1xuIiwgYS0+bW9kZS0+bmFtZSk7DQo+Pj4+ PiArICAgICAgIGJyZWFrOw0KPj4+Pj4gKyAgICAgZGVmYXVsdDoNCj4+Pj4+ ICsgICAgICAgYnJlYWs7DQo+Pj4+PiArICAgICAgfQ0KPj4+Pj4gKw0KPj4+ Pj4gICAgcHV0cyAoIn0iKTsNCj4+Pj4+ICB9DQo+Pj4+Pg0KPj4+Pj4gZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEw ODE4NS0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIx MDgxODUtMS5jDQo+Pj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4+Pj4g aW5kZXggMDAwMDAwMDAwMDAuLmU3MDk2MGM1YjZkDQo+Pj4+PiAtLS0gL2Rl di9udWxsDQo+Pj4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcHIxMDgxODUtMS5jDQo+Pj4+PiBAQCAtMCwwICsxLDY4IEBADQo+ Pj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4+ICsvKiB7IGRn LW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIiB9ICov DQo+Pj4+PiArDQo+Pj4+PiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K Pj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sMV90aGVu X3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJp Y3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sMV90IHYxID0gKih2Ym9vbDFf dCopaW47DQo+Pj4+PiArICAgIHZib29sMl90IHYyID0gKih2Ym9vbDJfdCop aW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2wxX3QqKShvdXQgKyAx MDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wyX3QqKShvdXQgKyAyMDAp ID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ ICt0ZXN0X3Zib29sMV90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29s MV90IHYxID0gKih2Ym9vbDFfdCopaW47DQo+Pj4+PiArICAgIHZib29sNF90 IHYyID0gKih2Ym9vbDRfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoo dmJvb2wxX3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJv b2w0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0K Pj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sMV90aGVuX3Zib29sOChp bnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7 DQo+Pj4+PiArICAgIHZib29sMV90IHYxID0gKih2Ym9vbDFfdCopaW47DQo+ Pj4+PiArICAgIHZib29sOF90IHYyID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+ PiArDQo+Pj4+PiArICAgICoodmJvb2wxX3QqKShvdXQgKyAxMDApID0gdjE7 DQo+Pj4+PiArICAgICoodmJvb2w4X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zi b29sMV90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhf dCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDFfdCB2MSA9 ICoodmJvb2wxX3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDE2X3QgdjIgPSAq KHZib29sMTZfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2wx X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wxNl90 Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDFfdGhlbl92Ym9vbDMyKGludDhf dCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+ Pj4+ICsgICAgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90KilpbjsNCj4+Pj4+ ICsgICAgdmJvb2wzMl90IHYyID0gKih2Ym9vbDMyX3QqKWluOw0KPj4+Pj4g Kw0KPj4+Pj4gKyAgICAqKHZib29sMV90Kikob3V0ICsgMTAwKSA9IHYxOw0K Pj4+Pj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+ Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJv b2wxX3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90 ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sMV90IHYxID0g Kih2Ym9vbDFfdCopaW47DQo+Pj4+PiArICAgIHZib29sNjRfdCB2MiA9ICoo dmJvb2w2NF90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDFf dCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDY0X3Qq KShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMq bWF9IDYgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxc cyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytb YS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgs XHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1b MC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9 ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt ZjQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05 XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICov DQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2bG1cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDEyIH0g fSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAx OCB9IH0gKi8NCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYw0KPj4+Pj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4+Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi5kY2M3YTY0 NGE4OA0KPj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4gKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTIuYw0KPj4+Pj4g QEAgLTAsMCArMSw2OCBAQA0KPj4+Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQo+Pj4+PiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAt bWFiaT1scDY0IC1PMyIgfSAqLw0KPj4+Pj4gKw0KPj4+Pj4gKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+ PiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDEoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9v bDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDFf dCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAq KHZib29sMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZi b29sMV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsN Cj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDQo aW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkg ew0KPj4+Pj4gKyAgICB2Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0K Pj4+Pj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPj4+ Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMTAwKSA9IHYx Ow0KPj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0K Pj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92 Ym9vbDJfdGhlbl92Ym9vbDgoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhf dCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDJfdCB2MSA9 ICoodmJvb2wyX3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoo dmJvb2w4X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sMl90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sOF90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2 b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDE2KGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ ICsgICAgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4+Pj4+ICsg ICAgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+Pj4gKw0K Pj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+ Pj4gKyAgICAqKHZib29sMTZfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wy X3RoZW5fdmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sMl90IHYxID0gKih2 Ym9vbDJfdCopaW47DQo+Pj4+PiArICAgIHZib29sMzJfdCB2MiA9ICoodmJv b2wzMl90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDJfdCop KG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShv dXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3Zv aWQNCj4+Pj4+ICt0ZXN0X3Zib29sMl90aGVuX3Zib29sNjQoaW50OF90ICog cmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4g KyAgICB2Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0KPj4+Pj4gKyAg ICB2Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+Pj4+PiArDQo+ Pj4+PiArICAgICoodmJvb2wyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ PiArICAgICoodmJvb2w2NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4g K30NCj4+Pj4+ICsNCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxz KmU4LFxzKm00LFxzKnRhLFxzKm1hfSA2IH0gfSAqLw0KPj4+Pj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEg fSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxc cyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVsw LTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1hfSAxIH0gfSAq Lw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYy LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K Pj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxz KnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dmxtXC52XHMrdlswLTldKyxccyowXChb YS14XVswLTldK1wpfSAxMiB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzbVwudlxzK3ZbMC05XSssXHMq MFwoW2EteF1bMC05XStcKX0gMTcgfSB9ICovDQo+Pj4+PiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTMu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0z LmMNCj4+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4+PiBpbmRleCAw MDAwMDAwMDAwMC4uM2FmMDUxM2UwMDYNCj4+Pj4+IC0tLSAvZGV2L251bGwN Cj4+Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS0zLmMNCj4+Pj4+IEBAIC0wLDAgKzEsNjggQEANCj4+Pj4+ICsv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4+Pj4gKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4+Pj4+ ICsNCj4+Pj4+ICsjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQo+Pj4+PiAr DQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w0X3RoZW5fdmJvb2wx KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQp IHsNCj4+Pj4+ICsgICAgdmJvb2w0X3QgdjEgPSAqKHZib29sNF90KilpbjsN Cj4+Pj4+ICsgICAgdmJvb2wxX3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4+ Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2 MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsN Cj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3Rf dmJvb2w0X3RoZW5fdmJvb2wyKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4 X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2w0X3QgdjEg PSAqKHZib29sNF90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wyX3QgdjIgPSAq KHZib29sMl90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDRf dCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDJfdCop KG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiAr dm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w0X3RoZW5fdmJvb2w4KGludDhfdCAq IHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ ICsgICAgdmJvb2w0X3QgdjEgPSAqKHZib29sNF90KilpbjsNCj4+Pj4+ICsg ICAgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4+Pj4+ICsNCj4+ Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9 DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w0X3Ro ZW5fdmJvb2wxNihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVz dHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sNF90IHYxID0gKih2Ym9v bDRfdCopaW47DQo+Pj4+PiArICAgIHZib29sMTZfdCB2MiA9ICoodmJvb2wx Nl90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDRfdCopKG91 dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQg KyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQN Cj4+Pj4+ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sMzIoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAg ICB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWluOw0KPj4+Pj4gKyAgICB2 Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJfdCopaW47DQo+Pj4+PiArDQo+Pj4+ PiArICAgICoodmJvb2w0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiAr ICAgICoodmJvb2wzMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30N Cj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDRfdGhl bl92Ym9vbDY0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0 cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2w0X3QgdjEgPSAqKHZib29s NF90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2w2NF90IHYyID0gKih2Ym9vbDY0 X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0 ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sNjRfdCopKG91dCAr IDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0gNiB9 IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxz Km04LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICov DQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMSxc cyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+ Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0 YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm1mOCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4+Pj4+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZsbVwu dlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0gMTIgfSB9ICovDQo+ Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c21cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDE2IH0gfSAq Lw0KPj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9wcjEwODE4NS00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcHIxMDgxODUtNC5jDQo+Pj4+PiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPj4+Pj4gaW5kZXggMDAwMDAwMDAwMDAuLmVhM2MzNjBkNzU2DQo+ Pj4+PiAtLS0gL2Rldi9udWxsDQo+Pj4+PiArKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNC5jDQo+Pj4+PiBAQCAtMCww ICsxLDY4IEBADQo+Pj4+PiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+ Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxw NjQgLU8zIiB9ICovDQo+Pj4+PiArDQo+Pj4+PiArI2luY2x1ZGUgInJpc2N2 X3ZlY3Rvci5oIg0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0 X3Zib29sOF90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50 OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sOF90IHYx ID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+PiArICAgIHZib29sMV90IHYyID0g Kih2Ym9vbDFfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2w4 X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wxX3Qq KShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4g K3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sMihpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+ PiArICAgIHZib29sOF90IHYxID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+PiAr ICAgIHZib29sMl90IHYyID0gKih2Ym9vbDJfdCopaW47DQo+Pj4+PiArDQo+ Pj4+PiArICAgICoodmJvb2w4X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ PiArICAgICoodmJvb2wyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiAr fQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sOF90 aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVz dHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sOF90IHYxID0gKih2Ym9v bDhfdCopaW47DQo+Pj4+PiArICAgIHZib29sNF90IHYyID0gKih2Ym9vbDRf dCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAgICoodmJvb2w4X3QqKShvdXQg KyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2w0X3QqKShvdXQgKyAy MDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+ Pj4+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJp Y3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2 Ym9vbDhfdCB2MSA9ICoodmJvb2w4X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9v bDE2X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiAr ICAgICoodmJvb2w4X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAg ICoodmJvb2wxNl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+ Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDhfdGhlbl92 Ym9vbDMyKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmlj dCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2w4X3QgdjEgPSAqKHZib29sOF90 KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wzMl90IHYyID0gKih2Ym9vbDMyX3Qq KWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sOF90Kikob3V0ICsg MTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDIw MCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+ Pj4gK3Rlc3RfdmJvb2w4X3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmlj dCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZi b29sOF90IHYxID0gKih2Ym9vbDhfdCopaW47DQo+Pj4+PiArICAgIHZib29s NjRfdCB2MiA9ICoodmJvb2w2NF90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsg ICAgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAg Kih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+ Pj4gKw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bTEsXHMqdGEsXHMqbWF9IDYgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05 XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0gMSB9IH0gKi8N Cj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxz KnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0 dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVy byxccyplOCxccyptZjQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2bG1cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAt OV0rXCl9IDEyIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14 XVswLTldK1wpfSAxNSB9IH0gKi8NCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNS5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYw0KPj4+ Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4+IGluZGV4IDAwMDAwMDAw MDAwLi45ZmM2NTlkMjQwMg0KPj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1 LTUuYw0KPj4+Pj4gQEAgLTAsMCArMSw2OCBAQA0KPj4+Pj4gKy8qIHsgZGct ZG8gY29tcGlsZSB9ICovDQo+Pj4+PiArLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPj4+Pj4gKw0KPj4+ Pj4gKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCj4+Pj4+ICsNCj4+Pj4+ ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDE2X3RoZW5fdmJvb2wxKGludDhf dCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+ Pj4+ICsgICAgdmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPj4+ Pj4gKyAgICB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPj4+Pj4g Kw0KPj4+Pj4gKyAgICAqKHZib29sMTZfdCopKG91dCArIDEwMCkgPSB2MTsN Cj4+Pj4+ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+ Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJv b2wxNl90aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90 ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sMTZfdCB2MSA9 ICoodmJvb2wxNl90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wyX3QgdjIgPSAq KHZib29sMl90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDE2 X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wyX3Qq KShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4g K3ZvaWQNCj4+Pj4+ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDQoaW50OF90 ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+ Pj4gKyAgICB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47DQo+Pj4+ PiArICAgIHZib29sNF90IHYyID0gKih2Ym9vbDRfdCopaW47DQo+Pj4+PiAr DQo+Pj4+PiArICAgICoodmJvb2wxNl90Kikob3V0ICsgMTAwKSA9IHYxOw0K Pj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+ Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9v bDE2X3RoZW5fdmJvb2w4KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3Qg KiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2wxNl90IHYxID0g Kih2Ym9vbDE2X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoo dmJvb2w4X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sMTZf dCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDhfdCop KG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiAr dm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wxNl90aGVuX3Zib29sMzIoaW50OF90 ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+ Pj4gKyAgICB2Ym9vbDE2X3QgdjEgPSAqKHZib29sMTZfdCopaW47DQo+Pj4+ PiArICAgIHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90KilpbjsNCj4+Pj4+ ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7 DQo+Pj4+PiArICAgICoodmJvb2wzMl90Kikob3V0ICsgMjAwKSA9IHYyOw0K Pj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92 Ym9vbDE2X3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50 OF90ICogcmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sMTZfdCB2 MSA9ICoodmJvb2wxNl90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2w2NF90IHYy ID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZi b29sMTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9v bDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0K Pj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxz KnRhLFxzKm1hfSA2IH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0 dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptOCxccyp0YSxc cyptYX0gMSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9 IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccypl OCxccyptZjQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEg fSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2bG1cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9 IDEyIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTld K1wpfSAxNCB9IH0gKi8NCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNi5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPj4+Pj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4+Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi45 ODI3NWU1MjY3ZA0KPj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4gKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0K Pj4+Pj4gQEAgLTAsMCArMSw2OCBAQA0KPj4+Pj4gKy8qIHsgZGctZG8gY29t cGlsZSB9ICovDQo+Pj4+PiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2 NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPj4+Pj4gKw0KPj4+Pj4gKyNp bmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCj4+Pj4+ICsNCj4+Pj4+ICt2b2lk DQo+Pj4+PiArdGVzdF92Ym9vbDMyX3RoZW5fdmJvb2wxKGludDhfdCAqIHJl c3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsg ICAgdmJvb2wzMl90IHYxID0gKih2Ym9vbDMyX3QqKWluOw0KPj4+Pj4gKyAg ICB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPj4+Pj4gKw0KPj4+ Pj4gKyAgICAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ ICsgICAgKih2Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9 DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2wzMl90 aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVz dHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sMzJfdCB2MSA9ICoodmJv b2wzMl90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wyX3QgdjIgPSAqKHZib29s Ml90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShv dXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wyX3QqKShvdXQg KyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQN Cj4+Pj4+ICt0ZXN0X3Zib29sMzJfdGhlbl92Ym9vbDQoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAg ICB2Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+Pj4+PiArICAg IHZib29sNF90IHYyID0gKih2Ym9vbDRfdCopaW47DQo+Pj4+PiArDQo+Pj4+ PiArICAgICoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4g KyAgICAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30N Cj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDMyX3Ro ZW5fdmJvb2w4KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0 cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJvb2wzMl90IHYxID0gKih2Ym9v bDMyX3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4 X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sMzJfdCopKG91 dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDhfdCopKG91dCAr IDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0K Pj4+Pj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sMTYoaW50OF90ICogcmVz dHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAg ICB2Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+Pj4+PiArICAg IHZib29sMTZfdCB2MiA9ICoodmJvb2wxNl90KilpbjsNCj4+Pj4+ICsNCj4+ Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+ PiArICAgICoodmJvb2wxNl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4g K30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDMy X3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sMzJfdCB2MSA9ICoo dmJvb2wzMl90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2w2NF90IHYyID0gKih2 Ym9vbDY0X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sMzJf dCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDY0X3Qq KShvdXQgKyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxz Km1hfSA2IH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMr W2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptNCxccyp0YSxccyptYX0g MSB9IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9 ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt ZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05 XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDEgfSB9ICov DQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2bG1cLnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDEyIH0g fSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAx MyB9IH0gKi8NCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYw0KPj4+Pj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4+Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi44ZjZmMGIx MWYwOQ0KPj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4gKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcuYw0KPj4+Pj4g QEAgLTAsMCArMSw2OCBAQA0KPj4+Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQo+Pj4+PiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAt bWFiaT1scDY0IC1PMyIgfSAqLw0KPj4+Pj4gKw0KPj4+Pj4gKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+ PiArdGVzdF92Ym9vbDY0X3RoZW5fdmJvb2wxKGludDhfdCAqIHJlc3RyaWN0 IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAgdmJv b2w2NF90IHYxID0gKih2Ym9vbDY0X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9v bDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAg ICAqKHZib29sNjRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAg Kih2Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9DQo+Pj4+ PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zi b29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSB7DQo+Pj4+PiArICAgIHZib29sNjRfdCB2MSA9ICoodmJvb2w2NF90 KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wyX3QgdjIgPSAqKHZib29sMl90Kilp bjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDY0X3QqKShvdXQgKyAx MDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2wyX3QqKShvdXQgKyAyMDAp ID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+Pj4+ ICt0ZXN0X3Zib29sNjRfdGhlbl92Ym9vbDQoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9v bDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+Pj4+PiArICAgIHZib29s NF90IHYyID0gKih2Ym9vbDRfdCopaW47DQo+Pj4+PiArDQo+Pj4+PiArICAg ICoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAq KHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDY0X3RoZW5fdmJv b2w4KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBv dXQpIHsNCj4+Pj4+ICsgICAgdmJvb2w2NF90IHYxID0gKih2Ym9vbDY0X3Qq KWluOw0KPj4+Pj4gKyAgICB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4X3QqKWlu Ow0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sNjRfdCopKG91dCArIDEw MCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDhfdCopKG91dCArIDIwMCkg PSB2MjsNCj4+Pj4+ICt9DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4g K3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9v bDY0X3QgdjEgPSAqKHZib29sNjRfdCopaW47DQo+Pj4+PiArICAgIHZib29s MTZfdCB2MiA9ICoodmJvb2wxNl90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsg ICAgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAg ICoodmJvb2wxNl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+ Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDY0X3RoZW5f dmJvb2wzMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJp Y3Qgb3V0KSB7DQo+Pj4+PiArICAgIHZib29sNjRfdCB2MSA9ICoodmJvb2w2 NF90KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wzMl90IHYyID0gKih2Ym9vbDMy X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sNjRfdCopKG91 dCArIDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDMyX3QqKShvdXQg KyAyMDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSA2 IH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgs XHMqbTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1b MC05XSssXHMqemVybyxccyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0g Ki8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0y LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ Pj4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMq emVybyxccyplOCxccyptZjQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+ PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2bG1c LnZccyt2WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9IDEyIH0gfSAqLw0K Pj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxMiB9IH0g Ki8NCj4+Pj4+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcHIxMDgxODUtOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3ByMTA4MTg1LTguYw0KPj4+Pj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4+Pj4+IGluZGV4IDAwMDAwMDAwMDAwLi5kOTY5NTlkZDA2NA0K Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4+Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTguYw0KPj4+Pj4gQEAgLTAs MCArMSw3NyBAQA0KPj4+Pj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+ Pj4+PiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1s cDY0IC1PMyIgfSAqLw0KPj4+Pj4gKw0KPj4+Pj4gKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCINCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVz dF92Ym9vbDFfdGhlbl92Ym9vbDEoaW50OF90ICogcmVzdHJpY3QgaW4sIGlu dDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDFfdCB2 MSA9ICoodmJvb2wxX3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDFfdCB2MiA9 ICoodmJvb2wxX3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29s MV90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sMV90 Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDIoaW50OF90 ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+ Pj4gKyAgICB2Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0KPj4+Pj4g KyAgICB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPj4+Pj4gKw0K Pj4+Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+ Pj4gKyAgICAqKHZib29sMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4g K30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDRf dGhlbl92Ym9vbDQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDRfdCB2MSA9ICoodmJv b2w0X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0 X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0 ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAqKHZib29sNF90Kikob3V0ICsg MjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICt2b2lkDQo+ Pj4+PiArdGVzdF92Ym9vbDhfdGhlbl92Ym9vbDgoaW50OF90ICogcmVzdHJp Y3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2 Ym9vbDhfdCB2MSA9ICoodmJvb2w4X3QqKWluOw0KPj4+Pj4gKyAgICB2Ym9v bDhfdCB2MiA9ICoodmJvb2w4X3QqKWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAg ICAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4gKyAgICAq KHZib29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ ICsNCj4+Pj4+ICt2b2lkDQo+Pj4+PiArdGVzdF92Ym9vbDE2X3RoZW5fdmJv b2wxNihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSB7DQo+Pj4+PiArICAgIHZib29sMTZfdCB2MSA9ICoodmJvb2wxNl90 KilpbjsNCj4+Pj4+ICsgICAgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2X3Qq KWluOw0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAqKHZib29sMTZfdCopKG91dCAr IDEwMCkgPSB2MTsNCj4+Pj4+ICsgICAgKih2Ym9vbDE2X3QqKShvdXQgKyAy MDApID0gdjI7DQo+Pj4+PiArfQ0KPj4+Pj4gKw0KPj4+Pj4gK3ZvaWQNCj4+ Pj4+ICt0ZXN0X3Zib29sMzJfdGhlbl92Ym9vbDMyKGludDhfdCAqIHJlc3Ry aWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIHsNCj4+Pj4+ICsgICAg dmJvb2wzMl90IHYxID0gKih2Ym9vbDMyX3QqKWluOw0KPj4+Pj4gKyAgICB2 Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJfdCopaW47DQo+Pj4+PiArDQo+Pj4+ PiArICAgICoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPj4+Pj4g KyAgICAqKHZib29sMzJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4+Pj4+ICt9 DQo+Pj4+PiArDQo+Pj4+PiArdm9pZA0KPj4+Pj4gK3Rlc3RfdmJvb2w2NF90 aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0IG91dCkgew0KPj4+Pj4gKyAgICB2Ym9vbDY0X3QgdjEgPSAqKHZi b29sNjRfdCopaW47DQo+Pj4+PiArICAgIHZib29sNjRfdCB2MiA9ICoodmJv b2w2NF90KilpbjsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgKih2Ym9vbDY0X3Qq KShvdXQgKyAxMDApID0gdjE7DQo+Pj4+PiArICAgICoodmJvb2w2NF90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1h fSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMq ZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+Pj4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0gMSB9 IH0gKi8NCj4+Pj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxz Km0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAq Lw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0 LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPj4+Pj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0K Pj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSA3IH0gfSAq Lw0KPj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfSAxNCB9 IH0gKi8NCiANCg== ------=_001_NextPart156271306325_=------