From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C61C9C433E2 for ; Mon, 7 Sep 2020 06:49:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4450821556 for ; Mon, 7 Sep 2020 06:49:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="AMFUsfXy" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726925AbgIGGtw (ORCPT ); Mon, 7 Sep 2020 02:49:52 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:56462 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726278AbgIGGtv (ORCPT ); Mon, 7 Sep 2020 02:49:51 -0400 X-UUID: 862e9f07c25342d4b3c0a660573dc3da-20200907 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=ZuBHvMM7mP/M/+ToKqAwUotc2rp2tiddhujzIQldkIQ=; b=AMFUsfXyBxVLUBCmdYX0i/oOFkF5QISMSf3URo4oAjSlfjimVAn4YY/j6nbSm2UWjoiOP26EBLsa81rm0hoRhvr4WMGsFeLTAq9cPU7+YKxng8X+jc/Kfvlt7U8uTJIEZ7fKfvO82zhhSmbVCYdT6jnKffjIWa1Ixn3ccgJJhYM=; X-UUID: 862e9f07c25342d4b3c0a660573dc3da-20200907 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1421719160; Mon, 07 Sep 2020 14:49:31 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 7 Sep 2020 14:49:28 +0800 Received: from [172.21.77.33] (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 7 Sep 2020 14:49:29 +0800 Message-ID: <1599461369.16905.19.camel@mtkswgap22> Subject: Re: [PATCH v7] binder: transaction latency tracking for user build From: Frankie Chang To: Greg Kroah-Hartman CC: Todd Kjos , Joel Fernandes , Martijn Coenen , Arve =?ISO-8859-1?Q?Hj=F8nnev=E5g?= , Christian Brauner , , , , Jian-Min Liu Date: Mon, 7 Sep 2020 14:49:29 +0800 In-Reply-To: <20200903162105.GA371057@kroah.com> References: <1596509145.5207.21.camel@mtkswgap22> <1596549552-5466-1-git-send-email-Frankie.Chang@mediatek.com> <20200903162105.GA371057@kroah.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: F7262676373F8F8CA93EFB8D529A7F922DC719FD02909CFCBEBF4727A1C6D45D2000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gVGh1LCAyMDIwLTA5LTAzIGF0IDE4OjIxICswMjAwLCBHcmVnIEtyb2FoLUhhcnRtYW4gd3Jv dGU6DQo+IE9uIFR1ZSwgQXVnIDA0LCAyMDIwIGF0IDA5OjU5OjA5UE0gKzA4MDAsIEZyYW5raWUg Q2hhbmcgd3JvdGU6DQo+ID4gDQo+ID4gRnJhbmtpZS5DaGFuZyAoMyk6DQo+ID4gICBiaW5kZXI6 IG1vdmUgc3RydWN0cyBmcm9tIGNvcmUgZmlsZSB0byBoZWFkZXIgZmlsZQ0KPiA+ICAgYmluZGVy OiBhZGQgdHJhY2UgYXQgZnJlZSB0cmFuc2FjdGlvbi4NCj4gPiAgIGJpbmRlcjogYWRkIHRyYW5z YWN0aW9uIGxhdGVuY3kgdHJhY2VyDQo+ID4gDQo+ID4gIGRyaXZlcnMvYW5kcm9pZC9LY29uZmln ICAgICAgICAgICAgICAgICB8ICAgIDggKw0KPiA+ICBkcml2ZXJzL2FuZHJvaWQvTWFrZWZpbGUg ICAgICAgICAgICAgICAgfCAgICAxICsNCj4gPiAgZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jICAg ICAgICAgICAgICAgIHwgIDQyNSArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfaW50ZXJuYWwuaCAgICAgICB8ICA0MTcgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5j eV90cmFjZXIuYyB8ICAxMTIgKysrKysrKysNCj4gPiAgZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90 cmFjZS5oICAgICAgICAgIHwgICA0OSArKysrDQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgNjA3IGlu c2VydGlvbnMoKyksIDQwNSBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmMNCj4gDQo+IFRoaXMgc2VyaWVzIGJsb3dz IHVwIHRoZSBidWlsZCBpbnRvIGxvdHMgb2YgdGlueSBwaWVjZXMsIGhvdyB3YXMgaXQNCj4gdGVz dGVkPw0KPiANCg0KSSBhbSBzb3JyeSB0aGF0IEkgaGFkIGJ1aWx0IHBhc3Mub24gdGhlIHRvbyBv bGRlciBrZXJuZWwsIGFuZCBzb21lIG9mDQphcGkgaGFkIGJlZW4gZGVwcmVjYXRlZC4NCkkgaGF2 ZSBmaXhlZCB0aGVzZSBlcnJvcnMgaW4gbG9jYWwsIGFuZCBJIGFkZCB0aGUNCkVYUE9SVF9UUkFD RVBPSU5UX1NZTUJPTCBmb3IgYmluZGVyX2xhdGVuY3lfdHJhY2VyIHRvIGJlIGtvIG5lZWRlZC4N Cg0KRG8gSSBuZWVkIHRvIHB1c2ggYSBwYXRjaCBWOCBvciBJIHByb3ZpZGUgdGhlIGZpeGVkIGNv ZGUgaGVyZSA/DQoNCn4vbXRrX3NvY19uZXckIGNhdCBiLmxvZyB8IGdyZXAgYmluZGVyDQogIEND ICAgICAgZHJpdmVycy9hbmRyb2lkL2JpbmRlcmZzLm8NCiAgQ0MgICAgICBkcml2ZXJzL2FuZHJv aWQvYmluZGVyLm8NCiAgQ0MgW01dICBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJh Y2VyLm8NCiAgTEQgW01dICBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmtv DQoNCn4vbXRrX3NvY19uZXckIHRhaWwgLW4gMTAgYi5sb2cNCm1ha2VbMV06IExlYXZpbmcgZGly ZWN0b3J5IGAvcHJvai9tdGsxNjE4NC9tdGtfc29jX25ldy9rZXJuZWwvbWVkaWF0ZWsnDQptYWtl IEFSQ0g9YXJtNjQNCkNST1NTX0NPTVBJTEU9L3Byb2ovbXRrMTYxODQvbXRrX3NvY19uZXcvcHJl YnVpbHQvdG9vbGNoYWluL2FhcmNoNjQvdXNyL2Jpbi9hYXJjaDY0LXBva3ktbGludXgvYWFyY2g2 NC1wb2t5LWxpbnV4LSBPPS9wcm9qL210azE2MTg0L210a19zb2NfbmV3L291dCAtQyBrZXJuZWwv bWVkaWF0ZWsgZHRicw0KbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvcHJvai9tdGsxNjE4 NC9tdGtfc29jX25ldy9rZXJuZWwvbWVkaWF0ZWsnDQptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3Rv cnkgYC9wcm9qL210azE2MTg0L210a19zb2NfbmV3L291dCcNCmFyY2gvYXJtNjQvTWFrZWZpbGU6 MjY6IGxkIGRvZXMgbm90IHN1cHBvcnQgLS1maXgtY29ydGV4LWE1My04NDM0MTk7DQprZXJuZWwg bWF5IGJlIHN1c2NlcHRpYmxlIHRvIGVycmF0dW0NCmFyY2gvYXJtNjQvTWFrZWZpbGU6MzQ6IExT RSBhdG9taWNzIG5vdCBzdXBwb3J0ZWQgYnkgYmludXRpbHMNCm1ha2VbMl06IExlYXZpbmcgZGly ZWN0b3J5IGAvcHJvai9tdGsxNjE4NC9tdGtfc29jX25ldy9vdXQnDQptYWtlWzFdOiBMZWF2aW5n IGRpcmVjdG9yeSBgL3Byb2ovbXRrMTYxODQvbXRrX3NvY19uZXcva2VybmVsL21lZGlhdGVrJw0K Y2F0IC9wcm9qL210azE2MTg0L210a19zb2NfbmV3L291dC9hcmNoL2FybTY0L2Jvb3QvSW1hZ2Uu Z3ogL3Byb2ovbXRrMTYxODQvbXRrX3NvY19uZXcvb3V0L2FyY2gvYXJtNjQvYm9vdC9kdHMvbWVk aWF0ZWsvbXQ2Nzc5LWV2Yi5kdGIgPiAvcHJvai9tdGsxNjE4NC9tdGtfc29jX25ldy9vdXQvYXJj aC9hcm02NC9ib290L0ltYWdlLmd6LWR0Yg0KL3Byb2ovbXRrMTYxODQvbXRrX3NvY19uZXcvcHJl YnVpbHQvYm9vdGFibGUvbWtib290aW1nDQotLWtlcm5lbCAvcHJvai9tdGsxNjE4NC9tdGtfc29j X25ldy9vdXQvYXJjaC9hcm02NC9ib290L0ltYWdlLmd6LWR0Yg0KLS1yYW1kaXNrIC9wcm9qL210 azE2MTg0L210a19zb2NfbmV3L3ByZWJ1aWx0L2Jvb3RhYmxlLzY3NzlfbG9hZGVyL3JhbWRpc2su aW1nIC0tYmFzZSAweDQwMDAwMDAwIC0tcmFtZGlza19vZmZzZXQgMHgwNDAwMDAwMCAtLWtlcm5l bF9vZmZzZXQgMHgwMDA4MDAwMCAtLWNtZGxpbmUgYm9vdG9wdD02NFMzLDMyTjIsNjROMiAtLW91 dHB1dCAvcHJvai9tdGsxNjE4NC9tdGtfc29jX25ldy9wcmVidWlsdC9ib290YWJsZS82Nzc5X2xv YWRlci9ib290LmltZw0KDQoNCj4gSGVyZSdzIG15IGVycm9yIGxvZ3M6DQo+IA0KPiBJbiBmaWxl IGluY2x1ZGVkIGZyb20gZHJpdmVycy9hbmRyb2lkL2JpbmRlcmZzLmM6Mzc6DQo+IGRyaXZlcnMv YW5kcm9pZC9iaW5kZXJfaW50ZXJuYWwuaDo1Mzc6MTc6IGVycm9yOiBmaWVsZCDigJh0duKAmSBo YXMgaW5jb21wbGV0ZSB0eXBlDQo+ICAgNTM3IHwgIHN0cnVjdCB0aW1ldmFsIHR2Ow0KPiAgICAg ICB8ICAgICAgICAgICAgICAgICBefg0KPiBJbiBmaWxlIGluY2x1ZGVkIGZyb20gZHJpdmVycy9h bmRyb2lkL2JpbmRlcl90cmFjZS5oOjEyLA0KPiAgICAgICAgICAgICAgICAgIGZyb20gZHJpdmVy cy9hbmRyb2lkL2JpbmRlcl9hbGxvYy5jOjI3Og0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3Ry YWNlLmg6IEluIGZ1bmN0aW9uIOKAmHRyYWNlX2JpbmRlcl90eG5fbGF0ZW5jeV9hbGxvY+KAmToN Cj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwMDoxMzogZXJyb3I6IOKAmGXigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pDQo+ICAgMTAwIHwgIFRQX0FS R1ModCwgZSkNCj4gICAgICAgfCAgICAgICAgICAgICBeDQo+IC4vaW5jbHVkZS9saW51eC90cmFj ZXBvaW50Lmg6MTkxOjMzOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fRE9fVFJB Q0XigJkNCj4gICAxOTEgfCAgICAgKCh2b2lkKCopKHByb3RvKSkoaXRfZnVuYykpKGFyZ3MpOyBc DQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjM2OjU6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhUUF9BUkdT4oCZDQo+ICAgMjM2IHwgICAgIFRQX0FSR1MoZGF0YV9hcmdzKSwgICBcDQo+ ICAgICAgIHwgICAgIF5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAg IDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3Mp LCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNl cG9pbnQuaDozNzg6NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0K PiAgIDM3OCB8ICAgIFBBUkFNUyhfX2RhdGEsIGFyZ3MpKQ0KPiAgICAgICB8ICAgIF5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6OTg6MTogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICAgOTggfCBERUNMQVJFX1RSQUNFKGJp bmRlcl90eG5fbGF0ZW5jeV9hbGxvYywNCj4gICAgICAgfCBefn5+fn5+fn5+fn5+DQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmFRQX0FSR1PigJkNCj4gICAxMDAgfCAgVFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICBe fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDA6MTM6IG5vdGU6IGVh Y2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBm dW5jdGlvbiBpdCBhcHBlYXJzIGluDQo+ICAgMTAwIHwgIFRQX0FSR1ModCwgZSkNCj4gICAgICAg fCAgICAgICAgICAgICBeDQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MTkxOjMzOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fRE9fVFJBQ0XigJkNCj4gICAxOTEgfCAg ICAgKCh2b2lkKCopKHByb3RvKSkoaXRfZnVuYykpKGFyZ3MpOyBcDQo+ICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBv aW50Lmg6MjM2OjU6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9BUkdT4oCZDQo+ ICAgMjM2IHwgICAgIFRQX0FSR1MoZGF0YV9hcmdzKSwgICBcDQo+ICAgICAgIHwgICAgIF5+fn5+ fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVf VFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBe fn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzg6NDogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3OCB8ICAgIFBBUkFN UyhfX2RhdGEsIGFyZ3MpKQ0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX3RyYWNlLmg6OTg6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xB UkVfVFJBQ0XigJkNCj4gICAgOTggfCBERUNMQVJFX1RSQUNFKGJpbmRlcl90eG5fbGF0ZW5jeV9h bGxvYywNCj4gICAgICAgfCBefn5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJf dHJhY2UuaDoxMDA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX0FSR1PigJkN Cj4gICAxMDAgfCAgVFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICBefn5+fn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6MTkxOjY6IGVycm9yOiB0b28gbWFueSBhcmd1bWVudHMgdG8g ZnVuY3Rpb24g4oCYKHZvaWQgKCopKHZvaWQgKiwgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAq KSlpdF9mdW5j4oCZDQo+ICAgMTkxIHwgICAgICgodm9pZCgqKShwcm90bykpKGl0X2Z1bmMpKShh cmdzKTsgXA0KPiAgICAgICB8ICAgICB+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyMzQ6NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmF9fRE9fVFJBQ0XigJkNCj4gICAyMzQgfCAgICBfX0RPX1RSQUNFKCZfX3RyYWNlcG9p bnRfIyNuYW1lLCAgXA0KPiAgICAgICB8ICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4 L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVD TEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHBy b3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgIDk4IHwgREVDTEFSRV9UUkFDRShiaW5kZXJf dHhuX2xhdGVuY3lfYWxsb2MsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2Fu ZHJvaWQvYmluZGVyX3RyYWNlLmg6IEluIGZ1bmN0aW9uIOKAmHRyYWNlX2JpbmRlcl90eG5fbGF0 ZW5jeV9hbGxvY19yY3VpZGxl4oCZOg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6 MTAwOjEzOiBlcnJvcjog4oCYZeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikNCj4gICAxMDAgfCAgVFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICAgICAgICAgICAgIF4N Cj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoxOTE6MzM6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYX19ET19UUkFDReKAmQ0KPiAgIDE5MSB8ICAgICAoKHZvaWQoKikocHJv dG8pKShpdF9mdW5jKSkoYXJncyk7IFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyMTA6NTogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX0FSR1PigJkNCj4gICAyMTAgfCAgICAgVFBf QVJHUyhkYXRhX2FyZ3MpLCAgIFwNCj4gICAgICAgfCAgICAgXn5+fn5+fg0KPiAuL2luY2x1ZGUv bGludXgvdHJhY2Vwb2ludC5oOjI0NDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY X19ERUNMQVJFX1RSQUNFX1JDVeKAmQ0KPiAgIDI0NCB8ICBfX0RFQ0xBUkVfVFJBQ0VfUkNVKG5h bWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+ fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI0NTozNzogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDI0NSB8ICAgUEFSQU1TKGNv bmQpLCBQQVJBTVMoZGF0YV9wcm90byksIFBBUkFNUyhkYXRhX2FyZ3MpKSBcDQo+ICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IC4vaW5jbHVkZS9s aW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhf X0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFN Uyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+ IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc4OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzggfCAgICBQQVJBTVMoX19kYXRhLCBhcmdzKSkN Cj4gICAgICAgfCAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4 OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAg IDk4IHwgREVDTEFSRV9UUkFDRShiaW5kZXJfdHhuX2xhdGVuY3lfYWxsb2MsDQo+ICAgICAgIHwg Xn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTAwOjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9BUkdT4oCZDQo+ICAgMTAwIHwgIFRQX0FS R1ModCwgZSkNCj4gICAgICAgfCAgXn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu dC5oOjE5MTo2OiBlcnJvcjogdG9vIG1hbnkgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmCh2b2lk ICgqKSh2b2lkICosIHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKikpaXRfZnVuY+KAmQ0KPiAg IDE5MSB8ICAgICAoKHZvaWQoKikocHJvdG8pKShpdF9mdW5jKSkoYXJncyk7IFwNCj4gICAgICAg fCAgICAgfl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFj ZXBvaW50Lmg6MjA4OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RPX1RSQUNF 4oCZDQo+ICAgMjA4IHwgICAgX19ET19UUkFDRSgmX190cmFjZXBvaW50XyMjbmFtZSwgIFwNCj4g ICAgICAgfCAgICBefn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ0 OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0VfUkNV4oCZ DQo+ICAgMjQ0IHwgIF9fREVDTEFSRV9UUkFDRV9SQ1UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFS QU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBB UkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+ DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDo5ODoxOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgICA5OCB8IERFQ0xBUkVfVFJBQ0Uo YmluZGVyX3R4bl9sYXRlbmN5X2FsbG9jLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOiBBdCB0b3AgbGV2ZWw6DQo+IGRyaXZlcnMvYW5k cm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzi gJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTExIHwgICAgaW50IGZyb21fcHJv YywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+IC4vaW5jbHVkZS9saW51eC90 cmFjZXBvaW50Lmg6MjMxOjM0OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fREVD TEFSRV9UUkFDReKAmQ0KPiAgIDIzMSB8ICBzdGF0aWMgaW5saW5lIHZvaWQgdHJhY2VfIyNuYW1l KHByb3RvKSAgICBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6MjQ6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNF KG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUx MToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAg IDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkN Cj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDUx MSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2Jp bmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0Vf RVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwN Cj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6 MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KAmQ0KPiAgIDEx MCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAgICAgIHwgIF5+ fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4 cGVjdGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAg MTExIHwgICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjA1OjQ0OiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDRV9SQ1XigJkNCj4gICAyMDUgfCAgc3RhdGlj IGlubGluZSB2b2lkIHRyYWNlXyMjbmFtZSMjX3JjdWlkbGUocHJvdG8pICBcDQo+ICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ0OjI4OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8g4oCYUEFSQU1T4oCZDQo+ICAgMjQ0IHwgIF9fREVDTEFSRV9UUkFDRV9SQ1UobmFtZSwgUEFS QU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3NToyOiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1 IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBc DQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu dC5oOjM3NToyNDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAg IDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3Mp LCAgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1T KHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHBy b3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5UKGJp bmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZlcnMv YW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5kZXJfdHJhbnNh Y3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90 cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZ IGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJvbV9wcm9jLCBpbnQgZnJvbV90 aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoy NDc6Mzg6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZ DQo+ICAgMjQ3IHwgIHJlZ2lzdGVyX3RyYWNlXyMjbmFtZSh2b2lkICgqcHJvYmUpKGRhdGFfcHJv dG8pLCB2b2lkICpkYXRhKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzc6 NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3NyB8ICAg IFBBUkFNUyh2b2lkICpfX2RhdGEsIHByb3RvKSwgICBcDQo+ICAgICAgIHwgICAgXn5+fn5+DQo+ IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFt ZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwg UEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNF X0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+ IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5k ZXJfdHJhbnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4 L3RyYWNlcG9pbnQuaDoyNDc6NTE6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9y IOKAmCnigJkgYmVmb3JlIOKAmHZvaWTigJkNCj4gICAyNDcgfCAgcmVnaXN0ZXJfdHJhY2VfIyNu YW1lKHZvaWQgKCpwcm9iZSkoZGF0YV9wcm90byksIHZvaWQgKmRhdGEpIFwNCj4gICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0Uo bmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+ fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAgREVDTEFS RV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgIF5+ fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwOToxOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkgfCBUUkFD RV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTExOjQ6IGVycm9yOiBleHBlY3RlZCDi gJg74oCZLCDigJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKAmGludOKAmQ0KPiAgIDExMSB8ICAg IGludCBmcm9tX3Byb2MsIGludCBmcm9tX3RocmVhZA0KPiAgICAgICB8ICAgIF5+fg0KPiAuL2lu Y2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI1Mzo0Mzogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAyNTMgfCAgcmVnaXN0ZXJfdHJhY2VfcHJp b18jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0YSxcDQo+ICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fg0K PiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3Nzo0OiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMzc3IHwgICAgUEFSQU1TKHZvaWQgKl9fZGF0YSwg cHJvdG8pLCAgIFwNCj4gICAgICAgfCAgICBefn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNl cG9pbnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJB Q0XigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJB TVMoYXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3Ry YWNlcG9pbnQuaDo1MTE6MjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPi gJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncykpDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IGRyaXZlcnMv YW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRl bmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfUFJPVE/i gJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdA0KPiAg ICAgICB8ICBefn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI1Mzo1Njog ZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYdm9p ZOKAmQ0KPiAgIDI1MyB8ICByZWdpc3Rlcl90cmFjZV9wcmlvXyMjbmFtZSh2b2lkICgqcHJvYmUp KGRhdGFfcHJvdG8pLCB2b2lkICpkYXRhLFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fg0KPiAuL2luY2x1ZGUvbGlu dXgvdHJhY2Vwb2ludC5oOjM3NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYX19E RUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMo cHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAu L2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUs IFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5UKGJpbmRl cl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5k cm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzi gJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTExIHwgICAgaW50IGZyb21fcHJv YywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+IC4vaW5jbHVkZS9saW51eC90 cmFjZXBvaW50Lmg6MjYwOjQwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fREVD TEFSRV9UUkFDReKAmQ0KPiAgIDI2MCB8ICB1bnJlZ2lzdGVyX3RyYWNlXyMjbmFtZSh2b2lkICgq cHJvYmUpKGRhdGFfcHJvdG8pLCB2b2lkICpkYXRhKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgv dHJhY2Vwb2ludC5oOjM3Nzo0OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T 4oCZDQo+ICAgMzc3IHwgICAgUEFSQU1TKHZvaWQgKl9fZGF0YSwgcHJvdG8pLCAgIFwNCj4gICAg ICAgfCAgICBefn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAg REVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAg IHwgIF5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6MjI6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICA1MTEgfCAgREVD TEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJh Y2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZ DQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAg IHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMDoyOiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBf UFJPVE8oc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0K PiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI2MDo1MzogZXJyb3I6IGV4cGVjdGVkIOKA mDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYdm9pZOKAmQ0KPiAgIDI2MCB8ICB1 bnJlZ2lzdGVyX3RyYWNlXyMjbmFtZSh2b2lkICgqcHJvYmUpKGRhdGFfcHJvdG8pLCB2b2lkICpk YXRhKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3 NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAg XA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9p bnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0Xi gJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZF TlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4g ICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTEx OjQ6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKA mGludOKAmQ0KPiAgIDExMSB8ICAgIGludCBmcm9tX3Byb2MsIGludCBmcm9tX3RocmVhZA0KPiAg ICAgICB8ICAgIF5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI2Njo0Njogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAyNjYg fCAgY2hlY2tfdHJhY2VfY2FsbGJhY2tfdHlwZV8jI25hbWUodm9pZCAoKmNiKShkYXRhX3Byb3Rv KSkgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzc6NDogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3NyB8ICAgIFBBUkFN Uyh2b2lkICpfX2RhdGEsIHByb3RvKSwgICBcDQo+ICAgICAgIHwgICAgXn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFS QU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IC4v aW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1T KHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5U KGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5kZXJfdHJh bnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gbWFrZVsyXTogKioqIFtzY3JpcHRz L01ha2VmaWxlLmJ1aWxkOjI4MzogZHJpdmVycy9hbmRyb2lkL2JpbmRlcmZzLm9dIEVycm9yIDEN Cj4gbWFrZVsyXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4NCj4gSW4gZmls ZSBpbmNsdWRlZCBmcm9tIGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5jeV90cmFjZXIuYzo4 Og0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2ludGVybmFsLmg6MTQxOjIwOiBlcnJvcjog4oCY QklOREVSRlNfTUFYX05BTUXigJkgdW5kZWNsYXJlZCBoZXJlIChub3QgaW4gYSBmdW5jdGlvbikN Cj4gICAxNDEgfCAgY2hhciBjb250ZXh0X25hbWVbQklOREVSRlNfTUFYX05BTUUgKyAxXTsNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9h bmRyb2lkL2JpbmRlcl9pbnRlcm5hbC5oOjUzNzoxNzogZXJyb3I6IGZpZWxkIOKAmHR24oCZIGhh cyBpbmNvbXBsZXRlIHR5cGUNCj4gICA1MzcgfCAgc3RydWN0IHRpbWV2YWwgdHY7DQo+ICAgICAg IHwgICAgICAgICAgICAgICAgIF5+DQo+IEluIGZpbGUgaW5jbHVkZWQgZnJvbSBkcml2ZXJzL2Fu ZHJvaWQvYmluZGVyX3RyYWNlLmg6MTIsDQo+ICAgICAgICAgICAgICAgICAgZnJvbSBkcml2ZXJz L2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmM6OToNCj4gZHJpdmVycy9hbmRyb2lkL2Jp bmRlcl90cmFjZS5oOiBJbiBmdW5jdGlvbiDigJh0cmFjZV9iaW5kZXJfdHhuX2xhdGVuY3lfYWxs b2PigJk6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDA6MTM6IGVycm9yOiDi gJhl4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQ0KPiAgIDEwMCB8 ICBUUF9BUkdTKHQsIGUpDQo+ICAgICAgIHwgICAgICAgICAgICAgXg0KPiAuL2luY2x1ZGUvbGlu dXgvdHJhY2Vwb2ludC5oOjE5MTozMzogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhf X0RPX1RSQUNF4oCZDQo+ICAgMTkxIHwgICAgICgodm9pZCgqKShwcm90bykpKGl0X2Z1bmMpKShh cmdzKTsgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fg0K PiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjIzNjo1OiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYVFBfQVJHU+KAmQ0KPiAgIDIzNiB8ICAgICBUUF9BUkdTKGRhdGFfYXJncyks ICAgXA0KPiAgICAgICB8ICAgICBefn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50 Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0Xi gJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFN UyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51 eC90cmFjZXBvaW50Lmg6Mzc4OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJB TVPigJkNCj4gICAzNzggfCAgICBQQVJBTVMoX19kYXRhLCBhcmdzKSkNCj4gICAgICAgfCAgICBe fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4OjE6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgIDk4IHwgREVDTEFSRV9U UkFDRShiaW5kZXJfdHhuX2xhdGVuY3lfYWxsb2MsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTAwOjI6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhUUF9BUkdT4oCZDQo+ICAgMTAwIHwgIFRQX0FSR1ModCwgZSkNCj4gICAg ICAgfCAgXn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTAwOjEzOiBu b3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9y IGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbg0KPiAgIDEwMCB8ICBUUF9BUkdTKHQsIGUpDQo+ ICAgICAgIHwgICAgICAgICAgICAgXg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjE5 MTozMzogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhfX0RPX1RSQUNF4oCZDQo+ICAg MTkxIHwgICAgICgodm9pZCgqKShwcm90bykpKGl0X2Z1bmMpKShhcmdzKTsgXA0KPiAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fg0KPiAuL2luY2x1ZGUvbGludXgv dHJhY2Vwb2ludC5oOjIzNjo1OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfQVJH U+KAmQ0KPiAgIDIzNiB8ICAgICBUUF9BUkdTKGRhdGFfYXJncyksICAgXA0KPiAgICAgICB8ICAg ICBefn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGlu IGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19E RUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAg ICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc4 OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzggfCAg ICBQQVJBTVMoX19kYXRhLCBhcmdzKSkNCj4gICAgICAgfCAgICBefn5+fn4NCj4gZHJpdmVycy9h bmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgIDk4IHwgREVDTEFSRV9UUkFDRShiaW5kZXJfdHhuX2xh dGVuY3lfYWxsb2MsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX3RyYWNlLmg6MTAwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9B UkdT4oCZDQo+ICAgMTAwIHwgIFRQX0FSR1ModCwgZSkNCj4gICAgICAgfCAgXn5+fn5+fg0KPiAu L2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjE5MTo2OiBlcnJvcjogdG9vIG1hbnkgYXJndW1l bnRzIHRvIGZ1bmN0aW9uIOKAmCh2b2lkICgqKSh2b2lkICosIHN0cnVjdCBiaW5kZXJfdHJhbnNh Y3Rpb24gKikpaXRfZnVuY+KAmQ0KPiAgIDE5MSB8ICAgICAoKHZvaWQoKikocHJvdG8pKShpdF9m dW5jKSkoYXJncyk7IFwNCj4gICAgICAgfCAgICAgfl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjM0OjQ6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhfX0RPX1RSQUNF4oCZDQo+ICAgMjM0IHwgICAgX19ET19UUkFDRSgmX190 cmFjZXBvaW50XyMjbmFtZSwgIFwNCj4gICAgICAgfCAgICBefn5+fn5+fn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBB UkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+ DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDo5ODoxOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgICA5OCB8IERFQ0xBUkVfVFJBQ0Uo YmluZGVyX3R4bl9sYXRlbmN5X2FsbG9jLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOiBBdCB0b3AgbGV2ZWw6DQo+IGRyaXZlcnMvYW5k cm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzi gJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTExIHwgICAgaW50IGZyb21fcHJv YywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+IC4vaW5jbHVkZS9saW51eC90 cmFjZXBvaW50Lmg6MjMxOjM0OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fREVD TEFSRV9UUkFDReKAmQ0KPiAgIDIzMSB8ICBzdGF0aWMgaW5saW5lIHZvaWQgdHJhY2VfIyNuYW1l KHByb3RvKSAgICBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6MjQ6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNF KG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUx MToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAg IDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkN Cj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDUx MSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2Jp bmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0Vf RVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwN Cj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6 MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KAmQ0KPiAgIDEx MCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAgICAgIHwgIF5+ fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4 cGVjdGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAg MTExIHwgICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ3OjM4OiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDI0NyB8ICByZWdpc3Rlcl90 cmFjZV8jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0YSkgXA0KPiAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+DQo+ IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc3OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzcgfCAgICBQQVJBTVModm9pZCAqX19kYXRhLCBw cm90byksICAgXA0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vw b2ludC5oOjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFD ReKAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFN UyhhcmdzKSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJh Y2Vwb2ludC5oOjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KA mQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhh cmdzKSkNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9h bmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g 4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVu Y3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVy X3RyYWNlLmg6MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KA mQ0KPiAgIDExMCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAg ICAgIHwgIF5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ3OjUxOiBl cnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJh2b2lk 4oCZDQo+ICAgMjQ3IHwgIHJlZ2lzdGVyX3RyYWNlXyMjbmFtZSh2b2lkICgqcHJvYmUpKGRhdGFf cHJvdG8pLCB2b2lkICpkYXRhKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBv aW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJB Q0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBB UkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9s aW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhE RUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHBy b3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IGRyaXZlcnMv YW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRl bmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp 4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJvbV9wcm9jLCBpbnQgZnJv bV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQu aDoyNTM6NDM6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF 4oCZDQo+ICAgMjUzIHwgIHJlZ2lzdGVyX3RyYWNlX3ByaW9fIyNuYW1lKHZvaWQgKCpwcm9iZSko ZGF0YV9wcm90byksIHZvaWQgKmRhdGEsXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNl cG9pbnQuaDozNzc6NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0K PiAgIDM3NyB8ICAgIFBBUkFNUyh2b2lkICpfX2RhdGEsIHByb3RvKSwgICBcDQo+ICAgICAgIHwg ICAgXn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGlu IGV4cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xB UkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBe fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVf VFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6 MTA5OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAg IDEwOSB8IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+ fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RP KHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyNTM6NTY6IGVycm9yOiBleHBlY3RlZCDigJg74oCZ LCDigJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKAmHZvaWTigJkNCj4gICAyNTMgfCAgcmVnaXN0 ZXJfdHJhY2VfcHJpb18jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0 YSxcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3 NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAg XA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9p bnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0Xi gJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZF TlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4g ICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTEx OjQ6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKA mGludOKAmQ0KPiAgIDExMSB8ICAgIGludCBmcm9tX3Byb2MsIGludCBmcm9tX3RocmVhZA0KPiAg ICAgICB8ICAgIF5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI2MDo0MDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAyNjAg fCAgdW5yZWdpc3Rlcl90cmFjZV8jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9p ZCAqZGF0YSkgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzc6NDogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3NyB8ICAgIFBBUkFN Uyh2b2lkICpfX2RhdGEsIHByb3RvKSwgICBcDQo+ICAgICAgIHwgICAgXn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFS QU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IC4v aW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1T KHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5U KGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5kZXJfdHJh bnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNl cG9pbnQuaDoyNjA6NTM6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9yIOKAmCni gJkgYmVmb3JlIOKAmHZvaWTigJkNCj4gICAyNjAgfCAgdW5yZWdpc3Rlcl90cmFjZV8jI25hbWUo dm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0YSkgXA0KPiAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4v aW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5h bWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+ fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVf VFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+ fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0Vf RVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4g ZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCY O+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBp bnQgZnJvbV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNs dWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyNjY6NDY6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMjY2IHwgIGNoZWNrX3RyYWNlX2NhbGxiYWNr X3R5cGVfIyNuYW1lKHZvaWQgKCpjYikoZGF0YV9wcm90bykpIFwNCj4gICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc3OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhQQVJBTVPigJkNCj4gICAzNzcgfCAgICBQQVJBTVModm9pZCAqX19kYXRhLCBwcm90byks ICAgXA0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0K PiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdz KSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu dC5oOjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAg IDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkN Cj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lk L2JpbmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJB Q0VfRVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJl ZSwNCj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNl Lmg6MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KAmQ0KPiAg IDExMCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAgICAgIHwg IF5+fn5+fn5+DQo+IEluIGZpbGUgaW5jbHVkZWQgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVy LmM6NzU6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfaW50ZXJuYWwuaDo1Mzc6MTc6IGVycm9y OiBmaWVsZCDigJh0duKAmSBoYXMgaW5jb21wbGV0ZSB0eXBlDQo+ICAgNTM3IHwgIHN0cnVjdCB0 aW1ldmFsIHR2Ow0KPiAgICAgICB8ICAgICAgICAgICAgICAgICBefg0KPiBJbiBmaWxlIGluY2x1 ZGVkIGZyb20gLi9pbmNsdWRlL3RyYWNlL3N5c2NhbGwuaDo1LA0KPiAgICAgICAgICAgICAgICAg IGZyb20gLi9pbmNsdWRlL2xpbnV4L3N5c2NhbGxzLmg6ODQsDQo+ICAgICAgICAgICAgICAgICAg ZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVyLmM6NjY6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5k ZXJfdHJhY2UuaDogSW4gZnVuY3Rpb24g4oCYdHJhY2VfYmluZGVyX3R4bl9sYXRlbmN5X2FsbG9j 4oCZOg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTAwOjEzOiBlcnJvcjog4oCY ZeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikNCj4gICAxMDAgfCAg VFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICAgICAgICAgICAgIF4NCj4gLi9pbmNsdWRlL2xpbnV4 L3RyYWNlcG9pbnQuaDoxOTE6MzM6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYX19E T19UUkFDReKAmQ0KPiAgIDE5MSB8ICAgICAoKHZvaWQoKikocHJvdG8pKShpdF9mdW5jKSkoYXJn cyk7IFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyMzY6NTogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmFRQX0FSR1PigJkNCj4gICAyMzYgfCAgICAgVFBfQVJHUyhkYXRhX2FyZ3MpLCAg IFwNCj4gICAgICAgfCAgICAgXn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjM3NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZ DQo+ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgv dHJhY2Vwb2ludC5oOjM3ODo0OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T 4oCZDQo+ICAgMzc4IHwgICAgUEFSQU1TKF9fZGF0YSwgYXJncykpDQo+ICAgICAgIHwgICAgXn5+ fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDo5ODoxOiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgICA5OCB8IERFQ0xBUkVfVFJB Q0UoYmluZGVyX3R4bl9sYXRlbmN5X2FsbG9jLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+fn4NCj4g ZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwMDoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYVFBfQVJHU+KAmQ0KPiAgIDEwMCB8ICBUUF9BUkdTKHQsIGUpDQo+ICAgICAg IHwgIF5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwMDoxMzogbm90 ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBl YWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4NCj4gICAxMDAgfCAgVFBfQVJHUyh0LCBlKQ0KPiAg ICAgICB8ICAgICAgICAgICAgIF4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoxOTE6 MzM6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYX19ET19UUkFDReKAmQ0KPiAgIDE5 MSB8ICAgICAoKHZvaWQoKikocHJvdG8pKShpdF9mdW5jKSkoYXJncyk7IFwNCj4gICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3Ry YWNlcG9pbnQuaDoyMzY6NTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX0FSR1Pi gJkNCj4gICAyMzYgfCAgICAgVFBfQVJHUyhkYXRhX2FyZ3MpLCAgIFwNCj4gICAgICAgfCAgICAg Xn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3NToyOiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1IHwgIF9fREVD TEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAg IHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3ODo0 OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMzc4IHwgICAg UEFSQU1TKF9fZGF0YSwgYXJncykpDQo+ICAgICAgIHwgICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5k cm9pZC9iaW5kZXJfdHJhY2UuaDo5ODoxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY REVDTEFSRV9UUkFDReKAmQ0KPiAgICA5OCB8IERFQ0xBUkVfVFJBQ0UoYmluZGVyX3R4bl9sYXRl bmN5X2FsbG9jLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2Jp bmRlcl90cmFjZS5oOjEwMDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfQVJH U+KAmQ0KPiAgIDEwMCB8ICBUUF9BUkdTKHQsIGUpDQo+ICAgICAgIHwgIF5+fn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoxOTE6NjogZXJyb3I6IHRvbyBtYW55IGFyZ3VtZW50 cyB0byBmdW5jdGlvbiDigJgodm9pZCAoKikodm9pZCAqLCBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0 aW9uICopKWl0X2Z1bmPigJkNCj4gICAxOTEgfCAgICAgKCh2b2lkKCopKHByb3RvKSkoaXRfZnVu YykpKGFyZ3MpOyBcDQo+ICAgICAgIHwgICAgIH5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0K PiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjIzNDo0OiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYX19ET19UUkFDReKAmQ0KPiAgIDIzNCB8ICAgIF9fRE9fVFJBQ0UoJl9fdHJh Y2Vwb2ludF8jI25hbWUsICBcDQo+ICAgICAgIHwgICAgXn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUv bGludXgvdHJhY2Vwb2ludC5oOjM3NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY X19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJB TVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6OTg6MTogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICAgOTggfCBERUNMQVJFX1RSQUNFKGJp bmRlcl90eG5fbGF0ZW5jeV9hbGxvYywNCj4gICAgICAgfCBefn5+fn5+fn5+fn5+DQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDogSW4gZnVuY3Rpb24g4oCYdHJhY2VfYmluZGVyX3R4 bl9sYXRlbmN5X2FsbG9jX3JjdWlkbGXigJk6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJh Y2UuaDoxMDA6MTM6IGVycm9yOiDigJhl4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQ0KPiAgIDEwMCB8ICBUUF9BUkdTKHQsIGUpDQo+ICAgICAgIHwgICAgICAgICAg ICAgXg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjE5MTozMzogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhfX0RPX1RSQUNF4oCZDQo+ICAgMTkxIHwgICAgICgodm9pZCgq KShwcm90bykpKGl0X2Z1bmMpKShhcmdzKTsgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjIxMDo1 OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfQVJHU+KAmQ0KPiAgIDIxMCB8ICAg ICBUUF9BUkdTKGRhdGFfYXJncyksICAgXA0KPiAgICAgICB8ICAgICBefn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ0OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhfX0RFQ0xBUkVfVFJBQ0VfUkNV4oCZDQo+ICAgMjQ0IHwgIF9fREVDTEFSRV9UUkFDRV9S Q1UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+ fn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ1OjM3OiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMjQ1IHwgICBQQVJB TVMoY29uZCksIFBBUkFNUyhkYXRhX3Byb3RvKSwgUEFSQU1TKGRhdGFfYXJncykpIFwNCj4gICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gLi9pbmNs dWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwg UEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+ fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzg6NDogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3OCB8ICAgIFBBUkFNUyhfX2RhdGEsIGFy Z3MpKQ0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNl Lmg6OTg6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkN Cj4gICAgOTggfCBERUNMQVJFX1RSQUNFKGJpbmRlcl90eG5fbGF0ZW5jeV9hbGxvYywNCj4gICAg ICAgfCBefn5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDA6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX0FSR1PigJkNCj4gICAxMDAgfCAg VFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICBefn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFj ZXBvaW50Lmg6MTkxOjY6IGVycm9yOiB0b28gbWFueSBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCY KHZvaWQgKCopKHZvaWQgKiwgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqKSlpdF9mdW5j4oCZ DQo+ICAgMTkxIHwgICAgICgodm9pZCgqKShwcm90bykpKGl0X2Z1bmMpKShhcmdzKTsgXA0KPiAg ICAgICB8ICAgICB+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4 L3RyYWNlcG9pbnQuaDoyMDg6NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fRE9f VFJBQ0XigJkNCj4gICAyMDggfCAgICBfX0RPX1RSQUNFKCZfX3RyYWNlcG9pbnRfIyNuYW1lLCAg XA0KPiAgICAgICB8ICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQu aDoyNDQ6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDRV9S Q1XigJkNCj4gICAyNDQgfCAgX19ERUNMQVJFX1RSQUNFX1JDVShuYW1lLCBQQVJBTVMocHJvdG8p LCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFt ZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+ fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4OjE6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgIDk4IHwgREVDTEFSRV9U UkFDRShiaW5kZXJfdHhuX2xhdGVuY3lfYWxsb2MsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6IEF0IHRvcCBsZXZlbDoNCj4gZHJpdmVy cy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg 4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJv bV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL2xp bnV4L3RyYWNlcG9pbnQuaDoyMzE6MzQ6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY X19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMjMxIHwgIHN0YXRpYyBpbmxpbmUgdm9pZCB0cmFjZV8j I25hbWUocHJvdG8pICAgIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3NToyNDogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVf VFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50 Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZ DQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFy Z3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBv aW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3Mp KQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJv aWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhU UkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9m cmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJh Y2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX1BST1RP4oCZDQo+ ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQNCj4gICAgICAg fCAgXn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJv cjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkN Cj4gICAxMTEgfCAgICBpbnQgZnJvbV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAg ICBefn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyMDU6NDQ6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNFX1JDVeKAmQ0KPiAgIDIwNSB8ICBz dGF0aWMgaW5saW5lIHZvaWQgdHJhY2VfIyNuYW1lIyNfcmN1aWRsZShwcm90bykgIFwNCj4gICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyNDQ6Mjg6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAyNDQgfCAgX19ERUNMQVJFX1RSQUNFX1JDVShuYW1l LCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1 OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4g ICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdz KSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFj ZXBvaW50Lmg6Mzc1OjI0OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZ DQo+ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncyksICBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQ QVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6MjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJB TVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZF TlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0IGJpbmRlcl90 cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmlu ZGVyX3RyYWNlLmg6MTExOjQ6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9yIOKA mCnigJkgYmVmb3JlIOKAmGludOKAmQ0KPiAgIDExMSB8ICAgIGludCBmcm9tX3Byb2MsIGludCBm cm9tX3RocmVhZA0KPiAgICAgICB8ICAgIF5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu dC5oOjI0NzozODogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJB Q0XigJkNCj4gICAyNDcgfCAgcmVnaXN0ZXJfdHJhY2VfIyNuYW1lKHZvaWQgKCpwcm9iZSkoZGF0 YV9wcm90byksIHZvaWQgKmRhdGEpIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjM3Nzo0OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMzc3 IHwgICAgUEFSQU1TKHZvaWQgKl9fZGF0YSwgcHJvdG8pLCAgIFwNCj4gICAgICAgfCAgICBefn5+ fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFD RShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+ fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6MjI6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShu YW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwg VFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+ fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0 IGJpbmRlcl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiAuL2luY2x1ZGUv bGludXgvdHJhY2Vwb2ludC5oOjI0Nzo1MTogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzi gJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYdm9pZOKAmQ0KPiAgIDI0NyB8ICByZWdpc3Rlcl90cmFj ZV8jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0YSkgXA0KPiAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3NToyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1IHwgIF9fREVDTEFSRV9U UkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgIF5+ fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUxMToyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgIDUxMSB8ICBE RUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4gICAgICAg fCAgXn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8 IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+ fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVj dGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTEx IHwgICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+ IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjUzOjQzOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDI1MyB8ICByZWdpc3Rlcl90cmFj ZV9wcmlvXyMjbmFtZSh2b2lkICgqcHJvYmUpKGRhdGFfcHJvdG8pLCB2b2lkICpkYXRhLFwNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc3OjQ6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzcgfCAgICBQQVJBTVModm9pZCAqX19k YXRhLCBwcm90byksICAgXA0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgv dHJhY2Vwb2ludC5oOjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFS RV9UUkFDReKAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byks IFBBUkFNUyhhcmdzKSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGlu dXgvdHJhY2Vwb2ludC5oOjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBB UkFNU+KAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBB UkFNUyhhcmdzKSkNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhu X2xhdGVuY3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX3RyYWNlLmg6MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9Q Uk9UT+KAmQ0KPiAgIDExMCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0 DQo+ICAgICAgIHwgIF5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjUz OjU2OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDi gJh2b2lk4oCZDQo+ICAgMjUzIHwgIHJlZ2lzdGVyX3RyYWNlX3ByaW9fIyNuYW1lKHZvaWQgKCpw cm9iZSkoZGF0YV9wcm90byksIHZvaWQgKmRhdGEsXA0KPiAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBB UkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0Uo bmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+ fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhw YW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQo YmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVy cy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg 4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJv bV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL2xp bnV4L3RyYWNlcG9pbnQuaDoyNjA6NDA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY X19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMjYwIHwgIHVucmVnaXN0ZXJfdHJhY2VfIyNuYW1lKHZv aWQgKCpwcm9iZSkoZGF0YV9wcm90byksIHZvaWQgKmRhdGEpIFwNCj4gICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9s aW51eC90cmFjZXBvaW50Lmg6Mzc3OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQ QVJBTVPigJkNCj4gICAzNzcgfCAgICBQQVJBTVModm9pZCAqX19kYXRhLCBwcm90byksICAgXA0K PiAgICAgICB8ICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUxMToy OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgIDUx MSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4g ICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUx MToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDUxMSB8 ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4gICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZF TlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4g ICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTEw OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KAmQ0KPiAgIDExMCB8 ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAgICAgIHwgIF5+fn5+ fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjYwOjUzOiBlcnJvcjogZXhwZWN0 ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJh2b2lk4oCZDQo+ICAgMjYw IHwgIHVucmVnaXN0ZXJfdHJhY2VfIyNuYW1lKHZvaWQgKCpwcm9iZSkoZGF0YV9wcm90byksIHZv aWQgKmRhdGEpIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3 NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJn cyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJh Y2Vwb2ludC5oOjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9U UkFDReKAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBB UkFNUyhhcmdzKSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFD RV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVl LA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2Uu aDoxMTE6NDogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZv cmUg4oCYaW504oCZDQo+ICAgMTExIHwgICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFk DQo+ICAgICAgIHwgICAgXn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjY2OjQ2 OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAg IDI2NiB8ICBjaGVja190cmFjZV9jYWxsYmFja190eXBlXyMjbmFtZSh2b2lkICgqY2IpKGRhdGFf cHJvdG8pKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3Nzo0 OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMzc3IHwgICAg UEFSQU1TKHZvaWQgKl9fZGF0YSwgcHJvdG8pLCAgIFwNCj4gICAgICAgfCAgICBefn5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1l LCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4N Cj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6MjI6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQ QVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0Vf RVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4g ZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0IGJpbmRl cl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX2xhdGVuY3lfdHJhY2VyLmM6IEluIGZ1bmN0aW9uIOKAmHByb2JlX2JpbmRlcl90eG5f bGF0ZW5jeV9mcmVl4oCZOg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2Vy LmM6NDM6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmHJ0Y190 aW1lX3RvX3Rt4oCZOyBkaWQgeW91IG1lYW4g4oCYcnRjX2t0aW1lX3RvX3Rt4oCZPyBbLVdlcnJv cj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0NCj4gICAgNDMgfCAgcnRjX3RpbWVfdG9f dG0odC0+dHYudHZfc2VjLCAmdG0pOw0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fg0KPiAgICAg ICB8ICBydGNfa3RpbWVfdG9fdG0NCj4gbWFrZVsyXTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1 aWxkOjI4MzogZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9hbGxvYy5vXSBFcnJvciAxDQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5jeV90cmFjZXIuYzogSW4gZnVuY3Rpb24g4oCYaW5pdF9i aW5kZXJfbGF0ZW5jeV90cmFjZXLigJk6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5j eV90cmFjZXIuYzo4OToyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g 4oCYcmVnaXN0ZXJfdHJhY2VfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk7IGRpZCB5b3UgbWVh biDigJhyZWdpc3Rlcl90cmFjZV9iaW5kZXJfdHhuX2xhdGVuY3lfaW5mb+KAmT8gWy1XZXJyb3I9 aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dDQo+ICAgIDg5IHwgIHJlZ2lzdGVyX3RyYWNl X2JpbmRlcl90eG5fbGF0ZW5jeV9mcmVlKA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiAgICAgICB8ICByZWdpc3Rlcl90cmFjZV9iaW5kZXJfdHhu X2xhdGVuY3lfaW5mbw0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmM6 IEluIGZ1bmN0aW9uIOKAmGV4aXRfYmluZGVyX2xhdGVuY3lfdHJhY2Vy4oCZOg0KPiBkcml2ZXJz L2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmM6MTAxOjI6IGVycm9yOiBpbXBsaWNpdCBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJh1bnJlZ2lzdGVyX3RyYWNlX2JpbmRlcl90eG5fbGF0 ZW5jeV9mcmVl4oCZOyBkaWQgeW91IG1lYW4g4oCYdW5yZWdpc3Rlcl90cmFjZV9iaW5kZXJfdHhu X2xhdGVuY3lfaW5mb+KAmT8gWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25d DQo+ICAgMTAxIHwgIHVucmVnaXN0ZXJfdHJhY2VfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUoDQo+ ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gICAg ICAgfCAgdW5yZWdpc3Rlcl90cmFjZV9iaW5kZXJfdHhuX2xhdGVuY3lfaW5mbw0KPiBjYzE6IHNv bWUgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMNCj4gbWFrZVsyXTogKioqIFtzY3Jp cHRzL01ha2VmaWxlLmJ1aWxkOjI4MzogZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9sYXRlbmN5X3Ry YWNlci5vXSBFcnJvciAxDQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXIuYzogSW4gZnVuY3Rpb24g 4oCYYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXIu YzoxNTIyOjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJh0cmFj ZV9iaW5kZXJfdHhuX2xhdGVuY3lfZnJlZeKAmTsgZGlkIHlvdSBtZWFuIOKAmHRyYWNlX2JpbmRl cl90eG5fbGF0ZW5jeV9pbmZv4oCZPyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJh dGlvbl0NCj4gIDE1MjIgfCAgdHJhY2VfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUodCwgZnJvbV9w cm9jLCBmcm9tX3RocmVhZCwgdG9fcHJvYywgdG9fdGhyZWFkKTsNCj4gICAgICAgfCAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gICAgICAgfCAgdHJhY2VfYmluZGVyX3R4bl9sYXRl bmN5X2luZm8NCj4gSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS90cmFjZS9kZWZpbmVf dHJhY2UuaDoxMDIsDQo+ICAgICAgICAgICAgICAgICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmlu ZGVyX3RyYWNlLmg6NDQ4LA0KPiAgICAgICAgICAgICAgICAgIGZyb20gZHJpdmVycy9hbmRyb2lk L2JpbmRlci5jOjU4MjI6DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOiBBdCB0 b3AgbGV2ZWw6DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJv cjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkN Cj4gICAxMTEgfCAgICBpbnQgZnJvbV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAg ICBefn4NCj4gLi9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oOjUxMDo1ODogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyDigJhERUNMQVJFX0VWRU5UX0NMQVNT4oCZDQo+ICAgNTEwIHwg IHN0cnVjdCB0cmFjZV9ldmVudF9kYXRhX29mZnNldHNfIyNjYWxsICpfX2RhdGFfb2Zmc2V0cywg cHJvdG8pIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fg0KPiAuL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRz Lmg6NzY6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgICA3 NiB8ICAgICAgICAgUEFSQU1TKHByb3RvKSwgICAgICAgICBcDQo+ICAgICAgIHwgICAgICAgICBe fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkLy4vYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGlu IGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VW RU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRy aXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0IGJpbmRl cl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiBJbiBmaWxlIGluY2x1ZGVk IGZyb20gLi9pbmNsdWRlL3RyYWNlL2RlZmluZV90cmFjZS5oOjEwMiwNCj4gICAgICAgICAgICAg ICAgICBmcm9tIGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDo0NDgsDQo+ICAgICAgICAg ICAgICAgICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVyLmM6NTgyMjoNCj4gZHJpdmVycy9h bmRyb2lkLy4vYmluZGVyX3RyYWNlLmg6MTExOjQ6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDi gJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKAmGludOKAmQ0KPiAgIDExMSB8ICAgIGludCBmcm9t X3Byb2MsIGludCBmcm9tX3RocmVhZA0KPiAgICAgICB8ICAgIF5+fg0KPiAuL2luY2x1ZGUvdHJh Y2UvdHJhY2VfZXZlbnRzLmg6Njc0OjQ0OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mERFQ0xBUkVfRVZFTlRfQ0xBU1PigJkNCj4gICA2NzQgfCB0cmFjZV9ldmVudF9yYXdfZXZlbnRf IyNjYWxsKHZvaWQgKl9fZGF0YSwgcHJvdG8pICAgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fg0KPiAuL2luY2x1ZGUvdHJhY2UvdHJh Y2VfZXZlbnRzLmg6NzY6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KA mQ0KPiAgICA3NiB8ICAgICAgICAgUEFSQU1TKHByb3RvKSwgICAgICAgICBcDQo+ICAgICAgIHwg ICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkLy4vYmluZGVyX3RyYWNlLmg6MTA5OjE6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8 IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+ fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3Ry dWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiBkcml2ZXJz L2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDogSW4gZnVuY3Rpb24g4oCYZnRyYWNlX3Rlc3RfcHJv YmVfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk6DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9l dmVudHMuaDo3MDk6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKA mGNoZWNrX3RyYWNlX2NhbGxiYWNrX3R5cGVfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk7IGRp ZCB5b3UgbWVhbiDigJhjaGVja190cmFjZV9jYWxsYmFja190eXBlX2JpbmRlcl90eG5fbGF0ZW5j eV9pbmZv4oCZPyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0NCj4gICA3 MDkgfCAgY2hlY2tfdHJhY2VfY2FsbGJhY2tfdHlwZV8jI2NhbGwodHJhY2VfZXZlbnRfcmF3X2V2 ZW50XyMjdGVtcGxhdGUpOyBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo4MToyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYREVGSU5FX0VWRU5U4oCZDQo+ICAgIDgxIHwgIERFRklORV9FVkVOVChu YW1lLCBuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpOw0KPiAgICAgICB8ICBefn5+ fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkLy4vYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNF X0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+ IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo3MDk6MzU6IGVycm9yOiDigJh0cmFjZV9l dmVudF9yYXdfZXZlbnRfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYdHJhY2VfZXZlbnRfcmF3 X2JpbmRlcl90eG5fbGF0ZW5jeV9mcmVl4oCZPw0KPiAgIDcwOSB8ICBjaGVja190cmFjZV9jYWxs YmFja190eXBlXyMjY2FsbCh0cmFjZV9ldmVudF9yYXdfZXZlbnRfIyN0ZW1wbGF0ZSk7IFwNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fg0KPiAuL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmg6ODE6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFRklORV9FVkVOVOKAmQ0KPiAgICA4MSB8ICBERUZJTkVf RVZFTlQobmFtZSwgbmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKTsNCj4gICAgICAg fCAgXn5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjEwOTox OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkg fCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+ fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDogQXQgdG9wIGxldmVsOg0K PiBkcml2ZXJzL2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVjdGVk IOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTExIHwg ICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+IC4v aW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo2MTg6MzQ6IG5vdGU6IGluIGRlZmluaXRpb24g b2YgbWFjcm8g4oCYX1RSQUNFX1BFUkZfUFJPVE/igJkNCj4gICA2MTggfCAgcGVyZl90cmFjZV8j I2NhbGwodm9pZCAqX19kYXRhLCBwcm90byk7DQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn4NCj4gLi9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oOjcz MzoyNTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDczMyB8 IF9UUkFDRV9QRVJGX1BST1RPKGNhbGwsIFBBUkFNUyhwcm90bykpOyAgICAgXA0KPiAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvdHJhY2UvdHJhY2Vf ZXZlbnRzLmg6NzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfRVZF TlRfQ0xBU1PigJkNCj4gICAgNzUgfCAgREVDTEFSRV9FVkVOVF9DTEFTUyhuYW1lLCAgICAgICAg ICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL3RyYWNlL3Ry YWNlX2V2ZW50cy5oOjc2Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPi gJkNCj4gICAgNzYgfCAgICAgICAgIFBBUkFNUyhwcm90byksICAgICAgICAgXA0KPiAgICAgICB8 ICAgICAgICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjEwOTox OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkg fCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+ fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0 cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS90cmFjZS9kZWZpbmVfdHJhY2UuaDoxMDIsDQo+ICAg ICAgICAgICAgICAgICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6NDQ4LA0K PiAgICAgICAgICAgICAgICAgIGZyb20gZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jOjU4MjI6DQo+ IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo3NDA6MTM6IGVycm9yOiDigJh0cmFjZV9l dmVudF9yYXdfZXZlbnRfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJkgdW5kZWNsYXJlZCBoZXJl IChub3QgaW4gYSBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJh0cmFjZV9ldmVudF9yYXdfYmlu ZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk/DQo+ICAgNzQwIHwgIC5wcm9iZSAgID0gdHJhY2VfZXZl bnRfcmF3X2V2ZW50XyMjY2FsbCwgIFwNCj4gICAgICAgfCAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo3NToyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9FVkVOVF9DTEFTU+KAmQ0KPiAgICA3 NSB8ICBERUNMQVJFX0VWRU5UX0NMQVNTKG5hbWUsICAgICAgICAgIFwNCj4gICAgICAgfCAgXn5+ fn5+fn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDoxMDk6 MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5 IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+ fn5+fn4NCj4gSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS90cmFjZS9kZWZpbmVfdHJh Y2UuaDoxMDIsDQo+ICAgICAgICAgICAgICAgICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVy X3RyYWNlLmg6NDQ4LA0KPiAgICAgICAgICAgICAgICAgIGZyb20gZHJpdmVycy9hbmRyb2lkL2Jp bmRlci5jOjU4MjI6DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo2MjE6MTc6IGVy cm9yOiDigJhwZXJmX3RyYWNlX2JpbmRlcl90eG5fbGF0ZW5jeV9mcmVl4oCZIHVuZGVjbGFyZWQg aGVyZSAobm90IGluIGEgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYcHJpbnRfZm10X2JpbmRl cl90eG5fbGF0ZW5jeV9mcmVl4oCZPw0KPiAgIDYyMSB8ICAucGVyZl9wcm9iZSAgPSBwZXJmX3Ry YWNlXyMjY2FsbCwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn4NCj4gLi9p bmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oOjc0MjoyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYX1RSQUNFX1BFUkZfSU5JVOKAmQ0KPiAgIDc0MiB8ICBfVFJBQ0VfUEVSRl9JTklU KGNhbGwpICAgICAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS90 cmFjZS90cmFjZV9ldmVudHMuaDo3NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY REVDTEFSRV9FVkVOVF9DTEFTU+KAmQ0KPiAgICA3NSB8ICBERUNMQVJFX0VWRU5UX0NMQVNTKG5h bWUsICAgICAgICAgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJz L2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9s YXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC4vaW5jbHVkZS90cmFjZS9kZWZpbmVfdHJhY2UuaDoxMDMsDQo+ICAgICAgICAgICAgICAg ICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6NDQ4LA0KPiAgICAgICAgICAg ICAgICAgIGZyb20gZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jOjU4MjI6DQo+IGRyaXZlcnMvYW5k cm9pZC8uL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCY LOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJvbV9w cm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL3RyYWNl L3BlcmYuaDozMzozMzogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhERUNMQVJFX0VW RU5UX0NMQVNT4oCZDQo+ICAgIDMzIHwgcGVyZl90cmFjZV8jI2NhbGwodm9pZCAqX19kYXRhLCBw cm90bykgICAgIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo3Njo5OiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgIDc2IHwgICAgICAgICBQQVJBTVMocHJv dG8pLCAgICAgICAgIFwNCj4gICAgICAgfCAgICAgICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJv aWQvLi9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKA mFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5 X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkLy4vYmluZGVy X3RyYWNlLmg6MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KA mQ0KPiAgIDExMCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAg ICAgIHwgIF5+fn5+fn5+DQo+IGNjMTogc29tZSB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVy cm9ycw0KPiBtYWtlWzJdOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6MjgzOiBkcml2ZXJz L2FuZHJvaWQvYmluZGVyLm9dIEVycm9yIDENCj4gbWFrZVsxXTogKioqIFtzY3JpcHRzL01ha2Vm aWxlLmJ1aWxkOjUwMDogZHJpdmVycy9hbmRyb2lkXSBFcnJvciAyDQo+IG1ha2VbMV06ICoqKiBX YWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uDQo+IG1ha2U6ICoqKiBbTWFrZWZpbGU6MTc4 ODogZHJpdmVyc10gRXJyb3IgMg0KPiANCg0K From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B67CC43461 for ; Mon, 7 Sep 2020 06:50:11 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4845221556 for ; Mon, 7 Sep 2020 06:50:10 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="qULtwkRz"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="AMFUsfXy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4845221556 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Date:To:From: Subject:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=clHWAE8QGJBpSxmIHo3C9kYQRPUAA2r9G6ozWTRwZkI=; b=qULtwkRzUS73WpiWa8woKC5qx +967XJBr0kOpT9Skeu9gaIa3Qy9Qsw6LgXBbjc7qquVHlX1eiUxuJaz+FYtZPCfWH0Y4bRg0B83ec /kdhcCDJmNTrP97ZUgXYmdfP9fazaByaMZjL7Fo/u9+xPrvjrql1HY8u4v+8NJ3N8TqpAj9w2gPHY Gb09hCxT1Afc8+HFnujIBrUNN89fqKuzsomOGY349J5TnGUtZs5TbVTW5GfNvi4aH0AKUx1iOwwuo iX20s+k9228bQY9QS+NnK5SuGIRsfzm5g9z5ybE5nnWDyOeZl8txNXOomYuoKuTzQ4agOJmsHCleB QBG/B1u1g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFAyU-00084V-NP; Mon, 07 Sep 2020 06:49:58 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kFAyO-00083j-Mm for linux-mediatek@lists.infradead.org; Mon, 07 Sep 2020 06:49:57 +0000 X-UUID: 49bf0147acca4db595238e19b90e8195-20200906 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=ZuBHvMM7mP/M/+ToKqAwUotc2rp2tiddhujzIQldkIQ=; b=AMFUsfXyBxVLUBCmdYX0i/oOFkF5QISMSf3URo4oAjSlfjimVAn4YY/j6nbSm2UWjoiOP26EBLsa81rm0hoRhvr4WMGsFeLTAq9cPU7+YKxng8X+jc/Kfvlt7U8uTJIEZ7fKfvO82zhhSmbVCYdT6jnKffjIWa1Ixn3ccgJJhYM=; X-UUID: 49bf0147acca4db595238e19b90e8195-20200906 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 969570824; Sun, 06 Sep 2020 22:49:45 -0800 Received: from MTKMBS01N2.mediatek.inc (172.21.101.79) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 6 Sep 2020 23:49:43 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 7 Sep 2020 14:49:28 +0800 Received: from [172.21.77.33] (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 7 Sep 2020 14:49:29 +0800 Message-ID: <1599461369.16905.19.camel@mtkswgap22> Subject: Re: [PATCH v7] binder: transaction latency tracking for user build From: Frankie Chang To: Greg Kroah-Hartman Date: Mon, 7 Sep 2020 14:49:29 +0800 In-Reply-To: <20200903162105.GA371057@kroah.com> References: <1596509145.5207.21.camel@mtkswgap22> <1596549552-5466-1-git-send-email-Frankie.Chang@mediatek.com> <20200903162105.GA371057@kroah.com> X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: F7262676373F8F8CA93EFB8D529A7F922DC719FD02909CFCBEBF4727A1C6D45D2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200907_024953_220094_7B07EB43 X-CRM114-Status: GOOD ( 17.71 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: wsd_upstream@mediatek.com, linux-kernel@vger.kernel.org, Arve =?ISO-8859-1?Q?Hj=F8nnev=E5g?= , Jian-Min Liu , linux-mediatek@lists.infradead.org, Joel Fernandes , Martijn Coenen , Christian Brauner , Todd Kjos Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org T24gVGh1LCAyMDIwLTA5LTAzIGF0IDE4OjIxICswMjAwLCBHcmVnIEtyb2FoLUhhcnRtYW4gd3Jv dGU6DQo+IE9uIFR1ZSwgQXVnIDA0LCAyMDIwIGF0IDA5OjU5OjA5UE0gKzA4MDAsIEZyYW5raWUg Q2hhbmcgd3JvdGU6DQo+ID4gDQo+ID4gRnJhbmtpZS5DaGFuZyAoMyk6DQo+ID4gICBiaW5kZXI6 IG1vdmUgc3RydWN0cyBmcm9tIGNvcmUgZmlsZSB0byBoZWFkZXIgZmlsZQ0KPiA+ICAgYmluZGVy OiBhZGQgdHJhY2UgYXQgZnJlZSB0cmFuc2FjdGlvbi4NCj4gPiAgIGJpbmRlcjogYWRkIHRyYW5z YWN0aW9uIGxhdGVuY3kgdHJhY2VyDQo+ID4gDQo+ID4gIGRyaXZlcnMvYW5kcm9pZC9LY29uZmln ICAgICAgICAgICAgICAgICB8ICAgIDggKw0KPiA+ICBkcml2ZXJzL2FuZHJvaWQvTWFrZWZpbGUg ICAgICAgICAgICAgICAgfCAgICAxICsNCj4gPiAgZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jICAg ICAgICAgICAgICAgIHwgIDQyNSArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfaW50ZXJuYWwuaCAgICAgICB8ICA0MTcgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5j eV90cmFjZXIuYyB8ICAxMTIgKysrKysrKysNCj4gPiAgZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90 cmFjZS5oICAgICAgICAgIHwgICA0OSArKysrDQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgNjA3IGlu c2VydGlvbnMoKyksIDQwNSBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmMNCj4gDQo+IFRoaXMgc2VyaWVzIGJsb3dz IHVwIHRoZSBidWlsZCBpbnRvIGxvdHMgb2YgdGlueSBwaWVjZXMsIGhvdyB3YXMgaXQNCj4gdGVz dGVkPw0KPiANCg0KSSBhbSBzb3JyeSB0aGF0IEkgaGFkIGJ1aWx0IHBhc3Mub24gdGhlIHRvbyBv bGRlciBrZXJuZWwsIGFuZCBzb21lIG9mDQphcGkgaGFkIGJlZW4gZGVwcmVjYXRlZC4NCkkgaGF2 ZSBmaXhlZCB0aGVzZSBlcnJvcnMgaW4gbG9jYWwsIGFuZCBJIGFkZCB0aGUNCkVYUE9SVF9UUkFD RVBPSU5UX1NZTUJPTCBmb3IgYmluZGVyX2xhdGVuY3lfdHJhY2VyIHRvIGJlIGtvIG5lZWRlZC4N Cg0KRG8gSSBuZWVkIHRvIHB1c2ggYSBwYXRjaCBWOCBvciBJIHByb3ZpZGUgdGhlIGZpeGVkIGNv ZGUgaGVyZSA/DQoNCn4vbXRrX3NvY19uZXckIGNhdCBiLmxvZyB8IGdyZXAgYmluZGVyDQogIEND ICAgICAgZHJpdmVycy9hbmRyb2lkL2JpbmRlcmZzLm8NCiAgQ0MgICAgICBkcml2ZXJzL2FuZHJv aWQvYmluZGVyLm8NCiAgQ0MgW01dICBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJh Y2VyLm8NCiAgTEQgW01dICBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmtv DQoNCn4vbXRrX3NvY19uZXckIHRhaWwgLW4gMTAgYi5sb2cNCm1ha2VbMV06IExlYXZpbmcgZGly ZWN0b3J5IGAvcHJvai9tdGsxNjE4NC9tdGtfc29jX25ldy9rZXJuZWwvbWVkaWF0ZWsnDQptYWtl IEFSQ0g9YXJtNjQNCkNST1NTX0NPTVBJTEU9L3Byb2ovbXRrMTYxODQvbXRrX3NvY19uZXcvcHJl YnVpbHQvdG9vbGNoYWluL2FhcmNoNjQvdXNyL2Jpbi9hYXJjaDY0LXBva3ktbGludXgvYWFyY2g2 NC1wb2t5LWxpbnV4LSBPPS9wcm9qL210azE2MTg0L210a19zb2NfbmV3L291dCAtQyBrZXJuZWwv bWVkaWF0ZWsgZHRicw0KbWFrZVsxXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvcHJvai9tdGsxNjE4 NC9tdGtfc29jX25ldy9rZXJuZWwvbWVkaWF0ZWsnDQptYWtlWzJdOiBFbnRlcmluZyBkaXJlY3Rv cnkgYC9wcm9qL210azE2MTg0L210a19zb2NfbmV3L291dCcNCmFyY2gvYXJtNjQvTWFrZWZpbGU6 MjY6IGxkIGRvZXMgbm90IHN1cHBvcnQgLS1maXgtY29ydGV4LWE1My04NDM0MTk7DQprZXJuZWwg bWF5IGJlIHN1c2NlcHRpYmxlIHRvIGVycmF0dW0NCmFyY2gvYXJtNjQvTWFrZWZpbGU6MzQ6IExT RSBhdG9taWNzIG5vdCBzdXBwb3J0ZWQgYnkgYmludXRpbHMNCm1ha2VbMl06IExlYXZpbmcgZGly ZWN0b3J5IGAvcHJvai9tdGsxNjE4NC9tdGtfc29jX25ldy9vdXQnDQptYWtlWzFdOiBMZWF2aW5n IGRpcmVjdG9yeSBgL3Byb2ovbXRrMTYxODQvbXRrX3NvY19uZXcva2VybmVsL21lZGlhdGVrJw0K Y2F0IC9wcm9qL210azE2MTg0L210a19zb2NfbmV3L291dC9hcmNoL2FybTY0L2Jvb3QvSW1hZ2Uu Z3ogL3Byb2ovbXRrMTYxODQvbXRrX3NvY19uZXcvb3V0L2FyY2gvYXJtNjQvYm9vdC9kdHMvbWVk aWF0ZWsvbXQ2Nzc5LWV2Yi5kdGIgPiAvcHJvai9tdGsxNjE4NC9tdGtfc29jX25ldy9vdXQvYXJj aC9hcm02NC9ib290L0ltYWdlLmd6LWR0Yg0KL3Byb2ovbXRrMTYxODQvbXRrX3NvY19uZXcvcHJl YnVpbHQvYm9vdGFibGUvbWtib290aW1nDQotLWtlcm5lbCAvcHJvai9tdGsxNjE4NC9tdGtfc29j X25ldy9vdXQvYXJjaC9hcm02NC9ib290L0ltYWdlLmd6LWR0Yg0KLS1yYW1kaXNrIC9wcm9qL210 azE2MTg0L210a19zb2NfbmV3L3ByZWJ1aWx0L2Jvb3RhYmxlLzY3NzlfbG9hZGVyL3JhbWRpc2su aW1nIC0tYmFzZSAweDQwMDAwMDAwIC0tcmFtZGlza19vZmZzZXQgMHgwNDAwMDAwMCAtLWtlcm5l bF9vZmZzZXQgMHgwMDA4MDAwMCAtLWNtZGxpbmUgYm9vdG9wdD02NFMzLDMyTjIsNjROMiAtLW91 dHB1dCAvcHJvai9tdGsxNjE4NC9tdGtfc29jX25ldy9wcmVidWlsdC9ib290YWJsZS82Nzc5X2xv YWRlci9ib290LmltZw0KDQoNCj4gSGVyZSdzIG15IGVycm9yIGxvZ3M6DQo+IA0KPiBJbiBmaWxl IGluY2x1ZGVkIGZyb20gZHJpdmVycy9hbmRyb2lkL2JpbmRlcmZzLmM6Mzc6DQo+IGRyaXZlcnMv YW5kcm9pZC9iaW5kZXJfaW50ZXJuYWwuaDo1Mzc6MTc6IGVycm9yOiBmaWVsZCDigJh0duKAmSBo YXMgaW5jb21wbGV0ZSB0eXBlDQo+ICAgNTM3IHwgIHN0cnVjdCB0aW1ldmFsIHR2Ow0KPiAgICAg ICB8ICAgICAgICAgICAgICAgICBefg0KPiBJbiBmaWxlIGluY2x1ZGVkIGZyb20gZHJpdmVycy9h bmRyb2lkL2JpbmRlcl90cmFjZS5oOjEyLA0KPiAgICAgICAgICAgICAgICAgIGZyb20gZHJpdmVy cy9hbmRyb2lkL2JpbmRlcl9hbGxvYy5jOjI3Og0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3Ry YWNlLmg6IEluIGZ1bmN0aW9uIOKAmHRyYWNlX2JpbmRlcl90eG5fbGF0ZW5jeV9hbGxvY+KAmToN Cj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwMDoxMzogZXJyb3I6IOKAmGXigJkg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pDQo+ICAgMTAwIHwgIFRQX0FS R1ModCwgZSkNCj4gICAgICAgfCAgICAgICAgICAgICBeDQo+IC4vaW5jbHVkZS9saW51eC90cmFj ZXBvaW50Lmg6MTkxOjMzOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fRE9fVFJB Q0XigJkNCj4gICAxOTEgfCAgICAgKCh2b2lkKCopKHByb3RvKSkoaXRfZnVuYykpKGFyZ3MpOyBc DQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjM2OjU6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhUUF9BUkdT4oCZDQo+ICAgMjM2IHwgICAgIFRQX0FSR1MoZGF0YV9hcmdzKSwgICBcDQo+ ICAgICAgIHwgICAgIF5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAg IDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3Mp LCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNl cG9pbnQuaDozNzg6NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0K PiAgIDM3OCB8ICAgIFBBUkFNUyhfX2RhdGEsIGFyZ3MpKQ0KPiAgICAgICB8ICAgIF5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6OTg6MTogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICAgOTggfCBERUNMQVJFX1RSQUNFKGJp bmRlcl90eG5fbGF0ZW5jeV9hbGxvYywNCj4gICAgICAgfCBefn5+fn5+fn5+fn5+DQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmFRQX0FSR1PigJkNCj4gICAxMDAgfCAgVFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICBe fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDA6MTM6IG5vdGU6IGVh Y2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBm dW5jdGlvbiBpdCBhcHBlYXJzIGluDQo+ICAgMTAwIHwgIFRQX0FSR1ModCwgZSkNCj4gICAgICAg fCAgICAgICAgICAgICBeDQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MTkxOjMzOiBu b3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fRE9fVFJBQ0XigJkNCj4gICAxOTEgfCAg ICAgKCh2b2lkKCopKHByb3RvKSkoaXRfZnVuYykpKGFyZ3MpOyBcDQo+ICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBv aW50Lmg6MjM2OjU6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9BUkdT4oCZDQo+ ICAgMjM2IHwgICAgIFRQX0FSR1MoZGF0YV9hcmdzKSwgICBcDQo+ICAgICAgIHwgICAgIF5+fn5+ fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVf VFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBe fn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzg6NDogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3OCB8ICAgIFBBUkFN UyhfX2RhdGEsIGFyZ3MpKQ0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX3RyYWNlLmg6OTg6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xB UkVfVFJBQ0XigJkNCj4gICAgOTggfCBERUNMQVJFX1RSQUNFKGJpbmRlcl90eG5fbGF0ZW5jeV9h bGxvYywNCj4gICAgICAgfCBefn5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJf dHJhY2UuaDoxMDA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX0FSR1PigJkN Cj4gICAxMDAgfCAgVFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICBefn5+fn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6MTkxOjY6IGVycm9yOiB0b28gbWFueSBhcmd1bWVudHMgdG8g ZnVuY3Rpb24g4oCYKHZvaWQgKCopKHZvaWQgKiwgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAq KSlpdF9mdW5j4oCZDQo+ICAgMTkxIHwgICAgICgodm9pZCgqKShwcm90bykpKGl0X2Z1bmMpKShh cmdzKTsgXA0KPiAgICAgICB8ICAgICB+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyMzQ6NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmF9fRE9fVFJBQ0XigJkNCj4gICAyMzQgfCAgICBfX0RPX1RSQUNFKCZfX3RyYWNlcG9p bnRfIyNuYW1lLCAgXA0KPiAgICAgICB8ICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4 L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVD TEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHBy b3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgIDk4IHwgREVDTEFSRV9UUkFDRShiaW5kZXJf dHhuX2xhdGVuY3lfYWxsb2MsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2Fu ZHJvaWQvYmluZGVyX3RyYWNlLmg6IEluIGZ1bmN0aW9uIOKAmHRyYWNlX2JpbmRlcl90eG5fbGF0 ZW5jeV9hbGxvY19yY3VpZGxl4oCZOg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6 MTAwOjEzOiBlcnJvcjog4oCYZeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5j dGlvbikNCj4gICAxMDAgfCAgVFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICAgICAgICAgICAgIF4N Cj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoxOTE6MzM6IG5vdGU6IGluIGRlZmluaXRp b24gb2YgbWFjcm8g4oCYX19ET19UUkFDReKAmQ0KPiAgIDE5MSB8ICAgICAoKHZvaWQoKikocHJv dG8pKShpdF9mdW5jKSkoYXJncyk7IFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyMTA6NTogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX0FSR1PigJkNCj4gICAyMTAgfCAgICAgVFBf QVJHUyhkYXRhX2FyZ3MpLCAgIFwNCj4gICAgICAgfCAgICAgXn5+fn5+fg0KPiAuL2luY2x1ZGUv bGludXgvdHJhY2Vwb2ludC5oOjI0NDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY X19ERUNMQVJFX1RSQUNFX1JDVeKAmQ0KPiAgIDI0NCB8ICBfX0RFQ0xBUkVfVFJBQ0VfUkNVKG5h bWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+ fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI0NTozNzogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDI0NSB8ICAgUEFSQU1TKGNv bmQpLCBQQVJBTVMoZGF0YV9wcm90byksIFBBUkFNUyhkYXRhX2FyZ3MpKSBcDQo+ICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IC4vaW5jbHVkZS9s aW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhf X0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFN Uyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+ IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc4OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzggfCAgICBQQVJBTVMoX19kYXRhLCBhcmdzKSkN Cj4gICAgICAgfCAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4 OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAg IDk4IHwgREVDTEFSRV9UUkFDRShiaW5kZXJfdHhuX2xhdGVuY3lfYWxsb2MsDQo+ICAgICAgIHwg Xn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTAwOjI6IG5v dGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9BUkdT4oCZDQo+ICAgMTAwIHwgIFRQX0FS R1ModCwgZSkNCj4gICAgICAgfCAgXn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu dC5oOjE5MTo2OiBlcnJvcjogdG9vIG1hbnkgYXJndW1lbnRzIHRvIGZ1bmN0aW9uIOKAmCh2b2lk ICgqKSh2b2lkICosIHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKikpaXRfZnVuY+KAmQ0KPiAg IDE5MSB8ICAgICAoKHZvaWQoKikocHJvdG8pKShpdF9mdW5jKSkoYXJncyk7IFwNCj4gICAgICAg fCAgICAgfl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFj ZXBvaW50Lmg6MjA4OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RPX1RSQUNF 4oCZDQo+ICAgMjA4IHwgICAgX19ET19UUkFDRSgmX190cmFjZXBvaW50XyMjbmFtZSwgIFwNCj4g ICAgICAgfCAgICBefn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ0 OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0VfUkNV4oCZ DQo+ICAgMjQ0IHwgIF9fREVDTEFSRV9UUkFDRV9SQ1UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFS QU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBB UkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+ DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDo5ODoxOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgICA5OCB8IERFQ0xBUkVfVFJBQ0Uo YmluZGVyX3R4bl9sYXRlbmN5X2FsbG9jLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOiBBdCB0b3AgbGV2ZWw6DQo+IGRyaXZlcnMvYW5k cm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzi gJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTExIHwgICAgaW50IGZyb21fcHJv YywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+IC4vaW5jbHVkZS9saW51eC90 cmFjZXBvaW50Lmg6MjMxOjM0OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fREVD TEFSRV9UUkFDReKAmQ0KPiAgIDIzMSB8ICBzdGF0aWMgaW5saW5lIHZvaWQgdHJhY2VfIyNuYW1l KHByb3RvKSAgICBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6MjQ6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNF KG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUx MToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAg IDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkN Cj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDUx MSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2Jp bmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0Vf RVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwN Cj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6 MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KAmQ0KPiAgIDEx MCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAgICAgIHwgIF5+ fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4 cGVjdGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAg MTExIHwgICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjA1OjQ0OiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDRV9SQ1XigJkNCj4gICAyMDUgfCAgc3RhdGlj IGlubGluZSB2b2lkIHRyYWNlXyMjbmFtZSMjX3JjdWlkbGUocHJvdG8pICBcDQo+ICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ0OjI4OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8g4oCYUEFSQU1T4oCZDQo+ICAgMjQ0IHwgIF9fREVDTEFSRV9UUkFDRV9SQ1UobmFtZSwgUEFS QU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3NToyOiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1 IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBc DQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu dC5oOjM3NToyNDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAg IDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3Mp LCAgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1T KHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFj cm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHBy b3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5UKGJp bmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZlcnMv YW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5kZXJfdHJhbnNh Y3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90 cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZ IGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJvbV9wcm9jLCBpbnQgZnJvbV90 aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoy NDc6Mzg6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZ DQo+ICAgMjQ3IHwgIHJlZ2lzdGVyX3RyYWNlXyMjbmFtZSh2b2lkICgqcHJvYmUpKGRhdGFfcHJv dG8pLCB2b2lkICpkYXRhKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzc6 NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3NyB8ICAg IFBBUkFNUyh2b2lkICpfX2RhdGEsIHByb3RvKSwgICBcDQo+ICAgICAgIHwgICAgXn5+fn5+DQo+ IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFt ZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwg UEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNF X0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+ IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5k ZXJfdHJhbnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4 L3RyYWNlcG9pbnQuaDoyNDc6NTE6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9y IOKAmCnigJkgYmVmb3JlIOKAmHZvaWTigJkNCj4gICAyNDcgfCAgcmVnaXN0ZXJfdHJhY2VfIyNu YW1lKHZvaWQgKCpwcm9iZSkoZGF0YV9wcm90byksIHZvaWQgKmRhdGEpIFwNCj4gICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0Uo bmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+ fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAgREVDTEFS RV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgIF5+ fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwOToxOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkgfCBUUkFD RV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTExOjQ6IGVycm9yOiBleHBlY3RlZCDi gJg74oCZLCDigJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKAmGludOKAmQ0KPiAgIDExMSB8ICAg IGludCBmcm9tX3Byb2MsIGludCBmcm9tX3RocmVhZA0KPiAgICAgICB8ICAgIF5+fg0KPiAuL2lu Y2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI1Mzo0Mzogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBt YWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAyNTMgfCAgcmVnaXN0ZXJfdHJhY2VfcHJp b18jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0YSxcDQo+ICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fg0K PiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3Nzo0OiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMzc3IHwgICAgUEFSQU1TKHZvaWQgKl9fZGF0YSwg cHJvdG8pLCAgIFwNCj4gICAgICAgfCAgICBefn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNl cG9pbnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJB Q0XigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJB TVMoYXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3Ry YWNlcG9pbnQuaDo1MTE6MjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPi gJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncykpDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IGRyaXZlcnMv YW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRl bmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfUFJPVE/i gJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdA0KPiAg ICAgICB8ICBefn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI1Mzo1Njog ZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYdm9p ZOKAmQ0KPiAgIDI1MyB8ICByZWdpc3Rlcl90cmFjZV9wcmlvXyMjbmFtZSh2b2lkICgqcHJvYmUp KGRhdGFfcHJvdG8pLCB2b2lkICpkYXRhLFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fg0KPiAuL2luY2x1ZGUvbGlu dXgvdHJhY2Vwb2ludC5oOjM3NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYX19E RUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMo cHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAu L2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUs IFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5UKGJpbmRl cl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5k cm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzi gJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTExIHwgICAgaW50IGZyb21fcHJv YywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+IC4vaW5jbHVkZS9saW51eC90 cmFjZXBvaW50Lmg6MjYwOjQwOiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fREVD TEFSRV9UUkFDReKAmQ0KPiAgIDI2MCB8ICB1bnJlZ2lzdGVyX3RyYWNlXyMjbmFtZSh2b2lkICgq cHJvYmUpKGRhdGFfcHJvdG8pLCB2b2lkICpkYXRhKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgv dHJhY2Vwb2ludC5oOjM3Nzo0OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T 4oCZDQo+ICAgMzc3IHwgICAgUEFSQU1TKHZvaWQgKl9fZGF0YSwgcHJvdG8pLCAgIFwNCj4gICAg ICAgfCAgICBefn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAg REVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAg IHwgIF5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6MjI6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICA1MTEgfCAgREVD TEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJh Y2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZ DQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAg IHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMDoyOiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBf UFJPVE8oc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0K PiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI2MDo1MzogZXJyb3I6IGV4cGVjdGVkIOKA mDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYdm9pZOKAmQ0KPiAgIDI2MCB8ICB1 bnJlZ2lzdGVyX3RyYWNlXyMjbmFtZSh2b2lkICgqcHJvYmUpKGRhdGFfcHJvdG8pLCB2b2lkICpk YXRhKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3 NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAg XA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9p bnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0Xi gJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZF TlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4g ICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTEx OjQ6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKA mGludOKAmQ0KPiAgIDExMSB8ICAgIGludCBmcm9tX3Byb2MsIGludCBmcm9tX3RocmVhZA0KPiAg ICAgICB8ICAgIF5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI2Njo0Njogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAyNjYg fCAgY2hlY2tfdHJhY2VfY2FsbGJhY2tfdHlwZV8jI25hbWUodm9pZCAoKmNiKShkYXRhX3Byb3Rv KSkgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzc6NDogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3NyB8ICAgIFBBUkFN Uyh2b2lkICpfX2RhdGEsIHByb3RvKSwgICBcDQo+ICAgICAgIHwgICAgXn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFS QU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IC4v aW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1T KHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5U KGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5kZXJfdHJh bnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gbWFrZVsyXTogKioqIFtzY3JpcHRz L01ha2VmaWxlLmJ1aWxkOjI4MzogZHJpdmVycy9hbmRyb2lkL2JpbmRlcmZzLm9dIEVycm9yIDEN Cj4gbWFrZVsyXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4NCj4gSW4gZmls ZSBpbmNsdWRlZCBmcm9tIGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5jeV90cmFjZXIuYzo4 Og0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2ludGVybmFsLmg6MTQxOjIwOiBlcnJvcjog4oCY QklOREVSRlNfTUFYX05BTUXigJkgdW5kZWNsYXJlZCBoZXJlIChub3QgaW4gYSBmdW5jdGlvbikN Cj4gICAxNDEgfCAgY2hhciBjb250ZXh0X25hbWVbQklOREVSRlNfTUFYX05BTUUgKyAxXTsNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9h bmRyb2lkL2JpbmRlcl9pbnRlcm5hbC5oOjUzNzoxNzogZXJyb3I6IGZpZWxkIOKAmHR24oCZIGhh cyBpbmNvbXBsZXRlIHR5cGUNCj4gICA1MzcgfCAgc3RydWN0IHRpbWV2YWwgdHY7DQo+ICAgICAg IHwgICAgICAgICAgICAgICAgIF5+DQo+IEluIGZpbGUgaW5jbHVkZWQgZnJvbSBkcml2ZXJzL2Fu ZHJvaWQvYmluZGVyX3RyYWNlLmg6MTIsDQo+ICAgICAgICAgICAgICAgICAgZnJvbSBkcml2ZXJz L2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmM6OToNCj4gZHJpdmVycy9hbmRyb2lkL2Jp bmRlcl90cmFjZS5oOiBJbiBmdW5jdGlvbiDigJh0cmFjZV9iaW5kZXJfdHhuX2xhdGVuY3lfYWxs b2PigJk6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDA6MTM6IGVycm9yOiDi gJhl4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQ0KPiAgIDEwMCB8 ICBUUF9BUkdTKHQsIGUpDQo+ICAgICAgIHwgICAgICAgICAgICAgXg0KPiAuL2luY2x1ZGUvbGlu dXgvdHJhY2Vwb2ludC5oOjE5MTozMzogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhf X0RPX1RSQUNF4oCZDQo+ICAgMTkxIHwgICAgICgodm9pZCgqKShwcm90bykpKGl0X2Z1bmMpKShh cmdzKTsgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fg0K PiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjIzNjo1OiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYVFBfQVJHU+KAmQ0KPiAgIDIzNiB8ICAgICBUUF9BUkdTKGRhdGFfYXJncyks ICAgXA0KPiAgICAgICB8ICAgICBefn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50 Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0Xi gJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFN UyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51 eC90cmFjZXBvaW50Lmg6Mzc4OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJB TVPigJkNCj4gICAzNzggfCAgICBQQVJBTVMoX19kYXRhLCBhcmdzKSkNCj4gICAgICAgfCAgICBe fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4OjE6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgIDk4IHwgREVDTEFSRV9U UkFDRShiaW5kZXJfdHhuX2xhdGVuY3lfYWxsb2MsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTAwOjI6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhUUF9BUkdT4oCZDQo+ICAgMTAwIHwgIFRQX0FSR1ModCwgZSkNCj4gICAg ICAgfCAgXn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTAwOjEzOiBu b3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9y IGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbg0KPiAgIDEwMCB8ICBUUF9BUkdTKHQsIGUpDQo+ ICAgICAgIHwgICAgICAgICAgICAgXg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjE5 MTozMzogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhfX0RPX1RSQUNF4oCZDQo+ICAg MTkxIHwgICAgICgodm9pZCgqKShwcm90bykpKGl0X2Z1bmMpKShhcmdzKTsgXA0KPiAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fg0KPiAuL2luY2x1ZGUvbGludXgv dHJhY2Vwb2ludC5oOjIzNjo1OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfQVJH U+KAmQ0KPiAgIDIzNiB8ICAgICBUUF9BUkdTKGRhdGFfYXJncyksICAgXA0KPiAgICAgICB8ICAg ICBefn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGlu IGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19E RUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAg ICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc4 OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzggfCAg ICBQQVJBTVMoX19kYXRhLCBhcmdzKSkNCj4gICAgICAgfCAgICBefn5+fn4NCj4gZHJpdmVycy9h bmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgIDk4IHwgREVDTEFSRV9UUkFDRShiaW5kZXJfdHhuX2xh dGVuY3lfYWxsb2MsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX3RyYWNlLmg6MTAwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9B UkdT4oCZDQo+ICAgMTAwIHwgIFRQX0FSR1ModCwgZSkNCj4gICAgICAgfCAgXn5+fn5+fg0KPiAu L2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjE5MTo2OiBlcnJvcjogdG9vIG1hbnkgYXJndW1l bnRzIHRvIGZ1bmN0aW9uIOKAmCh2b2lkICgqKSh2b2lkICosIHN0cnVjdCBiaW5kZXJfdHJhbnNh Y3Rpb24gKikpaXRfZnVuY+KAmQ0KPiAgIDE5MSB8ICAgICAoKHZvaWQoKikocHJvdG8pKShpdF9m dW5jKSkoYXJncyk7IFwNCj4gICAgICAgfCAgICAgfl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjM0OjQ6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhfX0RPX1RSQUNF4oCZDQo+ICAgMjM0IHwgICAgX19ET19UUkFDRSgmX190 cmFjZXBvaW50XyMjbmFtZSwgIFwNCj4gICAgICAgfCAgICBefn5+fn5+fn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBB UkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+ DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDo5ODoxOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgICA5OCB8IERFQ0xBUkVfVFJBQ0Uo YmluZGVyX3R4bl9sYXRlbmN5X2FsbG9jLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOiBBdCB0b3AgbGV2ZWw6DQo+IGRyaXZlcnMvYW5k cm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzi gJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTExIHwgICAgaW50IGZyb21fcHJv YywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+IC4vaW5jbHVkZS9saW51eC90 cmFjZXBvaW50Lmg6MjMxOjM0OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fREVD TEFSRV9UUkFDReKAmQ0KPiAgIDIzMSB8ICBzdGF0aWMgaW5saW5lIHZvaWQgdHJhY2VfIyNuYW1l KHByb3RvKSAgICBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6MjQ6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNF KG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUx MToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAg IDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkN Cj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDUx MSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2Jp bmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0Vf RVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwN Cj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6 MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KAmQ0KPiAgIDEx MCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAgICAgIHwgIF5+ fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4 cGVjdGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAg MTExIHwgICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ3OjM4OiBub3RlOiBpbiBkZWZpbml0 aW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDI0NyB8ICByZWdpc3Rlcl90 cmFjZV8jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0YSkgXA0KPiAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+DQo+ IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc3OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzcgfCAgICBQQVJBTVModm9pZCAqX19kYXRhLCBw cm90byksICAgXA0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vw b2ludC5oOjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFD ReKAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFN UyhhcmdzKSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJh Y2Vwb2ludC5oOjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KA mQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhh cmdzKSkNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9h bmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g 4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVu Y3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVy X3RyYWNlLmg6MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KA mQ0KPiAgIDExMCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAg ICAgIHwgIF5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ3OjUxOiBl cnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJh2b2lk 4oCZDQo+ICAgMjQ3IHwgIHJlZ2lzdGVyX3RyYWNlXyMjbmFtZSh2b2lkICgqcHJvYmUpKGRhdGFf cHJvdG8pLCB2b2lkICpkYXRhKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBv aW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJB Q0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBB UkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9s aW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhE RUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHBy b3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IGRyaXZlcnMv YW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRl bmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp 4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJvbV9wcm9jLCBpbnQgZnJv bV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQu aDoyNTM6NDM6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF 4oCZDQo+ICAgMjUzIHwgIHJlZ2lzdGVyX3RyYWNlX3ByaW9fIyNuYW1lKHZvaWQgKCpwcm9iZSko ZGF0YV9wcm90byksIHZvaWQgKmRhdGEsXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNl cG9pbnQuaDozNzc6NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0K PiAgIDM3NyB8ICAgIFBBUkFNUyh2b2lkICpfX2RhdGEsIHByb3RvKSwgICBcDQo+ICAgICAgIHwg ICAgXn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGlu IGV4cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xB UkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBe fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVf VFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6 MTA5OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAg IDEwOSB8IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+ fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RP KHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyNTM6NTY6IGVycm9yOiBleHBlY3RlZCDigJg74oCZ LCDigJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKAmHZvaWTigJkNCj4gICAyNTMgfCAgcmVnaXN0 ZXJfdHJhY2VfcHJpb18jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0 YSxcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3 NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAg XA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9p bnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0Xi gJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZF TlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4g ICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTEx OjQ6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKA mGludOKAmQ0KPiAgIDExMSB8ICAgIGludCBmcm9tX3Byb2MsIGludCBmcm9tX3RocmVhZA0KPiAg ICAgICB8ICAgIF5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjI2MDo0MDogbm90 ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAyNjAg fCAgdW5yZWdpc3Rlcl90cmFjZV8jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9p ZCAqZGF0YSkgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzc6NDogbm90 ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3NyB8ICAgIFBBUkFN Uyh2b2lkICpfX2RhdGEsIHByb3RvKSwgICBcDQo+ICAgICAgIHwgICAgXn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFS QU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IC4v aW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1T KHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5U KGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5kZXJfdHJh bnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNl cG9pbnQuaDoyNjA6NTM6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9yIOKAmCni gJkgYmVmb3JlIOKAmHZvaWTigJkNCj4gICAyNjAgfCAgdW5yZWdpc3Rlcl90cmFjZV8jI25hbWUo dm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0YSkgXA0KPiAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4v aW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5h bWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+ fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVf VFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+ fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0Vf RVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4g ZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCY O+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBp bnQgZnJvbV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNs dWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyNjY6NDY6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFj cm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMjY2IHwgIGNoZWNrX3RyYWNlX2NhbGxiYWNr X3R5cGVfIyNuYW1lKHZvaWQgKCpjYikoZGF0YV9wcm90bykpIFwNCj4gICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc3OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhQQVJBTVPigJkNCj4gICAzNzcgfCAgICBQQVJBTVModm9pZCAqX19kYXRhLCBwcm90byks ICAgXA0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0K PiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdz KSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu dC5oOjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAg IDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkN Cj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lk L2JpbmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJB Q0VfRVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJl ZSwNCj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNl Lmg6MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KAmQ0KPiAg IDExMCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAgICAgIHwg IF5+fn5+fn5+DQo+IEluIGZpbGUgaW5jbHVkZWQgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVy LmM6NzU6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfaW50ZXJuYWwuaDo1Mzc6MTc6IGVycm9y OiBmaWVsZCDigJh0duKAmSBoYXMgaW5jb21wbGV0ZSB0eXBlDQo+ICAgNTM3IHwgIHN0cnVjdCB0 aW1ldmFsIHR2Ow0KPiAgICAgICB8ICAgICAgICAgICAgICAgICBefg0KPiBJbiBmaWxlIGluY2x1 ZGVkIGZyb20gLi9pbmNsdWRlL3RyYWNlL3N5c2NhbGwuaDo1LA0KPiAgICAgICAgICAgICAgICAg IGZyb20gLi9pbmNsdWRlL2xpbnV4L3N5c2NhbGxzLmg6ODQsDQo+ICAgICAgICAgICAgICAgICAg ZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVyLmM6NjY6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5k ZXJfdHJhY2UuaDogSW4gZnVuY3Rpb24g4oCYdHJhY2VfYmluZGVyX3R4bl9sYXRlbmN5X2FsbG9j 4oCZOg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTAwOjEzOiBlcnJvcjog4oCY ZeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikNCj4gICAxMDAgfCAg VFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICAgICAgICAgICAgIF4NCj4gLi9pbmNsdWRlL2xpbnV4 L3RyYWNlcG9pbnQuaDoxOTE6MzM6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYX19E T19UUkFDReKAmQ0KPiAgIDE5MSB8ICAgICAoKHZvaWQoKikocHJvdG8pKShpdF9mdW5jKSkoYXJn cyk7IFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyMzY6NTogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmFRQX0FSR1PigJkNCj4gICAyMzYgfCAgICAgVFBfQVJHUyhkYXRhX2FyZ3MpLCAg IFwNCj4gICAgICAgfCAgICAgXn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjM3NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZ DQo+ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgv dHJhY2Vwb2ludC5oOjM3ODo0OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T 4oCZDQo+ICAgMzc4IHwgICAgUEFSQU1TKF9fZGF0YSwgYXJncykpDQo+ICAgICAgIHwgICAgXn5+ fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDo5ODoxOiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgICA5OCB8IERFQ0xBUkVfVFJB Q0UoYmluZGVyX3R4bl9sYXRlbmN5X2FsbG9jLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+fn4NCj4g ZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwMDoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYVFBfQVJHU+KAmQ0KPiAgIDEwMCB8ICBUUF9BUkdTKHQsIGUpDQo+ICAgICAg IHwgIF5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwMDoxMzogbm90 ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBl YWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4NCj4gICAxMDAgfCAgVFBfQVJHUyh0LCBlKQ0KPiAg ICAgICB8ICAgICAgICAgICAgIF4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoxOTE6 MzM6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCYX19ET19UUkFDReKAmQ0KPiAgIDE5 MSB8ICAgICAoKHZvaWQoKikocHJvdG8pKShpdF9mdW5jKSkoYXJncyk7IFwNCj4gICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3Ry YWNlcG9pbnQuaDoyMzY6NTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX0FSR1Pi gJkNCj4gICAyMzYgfCAgICAgVFBfQVJHUyhkYXRhX2FyZ3MpLCAgIFwNCj4gICAgICAgfCAgICAg Xn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3NToyOiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1IHwgIF9fREVD TEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAg IHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3ODo0 OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMzc4IHwgICAg UEFSQU1TKF9fZGF0YSwgYXJncykpDQo+ICAgICAgIHwgICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5k cm9pZC9iaW5kZXJfdHJhY2UuaDo5ODoxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY REVDTEFSRV9UUkFDReKAmQ0KPiAgICA5OCB8IERFQ0xBUkVfVFJBQ0UoYmluZGVyX3R4bl9sYXRl bmN5X2FsbG9jLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2Jp bmRlcl90cmFjZS5oOjEwMDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfQVJH U+KAmQ0KPiAgIDEwMCB8ICBUUF9BUkdTKHQsIGUpDQo+ICAgICAgIHwgIF5+fn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoxOTE6NjogZXJyb3I6IHRvbyBtYW55IGFyZ3VtZW50 cyB0byBmdW5jdGlvbiDigJgodm9pZCAoKikodm9pZCAqLCBzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0 aW9uICopKWl0X2Z1bmPigJkNCj4gICAxOTEgfCAgICAgKCh2b2lkKCopKHByb3RvKSkoaXRfZnVu YykpKGFyZ3MpOyBcDQo+ICAgICAgIHwgICAgIH5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fg0K PiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjIzNDo0OiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYX19ET19UUkFDReKAmQ0KPiAgIDIzNCB8ICAgIF9fRE9fVFJBQ0UoJl9fdHJh Y2Vwb2ludF8jI25hbWUsICBcDQo+ICAgICAgIHwgICAgXn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUv bGludXgvdHJhY2Vwb2ludC5oOjM3NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY X19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJB TVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6OTg6MTogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICAgOTggfCBERUNMQVJFX1RSQUNFKGJp bmRlcl90eG5fbGF0ZW5jeV9hbGxvYywNCj4gICAgICAgfCBefn5+fn5+fn5+fn5+DQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDogSW4gZnVuY3Rpb24g4oCYdHJhY2VfYmluZGVyX3R4 bl9sYXRlbmN5X2FsbG9jX3JjdWlkbGXigJk6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJh Y2UuaDoxMDA6MTM6IGVycm9yOiDigJhl4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlz IGZ1bmN0aW9uKQ0KPiAgIDEwMCB8ICBUUF9BUkdTKHQsIGUpDQo+ICAgICAgIHwgICAgICAgICAg ICAgXg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjE5MTozMzogbm90ZTogaW4gZGVm aW5pdGlvbiBvZiBtYWNybyDigJhfX0RPX1RSQUNF4oCZDQo+ICAgMTkxIHwgICAgICgodm9pZCgq KShwcm90bykpKGl0X2Z1bmMpKShhcmdzKTsgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjIxMDo1 OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfQVJHU+KAmQ0KPiAgIDIxMCB8ICAg ICBUUF9BUkdTKGRhdGFfYXJncyksICAgXA0KPiAgICAgICB8ICAgICBefn5+fn5+DQo+IC4vaW5j bHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ0OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNy byDigJhfX0RFQ0xBUkVfVFJBQ0VfUkNV4oCZDQo+ICAgMjQ0IHwgIF9fREVDTEFSRV9UUkFDRV9S Q1UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+ fn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjQ1OjM3OiBu b3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMjQ1IHwgICBQQVJB TVMoY29uZCksIFBBUkFNUyhkYXRhX3Byb3RvKSwgUEFSQU1TKGRhdGFfYXJncykpIFwNCj4gICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gLi9pbmNs dWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3Jv IOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFtZSwg UEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+ fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzg6NDogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3OCB8ICAgIFBBUkFNUyhfX2RhdGEsIGFy Z3MpKQ0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNl Lmg6OTg6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkN Cj4gICAgOTggfCBERUNMQVJFX1RSQUNFKGJpbmRlcl90eG5fbGF0ZW5jeV9hbGxvYywNCj4gICAg ICAgfCBefn5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDA6 Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX0FSR1PigJkNCj4gICAxMDAgfCAg VFBfQVJHUyh0LCBlKQ0KPiAgICAgICB8ICBefn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFj ZXBvaW50Lmg6MTkxOjY6IGVycm9yOiB0b28gbWFueSBhcmd1bWVudHMgdG8gZnVuY3Rpb24g4oCY KHZvaWQgKCopKHZvaWQgKiwgc3RydWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqKSlpdF9mdW5j4oCZ DQo+ICAgMTkxIHwgICAgICgodm9pZCgqKShwcm90bykpKGl0X2Z1bmMpKShhcmdzKTsgXA0KPiAg ICAgICB8ICAgICB+Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4 L3RyYWNlcG9pbnQuaDoyMDg6NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fRE9f VFJBQ0XigJkNCj4gICAyMDggfCAgICBfX0RPX1RSQUNFKCZfX3RyYWNlcG9pbnRfIyNuYW1lLCAg XA0KPiAgICAgICB8ICAgIF5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQu aDoyNDQ6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDRV9S Q1XigJkNCj4gICAyNDQgfCAgX19ERUNMQVJFX1RSQUNFX1JDVShuYW1lLCBQQVJBTVMocHJvdG8p LCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDozNzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVfVFJBQ0UobmFt ZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+ fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjk4OjE6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgIDk4IHwgREVDTEFSRV9U UkFDRShiaW5kZXJfdHhuX2xhdGVuY3lfYWxsb2MsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn5+fg0K PiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6IEF0IHRvcCBsZXZlbDoNCj4gZHJpdmVy cy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg 4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJv bV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL2xp bnV4L3RyYWNlcG9pbnQuaDoyMzE6MzQ6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY X19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMjMxIHwgIHN0YXRpYyBpbmxpbmUgdm9pZCB0cmFjZV8j I25hbWUocHJvdG8pICAgIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3NToyNDogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDM3NSB8ICBfX0RFQ0xBUkVf VFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpLCAgXA0KPiAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgXn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50 Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZ DQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFy Z3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBv aW50Lmg6NTExOjIyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0UobmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3Mp KQ0KPiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJv aWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhU UkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9m cmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJh Y2UuaDoxMTA6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX1BST1RP4oCZDQo+ ICAgMTEwIHwgIFRQX1BST1RPKHN0cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQNCj4gICAgICAg fCAgXn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJv cjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkN Cj4gICAxMTEgfCAgICBpbnQgZnJvbV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAg ICBefn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyMDU6NDQ6IG5vdGU6IGluIGRl ZmluaXRpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNFX1JDVeKAmQ0KPiAgIDIwNSB8ICBz dGF0aWMgaW5saW5lIHZvaWQgdHJhY2VfIyNuYW1lIyNfcmN1aWRsZShwcm90bykgIFwNCj4gICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDoyNDQ6Mjg6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAyNDQgfCAgX19ERUNMQVJFX1RSQUNFX1JDVShuYW1l LCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1 OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4g ICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdz KSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFj ZXBvaW50Lmg6Mzc1OjI0OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZ DQo+ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMo YXJncyksICBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gLi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQ QVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6MjI6IG5vdGU6IGluIGV4cGFuc2lvbiBv ZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQQVJB TVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZF TlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0IGJpbmRlcl90 cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmlu ZGVyX3RyYWNlLmg6MTExOjQ6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDigJgs4oCZIG9yIOKA mCnigJkgYmVmb3JlIOKAmGludOKAmQ0KPiAgIDExMSB8ICAgIGludCBmcm9tX3Byb2MsIGludCBm cm9tX3RocmVhZA0KPiAgICAgICB8ICAgIF5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2lu dC5oOjI0NzozODogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhfX0RFQ0xBUkVfVFJB Q0XigJkNCj4gICAyNDcgfCAgcmVnaXN0ZXJfdHJhY2VfIyNuYW1lKHZvaWQgKCpwcm9iZSkoZGF0 YV9wcm90byksIHZvaWQgKmRhdGEpIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o OjM3Nzo0OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMzc3 IHwgICAgUEFSQU1TKHZvaWQgKl9fZGF0YSwgcHJvdG8pLCAgIFwNCj4gICAgICAgfCAgICBefn5+ fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5z aW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFD RShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+ fn5+fn4NCj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6MjI6IG5vdGU6IGluIGV4 cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShu YW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTog bm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwg VFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+ fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0 IGJpbmRlcl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiAuL2luY2x1ZGUv bGludXgvdHJhY2Vwb2ludC5oOjI0Nzo1MTogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzi gJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYdm9pZOKAmQ0KPiAgIDI0NyB8ICByZWdpc3Rlcl90cmFj ZV8jI25hbWUodm9pZCAoKnByb2JlKShkYXRhX3Byb3RvKSwgdm9pZCAqZGF0YSkgXA0KPiAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3NToyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMzc1IHwgIF9fREVDTEFSRV9U UkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncyksICBcDQo+ICAgICAgIHwgIF5+ fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUxMToyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgIDUxMSB8ICBE RUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4gICAgICAg fCAgXn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTA5OjE6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8 IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+ fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVj dGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTEx IHwgICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+ IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjUzOjQzOiBub3RlOiBpbiBkZWZpbml0aW9u IG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAgIDI1MyB8ICByZWdpc3Rlcl90cmFj ZV9wcmlvXyMjbmFtZSh2b2lkICgqcHJvYmUpKGRhdGFfcHJvdG8pLCB2b2lkICpkYXRhLFwNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6Mzc3OjQ6IG5vdGU6IGluIGV4cGFu c2lvbiBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICAzNzcgfCAgICBQQVJBTVModm9pZCAqX19k YXRhLCBwcm90byksICAgXA0KPiAgICAgICB8ICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgv dHJhY2Vwb2ludC5oOjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFS RV9UUkFDReKAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byks IFBBUkFNUyhhcmdzKSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGlu dXgvdHJhY2Vwb2ludC5oOjUxMToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBB UkFNU+KAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBB UkFNUyhhcmdzKSkNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJp dmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhu X2xhdGVuY3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX3RyYWNlLmg6MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9Q Uk9UT+KAmQ0KPiAgIDExMCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0 DQo+ICAgICAgIHwgIF5+fn5+fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjUz OjU2OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDi gJh2b2lk4oCZDQo+ICAgMjUzIHwgIHJlZ2lzdGVyX3RyYWNlX3ByaW9fIyNuYW1lKHZvaWQgKCpw cm9iZSkoZGF0YV9wcm90byksIHZvaWQgKmRhdGEsXA0KPiAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+DQo+IC4vaW5jbHVk ZS9saW51eC90cmFjZXBvaW50Lmg6Mzc1OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDi gJhfX0RFQ0xBUkVfVFJBQ0XigJkNCj4gICAzNzUgfCAgX19ERUNMQVJFX1RSQUNFKG5hbWUsIFBB UkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSwgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+ DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6NTExOjI6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhERUNMQVJFX1RSQUNF4oCZDQo+ICAgNTExIHwgIERFQ0xBUkVfVFJBQ0Uo bmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKQ0KPiAgICAgICB8ICBefn5+fn5+fn5+ fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhw YW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQo YmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVy cy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg 4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJv bV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL2xp bnV4L3RyYWNlcG9pbnQuaDoyNjA6NDA6IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8g4oCY X19ERUNMQVJFX1RSQUNF4oCZDQo+ICAgMjYwIHwgIHVucmVnaXN0ZXJfdHJhY2VfIyNuYW1lKHZv aWQgKCpwcm9iZSkoZGF0YV9wcm90byksIHZvaWQgKmRhdGEpIFwNCj4gICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+DQo+IC4vaW5jbHVkZS9s aW51eC90cmFjZXBvaW50Lmg6Mzc3OjQ6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQ QVJBTVPigJkNCj4gICAzNzcgfCAgICBQQVJBTVModm9pZCAqX19kYXRhLCBwcm90byksICAgXA0K PiAgICAgICB8ICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUxMToy OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9UUkFDReKAmQ0KPiAgIDUx MSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4g ICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjUx MToyMjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDUxMSB8 ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBBUkFNUyhhcmdzKSkNCj4gICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkL2JpbmRl cl90cmFjZS5oOjEwOToxOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZF TlTigJkNCj4gICAxMDkgfCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4g ICAgICAgfCBefn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6MTEw OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KAmQ0KPiAgIDExMCB8 ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAgICAgIHwgIF5+fn5+ fn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjYwOjUzOiBlcnJvcjogZXhwZWN0 ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJh2b2lk4oCZDQo+ICAgMjYw IHwgIHVucmVnaXN0ZXJfdHJhY2VfIyNuYW1lKHZvaWQgKCpwcm9iZSkoZGF0YV9wcm90byksIHZv aWQgKmRhdGEpIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3 NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYX19ERUNMQVJFX1RSQUNF4oCZDQo+ ICAgMzc1IHwgIF9fREVDTEFSRV9UUkFDRShuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJn cyksICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJh Y2Vwb2ludC5oOjUxMToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9U UkFDReKAmQ0KPiAgIDUxMSB8ICBERUNMQVJFX1RSQUNFKG5hbWUsIFBBUkFNUyhwcm90byksIFBB UkFNUyhhcmdzKSkNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFD RV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVl LA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2Uu aDoxMTE6NDogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZv cmUg4oCYaW504oCZDQo+ICAgMTExIHwgICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFk DQo+ICAgICAgIHwgICAgXn5+DQo+IC4vaW5jbHVkZS9saW51eC90cmFjZXBvaW50Lmg6MjY2OjQ2 OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKAmF9fREVDTEFSRV9UUkFDReKAmQ0KPiAg IDI2NiB8ICBjaGVja190cmFjZV9jYWxsYmFja190eXBlXyMjbmFtZSh2b2lkICgqY2IpKGRhdGFf cHJvdG8pKSBcDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fg0KPiAuL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oOjM3Nzo0 OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgMzc3IHwgICAg UEFSQU1TKHZvaWQgKl9fZGF0YSwgcHJvdG8pLCAgIFwNCj4gICAgICAgfCAgICBefn5+fn4NCj4g Li9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9m IG1hY3JvIOKAmERFQ0xBUkVfVFJBQ0XigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1l LCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn4N Cj4gLi9pbmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaDo1MTE6MjI6IG5vdGU6IGluIGV4cGFuc2lv biBvZiBtYWNybyDigJhQQVJBTVPigJkNCj4gICA1MTEgfCAgREVDTEFSRV9UUkFDRShuYW1lLCBQ QVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpDQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTog aW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0Vf RVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4g ZHJpdmVycy9hbmRyb2lkL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0IGJpbmRl cl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQv YmluZGVyX2xhdGVuY3lfdHJhY2VyLmM6IEluIGZ1bmN0aW9uIOKAmHByb2JlX2JpbmRlcl90eG5f bGF0ZW5jeV9mcmVl4oCZOg0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2Vy LmM6NDM6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmHJ0Y190 aW1lX3RvX3Rt4oCZOyBkaWQgeW91IG1lYW4g4oCYcnRjX2t0aW1lX3RvX3Rt4oCZPyBbLVdlcnJv cj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0NCj4gICAgNDMgfCAgcnRjX3RpbWVfdG9f dG0odC0+dHYudHZfc2VjLCAmdG0pOw0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fg0KPiAgICAg ICB8ICBydGNfa3RpbWVfdG9fdG0NCj4gbWFrZVsyXTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1 aWxkOjI4MzogZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9hbGxvYy5vXSBFcnJvciAxDQo+IGRyaXZl cnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5jeV90cmFjZXIuYzogSW4gZnVuY3Rpb24g4oCYaW5pdF9i aW5kZXJfbGF0ZW5jeV90cmFjZXLigJk6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfbGF0ZW5j eV90cmFjZXIuYzo4OToyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g 4oCYcmVnaXN0ZXJfdHJhY2VfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk7IGRpZCB5b3UgbWVh biDigJhyZWdpc3Rlcl90cmFjZV9iaW5kZXJfdHhuX2xhdGVuY3lfaW5mb+KAmT8gWy1XZXJyb3I9 aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dDQo+ICAgIDg5IHwgIHJlZ2lzdGVyX3RyYWNl X2JpbmRlcl90eG5fbGF0ZW5jeV9mcmVlKA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fg0KPiAgICAgICB8ICByZWdpc3Rlcl90cmFjZV9iaW5kZXJfdHhu X2xhdGVuY3lfaW5mbw0KPiBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmM6 IEluIGZ1bmN0aW9uIOKAmGV4aXRfYmluZGVyX2xhdGVuY3lfdHJhY2Vy4oCZOg0KPiBkcml2ZXJz L2FuZHJvaWQvYmluZGVyX2xhdGVuY3lfdHJhY2VyLmM6MTAxOjI6IGVycm9yOiBpbXBsaWNpdCBk ZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJh1bnJlZ2lzdGVyX3RyYWNlX2JpbmRlcl90eG5fbGF0 ZW5jeV9mcmVl4oCZOyBkaWQgeW91IG1lYW4g4oCYdW5yZWdpc3Rlcl90cmFjZV9iaW5kZXJfdHhu X2xhdGVuY3lfaW5mb+KAmT8gWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25d DQo+ICAgMTAxIHwgIHVucmVnaXN0ZXJfdHJhY2VfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUoDQo+ ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gICAg ICAgfCAgdW5yZWdpc3Rlcl90cmFjZV9iaW5kZXJfdHhuX2xhdGVuY3lfaW5mbw0KPiBjYzE6IHNv bWUgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMNCj4gbWFrZVsyXTogKioqIFtzY3Jp cHRzL01ha2VmaWxlLmJ1aWxkOjI4MzogZHJpdmVycy9hbmRyb2lkL2JpbmRlcl9sYXRlbmN5X3Ry YWNlci5vXSBFcnJvciAxDQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXIuYzogSW4gZnVuY3Rpb24g 4oCYYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk6DQo+IGRyaXZlcnMvYW5kcm9pZC9iaW5kZXIu YzoxNTIyOjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJh0cmFj ZV9iaW5kZXJfdHhuX2xhdGVuY3lfZnJlZeKAmTsgZGlkIHlvdSBtZWFuIOKAmHRyYWNlX2JpbmRl cl90eG5fbGF0ZW5jeV9pbmZv4oCZPyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJh dGlvbl0NCj4gIDE1MjIgfCAgdHJhY2VfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUodCwgZnJvbV9w cm9jLCBmcm9tX3RocmVhZCwgdG9fcHJvYywgdG9fdGhyZWFkKTsNCj4gICAgICAgfCAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gICAgICAgfCAgdHJhY2VfYmluZGVyX3R4bl9sYXRl bmN5X2luZm8NCj4gSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS90cmFjZS9kZWZpbmVf dHJhY2UuaDoxMDIsDQo+ICAgICAgICAgICAgICAgICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmlu ZGVyX3RyYWNlLmg6NDQ4LA0KPiAgICAgICAgICAgICAgICAgIGZyb20gZHJpdmVycy9hbmRyb2lk L2JpbmRlci5jOjU4MjI6DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOiBBdCB0 b3AgbGV2ZWw6DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJv cjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCYLOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkN Cj4gICAxMTEgfCAgICBpbnQgZnJvbV9wcm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAg ICBefn4NCj4gLi9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oOjUxMDo1ODogbm90ZTogaW4g ZGVmaW5pdGlvbiBvZiBtYWNybyDigJhERUNMQVJFX0VWRU5UX0NMQVNT4oCZDQo+ICAgNTEwIHwg IHN0cnVjdCB0cmFjZV9ldmVudF9kYXRhX29mZnNldHNfIyNjYWxsICpfX2RhdGFfb2Zmc2V0cywg cHJvdG8pIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fg0KPiAuL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRz Lmg6NzY6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgICA3 NiB8ICAgICAgICAgUEFSQU1TKHByb3RvKSwgICAgICAgICBcDQo+ICAgICAgIHwgICAgICAgICBe fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkLy4vYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6IGlu IGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNFX0VW RU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+IGRy aXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBleHBhbnNpb24g b2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3RydWN0IGJpbmRl cl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiBJbiBmaWxlIGluY2x1ZGVk IGZyb20gLi9pbmNsdWRlL3RyYWNlL2RlZmluZV90cmFjZS5oOjEwMiwNCj4gICAgICAgICAgICAg ICAgICBmcm9tIGRyaXZlcnMvYW5kcm9pZC9iaW5kZXJfdHJhY2UuaDo0NDgsDQo+ICAgICAgICAg ICAgICAgICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVyLmM6NTgyMjoNCj4gZHJpdmVycy9h bmRyb2lkLy4vYmluZGVyX3RyYWNlLmg6MTExOjQ6IGVycm9yOiBleHBlY3RlZCDigJg74oCZLCDi gJgs4oCZIG9yIOKAmCnigJkgYmVmb3JlIOKAmGludOKAmQ0KPiAgIDExMSB8ICAgIGludCBmcm9t X3Byb2MsIGludCBmcm9tX3RocmVhZA0KPiAgICAgICB8ICAgIF5+fg0KPiAuL2luY2x1ZGUvdHJh Y2UvdHJhY2VfZXZlbnRzLmg6Njc0OjQ0OiBub3RlOiBpbiBkZWZpbml0aW9uIG9mIG1hY3JvIOKA mERFQ0xBUkVfRVZFTlRfQ0xBU1PigJkNCj4gICA2NzQgfCB0cmFjZV9ldmVudF9yYXdfZXZlbnRf IyNjYWxsKHZvaWQgKl9fZGF0YSwgcHJvdG8pICAgXA0KPiAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fg0KPiAuL2luY2x1ZGUvdHJhY2UvdHJh Y2VfZXZlbnRzLmg6NzY6OTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KA mQ0KPiAgICA3NiB8ICAgICAgICAgUEFSQU1TKHByb3RvKSwgICAgICAgICBcDQo+ICAgICAgIHwg ICAgICAgICBefn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkLy4vYmluZGVyX3RyYWNlLmg6MTA5OjE6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8 IFRSQUNFX0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+ fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjExMDoyOiBub3RlOiBpbiBl eHBhbnNpb24gb2YgbWFjcm8g4oCYVFBfUFJPVE/igJkNCj4gICAxMTAgfCAgVFBfUFJPVE8oc3Ry dWN0IGJpbmRlcl90cmFuc2FjdGlvbiAqdA0KPiAgICAgICB8ICBefn5+fn5+fg0KPiBkcml2ZXJz L2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDogSW4gZnVuY3Rpb24g4oCYZnRyYWNlX3Rlc3RfcHJv YmVfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk6DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9l dmVudHMuaDo3MDk6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKA mGNoZWNrX3RyYWNlX2NhbGxiYWNrX3R5cGVfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk7IGRp ZCB5b3UgbWVhbiDigJhjaGVja190cmFjZV9jYWxsYmFja190eXBlX2JpbmRlcl90eG5fbGF0ZW5j eV9pbmZv4oCZPyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0NCj4gICA3 MDkgfCAgY2hlY2tfdHJhY2VfY2FsbGJhY2tfdHlwZV8jI2NhbGwodHJhY2VfZXZlbnRfcmF3X2V2 ZW50XyMjdGVtcGxhdGUpOyBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo4MToyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8g4oCYREVGSU5FX0VWRU5U4oCZDQo+ICAgIDgxIHwgIERFRklORV9FVkVOVChu YW1lLCBuYW1lLCBQQVJBTVMocHJvdG8pLCBQQVJBTVMoYXJncykpOw0KPiAgICAgICB8ICBefn5+ fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkLy4vYmluZGVyX3RyYWNlLmg6MTA5OjE6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUkFDRV9FVkVOVOKAmQ0KPiAgIDEwOSB8IFRSQUNF X0VWRU5UKGJpbmRlcl90eG5fbGF0ZW5jeV9mcmVlLA0KPiAgICAgICB8IF5+fn5+fn5+fn5+DQo+ IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo3MDk6MzU6IGVycm9yOiDigJh0cmFjZV9l dmVudF9yYXdfZXZlbnRfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYdHJhY2VfZXZlbnRfcmF3 X2JpbmRlcl90eG5fbGF0ZW5jeV9mcmVl4oCZPw0KPiAgIDcwOSB8ICBjaGVja190cmFjZV9jYWxs YmFja190eXBlXyMjY2FsbCh0cmFjZV9ldmVudF9yYXdfZXZlbnRfIyN0ZW1wbGF0ZSk7IFwNCj4g ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fg0KPiAuL2luY2x1ZGUvdHJhY2UvdHJhY2VfZXZlbnRzLmg6ODE6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFRklORV9FVkVOVOKAmQ0KPiAgICA4MSB8ICBERUZJTkVf RVZFTlQobmFtZSwgbmFtZSwgUEFSQU1TKHByb3RvKSwgUEFSQU1TKGFyZ3MpKTsNCj4gICAgICAg fCAgXn5+fn5+fn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjEwOTox OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkg fCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+ fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDogQXQgdG9wIGxldmVsOg0K PiBkcml2ZXJzL2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDoxMTE6NDogZXJyb3I6IGV4cGVjdGVk IOKAmDvigJksIOKAmCzigJkgb3Ig4oCYKeKAmSBiZWZvcmUg4oCYaW504oCZDQo+ICAgMTExIHwg ICAgaW50IGZyb21fcHJvYywgaW50IGZyb21fdGhyZWFkDQo+ICAgICAgIHwgICAgXn5+DQo+IC4v aW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo2MTg6MzQ6IG5vdGU6IGluIGRlZmluaXRpb24g b2YgbWFjcm8g4oCYX1RSQUNFX1BFUkZfUFJPVE/igJkNCj4gICA2MTggfCAgcGVyZl90cmFjZV8j I2NhbGwodm9pZCAqX19kYXRhLCBwcm90byk7DQo+ICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn4NCj4gLi9pbmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oOjcz MzoyNTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFBBUkFNU+KAmQ0KPiAgIDczMyB8 IF9UUkFDRV9QRVJGX1BST1RPKGNhbGwsIFBBUkFNUyhwcm90bykpOyAgICAgXA0KPiAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fg0KPiAuL2luY2x1ZGUvdHJhY2UvdHJhY2Vf ZXZlbnRzLmg6NzU6Mjogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmERFQ0xBUkVfRVZF TlRfQ0xBU1PigJkNCj4gICAgNzUgfCAgREVDTEFSRV9FVkVOVF9DTEFTUyhuYW1lLCAgICAgICAg ICBcDQo+ICAgICAgIHwgIF5+fn5+fn5+fn5+fn5+fn5+fn4NCj4gLi9pbmNsdWRlL3RyYWNlL3Ry YWNlX2V2ZW50cy5oOjc2Ojk6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhQQVJBTVPi gJkNCj4gICAgNzYgfCAgICAgICAgIFBBUkFNUyhwcm90byksICAgICAgICAgXA0KPiAgICAgICB8 ICAgICAgICAgXn5+fn5+DQo+IGRyaXZlcnMvYW5kcm9pZC8uL2JpbmRlcl90cmFjZS5oOjEwOTox OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYVFJBQ0VfRVZFTlTigJkNCj4gICAxMDkg fCBUUkFDRV9FVkVOVChiaW5kZXJfdHhuX2xhdGVuY3lfZnJlZSwNCj4gICAgICAgfCBefn5+fn5+ fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDoxMTA6Mjogbm90ZTogaW4g ZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRQX1BST1RP4oCZDQo+ICAgMTEwIHwgIFRQX1BST1RPKHN0 cnVjdCBiaW5kZXJfdHJhbnNhY3Rpb24gKnQNCj4gICAgICAgfCAgXn5+fn5+fn4NCj4gSW4gZmls ZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS90cmFjZS9kZWZpbmVfdHJhY2UuaDoxMDIsDQo+ICAg ICAgICAgICAgICAgICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6NDQ4LA0K PiAgICAgICAgICAgICAgICAgIGZyb20gZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jOjU4MjI6DQo+ IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo3NDA6MTM6IGVycm9yOiDigJh0cmFjZV9l dmVudF9yYXdfZXZlbnRfYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJkgdW5kZWNsYXJlZCBoZXJl IChub3QgaW4gYSBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJh0cmFjZV9ldmVudF9yYXdfYmlu ZGVyX3R4bl9sYXRlbmN5X2ZyZWXigJk/DQo+ICAgNzQwIHwgIC5wcm9iZSAgID0gdHJhY2VfZXZl bnRfcmF3X2V2ZW50XyMjY2FsbCwgIFwNCj4gICAgICAgfCAgICAgICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo3NToyOiBub3Rl OiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCYREVDTEFSRV9FVkVOVF9DTEFTU+KAmQ0KPiAgICA3 NSB8ICBERUNMQVJFX0VWRU5UX0NMQVNTKG5hbWUsICAgICAgICAgIFwNCj4gICAgICAgfCAgXn5+ fn5+fn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJzL2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDoxMDk6 MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5 IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+ fn5+fn4NCj4gSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC4vaW5jbHVkZS90cmFjZS9kZWZpbmVfdHJh Y2UuaDoxMDIsDQo+ICAgICAgICAgICAgICAgICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVy X3RyYWNlLmg6NDQ4LA0KPiAgICAgICAgICAgICAgICAgIGZyb20gZHJpdmVycy9hbmRyb2lkL2Jp bmRlci5jOjU4MjI6DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo2MjE6MTc6IGVy cm9yOiDigJhwZXJmX3RyYWNlX2JpbmRlcl90eG5fbGF0ZW5jeV9mcmVl4oCZIHVuZGVjbGFyZWQg aGVyZSAobm90IGluIGEgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYcHJpbnRfZm10X2JpbmRl cl90eG5fbGF0ZW5jeV9mcmVl4oCZPw0KPiAgIDYyMSB8ICAucGVyZl9wcm9iZSAgPSBwZXJmX3Ry YWNlXyMjY2FsbCwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn4NCj4gLi9p bmNsdWRlL3RyYWNlL3RyYWNlX2V2ZW50cy5oOjc0MjoyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYX1RSQUNFX1BFUkZfSU5JVOKAmQ0KPiAgIDc0MiB8ICBfVFJBQ0VfUEVSRl9JTklU KGNhbGwpICAgICAgXA0KPiAgICAgICB8ICBefn5+fn5+fn5+fn5+fn5+DQo+IC4vaW5jbHVkZS90 cmFjZS90cmFjZV9ldmVudHMuaDo3NToyOiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8g4oCY REVDTEFSRV9FVkVOVF9DTEFTU+KAmQ0KPiAgICA3NSB8ICBERUNMQVJFX0VWRU5UX0NMQVNTKG5h bWUsICAgICAgICAgIFwNCj4gICAgICAgfCAgXn5+fn5+fn5+fn5+fn5+fn5+fg0KPiBkcml2ZXJz L2FuZHJvaWQvLi9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1h Y3JvIOKAmFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9s YXRlbmN5X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gSW4gZmlsZSBpbmNsdWRlZCBm cm9tIC4vaW5jbHVkZS90cmFjZS9kZWZpbmVfdHJhY2UuaDoxMDMsDQo+ICAgICAgICAgICAgICAg ICAgZnJvbSBkcml2ZXJzL2FuZHJvaWQvYmluZGVyX3RyYWNlLmg6NDQ4LA0KPiAgICAgICAgICAg ICAgICAgIGZyb20gZHJpdmVycy9hbmRyb2lkL2JpbmRlci5jOjU4MjI6DQo+IGRyaXZlcnMvYW5k cm9pZC8uL2JpbmRlcl90cmFjZS5oOjExMTo0OiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSwg4oCY LOKAmSBvciDigJgp4oCZIGJlZm9yZSDigJhpbnTigJkNCj4gICAxMTEgfCAgICBpbnQgZnJvbV9w cm9jLCBpbnQgZnJvbV90aHJlYWQNCj4gICAgICAgfCAgICBefn4NCj4gLi9pbmNsdWRlL3RyYWNl L3BlcmYuaDozMzozMzogbm90ZTogaW4gZGVmaW5pdGlvbiBvZiBtYWNybyDigJhERUNMQVJFX0VW RU5UX0NMQVNT4oCZDQo+ICAgIDMzIHwgcGVyZl90cmFjZV8jI2NhbGwodm9pZCAqX19kYXRhLCBw cm90bykgICAgIFwNCj4gICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+DQo+IC4vaW5jbHVkZS90cmFjZS90cmFjZV9ldmVudHMuaDo3Njo5OiBub3RlOiBpbiBleHBh bnNpb24gb2YgbWFjcm8g4oCYUEFSQU1T4oCZDQo+ICAgIDc2IHwgICAgICAgICBQQVJBTVMocHJv dG8pLCAgICAgICAgIFwNCj4gICAgICAgfCAgICAgICAgIF5+fn5+fg0KPiBkcml2ZXJzL2FuZHJv aWQvLi9iaW5kZXJfdHJhY2UuaDoxMDk6MTogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKA mFRSQUNFX0VWRU5U4oCZDQo+ICAgMTA5IHwgVFJBQ0VfRVZFTlQoYmluZGVyX3R4bl9sYXRlbmN5 X2ZyZWUsDQo+ICAgICAgIHwgXn5+fn5+fn5+fn4NCj4gZHJpdmVycy9hbmRyb2lkLy4vYmluZGVy X3RyYWNlLmg6MTEwOjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhUUF9QUk9UT+KA mQ0KPiAgIDExMCB8ICBUUF9QUk9UTyhzdHJ1Y3QgYmluZGVyX3RyYW5zYWN0aW9uICp0DQo+ICAg ICAgIHwgIF5+fn5+fn5+DQo+IGNjMTogc29tZSB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVy cm9ycw0KPiBtYWtlWzJdOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6MjgzOiBkcml2ZXJz L2FuZHJvaWQvYmluZGVyLm9dIEVycm9yIDENCj4gbWFrZVsxXTogKioqIFtzY3JpcHRzL01ha2Vm aWxlLmJ1aWxkOjUwMDogZHJpdmVycy9hbmRyb2lkXSBFcnJvciAyDQo+IG1ha2VbMV06ICoqKiBX YWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uDQo+IG1ha2U6ICoqKiBbTWFrZWZpbGU6MTc4 ODogZHJpdmVyc10gRXJyb3IgMg0KPiANCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KTGludXgtbWVkaWF0ZWsgbWFpbGluZyBsaXN0CkxpbnV4LW1lZGlh dGVrQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1tZWRpYXRlawo=