From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-113.freemail.mail.aliyun.com (out30-113.freemail.mail.aliyun.com [115.124.30.113]) by sourceware.org (Postfix) with ESMTPS id 5C0FE3858D32 for ; Thu, 13 Apr 2023 11:15:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5C0FE3858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R281e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045176;MF=jinma@linux.alibaba.com;NM=1;PH=DW;RN=6;SR=0;TI=W4_0.1.41_DEFAULT_210DFAED_1681384539870_o7001c11m; Received: from WS-web (jinma@linux.alibaba.com[W4_0.1.41_DEFAULT_210DFAED_1681384539870_o7001c11m]) at Thu, 13 Apr 2023 19:15:40 +0800 Date: Thu, 13 Apr 2023 19:15:40 +0800 From: "jinma" To: "=?UTF-8?B?Q2hyaXN0b3BoIE3DvGxsbmVy?=" Cc: "gcc-patches" , "kito.cheng" , "kito.cheng" , "palmer" , "ijinma" Reply-To: "jinma" Message-ID: <1470c8c9-b6ad-461b-9d0d-a72064b8e8ff.jinma@linux.alibaba.com> Subject: =?UTF-8?B?UmU6IFtQQVRDSCB2Nl0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgZXhwZXJpbWVudGFsIHpm?= =?UTF-8?B?YSBleHRlbnNpb24u?= X-Mailer: [Alimail-Mailagent][W4_0.1.41][DEFAULT][Chrome] MIME-Version: 1.0 References: <20230310124053.164-1-jinma@linux.alibaba.com>, x-aliyun-mail-creator: W4_0.1.41_DEFAULT_M3LTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzExMS4wLjAuMCBTYWZhcmkvNTM3LjM2vN In-Reply-To: Content-Type: multipart/alternative; boundary="----=ALIBOUNDARY_70706_7f0c68942700_6437e45c_e72" X-Spam-Status: No, score=-18.6 required=5.0 tests=BAYES_00,ENV_AND_HDR_SPF_MATCH,FREEMAIL_FORGED_REPLYTO,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,LIKELY_SPAM_BODY,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL 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: ------=ALIBOUNDARY_70706_7f0c68942700_6437e45c_e72 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 VGhhbmsgeW91IHZlcnkgbXVjaCBmb3IgeW91ciBjb21tZW50cy4gU2luY2Ug YSBsb25nIHRpbWUgaGFzIHBhc3NlZCBhbmQgdGhpcyBpcyBhbiBpbml0aWFs IHZlcnNpb24sIEkgd2lsbCB1cGRhdGUgdGhpcyBwYXRjaC4KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCkZyb206Q2hyaXN0b3BoIE3DvGxsbmVyIDxjaHJpc3Rv cGgubXVlbGxuZXJAdnJ1bGwuZXU+ClNlbnQgQXQ6MjAyMyBBcHIuIDEzIChU aHUuKSAxNzoyMgpUbzpKaW4gTWEgPGppbm1hQGxpbnV4LmFsaWJhYmEuY29t PgpDYzpnY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+OyBr aXRvLmNoZW5nIDxraXRvLmNoZW5nQHNpZml2ZS5jb20+OyBraXRvLmNoZW5n IDxraXRvLmNoZW5nQGdtYWlsLmNvbT47IHBhbG1lciA8cGFsbWVyQGRhYmJl bHQuY29tPgpTdWJqZWN0OlJlOiBbUEFUQ0ggdjZdIFJJU0MtVjogQWRkIHN1 cHBvcnQgZm9yIGV4cGVyaW1lbnRhbCB6ZmEgZXh0ZW5zaW9uLgpPbiBGcmks IE1hciAxMCwgMjAyMyBhdCAxOjQxIFBNIEppbiBNYSB2aWEgR2NjLXBhdGNo ZXMKPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPiB3cm90ZToKPgo+IFRoaXMg cGF0Y2ggYWRkcyB0aGUgJ1pmYScgZXh0ZW5zaW9uIGZvciByaXNjdiwgd2hp Y2ggaXMgYmFzZWQgb246Cj4gaHR0cHM6Ly9naXRodWIuY29tL3Jpc2N2L3Jp c2N2LWlzYS1tYW51YWwvY29tbWl0L2Q3NGQ5OWUyMmQ1ZjY4ODMyZjcwOTgy ZDg2NzYxNGUyMTQ5YTNiZDcKPiBsYXRlc3QgJ1pmYScgY2hhbmdlIG9uIHRo ZSBtYXN0ZXIgYnJhbmNoIG9mIHRoZSBSSVNDLVYgSVNBIE1hbnVhbCBhcwo+ IG9mIHRoaXMgd3JpdGluZy4KPgo+IFRoZSBXaWtpIFBhZ2UgKGRldGFpbHMp Ogo+IGh0dHBzOi8vZ2l0aHViLmNvbS9hNGxnL2JpbnV0aWxzLWdkYi93aWtp L3Jpc2N2X3pmYQo+Cj4gVGhlIGJpbnV0aWxzLWdkYiBmb3IgJ1pmYScgZXh0 ZW5zaW9uOgo+IGh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlwZXJtYWlsL2Jp bnV0aWxzLzIwMjItU2VwdGVtYmVyLzEyMjkzOC5odG1sCj4KPiBJbXBsZW1l bnRhdGlvbiBvZiB6ZmEgZXh0ZW5zaW9uIG9uIExMVk06Cj4gaHR0cHM6Ly9y ZXZpZXdzLmxsdm0ub3JnL3JHYzA5NDdkYzQ0MTA5MjUyZmNjMGY2OGE1NDJm YzZlZjI1MGQ0ZDNhOQo+Cj4gVGhlcmUgYXJlIHRocmVlIHBvaW50cyB0aGF0 IG5lZWQgdG8gYmUgZGlzY3Vzc2VkIGhlcmUuCj4gMS4gQWNjb3JkaW5nIHRv IHJpc2N2LXNwZWMsICJUaGUgRkNWVE1PIEQuVy5EIGluc3RydWN0aW9uIHdh cyBhZGRlZCBwcmluY2lwYWxseSB0bwo+IGFjY2VsZXJhdGUgdGhlIHByb2Nl c3Npbmcgb2YgSmF2YVNjcmlwdCBOdW1iZXJzLiIsIHNvIGl0IHNlZW1zIHRo YXQgbm8gaW1wbGVtZW50YXRpb24KPiBpcyByZXF1aXJlZCBpbiB0aGUgY29t cGlsZXIuCj4gMi4gVGhlIEZST1VORCBhbmQgRlJPVU5ETiBpbnN0cnVjdGlv bnMgaW4gdGhpcyBwYXRjaCB1c2UgcmVsYXRlZCBmdW5jdGlvbnMgaW4gdGhl IG1hdGgKPiBsaWJyYXJ5LCBzdWNoIGFzIHJvdW5kLCBmbG9vciwgY2VpbCwg ZXRjLiBTaW5jZSB0aGVyZSBpcyBubyBpbnRlcmZhY2UgZm9yIGhhbGYtcHJl Y2lzaW9uIGluCj4gdGhlIG1hdGggbGlicmFyeSwgdGhlIGluc3RydWN0aW9u cyBGUk9VTiBELkggYW5kIEZST1VORE4gWC5IIGhhdmUgbm90IGJlZW4gaW1w bGVtZW50ZWQgZm9yCj4gdGhlIHRpbWUgYmVpbmcuIElzIGl0IG5lY2Vzc2Fy eSB0byBhZGQgYSBidWlsdC1pbiBpbnRlcmZhY2UgYmVsb25naW5nIHRvIHJp c2N2IHN1Y2ggYXMKPiBfX2J1aWx0aW5fcm91bmRoZiBvciBfX2J1aWx0aW5f cm91bmRmMTYgdG8gZ2VuZXJhdGUgaGFsZiBmbG9hdGluZyBwb2ludCBpbnN0 cnVjdGlvbnM/Cj4gMy4gQXMgZmFyIGFzIEkga25vdywgRk1JTk0gYW5kIEZN QVhNIGluc3RydWN0aW9ucyBjb3JyZXNwb25kIHRvIEMyMyBsaWJyYXJ5IGZ1 bmN0aW9uIGZtaW5pbXVtCj4gYW5kIGZtYXhpbXVtLiBUaGVyZWZvcmUsIEkg aGF2ZSBub3QgZGVhbHQgd2l0aCBzdWNoIGluc3RydWN0aW9ucyBmb3IgdGhl IHRpbWUgYmVpbmcsIGJ1dCBoYXZlCj4gc2ltcGx5IGltcGxlbWVudGVkIHRo ZSBwYXR0ZXJuIG9mIGZtaW5tPGhmXHNmXGRmPjMgYW5kIGZtYXhtPGhmXHNm XGRmPjMuIElzIGl0IG5lY2Vzc2FyeSB0bwo+IGFkZCBhIGJ1aWx0LWluIGlu dGVyZmFjZSBiZWxvbmdpbmcgdG8gcmlzY3Ygc3VjaCBhc19fYnVpbHRpbl9m bWlubSB0byBnZW5lcmF0ZSBoYWxmCj4gZmxvYXRpbmctcG9pbnQgaW5zdHJ1 Y3Rpb25zPwpJIGhhdmUgcmViYXNlZCBhbmQgdGVzdGVkIHRoaXMgcGF0Y2gu CkhlcmUgYXJlIG15IG9ic2VydmF0aW9ucyAod2l0aCBmaXhlcyBiZWxvdyBh dCB0aGUgYWN0dWFsIGNvZGUpOgoqIFRoZXJlIGlzIGEgY29tcGlsZXIgd2Fy bmluZyBiZWNhdXNlIG9mIGEgbWlzc2luZyAiZmFsbHRocm91Z2giIGNvbW1l bnQKKiBUaGVyZSBhcmUgbWVyZ2UgY29uZmxpY3RzIHdpdGggYSBjdXJyZW50 IG1hc3RlcgoqIFRoZSBjb25zdGFudCBvcGVyYW5kIG9mIHRoZSBmbGkgaW5z dHJ1Y3Rpb24gdXNlcyB0aGUgY29uc3RhbnQgaW5kZXgKaW4gdGhlIHJzMS1m aWVsZCwgYnV0IG5vdCB0aGUgY29uc3RhbnQgaW4gaGV4IEZQIGxpdGVyYWwg Zm9ybQpBIHBhdGNoIHRoYXQgYWRkcmVzc2VzIHRoZXNlIGlzc3VlcyBjYW4g YWxzbyBiZSBmb3VuZCBoZXJlOgogaHR0cHM6Ly9naXRodWIuY29tL2NtdWVs bG5lci9nY2MvdHJlZS9yaXNjdi16ZmEKQWRkaXRpb25hbGx5IEkgb2JzZXJ2 ZSB0aGUgZm9sbG93aW5nIGZhaWxpbmcgdGVzdCBjYXNlcyB3aXRoIHRoaXMg cGF0Y2ggYXBwbGllZDoKID09PSBnY2M6IFVuZXhwZWN0ZWQgZmFpbHMgZm9y IHJ2NjRnYyBscDY0ZCBtZWRsb3cgPT09CkZBSUw6IGdjYy50YXJnZXQvcmlz Y3YvemVyby1zY3JhdGNoLXJlZ3MtMy5jIC1PMCAoaW50ZXJuYWwgY29tcGls ZXIKZXJyb3I6IFNlZ21lbnRhdGlvbiBmYXVsdCkKRkFJTDogZ2NjLnRhcmdl dC9yaXNjdi96ZXJvLXNjcmF0Y2gtcmVncy0zLmMgLU8wICh0ZXN0IGZvciBl eGNlc3MgZXJyb3JzKQpGQUlMOiBnY2MudGFyZ2V0L3Jpc2N2L3plcm8tc2Ny YXRjaC1yZWdzLTMuYyAtTzEgKGludGVybmFsIGNvbXBpbGVyCmVycm9yOiBT ZWdtZW50YXRpb24gZmF1bHQpCkZBSUw6IGdjYy50YXJnZXQvcmlzY3YvemVy by1zY3JhdGNoLXJlZ3MtMy5jIC1PMSAodGVzdCBmb3IgZXhjZXNzIGVycm9y cykKRkFJTDogZ2NjLnRhcmdldC9yaXNjdi96ZXJvLXNjcmF0Y2gtcmVncy0z LmMgLU8yIChpbnRlcm5hbCBjb21waWxlcgplcnJvcjogU2VnbWVudGF0aW9u IGZhdWx0KQpGQUlMOiBnY2MudGFyZ2V0L3Jpc2N2L3plcm8tc2NyYXRjaC1y ZWdzLTMuYyAtTzIgKHRlc3QgZm9yIGV4Y2VzcyBlcnJvcnMpCkZBSUw6IGdj Yy50YXJnZXQvcmlzY3YvemVyby1zY3JhdGNoLXJlZ3MtMy5jIC1PMiAtZmx0 bwotZm5vLXVzZS1saW5rZXItcGx1Z2luIC1mbHRvLXBhcnRpdGlvbj1ub25l IChpbnRlcm5hbCBjb21waWxlciBlcnJvcjoKU2VnbWVudGF0aW9uIGZhdWx0 KQpGQUlMOiBnY2MudGFyZ2V0L3Jpc2N2L3plcm8tc2NyYXRjaC1yZWdzLTMu YyAtTzIgLWZsdG8KLWZuby11c2UtbGlua2VyLXBsdWdpbiAtZmx0by1wYXJ0 aXRpb249bm9uZSAodGVzdCBmb3IgZXhjZXNzIGVycm9ycykKRkFJTDogZ2Nj LnRhcmdldC9yaXNjdi96ZXJvLXNjcmF0Y2gtcmVncy0zLmMgLU8yIC1mbHRv Ci1mdXNlLWxpbmtlci1wbHVnaW4gLWZuby1mYXQtbHRvLW9iamVjdHMgKGlu dGVybmFsIGNvbXBpbGVyIGVycm9yOgpTZWdtZW50YXRpb24gZmF1bHQpCkZB SUw6IGdjYy50YXJnZXQvcmlzY3YvemVyby1zY3JhdGNoLXJlZ3MtMy5jIC1P MiAtZmx0bwotZnVzZS1saW5rZXItcGx1Z2luIC1mbm8tZmF0LWx0by1vYmpl Y3RzICh0ZXN0IGZvciBleGNlc3MgZXJyb3JzKQpGQUlMOiBnY2MudGFyZ2V0 L3Jpc2N2L3plcm8tc2NyYXRjaC1yZWdzLTMuYyAtTzMgLWcgKGludGVybmFs CmNvbXBpbGVyIGVycm9yOiBTZWdtZW50YXRpb24gZmF1bHQpCkZBSUw6IGdj Yy50YXJnZXQvcmlzY3YvemVyby1zY3JhdGNoLXJlZ3MtMy5jIC1PMyAtZyAo dGVzdCBmb3IgZXhjZXNzIGVycm9ycykKRkFJTDogZ2NjLnRhcmdldC9yaXNj di96ZXJvLXNjcmF0Y2gtcmVncy0zLmMgLU9zIChpbnRlcm5hbCBjb21waWxl cgplcnJvcjogU2VnbWVudGF0aW9uIGZhdWx0KQpGQUlMOiBnY2MudGFyZ2V0 L3Jpc2N2L3plcm8tc2NyYXRjaC1yZWdzLTMuYyAtT3MgKHRlc3QgZm9yIGV4 Y2VzcyBlcnJvcnMpCkZBSUw6IGdjYy50YXJnZXQvcmlzY3YvemVyby1zY3Jh dGNoLXJlZ3MtMy5jIC1PZyAtZyAoaW50ZXJuYWwKY29tcGlsZXIgZXJyb3I6 IFNlZ21lbnRhdGlvbiBmYXVsdCkKRkFJTDogZ2NjLnRhcmdldC9yaXNjdi96 ZXJvLXNjcmF0Y2gtcmVncy0zLmMgLU9nIC1nICh0ZXN0IGZvciBleGNlc3Mg ZXJyb3JzKQpGQUlMOiBnY2MudGFyZ2V0L3Jpc2N2L3plcm8tc2NyYXRjaC1y ZWdzLTMuYyAtT3ogKGludGVybmFsIGNvbXBpbGVyCmVycm9yOiBTZWdtZW50 YXRpb24gZmF1bHQpCkZBSUw6IGdjYy50YXJnZXQvcmlzY3YvemVyby1zY3Jh dGNoLXJlZ3MtMy5jIC1PeiAodGVzdCBmb3IgZXhjZXNzIGVycm9ycykKSSBo YXZlIG5vdCBhbmFseXNlZCB0aGVzZSBJQ0VzIHNvIGZhci4KPgo+IGdjYy9D aGFuZ2VMb2c6Cj4KPiAqIGNvbW1vbi9jb25maWcvcmlzY3YvcmlzY3YtY29t bW9uLmNjOiBBZGQgemZhIGV4dGVuc2lvbi4KPiAqIGNvbmZpZy9yaXNjdi9j b25zdHJhaW50cy5tZCAoWmYpOiBDb25zdHJhaW4gdGhlIGZsb2F0aW5nIHBv aW50IG51bWJlciB0aGF0IHRoZSBGTEkgaW5zdHJ1Y3Rpb24gY2FuIGxvYWQu Cj4gKiBjb25maWcvcmlzY3YvaXRlcmF0b3JzLm1kIChyb3VuZF9wYXR0ZXJu KTogTmV3Lgo+ICogY29uZmlnL3Jpc2N2L3ByZWRpY2F0ZXMubWQ6IFByZWRp Y2F0ZSB0aGUgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIHRoYXQgdGhlIEZMSSBp bnN0cnVjdGlvbiBjYW4gbG9hZC4KPiAqIGNvbmZpZy9yaXNjdi9yaXNjdi1v cHRzLmggKE1BU0tfWkZBKTogTmV3Lgo+IChUQVJHRVRfWkZBKTogTmV3Lgo+ ICogY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oIChyaXNjdl9mbG9hdF9j b25zdF9ydHhfaW5kZXhfZm9yX2ZsaSk6IEdldCB0aGUgaW5kZXggb2YgdGhl Cj4gZmxvYXRpbmctcG9pbnQgbnVtYmVyIHRoYXQgdGhlIEZMSSBpbnN0cnVj dGlvbiBjYW4gbG9hZC4KPiAqIGNvbmZpZy9yaXNjdi9yaXNjdi5jYyAoZmlu ZF9pbmRleF9pbl9hcnJheSk6IE5ldy4KPiAocmlzY3ZfZmxvYXRfY29uc3Rf cnR4X2luZGV4X2Zvcl9mbGkpOiBOZXcuCj4gKHJpc2N2X2Nhbm5vdF9mb3Jj ZV9jb25zdF9tZW0pOiBMaWtld2lzZS4KPiAocmlzY3ZfY29uc3RfaW5zbnMp OiBMaWtld2lzZS4KPiAocmlzY3ZfbGVnaXRpbWl6ZV9jb25zdF9tb3ZlKTog TGlrZXdpc2UuCj4gKHJpc2N2X3NwbGl0XzY0Yml0X21vdmVfcCk6IEV4Y2x1 ZGUgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyB0aGF0IGNhbiBiZSBsb2FkZWQg YnkgRkxJIGluc3RydWN0aW9ucy4KPiAocmlzY3Zfb3V0cHV0X21vdmUpOiBM aWtld2lzZS4KPiAocmlzY3ZfbWVtbW9kZWxfbmVlZHNfcmVsZWFzZV9mZW5j ZSk6IExpa2V3aXNlLgo+IChyaXNjdl9wcmludF9vcGVyYW5kKTogTGlrZXdp c2UuCj4gKHJpc2N2X3NlY29uZGFyeV9tZW1vcnlfbmVlZGVkKTogTGlrZXdp c2UuCj4gKiBjb25maWcvcmlzY3YvcmlzY3YuaCAoR1BfUkVHX1JUWF9QKTog TmV3Lgo+ICogY29uZmlnL3Jpc2N2L3Jpc2N2Lm1kIChmbWlubTxtb2RlPjMp OiBOZXcuCj4gKGZtYXhtPG1vZGU+Myk6IE5ldy4KPiAoPHJvdW5kX3BhdHRl cm4+PEFOWUY6bW9kZT4yKTogTmV3Lgo+IChyaW50PEFOWUY6bW9kZT4yKTog TmV3Lgo+IChmPHF1aWV0X3BhdHRlcm4+X3F1aWV0PEFOWUY6bW9kZT48WDpt b2RlPjRfemZhKTogTmV3Lgo+Cj4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 Cj4KPiAqIGdjYy50YXJnZXQvcmlzY3YvemZhLWZsZXEtZmx0cS1ydjMyLmM6 IE5ldyB0ZXN0Lgo+ICogZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmxlcS1mbHRx LmM6IE5ldyB0ZXN0Lgo+ICogZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmxpLXJ2 MzIuYzogTmV3IHRlc3QuCj4gKiBnY2MudGFyZ2V0L3Jpc2N2L3pmYS1mbGkt emZoLXJ2MzIuYzogTmV3IHRlc3QuCj4gKiBnY2MudGFyZ2V0L3Jpc2N2L3pm YS1mbGktemZoLmM6IE5ldyB0ZXN0Lgo+ICogZ2NjLnRhcmdldC9yaXNjdi96 ZmEtZmxpLmM6IE5ldyB0ZXN0Lgo+ICogZ2NjLnRhcmdldC9yaXNjdi96ZmEt Zm1vdmgtZm1vdnAtcnYzMi5jOiBOZXcgdGVzdC4KPiAqIGdjYy50YXJnZXQv cmlzY3YvemZhLWZyb3VuZC1ydjMyLmM6IE5ldyB0ZXN0Lgo+ICogZ2NjLnRh cmdldC9yaXNjdi96ZmEtZnJvdW5kLmM6IE5ldyB0ZXN0Lgo+IC0tLQo+IGdj Yy9jb21tb24vY29uZmlnL3Jpc2N2L3Jpc2N2LWNvbW1vbi5jYyB8IDQgKwo+ IGdjYy9jb25maWcvcmlzY3YvY29uc3RyYWludHMubWQgfCA3ICsKPiBnY2Mv Y29uZmlnL3Jpc2N2L2l0ZXJhdG9ycy5tZCB8IDUgKwo+IGdjYy9jb25maWcv cmlzY3YvcHJlZGljYXRlcy5tZCB8IDQgKwo+IGdjYy9jb25maWcvcmlzY3Yv cmlzY3Ytb3B0cy5oIHwgMyArCj4gZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1w cm90b3MuaCB8IDEgKwo+IGdjYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgfCAx NjggKysrKysrKysrKysrKysrKystCj4gZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di5oIHwgMSArCj4gZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5tZCB8IDExMiAr KysrKysrKystLS0KPiAuLi4vZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmxlcS1m bHRxLXJ2MzIuYyB8IDE5ICsrCj4gLi4uL2djYy50YXJnZXQvcmlzY3YvemZh LWZsZXEtZmx0cS5jIHwgMTkgKysKPiBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvemZhLWZsaS1ydjMyLmMgfCA3OSArKysrKysrKwo+IC4uLi9n Y2MudGFyZ2V0L3Jpc2N2L3pmYS1mbGktemZoLXJ2MzIuYyB8IDQxICsrKysr Cj4gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mbGktemZo LmMgfCA0MSArKysrKwo+IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di96ZmEtZmxpLmMgfCA3OSArKysrKysrKwo+IC4uLi9nY2MudGFyZ2V0L3Jp c2N2L3pmYS1mbW92aC1mbW92cC1ydjMyLmMgfCAxMCArKwo+IC4uLi9nY2Mu dGFyZ2V0L3Jpc2N2L3pmYS1mcm91bmQtcnYzMi5jIHwgNDIgKysrKysKPiBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemZhLWZyb3VuZC5jIHwg NDIgKysrKysKPiAxOCBmaWxlcyBjaGFuZ2VkLCA2NTQgaW5zZXJ0aW9ucygr KSwgMjMgZGVsZXRpb25zKC0pCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmxlcS1mbHRxLXJ2MzIu Ywo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvemZhLWZsZXEtZmx0cS5jCj4gY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmxpLXJ2MzIu Ywo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvemZhLWZsaS16ZmgtcnYzMi5jCj4gY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmxpLXpm aC5jCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi96ZmEtZmxpLmMKPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mbW92aC1mbW92cC1y djMyLmMKPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3pmYS1mcm91bmQtcnYzMi5jCj4gY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZnJv dW5kLmMKPgo+IGRpZmYgLS1naXQgYS9nY2MvY29tbW9uL2NvbmZpZy9yaXNj di9yaXNjdi1jb21tb24uY2MgYi9nY2MvY29tbW9uL2NvbmZpZy9yaXNjdi9y aXNjdi1jb21tb24uY2MKPiBpbmRleCBlYmMxZWQ3ZDdlNC4uOGZlYzNiYzcx YzkgMTAwNjQ0Cj4gLS0tIGEvZ2NjL2NvbW1vbi9jb25maWcvcmlzY3Yvcmlz Y3YtY29tbW9uLmNjCj4gKysrIGIvZ2NjL2NvbW1vbi9jb25maWcvcmlzY3Yv cmlzY3YtY29tbW9uLmNjCj4gQEAgLTIxNyw2ICsyMTcsOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHJpc2N2X2V4dF92ZXJzaW9uIHJpc2N2X2V4dF92ZXJz aW9uX3RhYmxlW10gPQo+IHsiemZoIiwgSVNBX1NQRUNfQ0xBU1NfTk9ORSwg MSwgMH0sCj4geyJ6ZmhtaW4iLCBJU0FfU1BFQ19DTEFTU19OT05FLCAxLCAw fSwKPgo+ICsgeyJ6ZmEiLCBJU0FfU1BFQ19DTEFTU19OT05FLCAwLCAxfSwK PiArCj4geyJ6bW11bCIsIElTQV9TUEVDX0NMQVNTX05PTkUsIDEsIDB9LAo+ Cj4geyJzdmludmFsIiwgSVNBX1NQRUNfQ0xBU1NfTk9ORSwgMSwgMH0sCj4g QEAgLTEyNDMsNiArMTI0NSw4IEBAIHN0YXRpYyBjb25zdCByaXNjdl9leHRf ZmxhZ190YWJsZV90IHJpc2N2X2V4dF9mbGFnX3RhYmxlW10gPQo+IHsiemZo bWluIiwgJmdjY19vcHRpb25zOjp4X3Jpc2N2X3pmX3N1YmV4dCwgTUFTS19a RkhNSU59LAo+IHsiemZoIiwgJmdjY19vcHRpb25zOjp4X3Jpc2N2X3pmX3N1 YmV4dCwgTUFTS19aRkh9LAo+Cj4gKyB7InpmYSIsICZnY2Nfb3B0aW9uczo6 eF9yaXNjdl96Zl9zdWJleHQsIE1BU0tfWkZBfSwKPiArCj4geyJ6bW11bCIs ICZnY2Nfb3B0aW9uczo6eF9yaXNjdl96bV9zdWJleHQsIE1BU0tfWk1NVUx9 LAo+Cj4geyJzdmludmFsIiwgJmdjY19vcHRpb25zOjp4X3Jpc2N2X3N2X3N1 YmV4dCwgTUFTS19TVklOVkFMfSwKPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi9jb25zdHJhaW50cy5tZCBiL2djYy9jb25maWcvcmlzY3YvY29u c3RyYWludHMubWQKPiBpbmRleCBmZGZjZjIzODBmOC4uMmJhMDE2MDkzNGEg MTAwNjQ0Cj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9jb25zdHJhaW50cy5t ZAo+ICsrKyBiL2djYy9jb25maWcvcmlzY3YvY29uc3RyYWludHMubWQKPiBA QCAtMTE4LDYgKzExOCwxMyBAQCAoZGVmaW5lX2NvbnN0cmFpbnQgIlQiCj4g KGFuZCAobWF0Y2hfb3BlcmFuZCAwICJtb3ZlX29wZXJhbmQiKQo+IChtYXRj aF90ZXN0ICJDT05TVEFOVF9QIChvcCkiKSkpCj4KPiArOzsgWmZhIGNvbnN0 cmFpbnRzLgo+ICsKPiArKGRlZmluZV9jb25zdHJhaW50ICJaZiIKPiArICJB IGZsb2F0aW5nIHBvaW50IG51bWJlciB0aGF0IGNhbiBiZSBsb2FkZWQgdXNp bmcgaW5zdHJ1Y3Rpb24gYGZsaWAgaW4gemZhLiIKPiArIChhbmQgKG1hdGNo X2NvZGUgImNvbnN0X2RvdWJsZSIpCj4gKyAobWF0Y2hfdGVzdCAiKHJpc2N2 X2Zsb2F0X2NvbnN0X3J0eF9pbmRleF9mb3JfZmxpIChvcCkgIT0gLTEpIikp KQo+ICsKPiA7OyBWZWN0b3IgY29uc3RyYWludHMuCj4KPiAoZGVmaW5lX3Jl Z2lzdGVyX2NvbnN0cmFpbnQgInZyIiAiVEFSR0VUX1ZFQ1RPUiA/IFZfUkVH UyA6IE5PX1JFR1MiCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3Yv aXRlcmF0b3JzLm1kIGIvZ2NjL2NvbmZpZy9yaXNjdi9pdGVyYXRvcnMubWQK PiBpbmRleCA1YjcwYWIyMDc1OC4uZWY5YjFhYTllZDMgMTAwNjQ0Cj4gLS0t IGEvZ2NjL2NvbmZpZy9yaXNjdi9pdGVyYXRvcnMubWQKPiArKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L2l0ZXJhdG9ycy5tZAo+IEBAIC0yODQsMyArMjg0LDgg QEAgKGRlZmluZV9pbnRfaXRlcmF0b3IgUVVJRVRfQ09NUEFSSVNPTiBbVU5T UEVDX0ZMVF9RVUlFVCBVTlNQRUNfRkxFX1FVSUVUXSkKPiAoZGVmaW5lX2lu dF9hdHRyIHF1aWV0X3BhdHRlcm4gWyhVTlNQRUNfRkxUX1FVSUVUICJsdCIp IChVTlNQRUNfRkxFX1FVSUVUICJsZSIpXSkKPiAoZGVmaW5lX2ludF9hdHRy IFFVSUVUX1BBVFRFUk4gWyhVTlNQRUNfRkxUX1FVSUVUICJMVCIpIChVTlNQ RUNfRkxFX1FVSUVUICJMRSIpXSkKPgo+ICsoZGVmaW5lX2ludF9pdGVyYXRv ciBST1VORCBbVU5TUEVDX1JPVU5EIFVOU1BFQ19GTE9PUiBVTlNQRUNfQ0VJ TCBVTlNQRUNfQlRSVU5DIFVOU1BFQ19ST1VOREVWRU4gVU5TUEVDX05FQVJC WUlOVF0pCj4gKyhkZWZpbmVfaW50X2F0dHIgcm91bmRfcGF0dGVybiBbKFVO U1BFQ19ST1VORCAicm91bmQiKSAoVU5TUEVDX0ZMT09SICJmbG9vciIpIChV TlNQRUNfQ0VJTCAiY2VpbCIpCj4gKyAoVU5TUEVDX0JUUlVOQyAiYnRydW5j IikgKFVOU1BFQ19ST1VOREVWRU4gInJvdW5kZXZlbiIpIChVTlNQRUNfTkVB UkJZSU5UICJuZWFyYnlpbnQiKV0pCj4gKyhkZWZpbmVfaW50X2F0dHIgcm91 bmRfcm0gWyhVTlNQRUNfUk9VTkQgInJtbSIpIChVTlNQRUNfRkxPT1IgInJk biIpIChVTlNQRUNfQ0VJTCAicnVwIikKPiArIChVTlNQRUNfQlRSVU5DICJy dHoiKSAoVU5TUEVDX1JPVU5ERVZFTiAicm5lIikgKFVOU1BFQ19ORUFSQllJ TlQgImR5biIpXSkKPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKPiBk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kIGIv Z2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kCj4gaW5kZXggMGQ5ZDc3 MDFjN2UuLmIxNmI4ZDQzOGUzIDEwMDY0NAo+IC0tLSBhL2djYy9jb25maWcv cmlzY3YvcHJlZGljYXRlcy5tZAo+ICsrKyBiL2djYy9jb25maWcvcmlzY3Yv cHJlZGljYXRlcy5tZAo+IEBAIC0xNDksNiArMTQ5LDEwIEBAIChkZWZpbmVf cHJlZGljYXRlICJtb3ZlX29wZXJhbmQiCj4gY2FzZSBDT05TVF9QT0xZX0lO VDoKPiByZXR1cm4ga25vd25fZXEgKHJ0eF90b19wb2x5X2ludDY0IChvcCks IEJZVEVTX1BFUl9SSVNDVl9WRUNUT1IpOwo+Cj4gKyBjYXNlIENPTlNUX0RP VUJMRToKPiArIHJldHVybiBjb25zdF8wX29wZXJhbmQgKG9wLCBtb2RlKQo+ ICsgfHwgKHJpc2N2X2Zsb2F0X2NvbnN0X3J0eF9pbmRleF9mb3JfZmxpIChv cCkgIT0gLTEpOwo+ICsKPiBjYXNlIENPTlNUOgo+IGNhc2UgU1lNQk9MX1JF RjoKPiBjYXNlIExBQkVMX1JFRjoKPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi1vcHRzLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LW9wdHMuaAo+IGluZGV4IGZmMzk4YzBhMmFlLi4zYWU3MjllZWMzMCAxMDA2 NDQKPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW9wdHMuaAo+ICsr KyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Ytb3B0cy5oCj4gQEAgLTE3Miw2 ICsxNzIsOSBAQCBlbnVtIHN0YWNrX3Byb3RlY3Rvcl9ndWFyZCB7Cj4gI2Rl ZmluZSBUQVJHRVRfWkZITUlOICgocmlzY3ZfemZfc3ViZXh0ICYgTUFTS19a RkhNSU4pICE9IDApCj4gI2RlZmluZSBUQVJHRVRfWkZIICgocmlzY3ZfemZf c3ViZXh0ICYgTUFTS19aRkgpICE9IDApCj4KPiArI2RlZmluZSBNQVNLX1pG QSAoMSA8PCAwKQo+ICsjZGVmaW5lIFRBUkdFVF9aRkEgKChyaXNjdl96Zl9z dWJleHQgJiBNQVNLX1pGQSkgIT0gMCkKPiArCj4gI2RlZmluZSBNQVNLX1pN TVVMICgxIDw8IDApCj4gI2RlZmluZSBUQVJHRVRfWk1NVUwgKChyaXNjdl96 bV9zdWJleHQgJiBNQVNLX1pNTVVMKSAhPSAwKQo+Cj4gZGlmZiAtLWdpdCBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggYi9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXByb3Rvcy5oCj4gaW5kZXggZjM1YWFmMzViNDguLjBm NWRjYmE4Mjk0IDEwMDY0NAo+IC0tLSBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtcHJvdG9zLmgKPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXBy b3Rvcy5oCj4gQEAgLTM4LDYgKzM4LDcgQEAgZW51bSByaXNjdl9zeW1ib2xf dHlwZSB7Cj4gLyogUm91dGluZXMgaW1wbGVtZW50ZWQgaW4gcmlzY3YuY2Mu ICovCj4gZXh0ZXJuIGVudW0gcmlzY3Zfc3ltYm9sX3R5cGUgcmlzY3ZfY2xh c3NpZnlfc3ltYm9saWNfZXhwcmVzc2lvbiAocnR4KTsKPiBleHRlcm4gYm9v bCByaXNjdl9zeW1ib2xpY19jb25zdGFudF9wIChydHgsIGVudW0gcmlzY3Zf c3ltYm9sX3R5cGUgKik7Cj4gK2V4dGVybiBpbnQgcmlzY3ZfZmxvYXRfY29u c3RfcnR4X2luZGV4X2Zvcl9mbGkgKHJ0eCk7Cj4gZXh0ZXJuIGludCByaXNj dl9yZWdub19tb2RlX29rX2Zvcl9iYXNlX3AgKGludCwgbWFjaGluZV9tb2Rl LCBib29sKTsKPiBleHRlcm4gaW50IHJpc2N2X2FkZHJlc3NfaW5zbnMgKHJ0 eCwgbWFjaGluZV9tb2RlLCBib29sKTsKPiBleHRlcm4gaW50IHJpc2N2X2Nv bnN0X2luc25zIChydHgpOwo+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYwo+IGlu ZGV4IGM5MWZhMzEwMWFhLi5jODFhMmJmNDRmNSAxMDA2NDQKPiAtLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjCj4gKysrIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi5jYwo+IEBAIC03OTksNiArNzk5LDEwOCBAQCBzdGF0aWMg aW50IHJpc2N2X3N5bWJvbF9pbnNucyAoZW51bSByaXNjdl9zeW1ib2xfdHlw ZSB0eXBlKQo+IH0KPiB9Cj4KPiArLyogSW1tZWRpYXRlIHZhbHVlcyBsb2Fk ZWQgYnkgdGhlIEZMSS5TIGluc3RydWN0aW9uIGluIENoYXB0ZXIgMjUgb2Yg dGhlIGxhdGVzdCBSSVNDLVYgSVNBCj4gKyBNYW51YWwgZHJhZnQuIEZvciBk ZXRhaWxzLCBwbGVhc2Ugc2VlOgo+ICsgaHR0cHM6Ly9naXRodWIuY29tL3Jp c2N2L3Jpc2N2LWlzYS1tYW51YWwvcmVsZWFzZXMvdGFnL2RyYWZ0LTIwMjIx MjE3LWNiM2I5ZDEgKi8KPiArCj4gK3Vuc2lnbmVkIEhPU1RfV0lERV9JTlQg ZmxpX3ZhbHVlX2hmWzMyXSA9Cj4gK3sKPiArIDB4YmMwMCwgMHg0MDAsIDB4 MTAwLCAweDIwMCwgMHgxYzAwLCAweDIwMDAsIDB4MmMwMCwgMHgzMDAwLAo+ ICsgMHgzNDAwLCAweDM1MDAsIDB4MzYwMCwgMHgzNzAwLCAweDM4MDAsIDB4 MzkwMCwgMHgzYTAwLCAweDNiMDAsCj4gKyAweDNjMDAsIDB4M2QwMCwgMHgz ZTAwLCAweDNmMDAsIDB4NDAwMCwgMHg0MTAwLCAweDQyMDAsIDB4NDQwMCwK PiArIDB4NDgwMCwgMHg0YzAwLCAweDU4MDAsIDB4NWMwMCwgMHg3ODAwLAo+ ICsgLyogT25seSB1c2VkIGZvciBmaWxsaW5nLCBlbnN1cmluZyB0aGF0IDI5 IGFuZCAzMCBvZiBIRiBhcmUgdGhlIHNhbWUuICovCj4gKyAweDc4MDAsCj4g KyAweDdjMDAsIDB4N2UwMCwKPiArfTsKPiArCj4gK3Vuc2lnbmVkIEhPU1Rf V0lERV9JTlQgZmxpX3ZhbHVlX3NmWzMyXSA9Cj4gK3sKPiArIDB4YmY4MDAw MDAsIDB4MDA4MDAwMDAsIDB4Mzc4MDAwMDAsIDB4MzgwMDAwMDAsIDB4M2I4 MDAwMDAsIDB4M2MwMDAwMDAsIDB4M2Q4MDAwMDAsIDB4M2UwMDAwMDAsCj4g KyAweDNlODAwMDAwLCAweDNlYTAwMDAwLCAweDNlYzAwMDAwLCAweDNlZTAw MDAwLCAweDNmMDAwMDAwLCAweDNmMjAwMDAwLCAweDNmNDAwMDAwLCAweDNm NjAwMDAwLAo+ICsgMHgzZjgwMDAwMCwgMHgzZmEwMDAwMCwgMHgzZmMwMDAw MCwgMHgzZmUwMDAwMCwgMHg0MDAwMDAwMCwgMHg0MDIwMDAwMCwgMHg0MDQw MDAwMCwgMHg0MDgwMDAwMCwKPiArIDB4NDEwMDAwMDAsIDB4NDE4MDAwMDAs IDB4NDMwMDAwMDAsIDB4NDM4MDAwMDAsIDB4NDcwMDAwMDAsIDB4NDc4MDAw MDAsIDB4N2Y4MDAwMDAsIDB4N2ZjMDAwMDAKPiArfTsKPiArCj4gK3Vuc2ln bmVkIEhPU1RfV0lERV9JTlQgZmxpX3ZhbHVlX2RmWzMyXSA9Cj4gK3sKPiAr IDB4YmZmMDAwMDAwMDAwMDAwMCwgMHgxMDAwMDAwMDAwMDAwMCwgMHgzZWYw MDAwMDAwMDAwMDAwLCAweDNmMDAwMDAwMDAwMDAwMDAsCj4gKyAweDNmNzAw MDAwMDAwMDAwMDAsIDB4M2Y4MDAwMDAwMDAwMDAwMCwgMHgzZmIwMDAwMDAw MDAwMDAwLCAweDNmYzAwMDAwMDAwMDAwMDAsCj4gKyAweDNmZDAwMDAwMDAw MDAwMDAsIDB4M2ZkNDAwMDAwMDAwMDAwMCwgMHgzZmQ4MDAwMDAwMDAwMDAw LCAweDNmZGMwMDAwMDAwMDAwMDAsCj4gKyAweDNmZTAwMDAwMDAwMDAwMDAs IDB4M2ZlNDAwMDAwMDAwMDAwMCwgMHgzZmU4MDAwMDAwMDAwMDAwLCAweDNm ZWMwMDAwMDAwMDAwMDAsCj4gKyAweDNmZjAwMDAwMDAwMDAwMDAsIDB4M2Zm NDAwMDAwMDAwMDAwMCwgMHgzZmY4MDAwMDAwMDAwMDAwLCAweDNmZmMwMDAw MDAwMDAwMDAsCj4gKyAweDQwMDAwMDAwMDAwMDAwMDAsIDB4NDAwNDAwMDAw MDAwMDAwMCwgMHg0MDA4MDAwMDAwMDAwMDAwLCAweDQwMTAwMDAwMDAwMDAw MDAsCj4gKyAweDQwMjAwMDAwMDAwMDAwMDAsIDB4NDAzMDAwMDAwMDAwMDAw MCwgMHg0MDYwMDAwMDAwMDAwMDAwLCAweDQwNzAwMDAwMDAwMDAwMDAsCj4g KyAweDQwZTAwMDAwMDAwMDAwMDAsIDB4NDBmMDAwMDAwMDAwMDAwMCwgMHg3 ZmYwMDAwMDAwMDAwMDAwLCAweDdmZjgwMDAwMDAwMDAwMDAsCj4gK307Cj4g Kwo+ICsvKiBGaW5kIHRoZSBpbmRleCBvZiBUQVJHRVQgaW4gQVJSQVksIGFu ZCByZXR1cm4gLTEgaWYgbm90IGZvdW5kLiAqLwo+ICsKPiArc3RhdGljIGlu dAo+ICtmaW5kX2luZGV4X2luX2FycmF5ICh1bnNpZ25lZCBIT1NUX1dJREVf SU5UIHRhcmdldCwgdW5zaWduZWQgSE9TVF9XSURFX0lOVCAqYXJyYXksIGlu dCBsZW4pCj4gK3sKPiArIGlmIChhcnJheSA9PSBOVUxMKQo+ICsgcmV0dXJu IC0xOwo+ICsKPiArIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspCj4g KyB7Cj4gKyBpZiAodGFyZ2V0ID09IGFycmF5W2ldKQo+ICsgcmV0dXJuIGk7 Cj4gKyB9Cj4gKyByZXR1cm4gLTE7Cj4gK30KPiArCj4gKy8qIFJldHVybiBp bmRleCBvZiB0aGUgRkxJIGluc3RydWN0aW9uIHRhYmxlIGlmIHJ0eCBYIGlz IGFuIGltbWVkaWF0ZSBjb25zdGFudCB0aGF0Cj4gKyBjYW4gYmUgbW92ZWQg dXNpbmcgYSBzaW5nbGUgRkxJIGluc3RydWN0aW9uIGluIHpmYSBleHRlbnNp b24uIC0xIG90aGVyd2lzZS4gKi8KPiArCj4gK2ludAo+ICtyaXNjdl9mbG9h dF9jb25zdF9ydHhfaW5kZXhfZm9yX2ZsaSAocnR4IHgpCj4gK3sKPiArIG1h Y2hpbmVfbW9kZSBtb2RlID0gR0VUX01PREUgKHgpOwo+ICsKPiArIGlmICgh VEFSR0VUX1pGQSB8fCBtb2RlID09IFZPSURtb2RlCj4gKyB8fCAhQ09OU1Rf RE9VQkxFX1AoeCkKPiArIHx8IChtb2RlID09IEhGbW9kZSAmJiAhVEFSR0VU X1pGSCkKPiArIHx8IChtb2RlID09IFNGbW9kZSAmJiAhVEFSR0VUX0hBUkRf RkxPQVQpCj4gKyB8fCAobW9kZSA9PSBERm1vZGUgJiYgIVRBUkdFVF9ET1VC TEVfRkxPQVQpKQo+ICsgcmV0dXJuIC0xOwo+ICsKPiArIGlmICghU0NBTEFS X0ZMT0FUX01PREVfUCAobW9kZSkKPiArIHx8IEdFVF9NT0RFX0JJVFNJWkUg KG1vZGUpLnRvX2NvbnN0YW50ICgpID4gSE9TVF9CSVRTX1BFUl9XSURFX0lO VAo+ICsgLyogT25seSBzdXBwb3J0IHVwIHRvIERGIG1vZGUuICovCj4gKyB8 fCBHRVRfTU9ERV9CSVRTSVpFIChtb2RlKS50b19jb25zdGFudCAoKSA+IEdF VF9NT0RFX0JJVFNJWkUgKERGbW9kZSkpCj4gKyByZXR1cm4gLTE7Cj4gKwo+ ICsgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBpdmFsID0gMDsKPiArCj4gKyBs b25nIHJlc1syXTsKPiArIHJlYWxfdG9fdGFyZ2V0IChyZXMsCj4gKyBDT05T VF9ET1VCTEVfUkVBTF9WQUxVRSAoeCksCj4gKyBSRUFMX01PREVfRk9STUFU IChtb2RlKSk7Cj4gKwo+ICsgaWYgKG1vZGUgPT0gREZtb2RlKQo+ICsgewo+ ICsgaW50IG9yZGVyID0gQllURVNfQklHX0VORElBTiA/IDEgOiAwOwo+ICsg aXZhbCA9IHpleHRfaHdpIChyZXNbb3JkZXJdLCAzMik7Cj4gKyBpdmFsIHw9 ICh6ZXh0X2h3aSAocmVzWzEgLSBvcmRlcl0sIDMyKSA8PCAzMik7Cj4gKyB9 Cj4gKyBlbHNlCj4gKyBpdmFsID0gemV4dF9od2kgKHJlc1swXSwgMzIpOwo+ ICsKPiArIHN3aXRjaCAobW9kZSkKPiArIHsKPiArIGNhc2UgU0Ztb2RlOgo+ ICsgcmV0dXJuIGZpbmRfaW5kZXhfaW5fYXJyYXkgKGl2YWwsIGZsaV92YWx1 ZV9zZiwgMzIpOwo+ICsgY2FzZSBERm1vZGU6Cj4gKyByZXR1cm4gZmluZF9p bmRleF9pbl9hcnJheSAoaXZhbCwgZmxpX3ZhbHVlX2RmLCAzMik7Cj4gKyBj YXNlIEhGbW9kZToKPiArIHJldHVybiBmaW5kX2luZGV4X2luX2FycmF5IChp dmFsLCBmbGlfdmFsdWVfaGYsIDMyKTsKPiArIGRlZmF1bHQ6Cj4gKyBicmVh azsKPiArIH0KPiArIHJldHVybiAtMTsKPiArfQo+ICsKPiAvKiBJbXBsZW1l bnQgVEFSR0VUX0xFR0lUSU1BVEVfQ09OU1RBTlRfUC4gKi8KPgo+IHN0YXRp YyBib29sCj4gQEAgLTgyNiw2ICs5MjgsOSBAQCByaXNjdl9jYW5ub3RfZm9y Y2VfY29uc3RfbWVtIChtYWNoaW5lX21vZGUgbW9kZSBBVFRSSUJVVEVfVU5V U0VELCBydHggeCkKPiBpZiAoR0VUX0NPREUgKHgpID09IEhJR0gpCj4gcmV0 dXJuIHRydWU7Cj4KPiArIGlmIChyaXNjdl9mbG9hdF9jb25zdF9ydHhfaW5k ZXhfZm9yX2ZsaSAoeCkgIT0gLTEpCj4gKyByZXR1cm4gdHJ1ZTsKPiArCj4g c3BsaXRfY29uc3QgKHgsICZiYXNlLCAmb2Zmc2V0KTsKPiBpZiAocmlzY3Zf c3ltYm9saWNfY29uc3RhbnRfcCAoYmFzZSwgJnR5cGUpKQo+IHsKPiBAQCAt MTE5MSw2ICsxMjk2LDggQEAgcmlzY3ZfY29uc3RfaW5zbnMgKHJ0eCB4KQo+ IH0KPgo+IGNhc2UgQ09OU1RfRE9VQkxFOgo+ICsgaWYgKHJpc2N2X2Zsb2F0 X2NvbnN0X3J0eF9pbmRleF9mb3JfZmxpICh4KSAhPSAtMSkKPiArIHJldHVy biA0OwpIZXJlIGEgIi8qIEZhbGwgdGhyb3VnaC4gKi8iIGlzIG1pc3Npbmcg dG8gYXZvaWQgYSBjb21waWxlciB3YXJuaW5nLgo+IGNhc2UgQ09OU1RfVkVD VE9SOgo+IC8qIFdlIGNhbiB1c2UgeDAgdG8gbG9hZCBmbG9hdGluZy1wb2lu dCB6ZXJvLiAqLwo+IHJldHVybiB4ID09IENPTlNUMF9SVFggKEdFVF9NT0RF ICh4KSkgPyAxIDogMDsKPiBAQCAtMTcyNyw2ICsxODM0LDEyIEBAIHJpc2N2 X2xlZ2l0aW1pemVfY29uc3RfbW92ZSAobWFjaGluZV9tb2RlIG1vZGUsIHJ0 eCBkZXN0LCBydHggc3JjKQo+IHJldHVybjsKPiB9Cj4KPiArIGlmIChyaXNj dl9mbG9hdF9jb25zdF9ydHhfaW5kZXhfZm9yX2ZsaSAoc3JjKSAhPSAtMSkK PiArIHsKPiArIHJpc2N2X2VtaXRfc2V0IChkZXN0LCBzcmMpOwo+ICsgcmV0 dXJuOwo+ICsgfQo+ICsKPiAvKiBTcGxpdCBtb3ZlcyBvZiBzeW1ib2xpYyBj b25zdGFudHMgaW50byBoaWdoL2xvdyBwYWlycy4gKi8KPiBpZiAocmlzY3Zf c3BsaXRfc3ltYm9sIChkZXN0LCBzcmMsIE1BWF9NQUNISU5FX01PREUsICZz cmMsIEZBTFNFKSkKPiB7Cj4gQEAgLTI3MzksMTIgKzI4NTIsMTkgQEAgcmlz Y3Zfc3BsaXRfNjRiaXRfbW92ZV9wIChydHggZGVzdCwgcnR4IHNyYykKPiBp ZiAoVEFSR0VUXzY0QklUKQo+IHJldHVybiBmYWxzZTsKPgo+ICsgLyogVGhl cmUgaXMgbm8gbmVlZCB0byBzcGxpdCBpZiB0aGUgRkxJIGluc3RydWN0aW9u IGluIHRoZSBgWmZhYCBleHRlbnNpb24gY2FuIGJlIHVzZWQuICovCj4gKyBp ZiAoVEFSR0VUX1pGQSAmJiAocmlzY3ZfZmxvYXRfY29uc3RfcnR4X2luZGV4 X2Zvcl9mbGkgKHNyYykgIT0gLTEpKQo+ICsgcmV0dXJuIGZhbHNlOwo+ICsK PiAvKiBBbGxvdyBGUFIgPC0+IEZQUiBhbmQgRlBSIDwtPiBNRU0gbW92ZXMs IGFuZCBwZXJtaXQgdGhlIHNwZWNpYWwgY2FzZQo+IG9mIHplcm9pbmcgYW4g RlBSIHdpdGggRkNWVC5ELlcuICovCj4gaWYgKFRBUkdFVF9ET1VCTEVfRkxP QVQKPiAmJiAoKEZQX1JFR19SVFhfUCAoc3JjKSAmJiBGUF9SRUdfUlRYX1Ag KGRlc3QpKQo+IHx8IChGUF9SRUdfUlRYX1AgKGRlc3QpICYmIE1FTV9QIChz cmMpKQo+IHx8IChGUF9SRUdfUlRYX1AgKHNyYykgJiYgTUVNX1AgKGRlc3Qp KQo+ICsgfHwgKFRBUkdFVF9aRkEKPiArICYmICgoRlBfUkVHX1JUWF9QIChk ZXN0KSAmJiBHUF9SRUdfUlRYX1AgKHNyYykpCj4gKyB8fCAoRlBfUkVHX1JU WF9QIChzcmMpICYmIEdQX1JFR19SVFhfUCAoZGVzdCkpKSkKPiB8fCAoRlBf UkVHX1JUWF9QIChkZXN0KSAmJiBzcmMgPT0gQ09OU1QwX1JUWCAoR0VUX01P REUgKHNyYykpKSkpCj4gcmV0dXJuIGZhbHNlOwo+Cj4gQEAgLTI4MDgsNiAr MjkyOCw4IEBAIHJpc2N2X291dHB1dF9tb3ZlIChydHggZGVzdCwgcnR4IHNy YykKPiBjYXNlIDQ6Cj4gcmV0dXJuICJmbXYueC5zXHQlMCwlMSI7Cj4gY2Fz ZSA4Ogo+ICsgaWYgKCFUQVJHRVRfNjRCSVQgJiYgVEFSR0VUX1pGQSkKPiAr IHJldHVybiAiZm12Lngud1x0JTAsJTFcblx0Zm12aC54LmRcdCVOMCwlMSI7 Cj4gcmV0dXJuICJmbXYueC5kXHQlMCwlMSI7Cj4gfQo+Cj4gQEAgLTI4Njcs NiArMjk4OSw4IEBAIHJpc2N2X291dHB1dF9tb3ZlIChydHggZGVzdCwgcnR4 IHNyYykKPiBjYXNlIDg6Cj4gaWYgKFRBUkdFVF82NEJJVCkKPiByZXR1cm4g ImZtdi5kLnhcdCUwLCV6MSI7Cj4gKyBlbHNlIGlmIChUQVJHRVRfWkZBICYm IHNyYyAhPSBDT05TVDBfUlRYIChtb2RlKSkKPiArIHJldHVybiAiZm12cC5k LnhcdCUwLCUxLCVOMSI7Cj4gLyogaW4gUlYzMiwgd2UgY2FuIGVtdWxhdGUg Zm12LmQueCAlMCwgeDAgdXNpbmcgZmN2dC5kLncgKi8KPiBnY2NfYXNzZXJ0 IChzcmMgPT0gQ09OU1QwX1JUWCAobW9kZSkpOwo+IHJldHVybiAiZmN2dC5k LndcdCUwLHgwIjsKPiBAQCAtMjkxOSw2ICszMDQzLDE0IEBAIHJpc2N2X291 dHB1dF9tb3ZlIChydHggZGVzdCwgcnR4IHNyYykKPiBjYXNlIDg6Cj4gcmV0 dXJuICJmbGRcdCUwLCUxIjsKPiB9Cj4gKwo+ICsgaWYgKHNyY19jb2RlID09 IENPTlNUX0RPVUJMRSAmJiAocmlzY3ZfZmxvYXRfY29uc3RfcnR4X2luZGV4 X2Zvcl9mbGkgKHNyYykgIT0gLTEpKQo+ICsgc3dpdGNoICh3aWR0aCkKPiAr IHsKPiArIGNhc2UgMjogcmV0dXJuICJmbGkuaFx0JTAsJTEiOwo+ICsgY2Fz ZSA0OiByZXR1cm4gImZsaS5zXHQlMCwlMSI7Cj4gKyBjYXNlIDg6IHJldHVy biAiZmxpLmRcdCUwLCUxIjsKPiArIH0KPiB9Cj4gaWYgKGRlc3RfY29kZSA9 PSBSRUcgJiYgR1BfUkVHX1AgKFJFR05PIChkZXN0KSkgJiYgc3JjX2NvZGUg PT0gQ09OU1RfUE9MWV9JTlQpCj4gewo+IEBAIC00MjIyLDYgKzQzNTQsNyBA QCByaXNjdl9tZW1tb2RlbF9uZWVkc19yZWxlYXNlX2ZlbmNlIChlbnVtIG1l bW1vZGVsIG1vZGVsKQo+ICdTJyBQcmludCBzaGlmdC1pbmRleCBvZiBzaW5n bGUtYml0IG1hc2sgT1AuCj4gJ1QnIFByaW50IHNoaWZ0LWluZGV4IG9mIGlu dmVydGVkIHNpbmdsZS1iaXQgbWFzayBPUC4KPiAnficgUHJpbnQgdyBpZiBU QVJHRVRfNjRCSVQgaXMgdHJ1ZTsgb3RoZXJ3aXNlIG5vdCBwcmludCBhbnl0 aGluZy4KPiArICdOJyBQcmludCBuZXh0IHJlZ2lzdGVyLgo+Cj4gTm90ZSBw bGVhc2Uga2VlcCB0aGlzIGxpc3QgYW5kIHRoZSBsaXN0IGluIHJpc2N2Lm1k IGluIHN5bmMuICovCj4KPiBAQCAtNDQwNiw2ICs0NTM5LDkgQEAgcmlzY3Zf cHJpbnRfb3BlcmFuZCAoRklMRSAqZmlsZSwgcnR4IG9wLCBpbnQgbGV0dGVy KQo+IG91dHB1dF9hZGRyX2NvbnN0IChmaWxlLCBuZXdvcCk7Cj4gYnJlYWs7 Cj4gfQo+ICsgY2FzZSAnTic6Cj4gKyBmcHV0cyAocmVnX25hbWVzW1JFR05P IChvcCkgKyAxXSwgZmlsZSk7Cj4gKyBicmVhazsKPiBkZWZhdWx0Ogo+IHN3 aXRjaCAoY29kZSkKPiB7Cj4gQEAgLTQ0MjIsNiArNDU1OCwzNSBAQCByaXNj dl9wcmludF9vcGVyYW5kIChGSUxFICpmaWxlLCBydHggb3AsIGludCBsZXR0 ZXIpCj4gb3V0cHV0X2FkZHJlc3MgKG1vZGUsIFhFWFAgKG9wLCAwKSk7Cj4g YnJlYWs7Cj4KPiArIGNhc2UgQ09OU1RfRE9VQkxFOgo+ICsgewo+ICsgaWYg KGxldHRlciA9PSAneicgJiYgb3AgPT0gQ09OU1QwX1JUWCAoR0VUX01PREUg KG9wKSkpCj4gKyB7Cj4gKyBmcHV0cyAocmVnX25hbWVzW0dQX1JFR19GSVJT VF0sIGZpbGUpOwo+ICsgYnJlYWs7Cj4gKyB9Cj4gKwo+ICsgaW50IGZsaV9p bmRleCA9IHJpc2N2X2Zsb2F0X2NvbnN0X3J0eF9pbmRleF9mb3JfZmxpIChv cCk7Cj4gKyBpZiAoZmxpX2luZGV4ID09IC0xIHx8IGZsaV9pbmRleCA+IDMx KQo+ICsgewo+ICsgb3V0cHV0X29wZXJhbmRfbG9zc2FnZSAoImludmFsaWQg dXNlIG9mICclJSVjJyIsIGxldHRlcik7Cj4gKyBicmVhazsKPiArIH0KPiAr Cj4gKyBzd2l0Y2ggKGZsaV9pbmRleCkKPiArIHsKPiArIGNhc2UgMToKPiAr IGFzbV9mcHJpbnRmIChmaWxlLCAiJXMiLCAibWluIik7YnJlYWs7Cj4gKyBj YXNlIDMwOgo+ICsgYXNtX2ZwcmludGYgKGZpbGUsICIlcyIsICJpbmYiKTti cmVhazsKPiArIGNhc2UgMzE6Cj4gKyBhc21fZnByaW50ZiAoZmlsZSwgIiVz IiwgIm5hbiIpO2JyZWFrOwo+ICsgZGVmYXVsdDoKPiArIGFzbV9mcHJpbnRm IChmaWxlLCAiJWQiLCBmbGlfaW5kZXgpO2JyZWFrOwpUaGlzIHByaW50cyB0 aGUgY29uc3RhbnQtaW5kZXgsIGJ1dCBub3QgdGhlIGNvbnN0YW50IGl0c2Vs Zi4KV2UgZGlzY3Vzc2VkIHRoaXMgb24gdGhlIEJpbnV0aWxzIHBhdGNoIGFu ZCBhZ3JlZWQgdGhhdCB3ZSB3aWxsIHVzZQpoZXggZmxvYXRpbmctcG9pbnQg bGl0ZXJhbHMuClNvbWV0aGluZyBsaWtlIHRoaXMgc2hvdWxkIHdvcms6CiBk ZWZhdWx0OgogewogY2hhciBzWzYwXTsKIHJlYWxfdG9faGV4YWRlY2ltYWwg KHMsIENPTlNUX0RPVUJMRV9SRUFMX1ZBTFVFIChvcCksCiBzaXplb2YgKHMp LCAwLCAxKTsKIGFzbV9mcHJpbnRmIChmaWxlLCAiJXMiLCBzKTsKIGJyZWFr OwogfQpTbywgc2luY2Ugd2Uga25vdyB0aGUgdmFsdWUgaXMgYSB2YWxpZCBj b25zdGFudCwgd2UgY2FuIGp1c3QgcHJpbnQgaXQuCj4gKyB9Cj4gKyBicmVh azsKPiArIH0KPiArCj4gZGVmYXVsdDoKPiBpZiAobGV0dGVyID09ICd6JyAm JiBvcCA9PSBDT05TVDBfUlRYIChHRVRfTU9ERSAob3ApKSkKPiBmcHV0cyAo cmVnX25hbWVzW0dQX1JFR19GSVJTVF0sIGZpbGUpOwo+IEBAIC01NzM0LDcg KzU4OTksOCBAQCByaXNjdl9zZWNvbmRhcnlfbWVtb3J5X25lZWRlZCAobWFj aGluZV9tb2RlIG1vZGUsIHJlZ19jbGFzc190IGNsYXNzMSwKPiB7Cj4gcmV0 dXJuICghcmlzY3Zfdl9leHRfdmVjdG9yX21vZGVfcCAobW9kZSkKPiAmJiBH RVRfTU9ERV9TSVpFIChtb2RlKS50b19jb25zdGFudCAoKSA+IFVOSVRTX1BF Ul9XT1JECj4gLSAmJiAoY2xhc3MxID09IEZQX1JFR1MpICE9IChjbGFzczIg PT0gRlBfUkVHUykpOwo+ICsgJiYgKGNsYXNzMSA9PSBGUF9SRUdTKSAhPSAo Y2xhc3MyID09IEZQX1JFR1MpCj4gKyAmJiAhVEFSR0VUX1pGQSk7CkRvZXMg bm90IGFwcGx5IG9uIG1hc3RlciBhbnltb3JlLgpOZXcgY29kZToKICYmICFU QVJHRVRfWFRIRUFERk1WICYmICFUQVJHRVRfWkZBKTsKPiB9Cj4KPiAvKiBJ bXBsZW1lbnQgVEFSR0VUX1JFR0lTVEVSX01PVkVfQ09TVC4gKi8KPiBkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi5oCj4gaW5kZXggMTViOTMxN2E4Y2UuLmY2YWI5Yzc1 MzE3IDEwMDY0NAo+IC0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuaAo+ ICsrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuaAo+IEBAIC0zNzcsNiAr Mzc3LDcgQEAgQVNNX01JU0FfU1BFQwo+ICNkZWZpbmUgU0lCQ0FMTF9SRUdf UChSRUdOTykgXAo+IFRFU1RfSEFSRF9SRUdfQklUIChyZWdfY2xhc3NfY29u dGVudHNbU0lCQ0FMTF9SRUdTXSwgUkVHTk8pCj4KPiArI2RlZmluZSBHUF9S RUdfUlRYX1AoWCkgKFJFR19QIChYKSAmJiBHUF9SRUdfUCAoUkVHTk8gKFgp KSkKPiAjZGVmaW5lIEZQX1JFR19SVFhfUChYKSAoUkVHX1AgKFgpICYmIEZQ X1JFR19QIChSRUdOTyAoWCkpKQo+Cj4gLyogVXNlIHMwIGFzIHRoZSBmcmFt ZSBwb2ludGVyIGlmIGl0IGlzIHNvIHJlcXVlc3RlZC4gKi8KPiBkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5tZCBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YubWQKPiBpbmRleCAzNzFkNjgzOGMwYi4uNGZhMjg5NmI4 ZTggMTAwNjQ0Cj4gLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5tZAo+ ICsrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YubWQKPiBAQCAtNTksNiAr NTksMTUgQEAgKGRlZmluZV9jX2VudW0gInVuc3BlYyIgWwo+IFVOU1BFQ19M Uk9VTkQKPiBVTlNQRUNfRk1JTgo+IFVOU1BFQ19GTUFYCj4gKyBVTlNQRUNf UklOVAo+ICsgVU5TUEVDX1JPVU5ECj4gKyBVTlNQRUNfRkxPT1IKPiArIFVO U1BFQ19DRUlMCj4gKyBVTlNQRUNfQlRSVU5DCj4gKyBVTlNQRUNfUk9VTkRF VkVOCj4gKyBVTlNQRUNfTkVBUkJZSU5UCj4gKyBVTlNQRUNfRk1JTk0KPiAr IFVOU1BFQ19GTUFYTQo+Cj4gOzsgU3RhY2sgdGllCj4gVU5TUEVDX1RJRQo+ IEBAIC0xMjI3LDYgKzEyMzYsMjYgQEAgKGRlZmluZV9pbnNuICJuZWc8bW9k ZT4yIgo+IDs7Cj4gOzsgLi4uLi4uLi4uLi4uLi4uLi4uLi4KPgo+ICsoZGVm aW5lX2luc24gImZtaW5tPG1vZGU+MyIKPiArIFsoc2V0IChtYXRjaF9vcGVy YW5kOkFOWUYgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1mIikKPiArICh1bnNw ZWM6QU5ZRiBbKHVzZSAobWF0Y2hfb3BlcmFuZDpBTllGIDEgInJlZ2lzdGVy X29wZXJhbmQiICIgZiIpKQo+ICsgKHVzZSAobWF0Y2hfb3BlcmFuZDpBTllG IDIgInJlZ2lzdGVyX29wZXJhbmQiICIgZiIpKV0KPiArIFVOU1BFQ19GTUlO TSkpXQo+ICsgIlRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9aRkEiCj4g KyAiZm1pbm0uPGZtdD5cdCUwLCUxLCUyIgo+ICsgWyhzZXRfYXR0ciAidHlw ZSIgImZtb3ZlIikKPiArIChzZXRfYXR0ciAibW9kZSIgIjxVTklUTU9ERT4i KV0pCj4gKwo+ICsoZGVmaW5lX2luc24gImZtYXhtPG1vZGU+MyIKPiArIFso c2V0IChtYXRjaF9vcGVyYW5kOkFOWUYgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1mIikKPiArICh1bnNwZWM6QU5ZRiBbKHVzZSAobWF0Y2hfb3BlcmFuZDpB TllGIDEgInJlZ2lzdGVyX29wZXJhbmQiICIgZiIpKQo+ICsgKHVzZSAobWF0 Y2hfb3BlcmFuZDpBTllGIDIgInJlZ2lzdGVyX29wZXJhbmQiICIgZiIpKV0K PiArIFVOU1BFQ19GTUFYTSkpXQo+ICsgIlRBUkdFVF9IQVJEX0ZMT0FUICYm IFRBUkdFVF9aRkEiCj4gKyAiZm1heG0uPGZtdD5cdCUwLCUxLCUyIgo+ICsg WyhzZXRfYXR0ciAidHlwZSIgImZtb3ZlIikKPiArIChzZXRfYXR0ciAibW9k ZSIgIjxVTklUTU9ERT4iKV0pCj4gKwo+IChkZWZpbmVfaW5zbiAiZm1pbjxt b2RlPjMiCj4gWyhzZXQgKG1hdGNoX29wZXJhbmQ6QU5ZRiAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPWYiKQo+ICh1bnNwZWM6QU5ZRiBbKHVzZSAobWF0Y2hf b3BlcmFuZDpBTllGIDEgInJlZ2lzdGVyX29wZXJhbmQiICIgZiIpKQo+IEBA IC0xNTAzLDEzICsxNTMyLDEzIEBAIChkZWZpbmVfZXhwYW5kICJtb3ZoZiIK PiB9KQo+Cj4gKGRlZmluZV9pbnNuICIqbW92aGZfaGFyZGZsb2F0Igo+IC0g WyhzZXQgKG1hdGNoX29wZXJhbmQ6SEYgMCAibm9uaW1tZWRpYXRlX29wZXJh bmQiICI9ZixmLGYsbSxtLCpmLCpyLCAqciwqciwqbSIpCj4gLSAobWF0Y2hf b3BlcmFuZDpIRiAxICJtb3ZlX29wZXJhbmQiICIgZixHLG0sZixHLCpyLCpm LCpHKnIsKm0sKnIiKSldCj4gKyBbKHNldCAobWF0Y2hfb3BlcmFuZDpIRiAw ICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1mLCBmLGYsZixtLG0sKmYsKnIs ICpyLCpyLCptIikKPiArIChtYXRjaF9vcGVyYW5kOkhGIDEgIm1vdmVfb3Bl cmFuZCIgIiBmLFpmLEcsbSxmLEcsKnIsKmYsKkcqciwqbSwqciIpKV0KPiAi VEFSR0VUX1pGSE1JTgo+ICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5k c1swXSwgSEZtb2RlKQo+IHx8IHJlZ19vcl8wX29wZXJhbmQgKG9wZXJhbmRz WzFdLCBIRm1vZGUpKSIKPiB7IHJldHVybiByaXNjdl9vdXRwdXRfbW92ZSAo b3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsgfQo+IC0gWyhzZXRfYXR0ciAi bW92ZV90eXBlIiAiZm1vdmUsbXRjLGZwbG9hZCxmcHN0b3JlLHN0b3JlLG10 YyxtZmMsbW92ZSxsb2FkLHN0b3JlIikKPiArIFsoc2V0X2F0dHIgIm1vdmVf dHlwZSIgImZtb3ZlLGZtb3ZlLG10YyxmcGxvYWQsZnBzdG9yZSxzdG9yZSxt dGMsbWZjLG1vdmUsbG9hZCxzdG9yZSIpCj4gKHNldF9hdHRyICJtb2RlIiAi SEYiKV0pCj4KPiAoZGVmaW5lX2luc24gIiptb3ZoZl9zb2Z0ZmxvYXQiCj4g QEAgLTE1NzUsNiArMTYwNCwyNiBAQCAoZGVmaW5lX2luc24gImw8cmludF9w YXR0ZXJuPjxBTllGOm1vZGU+PEdQUjptb2RlPjIiCj4gWyhzZXRfYXR0ciAi dHlwZSIgImZjdnQiKQo+IChzZXRfYXR0ciAibW9kZSIgIjxBTllGOk1PREU+ IildKQo+Cj4gKyhkZWZpbmVfaW5zbiAiPHJvdW5kX3BhdHRlcm4+PEFOWUY6 bW9kZT4yIgo+ICsgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QU5ZRiAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPWYiKQo+ICsgKHVuc3BlYzpBTllGCj4gKyBbKG1h dGNoX29wZXJhbmQ6QU5ZRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIGYiKV0K PiArIFJPVU5EKSldCj4gKyAiVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VU X1pGQSIKPiArICJmcm91bmQuPEFOWUY6Zm10Plx0JTAsJTEsPHJvdW5kX3Jt PiIKPiArIFsoc2V0X2F0dHIgInR5cGUiICJmY3Z0IikKPiArIChzZXRfYXR0 ciAibW9kZSIgIjxBTllGOk1PREU+IildKQo+ICsKPiArKGRlZmluZV9pbnNu ICJyaW50PEFOWUY6bW9kZT4yIgo+ICsgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 QU5ZRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWYiKQo+ICsgKHVuc3BlYzpB TllGCj4gKyBbKG1hdGNoX29wZXJhbmQ6QU5ZRiAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiIGYiKV0KPiArIFVOU1BFQ19SSU5UKSldCj4gKyAiVEFSR0VUX0hB UkRfRkxPQVQgJiYgVEFSR0VUX1pGQSIKPiArICJmcm91bmRueC48QU5ZRjpm bXQ+XHQlMCwlMSIKPiArIFsoc2V0X2F0dHIgInR5cGUiICJmY3Z0IikKPiAr IChzZXRfYXR0ciAibW9kZSIgIjxBTllGOk1PREU+IildKQo+ICsKPiA7Owo+ IDs7IC4uLi4uLi4uLi4uLi4uLi4uLi4uCj4gOzsKPiBAQCAtMTgzNCwxMyAr MTg4MywxMyBAQCAoZGVmaW5lX2V4cGFuZCAibW92c2YiCj4gfSkKPgo+IChk ZWZpbmVfaW5zbiAiKm1vdnNmX2hhcmRmbG9hdCIKPiAtIFsoc2V0IChtYXRj aF9vcGVyYW5kOlNGIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPWYsZixm LG0sbSwqZiwqciwgKnIsKnIsKm0iKQo+IC0gKG1hdGNoX29wZXJhbmQ6U0Yg MSAibW92ZV9vcGVyYW5kIiAiIGYsRyxtLGYsRywqciwqZiwqRypyLCptLCpy IikpXQo+ICsgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAibm9uaW1tZWRp YXRlX29wZXJhbmQiICI9ZiwgZixmLGYsbSxtLCpmLCpyLCAqciwqciwqbSIp Cj4gKyAobWF0Y2hfb3BlcmFuZDpTRiAxICJtb3ZlX29wZXJhbmQiICIgZixa ZixHLG0sZixHLCpyLCpmLCpHKnIsKm0sKnIiKSldCj4gIlRBUkdFVF9IQVJE X0ZMT0FUCj4gJiYgKHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBdLCBT Rm1vZGUpCj4gfHwgcmVnX29yXzBfb3BlcmFuZCAob3BlcmFuZHNbMV0sIFNG bW9kZSkpIgo+IHsgcmV0dXJuIHJpc2N2X291dHB1dF9tb3ZlIChvcGVyYW5k c1swXSwgb3BlcmFuZHNbMV0pOyB9Cj4gLSBbKHNldF9hdHRyICJtb3ZlX3R5 cGUiICJmbW92ZSxtdGMsZnBsb2FkLGZwc3RvcmUsc3RvcmUsbXRjLG1mYyxt b3ZlLGxvYWQsc3RvcmUiKQo+ICsgWyhzZXRfYXR0ciAibW92ZV90eXBlIiAi Zm1vdmUsZm1vdmUsbXRjLGZwbG9hZCxmcHN0b3JlLHN0b3JlLG10YyxtZmMs bW92ZSxsb2FkLHN0b3JlIikKPiAoc2V0X2F0dHIgIm1vZGUiICJTRiIpXSkK Pgo+IChkZWZpbmVfaW5zbiAiKm1vdnNmX3NvZnRmbG9hdCIKPiBAQCAtMTg2 NywyMyArMTkxNiwyMyBAQCAoZGVmaW5lX2V4cGFuZCAibW92ZGYiCj4gOzsg SW4gUlYzMiwgd2UgbGFjayBmbXYueC5kIGFuZCBmbXYuZC54LiBHbyB0aHJv dWdoIG1lbW9yeSBpbnN0ZWFkLgo+IDs7IChIb3dldmVyLCB3ZSBjYW4gc3Rp bGwgdXNlIGZjdnQuZC53IHRvIHplcm8gYSBmbG9hdGluZy1wb2ludCByZWdp c3Rlci4pCj4gKGRlZmluZV9pbnNuICIqbW92ZGZfaGFyZGZsb2F0X3J2MzIi Cj4gLSBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJub25pbW1lZGlhdGVf b3BlcmFuZCIgIj1mLGYsZixtLG0sICpyLCpyLCptIikKPiAtIChtYXRjaF9v cGVyYW5kOkRGIDEgIm1vdmVfb3BlcmFuZCIgIiBmLEcsbSxmLEcsKnIqRywq bSwqciIpKV0KPiArIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAiPWYsIGYsZixmLG0sbSwqZiwqciwgKnIsKnIs Km0iKQo+ICsgKG1hdGNoX29wZXJhbmQ6REYgMSAibW92ZV9vcGVyYW5kIiAi IGYsWmYsRyxtLGYsRywqciwqZiwqcipHLCptLCpyIikpXQpEb2VzIG5vdCBh cHBseSBvbiBtYXN0ZXIgYW55bW9yZSwgbmVlZHM6CiBbKHNldCAobWF0Y2hf b3BlcmFuZDpERiAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIKIj1mLGYsZixm LG0sbSwqZiwqciwqdGhfZl9mbXYsKnRoX3JfZm12LCAqciwqciwqbSIpCiAo bWF0Y2hfb3BlcmFuZDpERiAxICJtb3ZlX29wZXJhbmQiICIKZixaZixHLG0s ZixHLCpyLCpmLCp0aF9yX2ZtdiwqdGhfZl9mbXYsKnIqRywqbSwqciIpKV0K PiAiIVRBUkdFVF82NEJJVCAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUCj4gJiYg KHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBdLCBERm1vZGUpCj4gfHwg cmVnX29yXzBfb3BlcmFuZCAob3BlcmFuZHNbMV0sIERGbW9kZSkpIgo+IHsg cmV0dXJuIHJpc2N2X291dHB1dF9tb3ZlIChvcGVyYW5kc1swXSwgb3BlcmFu ZHNbMV0pOyB9Cj4gLSBbKHNldF9hdHRyICJtb3ZlX3R5cGUiICJmbW92ZSxt dGMsZnBsb2FkLGZwc3RvcmUsc3RvcmUsbW92ZSxsb2FkLHN0b3JlIikKPiAr IFsoc2V0X2F0dHIgIm1vdmVfdHlwZSIgImZtb3ZlLGZtb3ZlLG10YyxmcGxv YWQsZnBzdG9yZSxzdG9yZSxtdGMsbWZjLG1vdmUsbG9hZCxzdG9yZSIpCkRv ZXMgbm90IGFwcGx5IG9uIG1hc3RlciBhbnltb3JlLCBuZWVkczoKIFsoc2V0 X2F0dHIgIm1vdmVfdHlwZSIKImZtb3ZlLGZtb3ZlLG10YyxmcGxvYWQsZnBz dG9yZSxzdG9yZSxtdGMsbWZjLG10YyxtZmMsbW92ZSxsb2FkLHN0b3JlIikK PiAoc2V0X2F0dHIgIm1vZGUiICJERiIpXSkKPgo+IChkZWZpbmVfaW5zbiAi Km1vdmRmX2hhcmRmbG9hdF9ydjY0Igo+IC0gWyhzZXQgKG1hdGNoX29wZXJh bmQ6REYgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9ZixmLGYsbSxtLCpm LCpyLCAqciwqciwqbSIpCj4gLSAobWF0Y2hfb3BlcmFuZDpERiAxICJtb3Zl X29wZXJhbmQiICIgZixHLG0sZixHLCpyLCpmLCpyKkcsKm0sKnIiKSldCj4g KyBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJub25pbW1lZGlhdGVfb3Bl cmFuZCIgIj1mLCBmLGYsZixtLG0sKmYsKnIsICpyLCpyLCptIikKPiArICht YXRjaF9vcGVyYW5kOkRGIDEgIm1vdmVfb3BlcmFuZCIgIiBmLFpmLEcsbSxm LEcsKnIsKmYsKnIqRywqbSwqciIpKV0KPiAiVEFSR0VUXzY0QklUICYmIFRB UkdFVF9ET1VCTEVfRkxPQVQKPiAmJiAocmVnaXN0ZXJfb3BlcmFuZCAob3Bl cmFuZHNbMF0sIERGbW9kZSkKPiB8fCByZWdfb3JfMF9vcGVyYW5kIChvcGVy YW5kc1sxXSwgREZtb2RlKSkiCj4geyByZXR1cm4gcmlzY3Zfb3V0cHV0X21v dmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7IH0KPiAtIFsoc2V0X2F0 dHIgIm1vdmVfdHlwZSIgImZtb3ZlLG10YyxmcGxvYWQsZnBzdG9yZSxzdG9y ZSxtdGMsbWZjLG1vdmUsbG9hZCxzdG9yZSIpCj4gKyBbKHNldF9hdHRyICJt b3ZlX3R5cGUiICJmbW92ZSxmbW92ZSxtdGMsZnBsb2FkLGZwc3RvcmUsc3Rv cmUsbXRjLG1mYyxtb3ZlLGxvYWQsc3RvcmUiKQo+IChzZXRfYXR0ciAibW9k ZSIgIkRGIildKQo+Cj4gKGRlZmluZV9pbnNuICIqbW92ZGZfc29mdGZsb2F0 Igo+IEBAIC0yNDkwLDE2ICsyNTM5LDIzIEBAIChkZWZpbmVfZXhwYW5kICJm PHF1aWV0X3BhdHRlcm4+X3F1aWV0PEFOWUY6bW9kZT48WDptb2RlPjQiCj4g cnR4IG9wMCA9IG9wZXJhbmRzWzBdOwo+IHJ0eCBvcDEgPSBvcGVyYW5kc1sx XTsKPiBydHggb3AyID0gb3BlcmFuZHNbMl07Cj4gLSBydHggdG1wID0gZ2Vu X3JlZ19ydHggKFNJbW9kZSk7Cj4gLSBydHggY21wID0gZ2VuX3J0eF88UVVJ RVRfUEFUVEVSTj4gKDxYOk1PREU+bW9kZSwgb3AxLCBvcDIpOwo+IC0gcnR4 IGZyZmxhZ3MgPSBnZW5fcnR4X1VOU1BFQ19WT0xBVElMRSAoU0ltb2RlLCBn ZW5fcnR2ZWMgKDEsIGNvbnN0MF9ydHgpLAo+IC0gVU5TUEVDVl9GUkZMQUdT KTsKPiAtIHJ0eCBmc2ZsYWdzID0gZ2VuX3J0eF9VTlNQRUNfVk9MQVRJTEUg KFNJbW9kZSwgZ2VuX3J0dmVjICgxLCB0bXApLAo+IC0gVU5TUEVDVl9GU0ZM QUdTKTsKPiAtCj4gLSBlbWl0X2luc24gKGdlbl9ydHhfU0VUICh0bXAsIGZy ZmxhZ3MpKTsKPiAtIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKG9wMCwgY21w KSk7Cj4gLSBlbWl0X2luc24gKGZzZmxhZ3MpOwo+ICsKPiArIGlmIChUQVJH RVRfWkZBKQo+ICsgZW1pdF9pbnNuIChnZW5fZjxxdWlldF9wYXR0ZXJuPl9x dWlldDxBTllGOm1vZGU+PFg6bW9kZT40X3pmYShvcDAsIG9wMSwgb3AyKSk7 Cj4gKyBlbHNlCj4gKyB7Cj4gKyBydHggdG1wID0gZ2VuX3JlZ19ydHggKFNJ bW9kZSk7Cj4gKyBydHggY21wID0gZ2VuX3J0eF88UVVJRVRfUEFUVEVSTj4g KDxYOk1PREU+bW9kZSwgb3AxLCBvcDIpOwo+ICsgcnR4IGZyZmxhZ3MgPSBn ZW5fcnR4X1VOU1BFQ19WT0xBVElMRSAoU0ltb2RlLCBnZW5fcnR2ZWMgKDEs IGNvbnN0MF9ydHgpLAo+ICsgVU5TUEVDVl9GUkZMQUdTKTsKPiArIHJ0eCBm c2ZsYWdzID0gZ2VuX3J0eF9VTlNQRUNfVk9MQVRJTEUgKFNJbW9kZSwgZ2Vu X3J0dmVjICgxLCB0bXApLAo+ICsgVU5TUEVDVl9GU0ZMQUdTKTsKPiArCj4g KyBlbWl0X2luc24gKGdlbl9ydHhfU0VUICh0bXAsIGZyZmxhZ3MpKTsKPiAr IGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKG9wMCwgY21wKSk7Cj4gKyBlbWl0 X2luc24gKGZzZmxhZ3MpOwo+ICsgfQo+ICsKPiBpZiAoSE9OT1JfU05BTlMg KDxBTllGOk1PREU+bW9kZSkpCj4gZW1pdF9pbnNuIChnZW5fcnR4X1VOU1BF Q19WT0xBVElMRSAoPEFOWUY6TU9ERT5tb2RlLAo+IGdlbl9ydHZlYyAoMiwg b3AxLCBvcDIpLAo+IEBAIC0yNTA3LDYgKzI1NjMsMTggQEAgKGRlZmluZV9l eHBhbmQgImY8cXVpZXRfcGF0dGVybj5fcXVpZXQ8QU5ZRjptb2RlPjxYOm1v ZGU+NCIKPiBET05FOwo+IH0pCj4KPiArKGRlZmluZV9pbnNuICJmPHF1aWV0 X3BhdHRlcm4+X3F1aWV0PEFOWUY6bW9kZT48WDptb2RlPjRfemZhIgo+ICsg WyhzZXQgKG1hdGNoX29wZXJhbmQ6WCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXIiKQo+ICsgKHVuc3BlYzpYCj4gKyBbKG1hdGNoX29wZXJhbmQ6QU5ZRiAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIGYiKQo+ICsgKG1hdGNoX29wZXJhbmQ6 QU5ZRiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiIGYiKV0KPiArIFFVSUVUX0NP TVBBUklTT04pKV0KPiArICJUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRf WkZBIgo+ICsgImY8cXVpZXRfcGF0dGVybj5xLjxmbXQ+XHQlMCwlMSwlMiIK PiArIFsoc2V0X2F0dHIgInR5cGUiICJmY21wIikKPiArIChzZXRfYXR0ciAi bW9kZSIgIjxVTklUTU9ERT4iKQo+ICsgKHNldCAoYXR0ciAibGVuZ3RoIikg KGNvbnN0X2ludCAxNikpXSkKPiArCj4gKGRlZmluZV9pbnNuICIqc2VxX3pl cm9fPFg6bW9kZT48R1BSOm1vZGU+Igo+IFsoc2V0IChtYXRjaF9vcGVyYW5k OkdQUiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQo+IChlcTpHUFIgKG1h dGNoX29wZXJhbmQ6WCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIHIiKQo+IGRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemZh LWZsZXEtZmx0cS1ydjMyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvemZhLWZsZXEtZmx0cS1ydjMyLmMKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwLi4yNjg5NWI3NmZhNAo+IC0tLSAv ZGV2L251bGwKPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvemZhLWZsZXEtZmx0cS1ydjMyLmMKPiBAQCAtMCwwICsxLDE5IEBACj4g Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovCj4gKy8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2MzJpbWFmZGNfemZhIC1tYWJpPWlscDMyZCAtTzIiIH0gKi8K PiArCj4gK2V4dGVybiB2b2lkIGFib3J0KHZvaWQpOwo+ICtleHRlcm4gZmxv YXQgYSwgYjsKPiArZXh0ZXJuIGRvdWJsZSBjLCBkOwo+ICsKPiArdm9pZAo+ ICtmb28oKQo+ICt7Cj4gKyBpZiAoKF9fYnVpbHRpbl9pc2xlc3MoYSwgYikg fHwgX19idWlsdGluX2lzbGVzc2VxdWFsKGMsIGQpKQo+ICsgJiYgKF9fYnVp bHRpbl9pc2xlc3NlcXVhbChhLCBiKXx8IF9fYnVpbHRpbl9pc2xlc3MoYywg ZCkpKQo+ICsgYWJvcnQoKTsKPiArfQo+ICsKPiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJmbGVxLnMiIDEgfSB9ICovCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZmx0cS5zIiAx IH0gfSAqLwo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMgImZsZXEuZCIgMSB9IH0gKi8KPiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJmbHRxLmQiIDEgfSB9ICovCj4gZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmxlcS1m bHRxLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemZhLWZs ZXEtZmx0cS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAw MDAwMDAwMC4uNGNjZDZhN2RkNzgKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mbGVxLWZsdHEu Ywo+IEBAIC0wLDAgKzEsMTkgQEAKPiArLyogeyBkZy1kbyBjb21waWxlIH0g Ki8KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGltYWZkY196ZmEg LW1hYmk9bHA2NGQgLU8yIiB9ICovCj4gKwo+ICtleHRlcm4gdm9pZCBhYm9y dCh2b2lkKTsKPiArZXh0ZXJuIGZsb2F0IGEsIGI7Cj4gK2V4dGVybiBkb3Vi bGUgYywgZDsKPiArCj4gK3ZvaWQKPiArZm9vKCkKPiArewo+ICsgaWYgKChf X2J1aWx0aW5faXNsZXNzKGEsIGIpIHx8IF9fYnVpbHRpbl9pc2xlc3NlcXVh bChjLCBkKSkKPiArICYmIChfX2J1aWx0aW5faXNsZXNzZXF1YWwoYSwgYil8 fCBfX2J1aWx0aW5faXNsZXNzKGMsIGQpKSkKPiArIGFib3J0KCk7Cj4gK30K PiArCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi ZmxlcS5zIiAxIH0gfSAqLwo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMgImZsdHEucyIgMSB9IH0gKi8KPiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJmbGVxLmQiIDEgfSB9ICovCj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZmx0cS5k IiAxIH0gfSAqLwo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvemZhLWZsaS1ydjMyLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvemZhLWZsaS1ydjMyLmMKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwLi5jNGRhMDQ3OTdhYQo+IC0t LSAvZGV2L251bGwKPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvemZhLWZsaS1ydjMyLmMKPiBAQCAtMCwwICsxLDc5IEBACj4gKy8q IHsgZGctZG8gY29tcGlsZSB9ICovCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2MzJpbWFmZGNfemZhIC1tYWJpPWlscDMyZCAtTzAiIH0gKi8KPiAr Cj4gK3ZvaWQgZm9vX2Zsb2F0MzIgKCkKPiArewo+ICsgdm9sYXRpbGUgZmxv YXQgYTsKPiArIGEgPSAtMS4wOwo+ICsgYSA9IDEuMTc1NDk0NGUtMzg7Cj4g KyBhID0gMS4wLygxIDw8IDE2KTsKPiArIGEgPSAxLjAvKDEgPDwgMTUpOwo+ ICsgYSA9IDEuMC8oMSA8PCA4KTsKPiArIGEgPSAxLjAvKDEgPDwgNyk7Cj4g KyBhID0gMS4wLygxIDw8IDQpOwo+ICsgYSA9IDEuMC8oMSA8PCAzKTsKPiAr IGEgPSAxLjAvKDEgPDwgMik7Cj4gKyBhID0gMC4zMTI1Owo+ICsgYSA9IDAu Mzc1Owo+ICsgYSA9IDAuNDM3NTsKPiArIGEgPSAwLjU7Cj4gKyBhID0gMC42 MjU7Cj4gKyBhID0gMC43NTsKPiArIGEgPSAwLjg3NTsKPiArIGEgPSAxLjA7 Cj4gKyBhID0gMS4yNTsKPiArIGEgPSAxLjU7Cj4gKyBhID0gMS43NTsKPiAr IGEgPSAyLjA7Cj4gKyBhID0gMi41Owo+ICsgYSA9IDMuMDsKPiArIGEgPSAx LjAqKDEgPDwgMik7Cj4gKyBhID0gMS4wKigxIDw8IDMpOwo+ICsgYSA9IDEu MCooMSA8PCA0KTsKPiArIGEgPSAxLjAqKDEgPDwgNyk7Cj4gKyBhID0gMS4w KigxIDw8IDgpOwo+ICsgYSA9IDEuMCooMSA8PCAxNSk7Cj4gKyBhID0gMS4w KigxIDw8IDE2KTsKPiArIGEgPSBfX2J1aWx0aW5faW5mZiAoKTsKPiArIGEg PSBfX2J1aWx0aW5fbmFuZiAoIiIpOwo+ICt9Cj4gKwo+ICt2b2lkIGZvb19k b3VibGU2NCAoKQo+ICt7Cj4gKyB2b2xhdGlsZSBkb3VibGUgYTsKPiArIGEg PSAtMS4wOwo+ICsgYSA9IDIuMjI1MDczODU4NTA3MjAxNEUtMzA4Owo+ICsg YSA9IDEuMC8oMSA8PCAxNik7Cj4gKyBhID0gMS4wLygxIDw8IDE1KTsKPiAr IGEgPSAxLjAvKDEgPDwgOCk7Cj4gKyBhID0gMS4wLygxIDw8IDcpOwo+ICsg YSA9IDEuMC8oMSA8PCA0KTsKPiArIGEgPSAxLjAvKDEgPDwgMyk7Cj4gKyBh ID0gMS4wLygxIDw8IDIpOwo+ICsgYSA9IDAuMzEyNTsKPiArIGEgPSAwLjM3 NTsKPiArIGEgPSAwLjQzNzU7Cj4gKyBhID0gMC41Owo+ICsgYSA9IDAuNjI1 Owo+ICsgYSA9IDAuNzU7Cj4gKyBhID0gMC44NzU7Cj4gKyBhID0gMS4wOwo+ ICsgYSA9IDEuMjU7Cj4gKyBhID0gMS41Owo+ICsgYSA9IDEuNzU7Cj4gKyBh ID0gMi4wOwo+ICsgYSA9IDIuNTsKPiArIGEgPSAzLjA7Cj4gKyBhID0gMS4w KigxIDw8IDIpOwo+ICsgYSA9IDEuMCooMSA8PCAzKTsKPiArIGEgPSAxLjAq KDEgPDwgNCk7Cj4gKyBhID0gMS4wKigxIDw8IDcpOwo+ICsgYSA9IDEuMCoo MSA8PCA4KTsKPiArIGEgPSAxLjAqKDEgPDwgMTUpOwo+ICsgYSA9IDEuMCoo MSA8PCAxNik7Cj4gKyBhID0gX19idWlsdGluX2luZiAoKTsKPiArIGEgPSBf X2J1aWx0aW5fbmFuICgiIik7Cj4gK30KPiArCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZmxpLnMiIDMyIH0gfSAqLwo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImZsaS5kIiAz MiB9IH0gKi8KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3pmYS1mbGktemZoLXJ2MzIuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi96ZmEtZmxpLXpmaC1ydjMyLmMKPiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwLi5iY2ZmZTlkMmM4 Mgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvemZhLWZsaS16ZmgtcnYzMi5jCj4gQEAgLTAsMCArMSw0 MSBAQAo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwo+ICsvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjMyaW1hZmRjX3pmYV96ZmggLW1hYmk9aWxwMzJk IC1PMCIgfSAqLwo+ICsKPiArdm9pZCBmb29fZmxvYXQxNiAoKQo+ICt7Cj4g KyB2b2xhdGlsZSBfRmxvYXQxNiBhOwo+ICsgYSA9IC0xLjA7Cj4gKyBhID0g Ni4xMDRFLTU7Cj4gKyBhID0gMS4wLygxIDw8IDE2KTsKPiArIGEgPSAxLjAv KDEgPDwgMTUpOwo+ICsgYSA9IDEuMC8oMSA8PCA4KTsKPiArIGEgPSAxLjAv KDEgPDwgNyk7Cj4gKyBhID0gMS4wLygxIDw8IDQpOwo+ICsgYSA9IDEuMC8o MSA8PCAzKTsKPiArIGEgPSAxLjAvKDEgPDwgMik7Cj4gKyBhID0gMC4zMTI1 Owo+ICsgYSA9IDAuMzc1Owo+ICsgYSA9IDAuNDM3NTsKPiArIGEgPSAwLjU7 Cj4gKyBhID0gMC42MjU7Cj4gKyBhID0gMC43NTsKPiArIGEgPSAwLjg3NTsK PiArIGEgPSAxLjA7Cj4gKyBhID0gMS4yNTsKPiArIGEgPSAxLjU7Cj4gKyBh ID0gMS43NTsKPiArIGEgPSAyLjA7Cj4gKyBhID0gMi41Owo+ICsgYSA9IDMu MDsKPiArIGEgPSAxLjAqKDEgPDwgMik7Cj4gKyBhID0gMS4wKigxIDw8IDMp Owo+ICsgYSA9IDEuMCooMSA8PCA0KTsKPiArIGEgPSAxLjAqKDEgPDwgNyk7 Cj4gKyBhID0gMS4wKigxIDw8IDgpOwo+ICsgYSA9IDEuMCooMSA8PCAxNSk7 Cj4gKyBhID0gMS4wKigxIDw8IDE2KTsKPiArIGEgPSBfX2J1aWx0aW5faW5m ZjE2ICgpOwo+ICsgYSA9IF9fYnVpbHRpbl9uYW5mMTYgKCIiKTsKPiArfQo+ ICsKPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJm bGkuaCIgMzIgfSB9ICovCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi96ZmEtZmxpLXpmaC5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mbGktemZoLmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwLi4xM2FhN2I1Zjg0Ngo+ IC0tLSAvZGV2L251bGwKPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvemZhLWZsaS16ZmguYwo+IEBAIC0wLDAgKzEsNDEgQEAKPiAr LyogeyBkZy1kbyBjb21waWxlIH0gKi8KPiArLyogeyBkZy1vcHRpb25zICIt bWFyY2g9cnY2NGltYWZkY196ZmFfemZoIC1tYWJpPWxwNjRkIC1PMCIgfSAq Lwo+ICsKPiArdm9pZCBmb29fZmxvYXQxNiAoKQo+ICt7Cj4gKyB2b2xhdGls ZSBfRmxvYXQxNiBhOwo+ICsgYSA9IC0xLjA7Cj4gKyBhID0gNi4xMDRFLTU7 Cj4gKyBhID0gMS4wLygxIDw8IDE2KTsKPiArIGEgPSAxLjAvKDEgPDwgMTUp Owo+ICsgYSA9IDEuMC8oMSA8PCA4KTsKPiArIGEgPSAxLjAvKDEgPDwgNyk7 Cj4gKyBhID0gMS4wLygxIDw8IDQpOwo+ICsgYSA9IDEuMC8oMSA8PCAzKTsK PiArIGEgPSAxLjAvKDEgPDwgMik7Cj4gKyBhID0gMC4zMTI1Owo+ICsgYSA9 IDAuMzc1Owo+ICsgYSA9IDAuNDM3NTsKPiArIGEgPSAwLjU7Cj4gKyBhID0g MC42MjU7Cj4gKyBhID0gMC43NTsKPiArIGEgPSAwLjg3NTsKPiArIGEgPSAx LjA7Cj4gKyBhID0gMS4yNTsKPiArIGEgPSAxLjU7Cj4gKyBhID0gMS43NTsK PiArIGEgPSAyLjA7Cj4gKyBhID0gMi41Owo+ICsgYSA9IDMuMDsKPiArIGEg PSAxLjAqKDEgPDwgMik7Cj4gKyBhID0gMS4wKigxIDw8IDMpOwo+ICsgYSA9 IDEuMCooMSA8PCA0KTsKPiArIGEgPSAxLjAqKDEgPDwgNyk7Cj4gKyBhID0g MS4wKigxIDw8IDgpOwo+ICsgYSA9IDEuMCooMSA8PCAxNSk7Cj4gKyBhID0g MS4wKigxIDw8IDE2KTsKPiArIGEgPSBfX2J1aWx0aW5faW5mZjE2ICgpOwo+ ICsgYSA9IF9fYnVpbHRpbl9uYW5mMTYgKCIiKTsKPiArfQo+ICsKPiArLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJmbGkuaCIgMzIg fSB9ICovCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi96ZmEtZmxpLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvemZhLWZsaS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCAwMDAwMDAwMDAwMC4uYjZkNDFjZjQ2MGYKPiAtLS0gL2Rldi9udWxsCj4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mbGku Ywo+IEBAIC0wLDAgKzEsNzkgQEAKPiArLyogeyBkZy1kbyBjb21waWxlIH0g Ki8KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGltYWZkY196ZmEg LW1hYmk9bHA2NGQgLU8wIiB9ICovCj4gKwo+ICt2b2lkIGZvb19mbG9hdDMy ICgpCj4gK3sKPiArIHZvbGF0aWxlIGZsb2F0IGE7Cj4gKyBhID0gLTEuMDsK PiArIGEgPSAxLjE3NTQ5NDRlLTM4Owo+ICsgYSA9IDEuMC8oMSA8PCAxNik7 Cj4gKyBhID0gMS4wLygxIDw8IDE1KTsKPiArIGEgPSAxLjAvKDEgPDwgOCk7 Cj4gKyBhID0gMS4wLygxIDw8IDcpOwo+ICsgYSA9IDEuMC8oMSA8PCA0KTsK PiArIGEgPSAxLjAvKDEgPDwgMyk7Cj4gKyBhID0gMS4wLygxIDw8IDIpOwo+ ICsgYSA9IDAuMzEyNTsKPiArIGEgPSAwLjM3NTsKPiArIGEgPSAwLjQzNzU7 Cj4gKyBhID0gMC41Owo+ICsgYSA9IDAuNjI1Owo+ICsgYSA9IDAuNzU7Cj4g KyBhID0gMC44NzU7Cj4gKyBhID0gMS4wOwo+ICsgYSA9IDEuMjU7Cj4gKyBh ID0gMS41Owo+ICsgYSA9IDEuNzU7Cj4gKyBhID0gMi4wOwo+ICsgYSA9IDIu NTsKPiArIGEgPSAzLjA7Cj4gKyBhID0gMS4wKigxIDw8IDIpOwo+ICsgYSA9 IDEuMCooMSA8PCAzKTsKPiArIGEgPSAxLjAqKDEgPDwgNCk7Cj4gKyBhID0g MS4wKigxIDw8IDcpOwo+ICsgYSA9IDEuMCooMSA8PCA4KTsKPiArIGEgPSAx LjAqKDEgPDwgMTUpOwo+ICsgYSA9IDEuMCooMSA8PCAxNik7Cj4gKyBhID0g X19idWlsdGluX2luZmYgKCk7Cj4gKyBhID0gX19idWlsdGluX25hbmYgKCIi KTsKPiArfQo+ICsKPiArdm9pZCBmb29fZG91YmxlNjQgKCkKPiArewo+ICsg dm9sYXRpbGUgZG91YmxlIGE7Cj4gKyBhID0gLTEuMDsKPiArIGEgPSAyLjIy NTA3Mzg1ODUwNzIwMTRFLTMwODsKPiArIGEgPSAxLjAvKDEgPDwgMTYpOwo+ ICsgYSA9IDEuMC8oMSA8PCAxNSk7Cj4gKyBhID0gMS4wLygxIDw8IDgpOwo+ ICsgYSA9IDEuMC8oMSA8PCA3KTsKPiArIGEgPSAxLjAvKDEgPDwgNCk7Cj4g KyBhID0gMS4wLygxIDw8IDMpOwo+ICsgYSA9IDEuMC8oMSA8PCAyKTsKPiAr IGEgPSAwLjMxMjU7Cj4gKyBhID0gMC4zNzU7Cj4gKyBhID0gMC40Mzc1Owo+ ICsgYSA9IDAuNTsKPiArIGEgPSAwLjYyNTsKPiArIGEgPSAwLjc1Owo+ICsg YSA9IDAuODc1Owo+ICsgYSA9IDEuMDsKPiArIGEgPSAxLjI1Owo+ICsgYSA9 IDEuNTsKPiArIGEgPSAxLjc1Owo+ICsgYSA9IDIuMDsKPiArIGEgPSAyLjU7 Cj4gKyBhID0gMy4wOwo+ICsgYSA9IDEuMCooMSA8PCAyKTsKPiArIGEgPSAx LjAqKDEgPDwgMyk7Cj4gKyBhID0gMS4wKigxIDw8IDQpOwo+ICsgYSA9IDEu MCooMSA8PCA3KTsKPiArIGEgPSAxLjAqKDEgPDwgOCk7Cj4gKyBhID0gMS4w KigxIDw8IDE1KTsKPiArIGEgPSAxLjAqKDEgPDwgMTYpOwo+ICsgYSA9IF9f YnVpbHRpbl9pbmYgKCk7Cj4gKyBhID0gX19idWlsdGluX25hbiAoIiIpOwo+ ICt9Cj4gKwo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMgImZsaS5zIiAzMiB9IH0gKi8KPiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJmbGkuZCIgMzIgfSB9ICovCj4gZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZm1vdmgt Zm1vdnAtcnYzMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3pmYS1mbW92aC1mbW92cC1ydjMyLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAwMDAwLi41YTUyYWRjZTM2YQo+IC0tLSAvZGV2 L251bGwKPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv emZhLWZtb3ZoLWZtb3ZwLXJ2MzIuYwo+IEBAIC0wLDAgKzEsMTAgQEAKPiAr LyogeyBkZy1kbyBjb21waWxlIH0gKi8KPiArLyogeyBkZy1vcHRpb25zICIt bWFyY2g9cnYzMmdfemZhIC1tYWJpPWlscDMyIC1PMCIgfSAqLwo+ICsKPiAr ZG91YmxlIGZvbyhsb25nIGxvbmcgYSkKPiArewo+ICsgcmV0dXJuIChkb3Vi bGUpKGEgKyAzKTsKPiArfQo+ICsKPiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJmbXZwLmQueCIgMSB9IH0gKi8KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJmbXZoLnguZCIgMSB9 IH0gKi8KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3pmYS1mcm91bmQtcnYzMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3pmYS1mcm91bmQtcnYzMi5jCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMC4uYjUzNjAxZDZlMWYKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3pmYS1mcm91bmQtcnYzMi5jCj4gQEAgLTAsMCArMSw0MiBAQAo+ ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwo+ICsvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjMyaW1hZmRjX3pmYSAtbWFiaT1pbHAzMmQgLU8yIiB9ICov Cj4gKwo+ICtleHRlcm4gZmxvYXQgYTsKPiArZXh0ZXJuIGRvdWJsZSBiOwo+ ICsKPiArdm9pZCBmb28gKGZsb2F0ICp4LCBkb3VibGUgKnkpCj4gK3sKPiAr IHsKPiArICp4ID0gX19idWlsdGluX3JvdW5kZiAoYSk7Cj4gKyAqeSA9IF9f YnVpbHRpbl9yb3VuZCAoYik7Cj4gKyB9Cj4gKyB7Cj4gKyAqeCA9IF9fYnVp bHRpbl9mbG9vcmYgKGEpOwo+ICsgKnkgPSBfX2J1aWx0aW5fZmxvb3IgKGIp Owo+ICsgfQo+ICsgewo+ICsgKnggPSBfX2J1aWx0aW5fY2VpbGYgKGEpOwo+ ICsgKnkgPSBfX2J1aWx0aW5fY2VpbCAoYik7Cj4gKyB9Cj4gKyB7Cj4gKyAq eCA9IF9fYnVpbHRpbl90cnVuY2YgKGEpOwo+ICsgKnkgPSBfX2J1aWx0aW5f dHJ1bmMgKGIpOwo+ICsgfQo+ICsgewo+ICsgKnggPSBfX2J1aWx0aW5fcm91 bmRldmVuZiAoYSk7Cj4gKyAqeSA9IF9fYnVpbHRpbl9yb3VuZGV2ZW4gKGIp Owo+ICsgfQo+ICsgewo+ICsgKnggPSBfX2J1aWx0aW5fbmVhcmJ5aW50ZiAo YSk7Cj4gKyAqeSA9IF9fYnVpbHRpbl9uZWFyYnlpbnQgKGIpOwo+ICsgfQo+ ICsgewo+ICsgKnggPSBfX2J1aWx0aW5fcmludGYgKGEpOwo+ICsgKnkgPSBf X2J1aWx0aW5fcmludCAoYik7Cj4gKyB9Cj4gK30KPiArCj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZnJvdW5kLnMiIDYgfSB9 ICovCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi ZnJvdW5kLmQiIDYgfSB9ICovCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyAiZnJvdW5kbngucyIgMSB9IH0gKi8KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJmcm91bmRueC5kIiAx IH0gfSAqLwo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvemZhLWZyb3VuZC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3pmYS1mcm91bmQuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gaW5kZXggMDAwMDAwMDAwMDAuLmMxMGRlODI1NzhlCj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96 ZmEtZnJvdW5kLmMKPiBAQCAtMCwwICsxLDQyIEBACj4gKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRp bWFmZGNfemZhIC1tYWJpPWxwNjRkIC1PMiIgfSAqLwo+ICsKPiArZXh0ZXJu IGZsb2F0IGE7Cj4gK2V4dGVybiBkb3VibGUgYjsKPiArCj4gK3ZvaWQgZm9v IChmbG9hdCAqeCwgZG91YmxlICp5KQo+ICt7Cj4gKyB7Cj4gKyAqeCA9IF9f YnVpbHRpbl9yb3VuZGYgKGEpOwo+ICsgKnkgPSBfX2J1aWx0aW5fcm91bmQg KGIpOwo+ICsgfQo+ICsgewo+ICsgKnggPSBfX2J1aWx0aW5fZmxvb3JmIChh KTsKPiArICp5ID0gX19idWlsdGluX2Zsb29yIChiKTsKPiArIH0KPiArIHsK PiArICp4ID0gX19idWlsdGluX2NlaWxmIChhKTsKPiArICp5ID0gX19idWls dGluX2NlaWwgKGIpOwo+ICsgfQo+ICsgewo+ICsgKnggPSBfX2J1aWx0aW5f dHJ1bmNmIChhKTsKPiArICp5ID0gX19idWlsdGluX3RydW5jIChiKTsKPiAr IH0KPiArIHsKPiArICp4ID0gX19idWlsdGluX3JvdW5kZXZlbmYgKGEpOwo+ ICsgKnkgPSBfX2J1aWx0aW5fcm91bmRldmVuIChiKTsKPiArIH0KPiArIHsK PiArICp4ID0gX19idWlsdGluX25lYXJieWludGYgKGEpOwo+ICsgKnkgPSBf X2J1aWx0aW5fbmVhcmJ5aW50IChiKTsKPiArIH0KPiArIHsKPiArICp4ID0g X19idWlsdGluX3JpbnRmIChhKTsKPiArICp5ID0gX19idWlsdGluX3JpbnQg KGIpOwo+ICsgfQo+ICt9Cj4gKwo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgImZyb3VuZC5zIiA2IH0gfSAqLwo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImZyb3VuZC5kIiA2IH0g fSAqLwo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg ImZyb3VuZG54LnMiIDEgfSB9ICovCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyAiZnJvdW5kbnguZCIgMSB9IH0gKi8KPiAtLQo+ IDIuMTcuMQo+Cg== ------=ALIBOUNDARY_70706_7f0c68942700_6437e45c_e72--