From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast2.qq.com (smtpbguseast2.qq.com [54.204.34.130]) by sourceware.org (Postfix) with ESMTPS id 377123858C2B for ; Thu, 20 Jul 2023 03:39:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 377123858C2B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp68t1689824373turdhizp Received: from LAPTOP-EPITNQBU ( [113.104.214.112]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 20 Jul 2023 11:39:32 +0800 (CST) X-QQ-SSF: 01400000000000G0U000000A0000000 X-QQ-FEAT: 7YFKcddXaghSUMlpOuC0uU5dAFQ3q6wG/Kg7n2LDc2f6nnmOzIzITv9D0zy5m gUj4eMm/lQI2ZLtTZ89uDFAYAEh3NBTdkBuZTS8ubdxFsJbKGMoNu3VQqv0yy6tKMyUhrVw MMyg+8S464rzHGRI5wh8HBet4GtZ++HiKCT3yhcgaxwG37/Ub4YeaAeJyMlyu+XwQAUlZwq Haf0nXIW3rVlo2U6yMp1gv4Qg57g3fTAeLV/ie1nmiO/aTwZlyzxcn6/ob5eRozrsOBLExp 0fMnL3uoVl9PenfBHiOSdMkkUibz7mfxjfWRb5FlTDwOQs+n9DDwUAWD200FqzZ6pT2YVBD OGIZhuOtBlj6EwD1mbOxlMx989K8Z2pmkKWdRmorw8+/zkOdBlxykts50s/rR30bLP3DHXd OcGNUoCFxbyS/7SCy7B3ow== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 10183029598781938957 Date: Thu, 20 Jul 2023 11:39:32 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: pan2.li , yanzhang.wang , kito.cheng Subject: Re: [PATCH v3] RISC-V: Support CALL for RVV floating-point dynamic rounding References: , <20230720032157.869080-1-pan2.li@intel.com> X-Priority: 3 X-GUID: 6C99C44C-7332-4C99-857F-88F3552D5F37 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <5807FECA273EC143+20230720113931475576142@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart848047222351_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,T_SCC_BODY_TEXT_LINE,URIBL_BLACK autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart848047222351_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 VGhhbmtzLg0KDQpTb21lIG1vcmUgdGVzdHM6DQoNCnRlc3QgMToNCg0KaWYg KCl7DQogIHZhZGQgKGludGVnZXIgUlZWIGludHJpbnNpYykNCn1lbHNlew0K ICBDQUxMDQp9DQp2ZmFkZCBzdGF0aWMNCnJldHVybg0KDQp0ZXN0IDI6DQoN CmlmICgpew0KICB2ZmFkZCBEWU4NCn1lbHNlew0KICBDQUxMDQp9DQp2ZmFk ZCBzdGF0aWMNCnJldHVybg0KDQp0ZXN0IDM6DQoNCmlmICgpew0KICB2ZmFk ZCBzdGF0aWMNCn1lbHNlew0KICBDQUxMDQp9DQp2ZmFkZCBzdGF0aWMNCnJl dHVybg0KDQpJIHRoaW5rIHRoYXQncyBlbm91Z2gsIG5vIG1vcmUgdGVzdHMu DQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206IHBhbjIubGkN CkRhdGU6IDIwMjMtMDctMjAgMTE6MjENClRvOiBnY2MtcGF0Y2hlcw0KQ0M6 IGp1emhlLnpob25nOyBwYW4yLmxpOyB5YW56aGFuZy53YW5nOyBraXRvLmNo ZW5nDQpTdWJqZWN0OiBbUEFUQ0ggdjNdIFJJU0MtVjogU3VwcG9ydCBDQUxM IGZvciBSVlYgZmxvYXRpbmctcG9pbnQgZHluYW1pYyByb3VuZGluZw0KRnJv bTogUGFuIExpIDxwYW4yLmxpQGludGVsLmNvbT4NCiANCkluIGJhc2ljIGR5 bmFtaWMgcm91bmRpbmcgbW9kZSwgd2Ugc2ltcGx5IGlnbm9yZSBjYWxsIGlu c3RydWN0aW9ucyBhbmQNCndlIHdvdWxkIGxpa2UgdG8gdGFrZSBjYXJlIG9m IGNhbGwgaW4gdGhpcyBQQVRDSC4NCiANCkR1cmluZyB0aGUgY2FsbCwgdGhl IGZybSBtYXkgYmUgdXBkYXRlZCBvciBrZWVwIGFzIGlzLiBUaHVzLCB3ZSBt dXN0DQptYWtlIHN1cmUgYXQgbGVhc3QgMiB0aGluZ3MuDQogDQoxLiBUaGUg c3RhdGljIGZybSBiZWZvcmUgY2FsbCBzaG91bGQgbm90IHBvbGx1dGUgdGhl IGZybSB2YWx1ZSBpbiBjYWxsLg0KMi4gVGhlIHVwZGF0ZWQgZnJtIHZhbHVl IGluIGNhbGwgc2hvdWxkIGJlIHN0aWNreSBhZnRlciBjYWxsIGNvbXBsZXRl ZC4NCiANCldlIHdpbGwgcGVyZnJvbSBzb21lIHN0ZXBzIHRvIG1ha2UgYWJv dmUgaGFwcGVuLg0KIA0KMS4gTWFyayBjYWxsIGluc3RydWN0aW9uIHdpdGgg bmV3IG1vZGUgRFlOX0NBTEwuDQoyLiBNYXJrIHRoZSBpbnN0cnVjdGlvbiBh ZnRlciBDQUxMIGZyb20gTk9ORSB0byBEWU4uDQozLiBXaGVuIGVtaXQgZm9y IGEgRFlOX0NBTEwsIHdlIHdpbGwgcmVzdG9yZSB0aGUgZnJtIHZhbHVlLg0K NC4gV2hlbiBlbWl0IGZyb20gYSBEWU5fQ0FMTCwgd2Ugd2lsbCBiYWNrdXAg dGhlIGZybSB2YWx1ZS4NCiANCkxldCdzIHRha2UgYSBmbG93IGZvciB0aGlz Lg0KIA0KICAgICAgICAgICArLS0tLS0tLS0tLS0tLSsNCiAgICAgICAgICAg fCBFbnRyeSAoRFlOKSB8IDwtIGZycm0gYTUNCiAgICAgICAgICAgKy0tLS0t LS0tLS0tLS0rDQogICAgICAgICAgLyAgICAgICAgICAgICAgIFwNCiAgICAr LS0tLS0tLSsgICAgICAgICAgICAgKy0tLS0tLS0tLS0tKw0KICAgIHwgVkZB REQgfCAgICAgICAgICAgICB8IFZGQUREIFJUWiB8ICA8LSBmc3JtaSAxKFJU WikNCiAgICArLS0tLS0tLSsgICAgICAgICAgICAgKy0tLS0tLS0tLS0tKw0K ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwNCiAgICArLS0tLS0t LSsgICAgICAgICAgICAgKy0tLS0tLS0tLS0tKw0KICAgIHwgQ0FMTCAgfCAg ICAgICAgICAgICB8IENBTEwgICAgICB8ICA8LSBmc3JtIGE1DQogICAgKy0t LS0tLS0rICAgICAgICAgICAgICstLS0tLS0tLS0tLSsNCiAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICB8DQorLS0tLS0tLS0tLS0rICAgICAg ICAgICAgICAgICArLS0tLS0tLSsNCnwgU0hJRlQgICAgIHwgPC0gZnJybSBh NSAgICAgIHwgVkZBREQgfCAgPC0gZnJybSBhNQ0KKy0tLS0tLS0tLS0tKyAg ICAgICAgICAgICAgICAgKy0tLS0tLS0rDQogICAgICAgICAgfCAgICAgICAg ICAgICAgICAgIC8NCistLS0tLS0tLS0tLSsgICAgICAgICAgICAgICAvDQp8 IFZGQUREIFJVUCB8IDwtIGZzcm0xIDMoUlVQKQ0KKy0tLS0tLS0tLS0tKyAg ICAgICAgICAgICAvDQogICAgICAgICAgIFwgICAgICAgICAgICAgLw0KICAg ICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKw0KICAgICAgICAgICAgfCBF eGl0IChEWU5fRVhJVCkgfCA8LSBmc3JtIGE1DQogICAgICAgICAgICArLS0t LS0tLS0tLS0tLS0tLS0rDQogDQpQbGVhc2UgKk5PVEUqIHNvbWUgY29ybiBj YXNlcyBsaWtlIG5vIGluc3RydWN0aW9uIGFmdGVyIGEgY2FsbCBpcyBub3QN CndlbGwgaGFuZGxlZCwgYW5kIHdpbGwgYmUgY292ZXJyZWQgaW4gYW5vdGhl ciBQQVRDSChzKSBzb29uLg0KIA0KU2lnbmVkLW9mZi1ieTogUGFuIExpIDxw YW4yLmxpQGludGVsLmNvbT4NCkNvLUF1dGhvcmVkLUJ5OiBKdXpoZS1aaG9u ZyA8anV6aGUuemhvbmdAcml2YWkuYWk+DQogDQpnY2MvQ2hhbmdlTG9nOg0K IA0KKiBjb25maWcvcmlzY3YvcmlzY3YuY2MgKERZTkFNSUNfRlJNX1JUTCk6 IE5ldyBtYWNyby4NCihTVEFUSUNfRlJNX1ApOiBEaXR0by4NCihzdHJ1Y3Qg bW9kZV9zd2l0Y2hpbmdfaW5mbyk6IE5ldyBzdHJ1Y3QgZm9yIG1vZGUgc3dp dGNoaW5nLg0KKHN0cnVjdCBtYWNoaW5lX2Z1bmN0aW9uKTogQWRkIG5ldyBm aWVsZCBtb2RlIHN3aXRjaGluZy4NCihyaXNjdl9lbWl0X2ZybV9tb2RlX3Nl dCk6IEFkZCBEWU5fQ0FMTCBlbWl0Lg0KKHJpc2N2X2ZybV9tb2RlX25lZWRl ZCk6IE5ldyBmdW5jdGlvbiBmb3IgZnJtIG1vZGUgbmVlZGVkLg0KKHJpc2N2 X21vZGVfbmVlZGVkKTogRXh0cmFjIGZ1bmN0aW9uIGZvciBmcm0uDQoocmlz Y3ZfZnJtX21vZGVfYWZ0ZXIpOiBBZGQgRFlOX0NBTEwgYWZ0ZXIuDQoqIGNv bmZpZy9yaXNjdi92ZWN0b3IubWQgKGZybV9tb2RlKTogQWRkIGR5bl9jYWxs Lg0KKGZzcm1zaV9yZXN0b3JlX2V4aXQpOiBSZW5hbWUgdG8gX3ZvbGF0aWxl Lg0KKGZzcm1zaV9yZXN0b3JlX3ZvbGF0aWxlKTogTGlrZXdpc2UuDQogDQpn Y2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCiANCiogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTcuYzogQWRqdXN0 DQp0ZXN0IGNhc2VzLg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTMzLmM6IE5ldyB0ZXN0Lg0KKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTM0LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM1LmM6IE5ldyB0ZXN0Lg0KKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTM2LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM3LmM6IE5ldyB0ZXN0Lg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTM4LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM5LmM6IE5ldyB0ZXN0 Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTQwLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQxLmM6IE5ldyB0 ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTQyLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQzLmM6IE5l dyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQ0LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ1LmM6 IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTQ2LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ3 LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ4LmM6IE5ldyB0ZXN0Lg0KKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTQ5LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUwLmM6IE5ldyB0ZXN0Lg0KKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTUxLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUyLmM6IE5ldyB0ZXN0Lg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTUzLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU0LmM6IE5ldyB0ZXN0 Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTU1LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU2LmM6IE5ldyB0 ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTU3LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU4LmM6IE5l dyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTU5LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYwLmM6 IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTYxLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYy LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTYzLmM6IE5ldyB0ZXN0Lg0KKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTY0LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY1LmM6IE5ldyB0ZXN0Lg0KKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTY2LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY3LmM6IE5ldyB0ZXN0Lg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTY4LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNC5jOiBOZXcgdGVzdC4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVu LTUuYzogTmV3IHRlc3QuDQotLS0NCmdjYy9jb25maWcvcmlzY3YvcmlzY3Yu Y2MgICAgICAgICAgICAgICAgICAgICB8IDEwMCArKysrKysrKysrKysrKysr LS0NCmdjYy9jb25maWcvcmlzY3YvdmVjdG9yLm1kICAgICAgICAgICAgICAg ICAgICB8ICAgNCArLQ0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTMzLmMgICAgIHwgIDMxICsrKysrKw0KLi4uL3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTM0LmMgICAgIHwgIDMyICsrKysrKw0K Li4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM1LmMgICAg IHwgIDMyICsrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTM2LmMgICAgIHwgIDI5ICsrKysrDQouLi4vcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tMzcuYyAgICAgfCAgMzYgKysrKysrKw0K Li4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM4LmMgICAg IHwgIDM0ICsrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTM5LmMgICAgIHwgIDM2ICsrKysrKysNCi4uLi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS00MC5jICAgICB8ICAzNCArKysrKysN Ci4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MS5jICAg ICB8ICAzNyArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNDIuYyAgICAgfCAgMzcgKysrKysrKw0KLi4uL3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQzLmMgICAgIHwgIDM4ICsrKysr KysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00NC5j ICAgICB8ICA0MCArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tNDUuYyAgICAgfCAgMzUgKysrKysrDQouLi4vcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDYuYyAgICAgfCAgMzUgKysr KysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDcu YyAgICAgfCAgMzYgKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTQ4LmMgICAgIHwgIDM2ICsrKysrKysNCi4uLi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00OS5jICAgICB8ICAzNiAr KysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NTAuYyAgICAgfCAgMzYgKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTUxLmMgICAgIHwgIDM2ICsrKysrKysNCi4uLi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01Mi5jICAgICB8ICAz NiArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNTMuYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTU0LmMgICAgIHwgIDM4ICsrKysrKysNCi4u Li9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01NS5jICAgICB8 ICAzOCArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNTYuYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTU3LmMgICAgIHwgIDM4ICsrKysrKysN Ci4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01OC5jICAg ICB8ICAzOCArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNTkuYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYwLmMgICAgIHwgIDM4ICsrKysr KysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02MS5j ICAgICB8ICAzOCArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tNjIuYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYzLmMgICAgIHwgIDM4ICsr KysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02 NC5jICAgICB8ICAzOCArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNjUuYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY2LmMgICAgIHwgIDM4 ICsrKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS02Ny5jICAgICB8ICAzOCArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNjguYyAgICAgfCAgMzggKysrKysrKw0KLi4u L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtNy5jIHwg ICA1ICstDQouLi4vcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLXJ1 bi00LmMgICAgfCAgODIgKysrKysrKysrKysrKysNCi4uLi9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTUuYyAgICB8ICA4MyArKysrKysr KysrKysrKysNCjQxIGZpbGVzIGNoYW5nZWQsIDE1NzAgaW5zZXJ0aW9ucygr KSwgMTQgZGVsZXRpb25zKC0pDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTMzLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tMzQuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0zNS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTM2LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzcuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0zOC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTM5LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNDAuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS00MS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTQyLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNDMuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS00NC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTQ1LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NDYuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00 Ny5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ4 LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDku Yw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01MC5j DQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUxLmMN CmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTIuYw0K Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01My5jDQpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU0LmMNCmNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTUuYw0KY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01Ni5jDQpjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU3LmMNCmNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTguYw0KY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01OS5jDQpjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYwLmMNCmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjEuYw0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Mi5jDQpjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYzLmMNCmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjQuYw0KY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02NS5jDQpjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY2LmMNCmNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjcuYw0KY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS02OC5jDQpjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWZybS1ydW4tNC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWZybS1ydW4tNS5jDQogDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCmlu ZGV4IGYxZjVhNzMzODllLi4zNGYyYzA1YjM0YiAxMDA2NDQNCi0tLSBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCisrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YuY2MNCkBAIC05MCw2ICs5MCwxMiBAQCBhbG9uZyB3aXRoIEdD Qzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQ0KLyogVHJ1 ZSBpZiBiaXQgQklUIGlzIHNldCBpbiBWQUxVRS4gICovDQojZGVmaW5lIEJJ VFNFVF9QKFZBTFVFLCBCSVQpICgoKFZBTFVFKSAmICgxVUxMIDw8IChCSVQp KSkgIT0gMCkNCisvKiBFeHRyYWN0IHRoZSBiYWNrdXAgZHluYW1pYyBmcm0g cnRsLiAgKi8NCisjZGVmaW5lIERZTkFNSUNfRlJNX1JUTChjKSAoKGMpLT5t YWNoaW5lLT5tb2RlX3N3X2luZm8uZHluYW1pY19mcm0pDQorDQorLyogVHJ1 ZSB0aGUgbW9kZSBzd2l0Y2hpbmcgaGFzIHN0YXRpYyBmcm0sIG9yIGZhbHNl LiAgKi8NCisjZGVmaW5lIFNUQVRJQ19GUk1fUChjKSAoKGMpLT5tYWNoaW5l LT5tb2RlX3N3X2luZm8uc3RhdGljX2ZybV9wKQ0KKw0KLyogSW5mb3JtYXRp b24gYWJvdXQgYSBmdW5jdGlvbidzIGZyYW1lIGxheW91dC4gICovDQpzdHJ1 Y3QgR1RZKCgpKSAgcmlzY3ZfZnJhbWVfaW5mbyB7DQogICAvKiBUaGUgc2l6 ZSBvZiB0aGUgZnJhbWUgaW4gYnl0ZXMuICAqLw0KQEAgLTEyNSw2ICsxMzEs MjIgQEAgZW51bSByaXNjdl9wcml2aWxlZ2VfbGV2ZWxzIHsNCiAgIFVOS05P V05fTU9ERSwgVVNFUl9NT0RFLCBTVVBFUlZJU09SX01PREUsIE1BQ0hJTkVf TU9ERQ0KfTsNCitzdHJ1Y3QgR1RZKCgpKSBtb2RlX3N3aXRjaGluZ19pbmZv IHsNCisgIC8qIFRoZSBSVEwgdmFyaWFibGUgd2hpY2ggc3RvcmVzIHRoZSBk eW5hbWljIEZSTSB2YWx1ZS4gIFdlIGFsd2F5cyB1c2UgdGhpcw0KKyAgICAg UlRYIHRvIHJlc3RvcmUgZHluYW1pYyBGUk0gcm91bmRpbmcgbW9kZSBpbiBt b2RlIHN3aXRjaGluZy4gICovDQorICBydHggZHluYW1pY19mcm07DQorDQor ICAvKiBUaGUgYm9vbGVhbiB2YXJpYWJsZXMgaW5kaWNhdGVzIHRoZXJlIGlz IGF0IGxlYXN0IG9uZSBzdGF0aWMgcm91bmRpbmcNCisgICAgIG1vZGUgaW5z dHJ1Y3Rpb24gaW4gdGhlIGZ1bmN0aW9uIG9yIG5vdC4gICovDQorICBib29s IHN0YXRpY19mcm1fcDsNCisNCisgIG1vZGVfc3dpdGNoaW5nX2luZm8gKCkN CisgICAgew0KKyAgICAgIGR5bmFtaWNfZnJtID0gTlVMTF9SVFg7DQorICAg ICAgc3RhdGljX2ZybV9wID0gZmFsc2U7DQorICAgIH0NCit9Ow0KKw0Kc3Ry dWN0IEdUWSgoKSkgIG1hY2hpbmVfZnVuY3Rpb24gew0KICAgLyogVGhlIG51 bWJlciBvZiBleHRyYSBzdGFjayBieXRlcyB0YWtlbiB1cCBieSByZWdpc3Rl ciB2YXJhcmdzLg0KICAgICAgVGhpcyBhcmVhIGlzIGFsbG9jYXRlZCBieSB0 aGUgY2FsbGVlIGF0IHRoZSB2ZXJ5IHRvcCBvZiB0aGUgZnJhbWUuICAqLw0K QEAgLTE0OCw5ICsxNzAsNyBAQCBzdHJ1Y3QgR1RZKCgpKSAgbWFjaGluZV9m dW5jdGlvbiB7DQogICAgICBub3QgYmUgY29uc2lkZXJlZCBieSB0aGUgcHJv bG9ndWUgYW5kIGVwaWxvZ3VlLiAgKi8NCiAgIGJvb2wgcmVnX2lzX3dyYXBw ZWRfc2VwYXJhdGVseVtGSVJTVF9QU0VVRE9fUkVHSVNURVJdOw0KLSAgLyog VGhlIFJUTCB2YXJpYWJsZSB3aGljaCBzdG9yZXMgdGhlIGR5bmFtaWMgRlJN IHZhbHVlLiAgV2UgYWx3YXlzIHVzZSB0aGlzDQotICAgICBSVFggdG8gcmVz dG9yZSBkeW5hbWljIEZSTSByb3VuZGluZyBtb2RlIGluIG1vZGUgc3dpdGNo aW5nLiAgKi8NCi0gIHJ0eCBkeW5hbWljX2ZybTsNCisgIHN0cnVjdCBtb2Rl X3N3aXRjaGluZ19pbmZvIG1vZGVfc3dfaW5mbzsNCn07DQovKiBJbmZvcm1h dGlvbiBhYm91dCBhIHNpbmdsZSBhcmd1bWVudC4gICovDQpAQCAtNzY5MCw5 ICs3NzEwLDEzIEBAIHJpc2N2X3N0YXRpY19mcm1fbW9kZV9wIChpbnQgbW9k ZSkNCnN0YXRpYyB2b2lkDQpyaXNjdl9lbWl0X2ZybV9tb2RlX3NldCAoaW50 IG1vZGUsIGludCBwcmV2X21vZGUpDQp7DQorICBydHggYmFja3VwX3JlZyA9 IERZTkFNSUNfRlJNX1JUTCAoY2Z1bik7DQorDQorICBpZiAocHJldl9tb2Rl ID09IEZSTV9NT0RFX0RZTl9DQUxMKQ0KKyAgICBlbWl0X2luc24gKGdlbl9m cnJtc2kgKGJhY2t1cF9yZWcpKTsgLyogQmFja3VwIGZybSB3aGVuIERZTl9D QUxMLiAgKi8NCisNCiAgIGlmIChtb2RlICE9IHByZXZfbW9kZSkNCiAgICAg ew0KLSAgICAgIHJ0eCBiYWNrdXBfcmVnID0gY2Z1bi0+bWFjaGluZS0+ZHlu YW1pY19mcm07DQogICAgICAgLyogVE9ETzogQnkgZGVzaWduLCBGUk1fTU9E RV94eHggdXNlZCBieSBtb2RlIHN3aXRjaCB3aGljaCBpcw0KZGlmZmVyZW50 IGZyb20gdGhlIEZSTSB2YWx1ZSBsaWtlIEZSTV9SVFogZGVmaW5lZCBpbg0K cmlzY3YtcHJvdG9zLmguICBXaGVuIG1vZGUgc3dpdGNoaW5nIHdlIGFjdHVh bGx5IG5lZWQgYSBjb252ZXJzaW9uDQpAQCAtNzcwMiw5ICs3NzI2LDEzIEBA IHJpc2N2X2VtaXRfZnJtX21vZGVfc2V0IChpbnQgbW9kZSwgaW50IHByZXZf bW9kZSkNCmFuZCB0aGVuIHdlIGxldmVyYWdlIHRoaXMgYXNzdW1wdGlvbiB3 aGVuIGVtaXQuICAqLw0KICAgICAgIHJ0eCBmcm0gPSBnZW5faW50X21vZGUg KG1vZGUsIFNJbW9kZSk7DQotICAgICAgaWYgKG1vZGUgPT0gRlJNX01PREVf RFlOX0VYSVQgJiYgcHJldl9tb2RlICE9IEZSTV9NT0RFX0RZTikNCisgICAg ICBpZiAobW9kZSA9PSBGUk1fTU9ERV9EWU5fQ0FMTCAmJiBwcmV2X21vZGUg IT0gRlJNX01PREVfRFlOKQ0KLyogTm8gbmVlZCB0byBlbWl0IHdoZW4gcHJl diBtb2RlIGlzIERZTiBhbHJlYWR5LiAgKi8NCi0gZW1pdF9pbnNuIChnZW5f ZnNybXNpX3Jlc3RvcmVfZXhpdCAoYmFja3VwX3JlZykpOw0KKyBlbWl0X2lu c24gKGdlbl9mc3Jtc2lfcmVzdG9yZV92b2xhdGlsZSAoYmFja3VwX3JlZykp Ow0KKyAgICAgIGVsc2UgaWYgKG1vZGUgPT0gRlJNX01PREVfRFlOX0VYSVQg JiYgU1RBVElDX0ZSTV9QIChjZnVuKQ0KKyAmJiBwcmV2X21vZGUgIT0gRlJN X01PREVfRFlOICYmIHByZXZfbW9kZSAhPSBGUk1fTU9ERV9EWU5fQ0FMTCkN CisgLyogTm8gbmVlZCB0byBlbWl0IHdoZW4gcHJldiBtb2RlIGlzIERZTiBv ciBEWU5fQ0FMTCBhbHJlYWR5LiAgKi8NCisgZW1pdF9pbnNuIChnZW5fZnNy bXNpX3Jlc3RvcmVfdm9sYXRpbGUgKGJhY2t1cF9yZWcpKTsNCiAgICAgICBl bHNlIGlmIChtb2RlID09IEZSTV9NT0RFX0RZTikNCi8qIFJlc3RvcmUgZnJt IHZhbHVlIGZyb20gYmFja3VwIHdoZW4gc3dpdGNoIHRvIERZTiBtb2RlLiAg Ki8NCmVtaXRfaW5zbiAoZ2VuX2Zzcm1zaV9yZXN0b3JlIChiYWNrdXBfcmVn KSk7DQpAQCAtNzczNCw2ICs3NzYyLDUzIEBAIHJpc2N2X2VtaXRfbW9kZV9z ZXQgKGludCBlbnRpdHksIGludCBtb2RlLCBpbnQgcHJldl9tb2RlLA0KICAg ICB9DQp9DQorLyogUmV0dXJuIG1vZGUgdGhhdCBmcm0gbXVzdCBiZSBzd2l0 Y2hlZCBpbnRvDQorICAgcHJpb3IgdG8gdGhlIGV4ZWN1dGlvbiBvZiBpbnNu LiAgKi8NCisNCitzdGF0aWMgaW50DQorcmlzY3ZfZnJtX21vZGVfbmVlZGVk IChydHhfaW5zbiAqY3VyX2luc24sIGludCBjb2RlKQ0KK3sNCisgIGlmIChD QUxMX1AgKGN1cl9pbnNuKSkNCisgICAgcmV0dXJuIEZSTV9NT0RFX0RZTl9D QUxMOw0KKw0KKyAgaW50IG1vZGUgPSBjb2RlID49IDAgPyBnZXRfYXR0cl9m cm1fbW9kZSAoY3VyX2luc24pIDogRlJNX01PREVfTk9ORTsNCisNCisgIGlm IChtb2RlID09IEZSTV9NT0RFX05PTkUpDQorICAgIHsNCisgICAgICAvKiBB ZnRlciBtZWV0IGEgY2FsbCwgd2UgbmVlZCB0byBiYWNrdXAgdGhlIGZybSBi ZWNhdXNlIGl0IG1heSBiZQ0KKyB1cGRhdGVkIGR1cmluZyB0aGUgY2FsbC4g SGVyZSwgZm9yIGVhY2ggaW5zbiwgd2Ugd2lsbCBjaGVjayBpZg0KKyB0aGUg cHJldmlvdXMgaW5zbiBpcyBhIGNhbGwgb3Igbm90LiBXaGVuIHByZXZpb3Vz IGluc24gaXMgY2FsbCwNCisgdGhlcmUgd2lsbCBiZSAyIGNhc2VzIGZvciB0 aGUgZW1pdCBtb2RlIHNldC4NCisNCisgMS4gQ3VycmVudCBpbnNuIGlzIG5v dCBNT0RFX05PTkUsIHRoZW4gdGhlIG1vZGUgc3dpdGNoIGZyYW1ld29yaw0K KyAgICAgd2lsbCBkbyB0aGUgbW9kZSBzd2l0Y2ggZnJvbSBNT0RFX0NBTEwg dG8gTU9ERV9OT05fTk9ORSBuYXRpdmVseS4NCisgMi4gQ3VycmVudCBpbnNu IGlzIE1PREVfTk9ORSwgd2UgbmVlZCB0byBhZGp1c3QgdGhlIE1PREVfTk9O RSB0bw0KKyAgICAgdGhlIE1PREVfRFlOLCBhbmQgbGVhdmUgdGhlIG1vZGUg c3dpdGNoIGl0c2VsZiB0byBwZXJmb3JtDQorICAgICB0aGUgZW1pdCBtb2Rl IHNldC4NCisNCisgVE9ETzogdGhpcyBjYW5ub3QgaGFuZGxlIG9uZSBjYXNl IGlmIHRoZXJlIGlzIG5vIGluc3RydWN0aW9uDQorIGFmdGVyIGEgY2FsbCwg d2Ugd2lsbCB0YWtlIGNhcmUgb2YgaXQgc29vbi4NCisgICAgICAgKi8NCisg ICAgICBydHhfaW5zbiAqaW5zbjsNCisgICAgICBiYXNpY19ibG9jayBiYiA9 IEJMT0NLX0ZPUl9JTlNOIChjdXJfaW5zbik7DQorDQorICAgICAgZm9yIChp bnNuID0gUFJFVl9JTlNOIChjdXJfaW5zbik7IGluc247IGluc24gPSBQUkVW X0lOU04gKGluc24pKQ0KKyB7DQorICAgaWYgKElOU05fUCAoaW5zbikpDQor ICAgICB7DQorICAgICAgIGlmIChDQUxMX1AgKGluc24pKQ0KKyBtb2RlID0g RlJNX01PREVfRFlOOw0KKyAgICAgICBicmVhazsNCisgICAgIH0NCisNCisg ICBpZiAoaW5zbiA9PSBQUkVWX0lOU04gKEJCX0hFQUQgKGJiKSkpDQorICAg ICBicmVhazsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4gbW9kZTsNCit9 DQorDQovKiBSZXR1cm4gbW9kZSB0aGF0IGVudGl0eSBtdXN0IGJlIHN3aXRj aGVkIGludG8NCiAgICBwcmlvciB0byB0aGUgZXhlY3V0aW9uIG9mIGluc24u ICAqLw0KQEAgLTc3NDcsNyArNzgyMiw3IEBAIHJpc2N2X21vZGVfbmVlZGVk IChpbnQgZW50aXR5LCBydHhfaW5zbiAqaW5zbikNCiAgICAgY2FzZSBSSVND Vl9WWFJNOg0KICAgICAgIHJldHVybiBjb2RlID49IDAgPyBnZXRfYXR0cl92 eHJtX21vZGUgKGluc24pIDogVlhSTV9NT0RFX05PTkU7DQogICAgIGNhc2Ug UklTQ1ZfRlJNOg0KLSAgICAgIHJldHVybiBjb2RlID49IDAgPyBnZXRfYXR0 cl9mcm1fbW9kZSAoaW5zbikgOiBGUk1fTU9ERV9OT05FOw0KKyAgICAgIHJl dHVybiByaXNjdl9mcm1fbW9kZV9uZWVkZWQgKGluc24sIGNvZGUpOw0KICAg ICBkZWZhdWx0Og0KICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCiAgICAg fQ0KQEAgLTc4MjQsNiArNzg5OSwxMSBAQCByaXNjdl92eHJtX21vZGVfYWZ0 ZXIgKHJ0eF9pbnNuICppbnNuLCBpbnQgbW9kZSkNCnN0YXRpYyBpbnQNCnJp c2N2X2ZybV9tb2RlX2FmdGVyIChydHhfaW5zbiAqaW5zbiwgaW50IG1vZGUp DQp7DQorICBTVEFUSUNfRlJNX1AgKGNmdW4pID0gU1RBVElDX0ZSTV9QIChj ZnVuKSB8fCByaXNjdl9zdGF0aWNfZnJtX21vZGVfcCAobW9kZSk7DQorDQor ICBpZiAoQ0FMTF9QIChpbnNuKSkNCisgICAgcmV0dXJuIEZSTV9NT0RFX0RZ Tl9DQUxMOw0KKw0KICAgaWYgKGZybV91bmtub3duX2R5bmFtaWNfcCAoaW5z bikpDQogICAgIHJldHVybiBGUk1fTU9ERV9EWU47DQpAQCAtNzg2NCwxMCAr Nzk0NCwxMCBAQCByaXNjdl9tb2RlX2VudHJ5IChpbnQgZW50aXR5KQ0KICAg ICAgIHJldHVybiBWWFJNX01PREVfTk9ORTsNCiAgICAgY2FzZSBSSVNDVl9G Uk06DQogICAgICAgew0KLSBpZiAoIWNmdW4tPm1hY2hpbmUtPmR5bmFtaWNf ZnJtKQ0KKyBpZiAoIURZTkFNSUNfRlJNX1JUTChjZnVuKSkNCiAgew0KLSAg ICAgY2Z1bi0+bWFjaGluZS0+ZHluYW1pY19mcm0gPSBnZW5fcmVnX3J0eCAo U0ltb2RlKTsNCi0gICAgIGVtaXRfaW5zbl9hdF9lbnRyeSAoZ2VuX2Zycm1z aSAoY2Z1bi0+bWFjaGluZS0+ZHluYW1pY19mcm0pKTsNCisgICAgIERZTkFN SUNfRlJNX1JUTCAoY2Z1bikgPSBnZW5fcmVnX3J0eCAoU0ltb2RlKTsNCisg ICAgIGVtaXRfaW5zbl9hdF9lbnRyeSAoZ2VuX2Zycm1zaSAoRFlOQU1JQ19G Uk1fUlRMIChjZnVuKSkpOw0KICB9DQogIC8qIEFjY29yZGluZyB0byBSVlYg MS4wIHNwZWMsIGFsbCB2ZWN0b3IgZmxvYXRpbmctcG9pbnQgb3BlcmF0aW9u cyB1c2UNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci5t ZCBiL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLm1kDQppbmRleCAyMTVlY2I5 Y2I1OC4uOGIzNTRlNTkzY2UgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jp c2N2L3ZlY3Rvci5tZA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi92ZWN0b3Iu bWQNCkBAIC00NzUsNyArNDc1LDcgQEAgKGRlZmluZV9hdHRyICJ2eHJtX21v ZGUiICJybnUscm5lLHJkbixyb2Qsbm9uZSINCikNCjs7IERlZmluZXMgcm91 bmRpbmcgbW9kZSBvZiBhbiBmbG9hdGluZy1wb2ludCBvcGVyYXRpb24uDQot KGRlZmluZV9hdHRyICJmcm1fbW9kZSIgInJuZSxydHoscmRuLHJ1cCxybW0s ZHluLGR5bl9leGl0LG5vbmUiDQorKGRlZmluZV9hdHRyICJmcm1fbW9kZSIg InJuZSxydHoscmRuLHJ1cCxybW0sZHluLGR5bl9leGl0LGR5bl9jYWxsLG5v bmUiDQogICAoY29uZA0KICAgICBbDQogICAgICAgKGVxX2F0dHIgInR5cGUi ICJ2ZmFsdSIpDQpAQCAtNjEwLDcgKzYxMCw3IEBAIChkZWZpbmVfaW5zbiAi ZnNybXNpX3Jlc3RvcmUiDQo7OyBUaGUgdm9sYXRpbGUgZnNybXNpIHJlc3Rv cmUgaXMgdXNlZCBmb3IgdGhlIGV4aXQgcG9pbnQgZm9yIHRoZQ0KOzsgZHlu YW1pYyBtb2RlIHN3aXRjaGluZy4gSXQgd2lsbCBnZW5lcmF0ZSBvbmUgdm9s YXRpbGUgZnNybSBhNQ0KOzsgd2hpY2ggd29uJ3QgYmUgZWxpbWluYXRlZC4N Ci0oZGVmaW5lX2luc24gImZzcm1zaV9yZXN0b3JlX2V4aXQiDQorKGRlZmlu ZV9pbnNuICJmc3Jtc2lfcmVzdG9yZV92b2xhdGlsZSINCiAgIFsoc2V0IChy ZWc6U0kgRlJNX1JFR05VTSkNCih1bnNwZWNfdm9sYXRpbGU6U0kgWyhtYXRj aF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIildDQogICAg VU5TUEVDVl9GUk1fUkVTVE9SRV9FWElUKSldDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTMzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzMu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi40 YmQ1MjBlYTJhZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTMzLmMNCkBAIC0wLDAgKzEsMzEgQEANCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3Yg LW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRyaWJ1dGVfXyAo KG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2bCkNCit7DQor ICBpZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsNCisNCisgIHJl dHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFf dA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFf dCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2 ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsN CisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMiwgdmwpOw0K Kw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNd WzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytb MDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM0LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMzQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi42YzdjZjdlZjY5Yw0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM0LmMNCkBAIC0wLDAgKzEs MzIgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitz aXplX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVf dmwgKHNpemVfdCB2bCkNCit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAg IHJldHVybiB2bDsNCisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7 DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHlu YW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIs IHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3Ax Ow0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo cmVzdWx0LCBvcDIsIDQsIHZsKTsNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7DQorDQorICB2 bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0KKyAgcmV0dXJuIHZsID4gMTI4 ID8gcmVzdWx0IDogb3AyOw0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMq dlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05 XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05 XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8N CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzUuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS0zNS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMDAwMDAuLmI3ZjVhNjkxOWY0DQotLS0gL2Rldi9udWxsDQor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzUuYw0KQEAgLTAsMCArMSwzMiBA QA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9 ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVf dCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAo c2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0 dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9 DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWlj X2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6 ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQor DQorICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0KKyAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZs KTsNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9w MSwgcmVzdWx0LCAyLCB2bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30N CisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zm YWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05 XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIz NF19IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVsw LTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tMzYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNi5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjQ0ODVj ZWEyNGQ5DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tMzYuYw0KQEAgLTAsMCArMSwyOSBAQA0KKy8qIHsgZGctZG8gY29tcGls ZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFi aT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJp c2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9p bmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlm ICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJu ICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQor dGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9w MSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9h dDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBpZiAodmwgJSA0ICE9IDAp DQorICAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQorICByZXR1cm4g dmwgPiAxNiA/IHJlc3VsdCA6IG9wMjsNCit9DQorDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxc cypbMDEyMzRdfSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItbm90IHtmc3JtaVxzK1swMTIzNF19IH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1ccytbYXhzXVswLTld K30gfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5v dCB7ZnJybVxzK1theHNdWzAtOV0rfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMzcuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0z Ny5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAu LmExZmNhMWEyYTNmDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzcuYw0KQEAgLTAsMCArMSwzNiBAQA0KKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdj diAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1 ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9f ICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sN CisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAg cmV0dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJt MV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJt MV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICAgaW50IGNvdW50 LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MTsNCisNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisg ICAgew0KKyAgICAgIGlmIChpICUgMiA9PSAwKQ0KKyAgICAgICAgcmVzdWx0 ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQs IHZsKTsNCisgICAgICBlbHNlDQorICAgICAgICB2bCA9IG5vcm1hbGl6ZV92 bCAodmwpOw0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRk XC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9 IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05 XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTld KyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zOC5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjhkNTljYWU5 YTg3DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t MzguYw0KQEAgLTAsMCArMSwzNCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1s cDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2 X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxp bmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2 bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgo dmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQordGVz dF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwg dmZsb2F0MzJtMV90IG9wMiwNCisgICAgICAgaW50IGNvdW50LCBzaXplX3Qg dmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisg IGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAg ICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3Vs dCwgb3AyLCA0LCB2bCk7DQorICAgICAgdmwgPSBub3JtYWxpemVfdmwgKHZs KTsNCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2 Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAxIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAx IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMq WzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTM5LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzkuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4wNGM1NDg3NzM5Mw0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM5LmMN CkBAIC0wLDAgKzEsMzYgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAt TzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0 b3IuaCINCisNCitzaXplX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkN Citub3JtYWxpemVfdmwgKHNpemVfdCB2bCkNCit7DQorICBpZiAodmwgJSA0 ID09IDApDQorICAgIHJldHVybiB2bDsNCisNCisgIHJldHVybiAoKHZsIC8g NCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxv YXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9h dDMybTFfdCBvcDIsDQorICAgICAgIGludCBjb3VudCwgc2l6ZV90IHZsKQ0K K3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3Ig KGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9w MiwgNCwgdmwpOw0KKw0KKyAgICAgIGlmICh2bCAlIDggIT0gMCkNCisgICAg ICAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorICAgIH0NCisNCisgIHJl dHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAt OV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30g MiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0g MSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MC5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTQwLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwMC4uNDljZjUyZjczOWINCi0tLSAvZGV2L251bGwNCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS00MC5jDQpAQCAtMCwwICsxLDM0IEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8N CisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorc2l6ZV90IF9f YXR0cmlidXRlX18gKChub2lubGluZSkpDQorbm9ybWFsaXplX3ZsIChzaXpl X3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICByZXR1cm4g dmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0Ow0KK30NCisN Cit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJt ICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qg dmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwg b3AyLCA0LCB2bCk7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0K KyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7 DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05 XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4 c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4 c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9 IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDEuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS00MS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMDAwMDAuLjc5ZWY1NWIyYzlmDQotLS0gL2Rldi9u dWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDEuYw0KQEAgLTAsMCAr MSwzNyBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1v cHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBz YWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0K K3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6 ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisg ICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwgLyA0KSArIDEpICog NDsNCit9DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9k eW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9w Miwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBv cDE7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKw0KKyAgdmwgPSBub3JtYWxpemVf dmwgKHZsKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorDQorICB2bCA9IG5vcm1h bGl6ZV92bCAodmwpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDQsIHZsKTsNCisNCisgIHJldHVy biByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0r LFxzKltmYXZdK1swLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zzcm1pXHMrWzAxMjM0XX0gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMyB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtm c3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Mi5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTQyLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwMDAwMC4uZDJhMTdhZDcxNWYNCi0tLSAvZGV2L251bGwNCisrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00Mi5jDQpAQCAtMCwwICsxLDM3IEBADQorLyog eyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJj aD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisN CisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorc2l6ZV90IF9fYXR0 cmlidXRlX18gKChub2lubGluZSkpDQorbm9ybWFsaXplX3ZsIChzaXplX3Qg dmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICByZXR1cm4gdmw7 DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0Ow0KK30NCisNCit2 ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2 ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgdmwp DQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3Ay LCA0LCB2bCk7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0K KyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBv cDIsIHZsKTsNCisNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQor ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJl c3VsdCwgMiwgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwu dlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAz IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAy IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSss XHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTQzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDMuYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi41MGUxZGEyYzNj MQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQz LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2 NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5l KSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2bCkNCit7DQorICBpZiAodmwg JSA0ID09IDApDQorICAgIHJldHVybiB2bDsNCisNCisgIHJldHVybiAoKHZs IC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3Rf ZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZm bG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0x X3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisNCisgIHZs ID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQorICBpZiAodmwgJSAxNiA9PSAw KQ0KKyAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChy ZXN1bHQsIG9wMiwgMSwgdmwpOw0KKw0KKyAgdmwgPSBub3JtYWxpemVfdmwg KHZsKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEg KG9wMSwgcmVzdWx0LCB2bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30N CisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zm YWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05 XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIz NF19IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVsw LTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tNDQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00NC5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmE2NmNh ODkzMDhiDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNDQuYw0KQEAgLTAsMCArMSw0MCBAQA0KKy8qIHsgZGctZG8gY29tcGls ZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFi aT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJp c2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9p bmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlm ICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJu ICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQor dGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9w MSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9h dDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2 X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKw0K KyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIGlmICh2bCAlIDE2 ID09IDApDQorICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFf cm0gKHJlc3VsdCwgb3AyLCAxLCB2bCk7DQorDQorDQorICBpZiAodmwgJSA3 ICE9IDApDQorICAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQorICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwg dmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2 WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAzIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxz K1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxz K1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0 XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ1 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDUuYw0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5kOWMxZWYyOTQ1MA0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ1LmMNCkBAIC0w LDAgKzEsMzUgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsg ZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVdu by1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIN CisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKTsN CisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNf ZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAg ICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0 MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9 IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAz ID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyAgIHZsID0gbm9ybWFs aXplX3ZsICh2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICByZXN1 bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwp Ow0KKyAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorIH0NCisgICAgfQ0K Kw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNd WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNd WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ2LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNDYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi5iOTkwZmI0MzRmOA0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ2LmMNCkBAIC0wLDAgKzEs MzUgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitl eHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKTsNCisNCit2 ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2 ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVu c2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90 IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg PCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDAp DQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3Zs ICh2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMywgdmwp Ow0KKyAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorIH0NCisgICAgfQ0K Kw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNd WzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNd WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ3LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNDcuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi4yYzM0ODFiOTgwZQ0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ3LmMNCkBAIC0wLDAgKzEs MzYgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitl eHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4 dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQor dmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1 bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp IDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAw KQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo cmVzdWx0LCBvcDIsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2 bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyAgIHZs ID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgfQ0KKyAgICB9DQorDQorICBy ZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlsw LTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9 IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTld KyxccypbMDEyMzRdfSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItbm90IHtmc3JtaVxzK1swMTIzNF19IH0gfSAqLw0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00OC5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTQ4LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwMDAwMC4uNGFlYWUyZWUwY2YNCi0tLSAvZGV2L251bGwNCisrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00OC5jDQpAQCAtMCwwICsxLDM2IEBADQorLyog eyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJj aD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisN CisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVf dCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90 IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFf dA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFf dCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291 bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0g b3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBp KyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0 LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyB9DQor ICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDEsIHZsKTsNCisgICB2bCA9IG5v cm1hbGl6ZV92bF8yICh2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJu IHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSss XHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zz cm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ5LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNDkuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi4zNTBiZDQ5MjRlYg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQ5LmMNCkBAIC0wLDAgKzEsMzYgQEANCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0K KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90 IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90 DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90 IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3Vu dCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBv cDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkr KykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAg dmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQor IH0NCisgICAgICBlbHNlDQorIHsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8y ICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo b3AxLCByZXN1bHQsIHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4g cmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxc cypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDQgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNy bWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTAuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS01MC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLjIzZjcyNjY0NDI2DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNTAuYw0KQEAgLTAsMCArMSwzNiBAQA0KKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9 cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQor I2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBu b3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QN Cit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qg b3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50 LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsr KQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICB2 bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisg fQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIg KHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChvcDEsIHJlc3VsdCwgMywgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJl dHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAt OV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30g MyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30g MyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01MS5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTUxLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwMC4uODczN2FiOTMwYWENCi0tLSAvZGV2L251bGwNCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS01MS5jDQpAQCAtMCwwICsxLDM2IEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8N CisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNp emVfdCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6 ZV90IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMy bTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMy bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQg Y291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0 ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50 OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0K KyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyB9 DQorICAgICAgZWxzZQ0KKyB7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAo dmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9w MSwgcmVzdWx0LCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJl c3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMq W2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNy bVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAx MjM0XX0gfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCB7ZnNybWlccytbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01 Mi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAu LmE3M2Q0MTQ4NjZiDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNTIuYw0KQEAgLTAsMCArMSwzNiBAQA0KKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdj diAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1 ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFs aXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxp emVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0 X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2 ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXpl X3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisN CisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAg ICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICB2bCA9IG5v cm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0KKyAgICAgIGVs c2UNCisgew0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9w MiwgMSwgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7 DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZd K1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMr WzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gNCB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1th eHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS01My5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUz LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u NTEwMjEwYjRmNWENCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01My5jDQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxp emVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6 ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3Rf ZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZm bG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVf dCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0K KyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAg IHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQor ICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorIH0N CisgICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyAgIHZsID0gbm9ybWFs aXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyB9DQorICAgIH0NCisNCisg IHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2 WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTld K30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1swMTIzNF19 IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU0LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNTQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwLi41MmM5OTAzOTU2NA0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTU0LmMNCkBAIC0wLDAgKzEsMzggQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0K Kw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6 ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXpl X3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJt MV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJt MV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBj b3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQg PSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7 IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQor ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1 bHQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQs IHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorICAg dmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQor IH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2 Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA1 IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMq WzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTU1LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTUuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5hNzBmYzE5YjVjNw0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU1LmMN CkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAt TzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0 b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXpl X3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVf dCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9k eW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9w MiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisg IHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2ln bmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlm IChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgICB2bCA9IG5vcm1h bGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UN Cisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0g KHJlc3VsdCwgb3AyLCAxLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxf MiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEg KHJlc3VsdCwgb3AyLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJu IHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSss XHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zz cm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU2LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNTYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi44MDNlYzgwYjVkZQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTU2LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0K KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90 IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90 DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90 IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3Vu dCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBv cDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkr KykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQs IHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVz dWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZs KTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAxLCB2bCk7DQor ICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7 DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwu dlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0 IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0r fSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSss XHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTU3LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTcuYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi44NDZhZWNlNDMw Nw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU3 LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2 NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChz aXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNp emVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2lu dF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90 IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sN CisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVu c2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAg IGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92 ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgICB2bCA9IG5v cm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisgfQ0KKyAg ICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVf dmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0 dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAz IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybVxzK1theHNdWzAtOV0rfSA1IH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAx IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU4LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNTguYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwLi5jNWY5NmJjNDVjMA0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTU4LmMNCkBAIC0wLDAgKzEsMzggQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0K Kw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6 ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXpl X3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJt MV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJt MV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBj b3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQg PSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7 IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQor ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1 bHQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1 bHQsIDIsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7 DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAxLCB2 bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQor DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFk ZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0r fSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAt OV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05 XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTU5LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTkuYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4wNmM3ZmNm MWI4OQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTU5LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9 bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8x IChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIg KHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9w b2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJt MV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0K K3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3Ig KHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAg ICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgICB2bCA9 IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92 ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisgfQ0K KyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQorICAgdmwgPSBu b3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0NCisgICAgfQ0K Kw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNd WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytb MDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYwLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNjAuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi5hZDNhN2Y4MWE2OQ0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYwLmMNCkBAIC0wLDAgKzEs MzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitl eHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4 dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQor dmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1 bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp IDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAw KQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo b3AxLCByZXN1bHQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2 bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo b3AxLCByZXN1bHQsIDIsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0K KyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3Vs dCwgb3AyLCAzLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwp Ow0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJl c3VsdCwgb3AyLCA0LCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJu IHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSss XHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zz cm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYxLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNjEuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi4wYWU5YzY3Y2U4Ng0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTYxLmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0K KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90 IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90 DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90 IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3Vu dCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBv cDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkr KykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1 bHQsIDEsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQor ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1 bHQsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQor ICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0N CisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1c cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJy bVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAx MjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTYyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjIuYw0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4xZGQ1YTYzYjM4MQ0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYyLmMNCkBA IC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMg LVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3Qg dmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2 bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5h bWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwN CisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZm bG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVk IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChp ICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDEsIHZsKTsNCisgICB2bCA9IG5v cm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0KKyAgICAgIGVs c2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEg KHJlc3VsdCwgb3AyLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAo dmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0g KHJlc3VsdCwgb3AyLCAyLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0 dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAz IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAy IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYzLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNjMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwLi5mNzMzODNmYzI3OQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTYzLmMNCkBAIC0wLDAgKzEsMzggQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0K Kw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6 ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXpl X3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJt MV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJt MV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBj b3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQg PSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7 IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQor ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCBy ZXN1bHQsIDEsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7 DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCBy ZXN1bHQsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAz LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2 bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQor DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFk ZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0r fSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAt OV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05 XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTY0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjQuYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5lZDZmMjJj NDFkMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTY0LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9 bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8x IChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIg KHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9w b2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJt MV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0K K3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3Ig KHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAg ICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDEsIHZsKTsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0K KyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQorICAgdmwgPSBu b3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorIH0NCisg ICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2 WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxz K1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNy bWlccytbMDEyMzRdfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0 XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY1 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjUuYw0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4zZTQzYWVjZDkxMw0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY1LmMNCkBAIC0w LDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsg ZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVdu by1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIN CisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3Qgdmwp Ow0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7 DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWlj X2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisg ICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9h dDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkg PSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUg MyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9m MzJtMV9ybSAob3AxLCByZXN1bHQsIDEsIHZsKTsNCisgICB2bCA9IG5vcm1h bGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisgfQ0KKyAgICAg IGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxf MiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEg KHJlc3VsdCwgb3AyLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJu IHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSss XHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zz cm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY2LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNjYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi5lYTk5ODMxZjMxZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTY2LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0K KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90 IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90 DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90 IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3Vu dCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBv cDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkr KykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1 bHQsIDEsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQor ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCBy ZXN1bHQsIDIsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2 bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0 LCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9 DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAt OV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNd WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAzIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11b MC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTY3LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjcuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4zNDQ3 MDFmM2NiNQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTY3LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1h Ymk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJy aXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92 bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3Zs XzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9h dF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0 MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZs KQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBm b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0K KyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDEsIHZsKTsN CisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZs KTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQor ICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0N CisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1c cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJy bVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybWlccytbMDEyMzRdfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAx MjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTY4LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjguYw0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4xZGJmNmRiYTIwOA0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY4LmMNCkBA IC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMg LVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3Qg dmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2 bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5h bWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwN CisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZm bG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVk IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChp ICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDEsIHZsKTsNCisgICB2bCA9IG5v cm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisgfQ0KKyAg ICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQorICAgdmwgPSBub3Jt YWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorIH0NCisgICAg fQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAt OV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1th eHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlc cytbMDEyMzRdfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0g fSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtNy5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWZybS1pbnNlcnQtNy5jDQppbmRleCAxMmRiMTEyZGQwYi4uNmRl OWQwNmI4NzUgMTAwNjQ0DQotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC03LmMN CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTcuYw0KQEAgLTI2LDYgKzI2LDcg QEAgdGVzdF9mbG9hdF9wb2ludF9mcm1fc3RhdGljIChmbG9hdCAqb3V0LCB2 ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KfQ0KLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1c cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAq Lw0KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNy bVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KLS8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAxIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAy IH0gfSAqLw0KLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypb MDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi00 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZnJtLXJ1bi00LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMC4uNTc5NmFhNTNhNzMNCi0tLSAvZGV2L251 bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTQuYw0KQEAgLTAsMCArMSw4MiBA QA0KKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsgcmlzY3ZfdmVjdG9yIH0g fSB9ICovDQorLyogeyBkZy1vcHRpb25zICItTzMgLVduby1wc2FiaSIgfSAq Lw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisjaW5jbHVkZSA8 c3RkaW8uaD4NCisjaW5jbHVkZSA8c3RkaW50LWdjYy5oPg0KKw0KKyNkZWZp bmUgT1JJR0lOQUxfRlJNIDENCisNCitzdGF0aWMgaW50DQorZ2V0X2ZybSAo KQ0KK3sNCisgIGludCBmcm0gPSAtMTsNCisNCisgIF9fYXNtX18gdm9sYXRp bGUgKA0KKyAgICAiZnJybSAlMCINCisgICAgOiI9ciIoZnJtKQ0KKyAgICA6 DQorICAgIDoNCisgICk7DQorDQorICByZXR1cm4gZnJtOw0KK30NCisNCitz dGF0aWMgdm9pZA0KK3NldF9mcm0gKGludCBmcm0pDQorew0KKyAgX19hc21f XyB2b2xhdGlsZSAoDQorICAgICJmc3JtICUwIg0KKyAgICA6DQorICAgIDoi ciIoZnJtKQ0KKyAgICA6DQorICApOw0KK30NCisNCitzdGF0aWMgaW5saW5l IHZvaWQNCithc3NlcnRfZXF1YWwgKGludCBhLCBpbnQgYiwgY2hhciAqbWVz c2FnZSkNCit7DQorICBpZiAoYSAhPSBiKQ0KKyAgICB7DQorICAgICAgZnBy aW50ZiAoc3Rkb3V0LCAiJXMsIGJ1dCBnZXQgJWQgIT0gJWRcbiIsIG1lc3Nh Z2UsIGEsIGIpOw0KKyAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCisgICAg fQ0KK30NCisNCit2ZmxvYXQzMm0xX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5s aW5lKSkNCitvdGhlcl9mdW5jdGlvbiAodmZsb2F0MzJtMV90IG9wMSwgdmZs b2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDI7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKw0KKyAgYXNzZXJ0X2Vx dWFsIChPUklHSU5BTF9GUk0sIGdldF9mcm0gKCksDQorICJUaGUgdmFsdWUg b2YgZnJtIHJlZ2lzdGVyIHNob3VsZCBiZSBPUklHSU5BTF9GUk0uIik7DQor DQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCit2ZmxvYXQzMm0xX3QgX19h dHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCit0ZXN0X2Zsb2F0X3BvaW50X2Zy bV9ydW4gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNp emVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0ge307DQor DQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEs IHJlc3VsdCwgNCwgdmwpOw0KKw0KKyAgYXNzZXJ0X2VxdWFsICg0LCBnZXRf ZnJtICgpLCAiVGhlIHZhbHVlIG9mIGZybSByZWdpc3RlciBzaG91bGQgYmUg NC4iKTsNCisNCisgIHJldHVybiBvdGhlcl9mdW5jdGlvbiAocmVzdWx0LCBv cDIsIHZsKTsNCit9DQorDQoraW50DQorbWFpbiAoKQ0KK3sNCisgIHNpemVf dCB2bCA9IDg7DQorICB2ZmxvYXQzMm0xX3Qgb3AxID0ge307DQorICB2Zmxv YXQzMm0xX3Qgb3AyID0ge307DQorDQorICBzZXRfZnJtIChPUklHSU5BTF9G Uk0pOw0KKyAgdGVzdF9mbG9hdF9wb2ludF9mcm1fcnVuIChvcDEsIG9wMiwg dmwpOw0KKw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1mcm0tcnVuLTUuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTUuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4yMDhhNjVmY2QzYQ0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNS5jDQpAQCAt MCwwICsxLDgzIEBADQorLyogeyBkZy1kbyBydW4geyB0YXJnZXQgeyByaXNj dl92ZWN0b3IgfSB9IH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1PMyAtV25v LXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K KyNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxzdGRpbnQtZ2NjLmg+ DQorDQorI2RlZmluZSBPUklHSU5BTF9GUk0gMQ0KKyNkZWZpbmUgTkVXX0ZS TSA0DQorDQorc3RhdGljIGludA0KK2dldF9mcm0gKCkNCit7DQorICBpbnQg ZnJtID0gLTE7DQorDQorICBfX2FzbV9fIHZvbGF0aWxlICgNCisgICAgImZy cm0gJTAiDQorICAgIDoiPXIiKGZybSkNCisgICAgOg0KKyAgICA6DQorICAp Ow0KKw0KKyAgcmV0dXJuIGZybTsNCit9DQorDQorc3RhdGljIHZvaWQNCitz ZXRfZnJtIChpbnQgZnJtKQ0KK3sNCisgIF9fYXNtX18gdm9sYXRpbGUgKA0K KyAgICAiZnNybSAlMCINCisgICAgOg0KKyAgICA6InIiKGZybSkNCisgICAg Og0KKyAgKTsNCit9DQorDQorc3RhdGljIGlubGluZSB2b2lkDQorYXNzZXJ0 X2VxdWFsIChpbnQgYSwgaW50IGIsIGNoYXIgKm1lc3NhZ2UpDQorew0KKyAg aWYgKGEgIT0gYikNCisgICAgew0KKyAgICAgIGZwcmludGYgKHN0ZG91dCwg IiVzLCBidXQgZ2V0ICVkICE9ICVkXG4iLCBtZXNzYWdlLCBhLCBiKTsNCisg ICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7DQorICAgIH0NCit9DQorDQordm9p ZCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK290aGVyX2Z1bmN0aW9u ICgpDQorew0KKyAgc2V0X2ZybSAoTkVXX0ZSTSk7DQorfQ0KKw0KK3ZmbG9h dDMybTFfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK3Rlc3RfZmxv YXRfcG9pbnRfZnJtX3J1biAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJt MV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1 bHQgPSB7fTsNCisNCisgIG90aGVyX2Z1bmN0aW9uICgpOw0KKyAgYXNzZXJ0 X2VxdWFsIChORVdfRlJNLCBnZXRfZnJtICgpLA0KKyAiVGhlIHZhbHVlIG9m IGZybSByZWdpc3RlciBzaG91bGQgYmUgTkVXX0ZSTS4iKTsNCisNCisgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0 LCAyLCB2bCk7DQorICBhc3NlcnRfZXF1YWwgKDIsIGdldF9mcm0gKCksICJU aGUgdmFsdWUgb2YgZnJtIHJlZ2lzdGVyIHNob3VsZCBiZSAyLiIpOw0KKw0K KyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1 bHQsIHZsKTsNCisgIGFzc2VydF9lcXVhbCAoTkVXX0ZSTSwgZ2V0X2ZybSAo KSwNCisgIlRoZSB2YWx1ZSBvZiBmcm0gcmVnaXN0ZXIgc2hvdWxkIGJlIE5F V19GUk0uIik7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCitpbnQN CittYWluICgpDQorew0KKyAgc2l6ZV90IHZsID0gODsNCisgIHZmbG9hdDMy bTFfdCBvcDEgPSB7fTsNCisgIHZmbG9hdDMybTFfdCBvcDIgPSB7fTsNCisN CisgIHNldF9mcm0gKE9SSUdJTkFMX0ZSTSk7DQorICB0ZXN0X2Zsb2F0X3Bv aW50X2ZybV9ydW4gKG9wMSwgb3AyLCB2bCk7DQorDQorICByZXR1cm4gMDsN Cit9DQotLSANCjIuMzQuMQ0KIA0KIA0K ------=_001_NextPart848047222351_=------