From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) by sourceware.org (Postfix) with ESMTPS id 86B2C3858C62 for ; Mon, 24 Jul 2023 00:54:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 86B2C3858C62 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: bizesmtp79t1690160036tqq8mu0y Received: from LAPTOP-EPITNQBU ( [61.141.253.237]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 24 Jul 2023 08:53:55 +0800 (CST) X-QQ-SSF: 01400000000000G0U000000A0000000 X-QQ-FEAT: Mxc3K7F63kw7N4WzRmdvXdn1NZomBD0lOmcqsHVR/z2KIfoOU4vq+Cx1ht54a ElaSgqufyPqHUGC9r79/vb9yRqfxhqG4gxCnL8CgAMh50FHtKEmmyO+GfKn0YNkRtGavLJE ugk4bWt62OHWqPPMC/AU8NoJVyqDcF2iCiuYo70WOsEpexbk62YvPHHaXHn2zyaOHCMosAq 595mVraanbhC584lOpqxmSqVml0lBZRdksEot56wB418IOv1wPv5g9lJjocoFaHU5Lhgl5P +CV1Zd6vK6FG+g5IlA0fSUuvHnq8jBDIxTeRGn28TpdVOwe2+mXEFffp+Vhx2JuWr6ygElQ p7EGc7GietM5uAjqvkAmjQqqIC7h9Ry1WTcoYNG4lB1PPXVm0NKKHYchAxd8s+tAjrV75Z2 X-QQ-GoodBg: 2 X-BIZMAIL-ID: 5331100280568394682 Date: Mon, 24 Jul 2023 08:53:55 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: Kito.cheng , pan2.li , yanzhang.wang Subject: Re: [PATCH v5] RISC-V: Support CALL for RVV floating-point dynamic rounding References: <20230719032822.85817-1-pan2.li@intel.com>, <20230723131120.3626085-1-pan2.li@intel.com> X-Priority: 3 X-GUID: 1E684F85-AFF6-486A-83D1-28F93F437D80 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <9EB1E3EFFBD34EE8+202307240853550944831@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart834523517273_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.6 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_SCC_BODY_TEXT_LINE 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_NextPart834523517273_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 T3ZlcmFsbCBMR1RNIGZyb20gbXkgc2lkZS4gDQpCdXQgd2Ugc2hvdWxkICB3 YWl0IGZvciBLaXRvJ3MgcmV2aWV3Lg0KDQoNCg0KanV6aGUuemhvbmdAcml2 YWkuYWkNCiANCkZyb206IHBhbjIubGkNCkRhdGU6IDIwMjMtMDctMjMgMjE6 MTENClRvOiBnY2MtcGF0Y2hlcw0KQ0M6IGp1emhlLnpob25nOyBraXRvLmNo ZW5nOyBwYW4yLmxpOyB5YW56aGFuZy53YW5nDQpTdWJqZWN0OiBbUEFUQ0gg djVdIFJJU0MtVjogU3VwcG9ydCBDQUxMIGZvciBSVlYgZmxvYXRpbmctcG9p bnQgZHluYW1pYyByb3VuZGluZw0KRnJvbTogUGFuIExpIDxwYW4yLmxpQGlu dGVsLmNvbT4NCiANCkluIGJhc2ljIGR5bmFtaWMgcm91bmRpbmcgbW9kZSwg d2Ugc2ltcGx5IGlnbm9yZSBjYWxsIGluc3RydWN0aW9ucyBhbmQNCndlIHdv dWxkIGxpa2UgdG8gdGFrZSBjYXJlIG9mIGNhbGwgaW4gdGhpcyBQQVRDSC4N CiANCkR1cmluZyB0aGUgY2FsbCwgdGhlIGZybSBtYXkgYmUgdXBkYXRlZCBv ciBrZWVwIGFzIGlzLiBUaHVzLCB3ZSBtdXN0DQptYWtlIHN1cmUgYXQgbGVh c3QgMiB0aGluZ3MuDQogDQoxLiBUaGUgc3RhdGljIGZybSBiZWZvcmUgY2Fs bCBzaG91bGQgbm90IHBvbGx1dGUgdGhlIGZybSB2YWx1ZSBpbiBjYWxsLg0K Mi4gVGhlIHVwZGF0ZWQgZnJtIHZhbHVlIGluIGNhbGwgc2hvdWxkIGJlIHN0 aWNreSBhZnRlciBjYWxsIGNvbXBsZXRlZC4NCiANCldlIHdpbGwgcGVyZnJv bSBzb21lIHN0ZXBzIHRvIG1ha2UgYWJvdmUgaGFwcGVuLg0KIA0KMS4gTWFy ayBjYWxsIGluc3RydWN0aW9uIHdpdGggbmV3IG1vZGUgRFlOX0NBTEwuDQoy LiBNYXJrIHRoZSBpbnN0cnVjdGlvbiBhZnRlciBDQUxMIGZyb20gTk9ORSB0 byBEWU4uDQozLiBXaGVuIGVtaXQgZm9yIGEgRFlOX0NBTEwsIHdlIHdpbGwg cmVzdG9yZSB0aGUgZnJtIHZhbHVlLg0KNC4gV2hlbiBlbWl0IGZyb20gYSBE WU5fQ0FMTCwgd2Ugd2lsbCBiYWNrdXAgdGhlIGZybSB2YWx1ZS4NCiANCkxl dCdzIHRha2UgYSBmbG93IGZvciB0aGlzLg0KIA0KICAgICAgICAgICArLS0t LS0tLS0tLS0tLSsNCiAgICAgICAgICAgfCBFbnRyeSAoRFlOKSB8IDwtIGZy cm0gYTUNCiAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0rDQogICAgICAgICAg LyAgICAgICAgICAgICAgIFwNCiAgICArLS0tLS0tLSsgICAgICAgICAgICAg Ky0tLS0tLS0tLS0tKw0KICAgIHwgVkZBREQgfCAgICAgICAgICAgICB8IFZG QUREIFJUWiB8ICA8LSBmc3JtaSAxKFJUWikNCiAgICArLS0tLS0tLSsgICAg ICAgICAgICAgKy0tLS0tLS0tLS0tKw0KICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwNCiAgICArLS0tLS0tLSsgICAgICAgICAgICAgKy0tLS0t LS0tLS0tKw0KICAgIHwgQ0FMTCAgfCAgICAgICAgICAgICB8IENBTEwgICAg ICB8ICA8LSBmc3JtIGE1DQogICAgKy0tLS0tLS0rICAgICAgICAgICAgICst LS0tLS0tLS0tLSsNCiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICB8DQorLS0tLS0tLS0tLS0rICAgICAgICAgICAgICAgICArLS0tLS0tLSsN CnwgU0hJRlQgICAgIHwgPC0gZnJybSBhNSAgICAgIHwgVkZBREQgfCAgPC0g ZnJybSBhNQ0KKy0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgKy0tLS0t LS0rDQogICAgICAgICAgfCAgICAgICAgICAgICAgICAgIC8NCistLS0tLS0t LS0tLSsgICAgICAgICAgICAgICAvDQp8IFZGQUREIFJVUCB8IDwtIGZzcm0x IDMoUlVQKQ0KKy0tLS0tLS0tLS0tKyAgICAgICAgICAgICAvDQogICAgICAg ICAgIFwgICAgICAgICAgICAgLw0KICAgICAgICAgICAgKy0tLS0tLS0tLS0t LS0tLS0tKw0KICAgICAgICAgICAgfCBFeGl0IChEWU5fRVhJVCkgfCA8LSBm c3JtIGE1DQogICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0rDQogDQpX aGVuIGNhbGwgaXMgdGhlIGxhc3QgaW5zbiBvZiBvbmUgYmIsIHdlIHRha2Ug Y2FyZSBvZiBpdCB3aGVuIG5lZWRlZA0KZm9yIGVhY2ggaW5zbiBieSBpbnNl cnRpbmcgb25lIGZybSBiYWNrdXAgKGZycm0pIGluc24gdG8gdGhlIGVuZCBv Zg0KdGhlIGN1cnJlbnQgYmIuDQogDQpTaWduZWQtb2ZmLWJ5OiBQYW4gTGkg PHBhbjIubGlAaW50ZWwuY29tPg0KQ28tQXV0aG9yZWQtQnk6IEp1emhlLVpo b25nIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NCiANCmdjYy9DaGFuZ2VMb2c6 DQogDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi5jYyAoRFlOQU1JQ19GUk1fUlRM KTogTmV3IG1hY3JvLg0KKFNUQVRJQ19GUk1fUCk6IERpdHRvLg0KKHN0cnVj dCBtb2RlX3N3aXRjaGluZ19pbmZvKTogTmV3IHN0cnVjdCBmb3IgbW9kZSBz d2l0Y2hpbmcuDQooc3RydWN0IG1hY2hpbmVfZnVuY3Rpb24pOiBBZGQgbmV3 IGZpZWxkIG1vZGUgc3dpdGNoaW5nLg0KKHJpc2N2X2VtaXRfZnJtX21vZGVf c2V0KTogQWRkIERZTl9DQUxMIGVtaXQuDQoocmlzY3ZfZnJtX2FkanVzdF9t b2RlX2FmdGVyX2NhbGwpOiBOZXcgZnVuY3Rpb24gZm9yIGNhbGwgbW9kZS4N CihyaXNjdl9mcm1fcmVjb25jaWxlX2NhbGxfYXNfYmJfZW5kKTogTmV3IGZ1 bmN0aW9uIGZvciBjYWxsIGFzDQp0aGUgbGFzdCBpbnNuIG9mIGJiLg0KKHJp c2N2X2ZybV9tb2RlX25lZWRlZCk6IE5ldyBmdW5jdGlvbiBmb3IgZnJtIG1v ZGUgbmVlZGVkLg0KKHJpc2N2X21vZGVfbmVlZGVkKTogRXh0cmFjIGZ1bmN0 aW9uIGZvciBmcm0uDQoocmlzY3ZfZnJtX21vZGVfYWZ0ZXIpOiBBZGQgRFlO X0NBTEwgYWZ0ZXIuDQoocmlzY3ZfbW9kZV9lbnRyeSk6IFJlbW92ZSBiYWNr dXAgcnRsIGluaXRpYWxpemF0aW9uLg0KKiBjb25maWcvcmlzY3YvdmVjdG9y Lm1kIChmcm1fbW9kZSk6IEFkZCBkeW5fY2FsbC4NCihmc3Jtc2lfcmVzdG9y ZV9leGl0KTogUmVuYW1lIHRvIF92b2xhdGlsZS4NCihmc3Jtc2lfcmVzdG9y ZV92b2xhdGlsZSk6IExpa2V3aXNlLg0KIA0KZ2NjL3Rlc3RzdWl0ZS9DaGFu Z2VMb2c6DQogDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZnJtLWluc2VydC03LmM6IEFkanVzdA0KdGVzdCBjYXNlcy4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS0zMy5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNC5jOiBOZXcgdGVzdC4N CiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0zNS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNi5jOiBOZXcgdGVz dC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0zNy5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zOC5jOiBOZXcg dGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS0zOS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MC5jOiBO ZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00MS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Mi5j OiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS00My5jOiBOZXcgdGVzdC4NCiogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00 NC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS00NS5jOiBOZXcgdGVzdC4NCiogZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS00Ni5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Ny5jOiBOZXcgdGVzdC4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS00OC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00OS5jOiBOZXcgdGVzdC4N CiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01MC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01MS5jOiBOZXcgdGVz dC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS01Mi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01My5jOiBOZXcg dGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS01NC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01NS5jOiBO ZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS01Ni5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01Ny5j OiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS01OC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01 OS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS02MC5jOiBOZXcgdGVzdC4NCiogZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS02MS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Mi5jOiBOZXcgdGVzdC4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS02My5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02NC5jOiBOZXcgdGVzdC4N CiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS02NS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ni5jOiBOZXcgdGVz dC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS02Ny5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02OC5jOiBOZXcg dGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS02OS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03MC5jOiBO ZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS03MS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03Mi5j OiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS03My5jOiBOZXcgdGVzdC4NCiogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03 NC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS03NS5jOiBOZXcgdGVzdC4NCiogZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS03Ni5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03Ny5jOiBOZXcgdGVzdC4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVu LTQuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZnJtLXJ1bi01LmM6IE5ldyB0ZXN0Lg0KLS0tDQpnY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LmNjICAgICAgICAgICAgICAgICAgICAgfCAx NTAgKysrKysrKysrKysrKysrKy0tDQpnY2MvY29uZmlnL3Jpc2N2L3ZlY3Rv ci5tZCAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0NCi4uLi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zMy5jICAgICB8ICAzMSArKysr DQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzQuYyAg ICAgfCAgMzIgKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTM1LmMgICAgIHwgIDMyICsrKysNCi4uLi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS0zNi5jICAgICB8ICAyOSArKysrDQouLi4v cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzcuYyAgICAgfCAg MzYgKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS0zOC5jICAgICB8ICAzNCArKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tMzkuYyAgICAgfCAgMzYgKysrKysNCi4uLi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MC5jICAgICB8ICAzNCAr KysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDEu YyAgICAgfCAgMzcgKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS00Mi5jICAgICB8ICAzNyArKysrKw0KLi4uL3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQzLmMgICAgIHwgIDM4ICsrKysr DQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDQuYyAg ICAgfCAgNDAgKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS00NS5jICAgICB8ICAzNSArKysrDQouLi4vcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tNDYuYyAgICAgfCAgMzUgKysrKw0KLi4u L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ3LmMgICAgIHwg IDM2ICsrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNDguYyAgICAgfCAgMzYgKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00OS5jICAgICB8ICAzNiArKysrKw0KLi4uL3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUwLmMgICAgIHwgIDM2 ICsrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NTEuYyAgICAgfCAgMzYgKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS01Mi5jICAgICB8ICAzNiArKysrKw0KLi4uL3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUzLmMgICAgIHwgIDM4ICsr KysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTQu YyAgICAgfCAgMzggKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS01NS5jICAgICB8ICAzOCArKysrKw0KLi4uL3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU2LmMgICAgIHwgIDM4ICsrKysr DQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTcuYyAg ICAgfCAgMzggKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01OC5jICAgICB8ICAzOCArKysrKw0KLi4uL3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTU5LmMgICAgIHwgIDM4ICsrKysrDQou Li4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjAuYyAgICAg fCAgMzggKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS02MS5jICAgICB8ICAzOCArKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTYyLmMgICAgIHwgIDM4ICsrKysrDQouLi4v cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjMuYyAgICAgfCAg MzggKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS02NC5jICAgICB8ICAzOCArKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTY1LmMgICAgIHwgIDM4ICsrKysrDQouLi4vcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjYuYyAgICAgfCAgMzgg KysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02 Ny5jICAgICB8ICAzOCArKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTY4LmMgICAgIHwgIDM4ICsrKysrDQouLi4vcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjkuYyAgICAgfCAgMzEgKysr Kw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcwLmMg ICAgIHwgIDI4ICsrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS03MS5jICAgICB8ICAyOCArKysrDQouLi4vcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tNzIuYyAgICAgfCAgMzMgKysrKw0KLi4u L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTczLmMgICAgIHwg IDM5ICsrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNzQuYyAgICAgfCAgMzkgKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS03NS5jICAgICB8ICAzOSArKysrKw0KLi4uL3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTc2LmMgICAgIHwgIDM5 ICsrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NzcuYyAgICAgfCAgMjAgKysrDQouLi4vcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZnJtLWluc2VydC03LmMgfCAgIDUgKy0NCi4uLi9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTQuYyAgICB8ICA4MiArKysrKysr KysrDQouLi4vcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi01 LmMgICAgfCAgODMgKysrKysrKysrKw0KNTAgZmlsZXMgY2hhbmdlZCwgMTkx MyBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkNCmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzMuYw0KY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNC5jDQpjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM1LmMNCmNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzYuYw0KY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS0zNy5jDQpjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTM4LmMNCmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tMzkuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS00MC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTQxLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNDIuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00My5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQ0LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNDUuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS00Ni5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTQ3LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tNDguYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS00OS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTUwLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNTEuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01Mi5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTUzLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNTQuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS01NS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTU2LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNTcuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS01OC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTU5LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NjAuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02 MS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYy LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjMu Yw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02NC5j DQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY1LmMN CmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjYuYw0K Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ny5jDQpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY4LmMNCmNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjkuYw0KY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03MC5jDQpjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcxLmMNCmNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNzIuYw0KY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03My5jDQpjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTc0LmMNCmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNzUuYw0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03Ni5jDQpjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTc3LmMNCmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi00LmMNCmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZnJtLXJ1bi01LmMNCiANCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5j Yw0KaW5kZXggMzMyZmE3MjBmMDEuLmJkMmNmODE3NmE3IDEwMDY0NA0KLS0t IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYw0KKysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi5jYw0KQEAgLTY5LDYgKzY5LDcgQEAgYWxvbmcgd2l0 aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUNCiNp bmNsdWRlICJnaW1wbGUtaXRlcmF0b3IuaCINCiNpbmNsdWRlICJnaW1wbGUt ZXhwci5oIg0KI2luY2x1ZGUgInRyZWUtdmVjdG9yaXplci5oIg0KKyNpbmNs dWRlICJnY3NlLmgiDQovKiBUaGlzIGZpbGUgc2hvdWxkIGJlIGluY2x1ZGVk IGxhc3QuICAqLw0KI2luY2x1ZGUgInRhcmdldC1kZWYuaCINCkBAIC05MCw2 ICs5MSwxMiBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJ TkczLiAgSWYgbm90IHNlZQ0KLyogVHJ1ZSBpZiBiaXQgQklUIGlzIHNldCBp biBWQUxVRS4gICovDQojZGVmaW5lIEJJVFNFVF9QKFZBTFVFLCBCSVQpICgo KFZBTFVFKSAmICgxVUxMIDw8IChCSVQpKSkgIT0gMCkNCisvKiBFeHRyYWN0 IHRoZSBiYWNrdXAgZHluYW1pYyBmcm0gcnRsLiAgKi8NCisjZGVmaW5lIERZ TkFNSUNfRlJNX1JUTChjKSAoKGMpLT5tYWNoaW5lLT5tb2RlX3N3X2luZm8u ZHluYW1pY19mcm0pDQorDQorLyogVHJ1ZSB0aGUgbW9kZSBzd2l0Y2hpbmcg aGFzIHN0YXRpYyBmcm0sIG9yIGZhbHNlLiAgKi8NCisjZGVmaW5lIFNUQVRJ Q19GUk1fUChjKSAoKGMpLT5tYWNoaW5lLT5tb2RlX3N3X2luZm8uc3RhdGlj X2ZybV9wKQ0KKw0KLyogSW5mb3JtYXRpb24gYWJvdXQgYSBmdW5jdGlvbidz IGZyYW1lIGxheW91dC4gICovDQpzdHJ1Y3QgR1RZKCgpKSAgcmlzY3ZfZnJh bWVfaW5mbyB7DQogICAvKiBUaGUgc2l6ZSBvZiB0aGUgZnJhbWUgaW4gYnl0 ZXMuICAqLw0KQEAgLTEyNSw2ICsxMzIsMjIgQEAgZW51bSByaXNjdl9wcml2 aWxlZ2VfbGV2ZWxzIHsNCiAgIFVOS05PV05fTU9ERSwgVVNFUl9NT0RFLCBT VVBFUlZJU09SX01PREUsIE1BQ0hJTkVfTU9ERQ0KfTsNCitzdHJ1Y3QgR1RZ KCgpKSBtb2RlX3N3aXRjaGluZ19pbmZvIHsNCisgIC8qIFRoZSBSVEwgdmFy aWFibGUgd2hpY2ggc3RvcmVzIHRoZSBkeW5hbWljIEZSTSB2YWx1ZS4gIFdl IGFsd2F5cyB1c2UgdGhpcw0KKyAgICAgUlRYIHRvIHJlc3RvcmUgZHluYW1p YyBGUk0gcm91bmRpbmcgbW9kZSBpbiBtb2RlIHN3aXRjaGluZy4gICovDQor ICBydHggZHluYW1pY19mcm07DQorDQorICAvKiBUaGUgYm9vbGVhbiB2YXJp YWJsZXMgaW5kaWNhdGVzIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBzdGF0aWMg cm91bmRpbmcNCisgICAgIG1vZGUgaW5zdHJ1Y3Rpb24gaW4gdGhlIGZ1bmN0 aW9uIG9yIG5vdC4gICovDQorICBib29sIHN0YXRpY19mcm1fcDsNCisNCisg IG1vZGVfc3dpdGNoaW5nX2luZm8gKCkNCisgICAgew0KKyAgICAgIGR5bmFt aWNfZnJtID0gTlVMTF9SVFg7DQorICAgICAgc3RhdGljX2ZybV9wID0gZmFs c2U7DQorICAgIH0NCit9Ow0KKw0Kc3RydWN0IEdUWSgoKSkgIG1hY2hpbmVf ZnVuY3Rpb24gew0KICAgLyogVGhlIG51bWJlciBvZiBleHRyYSBzdGFjayBi eXRlcyB0YWtlbiB1cCBieSByZWdpc3RlciB2YXJhcmdzLg0KICAgICAgVGhp cyBhcmVhIGlzIGFsbG9jYXRlZCBieSB0aGUgY2FsbGVlIGF0IHRoZSB2ZXJ5 IHRvcCBvZiB0aGUgZnJhbWUuICAqLw0KQEAgLTE0OCw5ICsxNzEsNyBAQCBz dHJ1Y3QgR1RZKCgpKSAgbWFjaGluZV9mdW5jdGlvbiB7DQogICAgICBub3Qg YmUgY29uc2lkZXJlZCBieSB0aGUgcHJvbG9ndWUgYW5kIGVwaWxvZ3VlLiAg Ki8NCiAgIGJvb2wgcmVnX2lzX3dyYXBwZWRfc2VwYXJhdGVseVtGSVJTVF9Q U0VVRE9fUkVHSVNURVJdOw0KLSAgLyogVGhlIFJUTCB2YXJpYWJsZSB3aGlj aCBzdG9yZXMgdGhlIGR5bmFtaWMgRlJNIHZhbHVlLiAgV2UgYWx3YXlzIHVz ZSB0aGlzDQotICAgICBSVFggdG8gcmVzdG9yZSBkeW5hbWljIEZSTSByb3Vu ZGluZyBtb2RlIGluIG1vZGUgc3dpdGNoaW5nLiAgKi8NCi0gIHJ0eCBkeW5h bWljX2ZybTsNCisgIHN0cnVjdCBtb2RlX3N3aXRjaGluZ19pbmZvIG1vZGVf c3dfaW5mbzsNCn07DQovKiBJbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBh cmd1bWVudC4gICovDQpAQCAtNzcwOSw5ICs3NzMwLDEzIEBAIHJpc2N2X3N0 YXRpY19mcm1fbW9kZV9wIChpbnQgbW9kZSkNCnN0YXRpYyB2b2lkDQpyaXNj dl9lbWl0X2ZybV9tb2RlX3NldCAoaW50IG1vZGUsIGludCBwcmV2X21vZGUp DQp7DQorICBydHggYmFja3VwX3JlZyA9IERZTkFNSUNfRlJNX1JUTCAoY2Z1 bik7DQorDQorICBpZiAocHJldl9tb2RlID09IEZSTV9NT0RFX0RZTl9DQUxM KQ0KKyAgICBlbWl0X2luc24gKGdlbl9mcnJtc2kgKGJhY2t1cF9yZWcpKTsg LyogQmFja3VwIGZybSB3aGVuIERZTl9DQUxMLiAgKi8NCisNCiAgIGlmICht b2RlICE9IHByZXZfbW9kZSkNCiAgICAgew0KLSAgICAgIHJ0eCBiYWNrdXBf cmVnID0gY2Z1bi0+bWFjaGluZS0+ZHluYW1pY19mcm07DQogICAgICAgLyog VE9ETzogQnkgZGVzaWduLCBGUk1fTU9ERV94eHggdXNlZCBieSBtb2RlIHN3 aXRjaCB3aGljaCBpcw0KZGlmZmVyZW50IGZyb20gdGhlIEZSTSB2YWx1ZSBs aWtlIEZSTV9SVFogZGVmaW5lZCBpbg0KcmlzY3YtcHJvdG9zLmguICBXaGVu IG1vZGUgc3dpdGNoaW5nIHdlIGFjdHVhbGx5IG5lZWQgYSBjb252ZXJzaW9u DQpAQCAtNzcyMSw5ICs3NzQ2LDEzIEBAIHJpc2N2X2VtaXRfZnJtX21vZGVf c2V0IChpbnQgbW9kZSwgaW50IHByZXZfbW9kZSkNCmFuZCB0aGVuIHdlIGxl dmVyYWdlIHRoaXMgYXNzdW1wdGlvbiB3aGVuIGVtaXQuICAqLw0KICAgICAg IHJ0eCBmcm0gPSBnZW5faW50X21vZGUgKG1vZGUsIFNJbW9kZSk7DQotICAg ICAgaWYgKG1vZGUgPT0gRlJNX01PREVfRFlOX0VYSVQgJiYgcHJldl9tb2Rl ICE9IEZSTV9NT0RFX0RZTikNCisgICAgICBpZiAobW9kZSA9PSBGUk1fTU9E RV9EWU5fQ0FMTCAmJiBwcmV2X21vZGUgIT0gRlJNX01PREVfRFlOKQ0KLyog Tm8gbmVlZCB0byBlbWl0IHdoZW4gcHJldiBtb2RlIGlzIERZTiBhbHJlYWR5 LiAgKi8NCi0gZW1pdF9pbnNuIChnZW5fZnNybXNpX3Jlc3RvcmVfZXhpdCAo YmFja3VwX3JlZykpOw0KKyBlbWl0X2luc24gKGdlbl9mc3Jtc2lfcmVzdG9y ZV92b2xhdGlsZSAoYmFja3VwX3JlZykpOw0KKyAgICAgIGVsc2UgaWYgKG1v ZGUgPT0gRlJNX01PREVfRFlOX0VYSVQgJiYgU1RBVElDX0ZSTV9QIChjZnVu KQ0KKyAmJiBwcmV2X21vZGUgIT0gRlJNX01PREVfRFlOICYmIHByZXZfbW9k ZSAhPSBGUk1fTU9ERV9EWU5fQ0FMTCkNCisgLyogTm8gbmVlZCB0byBlbWl0 IHdoZW4gcHJldiBtb2RlIGlzIERZTiBvciBEWU5fQ0FMTCBhbHJlYWR5LiAg Ki8NCisgZW1pdF9pbnNuIChnZW5fZnNybXNpX3Jlc3RvcmVfdm9sYXRpbGUg KGJhY2t1cF9yZWcpKTsNCiAgICAgICBlbHNlIGlmIChtb2RlID09IEZSTV9N T0RFX0RZTikNCi8qIFJlc3RvcmUgZnJtIHZhbHVlIGZyb20gYmFja3VwIHdo ZW4gc3dpdGNoIHRvIERZTiBtb2RlLiAgKi8NCmVtaXRfaW5zbiAoZ2VuX2Zz cm1zaV9yZXN0b3JlIChiYWNrdXBfcmVnKSk7DQpAQCAtNzc1Myw2ICs3Nzgy LDEwMiBAQCByaXNjdl9lbWl0X21vZGVfc2V0IChpbnQgZW50aXR5LCBpbnQg bW9kZSwgaW50IHByZXZfbW9kZSwNCiAgICAgfQ0KfQ0KKy8qIEFkanVzdCB0 aGUgRlJNX01PREVfTk9ORSBpbnNuIGFmdGVyIGEgY2FsbCB0byBGUk1fTU9E RV9EWU4gZm9yIHRoZQ0KKyAgIHVuZGVybHlpbmcgZW1pdC4gICovDQorDQor c3RhdGljIGludA0KK3Jpc2N2X2ZybV9hZGp1c3RfbW9kZV9hZnRlcl9jYWxs IChydHhfaW5zbiAqY3VyX2luc24pDQorew0KKyAgcnR4X2luc24gKmluc247 DQorICBpbnQgbW9kZSA9IEZSTV9NT0RFX05PTkU7DQorICBiYXNpY19ibG9j ayBiYiA9IEJMT0NLX0ZPUl9JTlNOIChjdXJfaW5zbik7DQorDQorICBmb3Ig KGluc24gPSBQUkVWX0lOU04gKGN1cl9pbnNuKTsgaW5zbjsgaW5zbiA9IFBS RVZfSU5TTiAoaW5zbikpDQorICAgIHsNCisgICAgICBpZiAoSU5TTl9QIChp bnNuKSkNCisgew0KKyAgIGlmIChDQUxMX1AgKGluc24pKQ0KKyAgICAgbW9k ZSA9IEZSTV9NT0RFX0RZTjsNCisgICBicmVhazsNCisgfQ0KKw0KKyAgICAg IGlmIChpbnNuID09IEJCX0hFQUQgKGJiKSkNCisgYnJlYWs7DQorICAgIH0N CisNCisgIHJldHVybiBtb2RlOw0KK30NCisNCisvKiBJbnNlcnQgdGhlIGJh Y2t1cCBmcm0gaW5zbiB0byB0aGUgZW5kIG9mIHRoZSBiYiBpZiBhbmQgb25s eSBpZiB0aGUgY2FsbA0KKyAgIGlzIHRoZSBsYXN0IGluc24gb2YgdGhpcyBi Yi4gICovDQorDQorc3RhdGljIHZvaWQNCityaXNjdl9mcm1fcmVjb25jaWxl X2NhbGxfYXNfYmJfZW5kIChydHhfaW5zbiAqY3VyX2luc24pDQorew0KKyAg cnR4X2luc24gKmluc247DQorICBiYXNpY19ibG9jayBiYiA9IEJMT0NLX0ZP Ul9JTlNOIChjdXJfaW5zbik7DQorDQorICBnY2NfYXNzZXJ0IChDQUxMX1Ag KGN1cl9pbnNuKSk7DQorDQorICBpZiAoY3VyX2luc24gIT0gQkJfRU5EIChi YikpDQorICAgIHsNCisgICAgICBmb3IgKGluc24gPSBORVhUX0lOU04gKGN1 cl9pbnNuKTsgaW5zbjsgaW5zbiA9IE5FWFRfSU5TTiAoaW5zbikpDQorIHsN CisgICBpZiAoSU5TTl9QIChpbnNuKSkgLyogSWYgdGhlcmUgaXMgb25lIGlu c24gYWZ0ZXIgY2FsbCwgZG8gbm90aGluZy4gICovDQorICAgICByZXR1cm47 DQorDQorICAgaWYgKGluc24gPT0gQkJfRU5EIChiYikpDQorICAgICBicmVh azsNCisgfQ0KKyAgICB9DQorDQorICAvKiBUaGVuIHdlIG5lZWQgdG8gZW1p dCBiYWNrdXAgaW5zdCB0byB0aGUgZW5kIG9mIGJiLiAgKi8NCisgIHN0YXJ0 X3NlcXVlbmNlICgpOw0KKyAgZW1pdF9pbnNuIChnZW5fZnJybXNpIChEWU5B TUlDX0ZSTV9SVEwgKGNmdW4pKSk7DQorICBydHhfaW5zbiAqYmFja3VwX2lu c24gPSBnZXRfaW5zbnMgKCk7DQorICBlbmRfc2VxdWVuY2UgKCk7DQorDQor ICBpbnNlcnRfaW5zbl9lbmRfYmFzaWNfYmxvY2sgKGJhY2t1cF9pbnNuLCBi Yik7DQorfQ0KKw0KKy8qIFJldHVybiBtb2RlIHRoYXQgZnJtIG11c3QgYmUg c3dpdGNoZWQgaW50bw0KKyAgIHByaW9yIHRvIHRoZSBleGVjdXRpb24gb2Yg aW5zbi4gICovDQorDQorc3RhdGljIGludA0KK3Jpc2N2X2ZybV9tb2RlX25l ZWRlZCAocnR4X2luc24gKmN1cl9pbnNuLCBpbnQgY29kZSkNCit7DQorICBp ZiAoIURZTkFNSUNfRlJNX1JUTChjZnVuKSkNCisgICAgew0KKyAgICAgIC8q IFRoZSBkeW5hbWljIGZybSB3aWxsIGJlIGluaXRpYWxpemVkIG9ubHkgb25l Y2UgZHVyaW5nIGNmdW4uICAqLw0KKyAgICAgIERZTkFNSUNfRlJNX1JUTCAo Y2Z1bikgPSBnZW5fcmVnX3J0eCAoU0ltb2RlKTsNCisgICAgICBlbWl0X2lu c25fYXRfZW50cnkgKGdlbl9mcnJtc2kgKERZTkFNSUNfRlJNX1JUTCAoY2Z1 bikpKTsNCisgICAgfQ0KKw0KKyAgaWYgKENBTExfUCAoY3VyX2luc24pKQ0K KyAgICB7DQorICAgICAgcmlzY3ZfZnJtX3JlY29uY2lsZV9jYWxsX2FzX2Ji X2VuZCAoY3VyX2luc24pOw0KKyAgICAgIHJldHVybiBGUk1fTU9ERV9EWU5f Q0FMTDsNCisgICAgfQ0KKw0KKyAgaW50IG1vZGUgPSBjb2RlID49IDAgPyBn ZXRfYXR0cl9mcm1fbW9kZSAoY3VyX2luc24pIDogRlJNX01PREVfTk9ORTsN CisNCisgIGlmIChtb2RlID09IEZSTV9NT0RFX05PTkUpDQorICAgICAgLyog QWZ0ZXIgbWVldCBhIGNhbGwsIHdlIG5lZWQgdG8gYmFja3VwIHRoZSBmcm0g YmVjYXVzZSBpdCBtYXkgYmUNCisgdXBkYXRlZCBkdXJpbmcgdGhlIGNhbGwu IEhlcmUsIGZvciBlYWNoIGluc24sIHdlIHdpbGwgY2hlY2sgaWYNCisgdGhl IHByZXZpb3VzIGluc24gaXMgYSBjYWxsIG9yIG5vdC4gV2hlbiBwcmV2aW91 cyBpbnNuIGlzIGNhbGwsDQorIHRoZXJlIHdpbGwgYmUgMiBjYXNlcyBmb3Ig dGhlIGVtaXQgbW9kZSBzZXQuDQorDQorIDEuIEN1cnJlbnQgaW5zbiBpcyBu b3QgTU9ERV9OT05FLCB0aGVuIHRoZSBtb2RlIHN3aXRjaCBmcmFtZXdvcmsN CisgICAgIHdpbGwgZG8gdGhlIG1vZGUgc3dpdGNoIGZyb20gTU9ERV9DQUxM IHRvIE1PREVfTk9OX05PTkUgbmF0aXZlbHkuDQorIDIuIEN1cnJlbnQgaW5z biBpcyBNT0RFX05PTkUsIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBNT0RFX05P TkUgdG8NCisgICAgIHRoZSBNT0RFX0RZTiwgYW5kIGxlYXZlIHRoZSBtb2Rl IHN3aXRjaCBpdHNlbGYgdG8gcGVyZm9ybQ0KKyAgICAgdGhlIGVtaXQgbW9k ZSBzZXQuDQorICAgICAgICovDQorICAgIG1vZGUgPSByaXNjdl9mcm1fYWRq dXN0X21vZGVfYWZ0ZXJfY2FsbCAoY3VyX2luc24pOw0KKw0KKyAgcmV0dXJu IG1vZGU7DQorfQ0KKw0KLyogUmV0dXJuIG1vZGUgdGhhdCBlbnRpdHkgbXVz dCBiZSBzd2l0Y2hlZCBpbnRvDQogICAgcHJpb3IgdG8gdGhlIGV4ZWN1dGlv biBvZiBpbnNuLiAgKi8NCkBAIC03NzY2LDcgKzc4OTEsNyBAQCByaXNjdl9t b2RlX25lZWRlZCAoaW50IGVudGl0eSwgcnR4X2luc24gKmluc24pDQogICAg IGNhc2UgUklTQ1ZfVlhSTToNCiAgICAgICByZXR1cm4gY29kZSA+PSAwID8g Z2V0X2F0dHJfdnhybV9tb2RlIChpbnNuKSA6IFZYUk1fTU9ERV9OT05FOw0K ICAgICBjYXNlIFJJU0NWX0ZSTToNCi0gICAgICByZXR1cm4gY29kZSA+PSAw ID8gZ2V0X2F0dHJfZnJtX21vZGUgKGluc24pIDogRlJNX01PREVfTk9ORTsN CisgICAgICByZXR1cm4gcmlzY3ZfZnJtX21vZGVfbmVlZGVkIChpbnNuLCBj b2RlKTsNCiAgICAgZGVmYXVsdDoNCiAgICAgICBnY2NfdW5yZWFjaGFibGUg KCk7DQogICAgIH0NCkBAIC03ODQzLDYgKzc5NjgsMTEgQEAgcmlzY3Zfdnhy bV9tb2RlX2FmdGVyIChydHhfaW5zbiAqaW5zbiwgaW50IG1vZGUpDQpzdGF0 aWMgaW50DQpyaXNjdl9mcm1fbW9kZV9hZnRlciAocnR4X2luc24gKmluc24s IGludCBtb2RlKQ0Kew0KKyAgU1RBVElDX0ZSTV9QIChjZnVuKSA9IFNUQVRJ Q19GUk1fUCAoY2Z1bikgfHwgcmlzY3Zfc3RhdGljX2ZybV9tb2RlX3AgKG1v ZGUpOw0KKw0KKyAgaWYgKENBTExfUCAoaW5zbikpDQorICAgIHJldHVybiBG Uk1fTU9ERV9EWU5fQ0FMTDsNCisNCiAgIGlmIChmcm1fdW5rbm93bl9keW5h bWljX3AgKGluc24pKQ0KICAgICByZXR1cm4gRlJNX01PREVfRFlOOw0KQEAg LTc4ODMsMTIgKzgwMTMsNiBAQCByaXNjdl9tb2RlX2VudHJ5IChpbnQgZW50 aXR5KQ0KICAgICAgIHJldHVybiBWWFJNX01PREVfTk9ORTsNCiAgICAgY2Fz ZSBSSVNDVl9GUk06DQogICAgICAgew0KLSBpZiAoIWNmdW4tPm1hY2hpbmUt PmR5bmFtaWNfZnJtKQ0KLSAgIHsNCi0gICAgIGNmdW4tPm1hY2hpbmUtPmR5 bmFtaWNfZnJtID0gZ2VuX3JlZ19ydHggKFNJbW9kZSk7DQotICAgICBlbWl0 X2luc25fYXRfZW50cnkgKGdlbl9mcnJtc2kgKGNmdW4tPm1hY2hpbmUtPmR5 bmFtaWNfZnJtKSk7DQotICAgfQ0KLQ0KICAvKiBBY2NvcmRpbmcgdG8gUlZW IDEuMCBzcGVjLCBhbGwgdmVjdG9yIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlv bnMgdXNlDQogICAgIHRoZSBkeW5hbWljIHJvdW5kaW5nIG1vZGUgaW4gdGhl IGZybSByZWdpc3Rlci4gIExpa2V3aXNlIGluIG90aGVyDQogICAgIHNpbWls YXIgcGxhY2VzLiAgKi8NCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2 L3ZlY3Rvci5tZCBiL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLm1kDQppbmRl eCA2OTY4MGRlMjYwMC4uNjNiMmQzYTliODIgMTAwNjQ0DQotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3ZlY3Rvci5tZA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNj di92ZWN0b3IubWQNCkBAIC02OTQsNyArNjk0LDcgQEAgKGRlZmluZV9hdHRy ICJ2eHJtX21vZGUiICJybnUscm5lLHJkbixyb2Qsbm9uZSINCikNCjs7IERl ZmluZXMgcm91bmRpbmcgbW9kZSBvZiBhbiBmbG9hdGluZy1wb2ludCBvcGVy YXRpb24uDQotKGRlZmluZV9hdHRyICJmcm1fbW9kZSIgInJuZSxydHoscmRu LHJ1cCxybW0sZHluLGR5bl9leGl0LG5vbmUiDQorKGRlZmluZV9hdHRyICJm cm1fbW9kZSIgInJuZSxydHoscmRuLHJ1cCxybW0sZHluLGR5bl9leGl0LGR5 bl9jYWxsLG5vbmUiDQogICAoY29uZA0KICAgICBbDQogICAgICAgKGVxX2F0 dHIgInR5cGUiICJ2ZmFsdSIpDQpAQCAtODI5LDcgKzgyOSw3IEBAIChkZWZp bmVfaW5zbiAiZnNybXNpX3Jlc3RvcmUiDQo7OyBUaGUgdm9sYXRpbGUgZnNy bXNpIHJlc3RvcmUgaXMgdXNlZCBmb3IgdGhlIGV4aXQgcG9pbnQgZm9yIHRo ZQ0KOzsgZHluYW1pYyBtb2RlIHN3aXRjaGluZy4gSXQgd2lsbCBnZW5lcmF0 ZSBvbmUgdm9sYXRpbGUgZnNybSBhNQ0KOzsgd2hpY2ggd29uJ3QgYmUgZWxp bWluYXRlZC4NCi0oZGVmaW5lX2luc24gImZzcm1zaV9yZXN0b3JlX2V4aXQi DQorKGRlZmluZV9pbnNuICJmc3Jtc2lfcmVzdG9yZV92b2xhdGlsZSINCiAg IFsoc2V0IChyZWc6U0kgRlJNX1JFR05VTSkNCih1bnNwZWNfdm9sYXRpbGU6 U0kgWyhtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJy IildDQogICAgVU5TUEVDVl9GUk1fUkVTVE9SRV9FWElUKSldDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTMzLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tMzMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi40YmQ1MjBlYTJhZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTMzLmMNCkBAIC0wLDAgKzEsMzEgQEANCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0K KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRy aWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2 bCkNCit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsN CisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3Zm bG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkN Cit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVz dWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIs IDQsIHZsKTsNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorICByZXN1 bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwg MiwgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1c cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJy bVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAyIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAx MjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTM0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzQuYw0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi42YzdjZjdlZjY5Yw0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM0LmMNCkBA IC0wLDAgKzEsMzIgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMg LVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCINCisNCitzaXplX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitu b3JtYWxpemVfdmwgKHNpemVfdCB2bCkNCit7DQorICBpZiAodmwgJSA0ID09 IDApDQorICAgIHJldHVybiB2bDsNCisNCisgIHJldHVybiAoKHZsIC8gNCkg KyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRf cG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMy bTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVz dWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9m MzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7 DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0KKyAgcmV0dXJu IHZsID4gMTI4ID8gcmVzdWx0IDogb3AyOw0KK30NCisNCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3Zb MC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMr W2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMr W2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRd fSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzUu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS0zNS5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmI3ZjVhNjkxOWY0DQotLS0gL2Rl di9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzUuYw0KQEAgLTAs MCArMSwzMiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25v LXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K Kw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1h bGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQgPT0gMCkN CisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwgLyA0KSArIDEp ICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2lu dF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90 IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQg PSBvcDE7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0KKyAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBv cDIsIDQsIHZsKTsNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7DQorDQorICByZXR1cm4gcmVz dWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypb ZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3Jt aVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDEgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlc cytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tMzYuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS0zNi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw MDAuLjQ0ODVjZWEyNGQ5DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tMzYuYw0KQEAgLTAsMCArMSwyOSBAQA0KKy8qIHsgZGct ZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2 NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2lu Y2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0 ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0K K3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0K KyAgcmV0dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0 MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0 MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sN CisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBpZiAodmwg JSA0ICE9IDApDQorICAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQor ICByZXR1cm4gdmwgPiAxNiA/IHJlc3VsdCA6IG9wMjsNCit9DQorDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhz XVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1swMTIzNF19IH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1ccytb YXhzXVswLTldK30gfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLW5vdCB7ZnJybVxzK1theHNdWzAtOV0rfSB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzcuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0zNy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLmExZmNhMWEyYTNmDQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMzcuYw0KQEAgLTAsMCArMSwzNiBAQA0KKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQor DQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0 dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90 IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZs Ow0KKw0KKyAgcmV0dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQor dmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICAg aW50IGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJl c3VsdCA9IG9wMTsNCisNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7 IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMiA9PSAwKQ0KKyAgICAg ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0 LCBvcDIsIDQsIHZsKTsNCisgICAgICBlbHNlDQorICAgICAgICB2bCA9IG5v cm1hbGl6ZV92bCAodmwpOw0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0 Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2 XStbMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMr W2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytb YXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMzguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0z OC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAu LjhkNTljYWU5YTg3DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzguYw0KQEAgLTAsMCArMSwzNCBAQA0KKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdj diAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1 ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9f ICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sN CisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAg cmV0dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJt MV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJt MV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICAgaW50IGNvdW50 LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MTsNCisNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisg ICAgew0KKyAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFf cm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorICAgICAgdmwgPSBub3JtYWxp emVfdmwgKHZsKTsNCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9 DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAt OV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNd WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11b MC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTM5LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzkuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4wNGM1 NDg3NzM5Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTM5LmMNCkBAIC0wLDAgKzEsMzYgQEANCisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1h Ymk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJy aXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRyaWJ1dGVfXyAoKG5v aW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2bCkNCit7DQorICBp ZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsNCisNCisgIHJldHVy biAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0K K3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBv cDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgIGludCBjb3VudCwgc2l6 ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQor DQorICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsN CisgICAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChy ZXN1bHQsIG9wMiwgNCwgdmwpOw0KKw0KKyAgICAgIGlmICh2bCAlIDggIT0g MCkNCisgICAgICAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorICAgIH0N CisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTld Kyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhz XVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMr WzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0g fSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MC5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTQwLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMC4uNDljZjUyZjczOWINCi0tLSAvZGV2L251 bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MC5jDQpAQCAtMCwwICsx LDM0IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNh YmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQor c2l6ZV90IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQorbm9ybWFsaXpl X3ZsIChzaXplX3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAg ICByZXR1cm4gdmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0 Ow0KK30NCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5 bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3Ay LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0g KHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92 bCAodmwpOw0KKyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0 LCAyLCB2bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3Zm XVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm cnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypb MDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNDEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MS5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjc5ZWY1NWIyYzlmDQot LS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDEuYw0K QEAgLTAsMCArMSwzNyBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQor LyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1P MyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rv ci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0K K25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQg PT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwgLyA0 KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9h dF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0 MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCBy ZXN1bHQgPSBvcDE7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKw0KKyAgdmwgPSBu b3JtYWxpemVfdmwgKHZsKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorDQorICB2 bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDQsIHZsKTsNCisN CisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxc cyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMyB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVsw LTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMyB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVsw LTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAq Lw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Mi5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQyLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMC4uZDJhMTdhZDcxNWYNCi0tLSAvZGV2L251bGwN CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Mi5jDQpAQCAtMCwwICsxLDM3 IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmki IH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorc2l6 ZV90IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQorbm9ybWFsaXplX3Zs IChzaXplX3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICBy ZXR1cm4gdmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0Ow0K K30NCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFt aWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBz aXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsN CisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJl c3VsdCwgb3AyLCA0LCB2bCk7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAo dmwpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo cmVzdWx0LCBvcDIsIHZsKTsNCisNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2 bCk7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChvcDEsIHJlc3VsdCwgMiwgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsN Cit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0r WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytb MDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4 c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDMu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi41 MGUxZGEyYzNjMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTQzLmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3Yg LW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRyaWJ1dGVfXyAo KG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2bCkNCit7DQor ICBpZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsNCisNCisgIHJl dHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFf dA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFf dCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2 ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsN CisNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQorICBpZiAodmwg JSAxNiA9PSAwKQ0KKyAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xX3JtIChyZXN1bHQsIG9wMiwgMSwgdmwpOw0KKw0KKyAgdmwgPSBub3Jt YWxpemVfdmwgKHZsKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorDQorICByZXR1cm4gcmVz dWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypb ZmF2XStbMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3Jt aVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDMgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlc cytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tNDQuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS00NC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw MDAuLmE2NmNhODkzMDhiDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tNDQuYw0KQEAgLTAsMCArMSw0MCBAQA0KKy8qIHsgZGct ZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2 NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2lu Y2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0 ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0K K3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0K KyAgcmV0dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0 MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0 MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sN CisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICByZXN1bHQg PSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwg dmwpOw0KKw0KKyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIGlm ICh2bCAlIDE2ID09IDApDQorICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAxLCB2bCk7DQorDQorDQorICBp ZiAodmwgJSA3ICE9IDApDQorICAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7 DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEs IHJlc3VsdCwgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwu dlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAz IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAy IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSss XHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTQ1LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDUuYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5kOWMxZWYyOTQ1 MA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ1 LmMNCkBAIC0wLDAgKzEsMzUgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2 NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bCAoc2l6 ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50 X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qg b3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0K KyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5z aWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAg aWYgKGkgJSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3Zm YWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyAgIHZs ID0gbm9ybWFsaXplX3ZsICh2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsN CisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJl c3VsdCwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorIH0N CisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1c cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJy bVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNy bVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAx MjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTQ2LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDYuYw0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iOTkwZmI0MzRmOA0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ2LmMNCkBA IC0wLDAgKzEsMzUgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMg LVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bCAoc2l6ZV90IHZs KTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFt aWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0K KyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZs b2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQg aSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkg JSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyAgIHZsID0gbm9y bWFsaXplX3ZsICh2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3Vs dCwgMywgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorIH0N CisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1c cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJy bVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNy bVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAx MjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTQ3LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDcuYw0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4yYzM0ODFiOTgwZQ0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ3LmMNCkBA IC0wLDAgKzEsMzYgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMg LVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3Qg dmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2 bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5h bWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwN CisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZm bG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVk IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChp ICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6 ZV92bF8xICh2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICByZXN1 bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwp Ow0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgfQ0KKyAgICB9 DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05 XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4 c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytb YXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1swMTIzNF19IH0gfSAq Lw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00OC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQ4LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMC4uNGFlYWUyZWUwY2YNCi0tLSAvZGV2L251bGwN CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00OC5jDQpAQCAtMCwwICsxLDM2 IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmki IH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0 ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRl cm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3Zm bG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5z aWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3Qg cmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8 IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkN Cisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9w MSwgcmVzdWx0LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwp Ow0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDEsIHZsKTsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorIH0NCisgICAgfQ0KKw0K KyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxz KnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAt OV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAt OV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICov DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ5LmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNDkuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwLi4zNTBiZDQ5MjRlYg0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ5LmMNCkBAIC0wLDAgKzEsMzYg QEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIg fSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRl cm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVy biBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZs b2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZs b2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNp Z25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCBy ZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg Y291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0K KyB7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0 LCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICB2bCA9IG5vcm1h bGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0KKyAgICB9DQorDQor ICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMq dlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05 XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05 XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8N CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTAuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS01MC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMDAwMDAuLjIzZjcyNjY0NDI2DQotLS0gL2Rldi9udWxsDQor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTAuYw0KQEAgLTAsMCArMSwzNiBA QA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9 ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVy biBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJu IHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2Zmxv YXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2Zmxv YXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2ln bmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJl c3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBj b3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQor IHsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0 ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQs IHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHZsID0gbm9ybWFs aXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMywgdmwpOw0KKyB9DQorICAgIH0N CisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTld Kyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhz XVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhz XVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0g fSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01MS5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTUxLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMC4uODczN2FiOTMwYWENCi0tLSAvZGV2L251 bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01MS5jDQpAQCAtMCwwICsx LDM2IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNh YmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQor ZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitl eHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0K K3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0g KHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAg dW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0x X3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsg aSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0g MCkNCisgew0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwg dmwpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAgdmwgPSBub3JtYWxp emVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAg cmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZb MC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0r fSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05 XSssXHMqWzAxMjM0XX0gfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLW5vdCB7ZnNybWlccytbMDEyMzRdfSB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTIuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01Mi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLmE3M2Q0MTQ4NjZiDQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNTIuYw0KQEAgLTAsMCArMSwzNiBAQA0KKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQor DQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXpl X3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVf dCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0x X3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0x X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNv dW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9 IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsg aSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0K KyAgICAgIGVsc2UNCisgew0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZs KTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChy ZXN1bHQsIG9wMiwgMSwgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVy biByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0r LFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gNCB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtm c3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01My5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTUzLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwMDAwMC4uNTEwMjEwYjRmNWENCi0tLSAvZGV2L251bGwNCisrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS01My5jDQpAQCAtMCwwICsxLDM4IEBADQorLyog eyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJj aD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisN CisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVf dCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90 IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFf dA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFf dCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291 bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0g b3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBp KyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0 LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2 bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyAgIHZs ID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2 X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyB9DQorICAg IH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlsw LTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytb YXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxz K1swMTIzNF19IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU0LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNTQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi41MmM5OTAzOTU2NA0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU0LmMNCkBAIC0wLDAgKzEs MzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitl eHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4 dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQor dmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1 bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp IDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAw KQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo b3AxLCByZXN1bHQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2 bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3Ax LCByZXN1bHQsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2 bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0 LCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9 DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAt OV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNd WzAtOV0rfSA1IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11b MC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTU1LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTUuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5hNzBm YzE5YjVjNw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTU1LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1h Ymk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJy aXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92 bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3Zs XzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9h dF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0 MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZs KQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBm b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0K KyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgICB2 bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0KKyAg ICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAxLCB2bCk7DQorICAgdmwgPSBub3Jt YWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0NCisgICAgfQ0KKw0K KyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxz KnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAt OV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEy MzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICov DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU2LmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNTYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwLi44MDNlYzgwYjVkZQ0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU2LmMNCkBAIC0wLDAgKzEsMzgg QEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIg fSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRl cm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVy biBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZs b2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZs b2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNp Z25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCBy ZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg Y291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0K KyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3Ax LCByZXN1bHQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7 DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCBy ZXN1bHQsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAx LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3Ay LCAzLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsN Cit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0r WzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1th eHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4 c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTU3LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTcu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi44 NDZhZWNlNDMwNw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTU3LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3Yg LW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6 ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXpl X3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9m bG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZs b2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90 IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQor ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAg ew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsN CisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorICAgdmwgPSBu b3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0NCisgICAgfQ0K Kw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNd WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA1IH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytb MDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU4LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNTguYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi5jNWY5NmJjNDVjMA0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU4LmMNCkBAIC0wLDAgKzEs MzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitl eHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4 dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQor dmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1 bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp IDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAw KQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo b3AxLCByZXN1bHQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2 bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo b3AxLCByZXN1bHQsIDIsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0K KyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwg b3AyLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwg b3AyLCAxLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3Vs dDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zh dl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxz K1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMr W2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTU5LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NTkuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAw Li4wNmM3ZmNmMWI4OQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTU5LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRn Y3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNs dWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1h bGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFs aXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVz dF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwg dmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6 ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQor DQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisg ICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0 ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsN CisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZs KTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQor ICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0N CisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1c cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJy bVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAx MjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTYwLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjAuYw0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5hZDNhN2Y4MWE2OQ0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYwLmMNCkBA IC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMg LVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3Qg dmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2 bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5h bWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwN CisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZm bG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVk IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChp ICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6 ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9m MzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisgfQ0KKyAgICAgIGVs c2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFf cm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVf dmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorIH0NCisgICAgfQ0KKw0K KyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxz KnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAt OV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEy MzRdfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICov DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYxLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNjEuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwLi4wYWU5YzY3Y2U4Ng0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYxLmMNCkBAIC0wLDAgKzEsMzgg QEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIg fSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRl cm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVy biBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZs b2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZs b2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNp Z25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCBy ZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg Y291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0K KyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo b3AxLCByZXN1bHQsIDEsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8x ICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo b3AxLCByZXN1bHQsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3Ay LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2 bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQor DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFk ZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0r fSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAt OV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05 XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTYyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjIuYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4xZGQ1YTYz YjM4MQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTYyLmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9 bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8x IChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIg KHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9w b2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJt MV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0K K3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3Ig KHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAg ICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDEsIHZsKTsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0K KyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorICAgdmwgPSBub3JtYWxp emVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAyLCB2bCk7DQorIH0NCisgICAgfQ0K Kw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNd WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytb MDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYzLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNjMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi5mNzMzODNmYzI3OQ0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYzLmMNCkBAIC0wLDAgKzEs MzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitl eHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4 dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQor dmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1 bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp IDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAw KQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9y bSAob3AxLCByZXN1bHQsIDEsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92 bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0K KyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3Vs dCwgb3AyLCAzLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwp Ow0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3Vs dCwgb3AyLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3Vs dDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zh dl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxz K1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMr W2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTY0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NjQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAw Li5lZDZmMjJjNDFkMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTY0LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRn Y3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNs dWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1h bGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFs aXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVz dF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwg dmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6 ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQor DQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisg ICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0 ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDEs IHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVz dWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZs KTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQor ICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7 DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwu dlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0 IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0r fSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnNybWlccytbMDEyMzRdfSAzIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSss XHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTY1LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjUuYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4zZTQzYWVjZDkx Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY1 LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2 NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChz aXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNp emVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2lu dF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90 IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sN CisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVu c2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAg IGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92 ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDEsIHZsKTsNCisgICB2 bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisg fQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorICAgdmwgPSBub3Jt YWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0NCisgICAgfQ0KKw0K KyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxz KnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAt OV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEy MzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICov DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY2LmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNjYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwLi5lYTk5ODMxZjMxZg0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY2LmMNCkBAIC0wLDAgKzEsMzgg QEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIg fSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRl cm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVy biBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZs b2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZs b2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNp Z25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCBy ZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg Y291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0K KyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo b3AxLCByZXN1bHQsIDEsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8x ICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9y bSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisg ew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3Vs dCwgb3AyLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0K KyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3Vs dCwgb3AyLCA0LCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJl c3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMq W2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNy bVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAzIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1p XHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTY3LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNjcuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwLi4zNDQ3MDFmM2NiNQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTY3LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2 NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNp bmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5v cm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9y bWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQor dGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9w MSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwg c2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7 DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykN CisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVz dWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQs IDEsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1 bHQsIDIsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAz LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2 bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQor DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFk ZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0r fSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAt OV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAzIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05 XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTY4LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjguYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4xZGJmNmRi YTIwOA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTY4LmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9 bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8x IChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIg KHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9w b2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJt MV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0K K3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3Ig KHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAg ICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDEsIHZsKTsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsN CisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQorICAg dmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQor IH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2 Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAz IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybWlccytbMDEyMzRdfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMq WzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTY5LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjkuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iMDhhYjFlZjYwNQ0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY5LmMN CkBAIC0wLDAgKzEsMzEgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAt TzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0 b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXpl X3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRf ZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBv cDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQor ICB2ZmxvYXQzMm0xX3QgcmVzdWx0Ow0KKyAgdmZsb2F0MzJtMV90IGYzMl9y ZXMgPSBvcDE7DQorICB2aW50MzJtMV90IGkzMl9yZXMgPSBfX3Jpc2N2X3Zy ZWludGVycHJldF92X2YzMm0xX2kzMm0xIChvcDIpOw0KKw0KKyAgaWYgKGNv dW50ICYgdmwgPT0gMHgxZikNCisgICAgaTMyX3JlcyA9IF9fcmlzY3ZfdmFk ZF92dl9pMzJtMSAoaTMyX3JlcywgaTMyX3JlcywgdmwpOw0KKyAgZWxzZQ0K KyAgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorDQorICBmMzJfcmVz ID0gX19yaXNjdl92cmVpbnRlcnByZXRfdl9pMzJtMV9mMzJtMSAoaTMyX3Jl cyk7DQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChm MzJfcmVzLCBvcDIsIDQsIHZsKTsNCisNCisgIHJldHVybiByZXN1bHQ7DQor fQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1sw LTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhz XVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNd WzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS03MC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcwLmMN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNWEy YjhhMTY5NTINCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS03MC5jDQpAQCAtMCwwICsxLDI4IEBADQorLyogeyBkZy1kbyBjb21w aWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1t YWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAi cmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVf dmxfMSAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zs b2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2Zmxv YXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3Qg dmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisg IGlmIChjb3VudCAmIHZsID09IDB4MWYpDQorICAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorICBlbHNl DQorICAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisNCisgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAz LCB2bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxz K3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJt XHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDEgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEy MzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NzEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03MS5jDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjE4NWEwNGNjMmJkDQotLS0g L2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNzEuYw0KQEAg LTAsMCArMSwyOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyog eyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAt V25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5o Ig0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2 bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5h bWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwN CisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZm bG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBpZiAoY291bnQgJiB2 bCA9PSAweDFmKQ0KKyAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xX3JtIChyZXN1bHQsIG9wMiwgMSwgdmwpOw0KKyAgZWxzZQ0KKyAgICB2 bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorDQorICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMywgdmwpOw0K Kw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNd WzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytb MDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcyLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNzIuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi42YTA3Y2ZhNmRmOQ0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcyLmMNCkBAIC0wLDAgKzEs MzMgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitl eHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KKw0K K3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0g KHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAg dW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0x X3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDEsIHZsKTsNCisgIHZsID0g bm9ybWFsaXplX3ZsXzEgKHZsKTsNCisNCisgIHZpbnQzMm0xX3QgdG1wXzEg PSBfX3Jpc2N2X3ZyZWludGVycHJldF92X2YzMm0xX2kzMm0xIChvcDEpOw0K KyAgdmludDMybTFfdCB0bXBfMiA9IF9fcmlzY3ZfdnJlaW50ZXJwcmV0X3Zf ZjMybTFfaTMybTEgKG9wMik7DQorDQorICB0bXBfMSA9IF9fcmlzY3ZfdmFk ZF92dl9pMzJtMSAodG1wXzEsIHRtcF8yLCB2bCk7DQorICB0bXBfMiA9IF9f cmlzY3ZfdmFkZF92dl9pMzJtMSAodG1wXzIsIHRtcF8xLCB2bCk7DQorICB0 bXBfMSA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMSAodG1wXzEsIHRtcF8yLCB2 bCk7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChyZXN1bHQsIG9wMiwgMywgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsN Cit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0r WzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1th eHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4 c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTczLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNzMu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi45 MWIwMTVjNTFlOA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTczLmMNCkBAIC0wLDAgKzEsMzkgQEANCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3Yg LW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6 ZV92bF8xICgpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKCk7 DQorDQordm9pZA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgIHNp emVfdCB2bCwgaW50IGNvbmQpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3Vs dF8xOw0KKw0KKyAgYXNtIHZvbGF0aWxlICgiI2RlZiAlMCIgOiAiPXZyIihy ZXN1bHRfMSkpOw0KKw0KKyAgcmVzdWx0XzEgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xIChvcDEsIG9wMiwgdmwpOw0KKw0KKyAgYXNtIHZvbGF0aWxlICgi I3VzZSAlMCIgOiA6ICJ2ciIocmVzdWx0XzEpKTsNCisNCisgIGlmIChjb25k KQ0KKyAgICBub3JtYWxpemVfdmxfMSAoKTsNCisgIGVsc2UNCisgICAgbm9y bWFsaXplX3ZsXzIgKCk7DQorDQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0XzI7 DQorDQorICBhc20gdm9sYXRpbGUgKCIjZGVmICUwIiA6ICI9dnIiKHJlc3Vs dF8yKSk7DQorDQorICByZXN1bHRfMiA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKG9wMSwgb3AyLCAzLCB2bCk7DQorDQorICBhc20gdm9sYXRpbGUg KCIjdXNlICUwIiA6IDogInZyIihyZXN1bHRfMikpOw0KK30NCisNCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3Zm XVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm cnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDEg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypb MDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNzQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03NC5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmFkNTk5YjhlZjY3DQot LS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNzQuYw0K QEAgLTAsMCArMSwzOSBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQor LyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1P MyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rv ci5oIg0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKCk7DQor ZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoKTsNCisNCit2b2lkDQor dGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9w MSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICAgc2l6ZV90IHZsLCBpbnQg Y29uZCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0XzE7DQorDQorICBh c20gdm9sYXRpbGUgKCIjZGVmICUwIiA6ICI9dnIiKHJlc3VsdF8xKSk7DQor DQorICByZXN1bHRfMSA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9w MSwgb3AyLCAxLCB2bCk7DQorDQorICBhc20gdm9sYXRpbGUgKCIjdXNlICUw IiA6IDogInZyIihyZXN1bHRfMSkpOw0KKw0KKyAgaWYgKGNvbmQpDQorICAg IG5vcm1hbGl6ZV92bF8xICgpOw0KKyAgZWxzZQ0KKyAgICBub3JtYWxpemVf dmxfMiAoKTsNCisNCisgIHZmbG9hdDMybTFfdCByZXN1bHRfMjsNCisNCisg IGFzbSB2b2xhdGlsZSAoIiNkZWYgJTAiIDogIj12ciIocmVzdWx0XzIpKTsN CisNCisgIHJlc3VsdF8yID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo b3AxLCBvcDIsIDMsIHZsKTsNCisNCisgIGFzbSB2b2xhdGlsZSAoIiN1c2Ug JTAiIDogOiAidnIiKHJlc3VsdF8yKSk7DQorfQ0KKw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlsw LTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytb YXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1p XHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19 IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03NS5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTc1LmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNzY3NTJlNGFmMjgNCi0tLSAvZGV2 L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03NS5jDQpAQCAtMCww ICsxLDM5IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRn LW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8t cHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQor DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoKTsNCitleHRlcm4g c2l6ZV90IG5vcm1hbGl6ZV92bF8yICgpOw0KKw0KK3ZvaWQNCit0ZXN0X2Zs b2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2Zmxv YXQzMm0xX3Qgb3AyLA0KKyAgICAgICBzaXplX3QgdmwsIGludCBjb25kKQ0K K3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHRfMTsNCisNCisgIGFzbSB2b2xh dGlsZSAoIiNkZWYgJTAiIDogIj12ciIocmVzdWx0XzEpKTsNCisNCisgIHJl c3VsdF8xID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCBvcDIs IDEsIHZsKTsNCisNCisgIGFzbSB2b2xhdGlsZSAoIiN1c2UgJTAiIDogOiAi dnIiKHJlc3VsdF8xKSk7DQorDQorICBpZiAoY29uZCkNCisgICAgbm9ybWFs aXplX3ZsXzEgKCk7DQorICBlbHNlDQorICAgIG5vcm1hbGl6ZV92bF8yICgp Ow0KKw0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdF8yOw0KKw0KKyAgYXNtIHZv bGF0aWxlICgiI2RlZiAlMCIgOiAiPXZyIihyZXN1bHRfMikpOw0KKw0KKyAg cmVzdWx0XzIgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIG9wMiwg dmwpOw0KKw0KKyAgYXNtIHZvbGF0aWxlICgiI3VzZSAlMCIgOiA6ICJ2ciIo cmVzdWx0XzIpKTsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAz IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAx IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTc2LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNzYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwLi5kZDhlODcwYzc4Nw0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTc2LmMNCkBAIC0wLDAgKzEsMzkgQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0K Kw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6 ZV90IG5vcm1hbGl6ZV92bF8xICgpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFs aXplX3ZsXzIgKCk7DQorDQordm9pZA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHlu YW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIs DQorICAgICAgIHNpemVfdCB2bCwgaW50IGNvbmQpDQorew0KKyAgdmZsb2F0 MzJtMV90IHJlc3VsdF8xOw0KKw0KKyAgYXNtIHZvbGF0aWxlICgiI2RlZiAl MCIgOiAiPXZyIihyZXN1bHRfMSkpOw0KKw0KKyAgcmVzdWx0XzEgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIG9wMiwgdmwpOw0KKw0KKyAgYXNt IHZvbGF0aWxlICgiI3VzZSAlMCIgOiA6ICJ2ciIocmVzdWx0XzEpKTsNCisN CisgIGlmIChjb25kKQ0KKyAgICBub3JtYWxpemVfdmxfMSAoKTsNCisgIGVs c2UNCisgICAgbm9ybWFsaXplX3ZsXzIgKCk7DQorDQorICB2ZmxvYXQzMm0x X3QgcmVzdWx0XzI7DQorDQorICBhc20gdm9sYXRpbGUgKCIjZGVmICUwIiA6 ICI9dnIiKHJlc3VsdF8yKSk7DQorDQorICByZXN1bHRfMiA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTEgKG9wMSwgb3AyLCB2bCk7DQorDQorICBhc20gdm9s YXRpbGUgKCIjdXNlICUwIiA6IDogInZyIihyZXN1bHRfMikpOw0KK30NCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRk XC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9 IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05 XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCB7ZnNybWlccytbMDEyMzRdfSB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxz KlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS03Ny5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTc3LmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYzNkMTJjZmUwNGUN Ci0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03Ny5j DQpAQCAtMCwwICsxLDIwIEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8N CisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2X3piYiAtLXBhcmFt PXJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1maXhlZC12bG1heCAtZmZhc3Qt bWF0aCAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2lu Y2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2RvdWJsZSBzdW0oZG91Ymxl ICpkKQ0KK3sNCisgIGRvdWJsZSBzdW0gPSAwLjA7DQorDQorICBmb3IgKGlu dCBpID0gMDsgaSA8IDg7ICsraSkNCisgICAgc3VtICs9IGRbaV07DQorDQor ICByZXR1cm4gc3VtOw0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlsw LTldKyxccypbZmF2XStbMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnJybVxzK1theHNdWzAtOV0rfSB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtm c3JtXHMrW2F4c11bMC05XSt9IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrWzAxMjM0XX0gfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytb YXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZnJtLWluc2VydC03LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC03LmMN CmluZGV4IDEyZGIxMTJkZDBiLi42ZGU5ZDA2Yjg3NSAxMDA2NDQNCi0tLSBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1mcm0taW5zZXJ0LTcuYw0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNl cnQtNy5jDQpAQCAtMjYsNiArMjYsNyBAQCB0ZXN0X2Zsb2F0X3BvaW50X2Zy bV9zdGF0aWMgKGZsb2F0ICpvdXQsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9h dDMybTFfdCBvcDIsDQp9DQovKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxc cypbZmF2XStbMC05XSt9IDIgfSB9ICovDQotLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDEgfSB9 ICovDQotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm cnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQovKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtm c3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1mcm0tcnVuLTQuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTQu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi41 Nzk2YWE1M2E3Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1y dW4tNC5jDQpAQCAtMCwwICsxLDgyIEBADQorLyogeyBkZy1kbyBydW4geyB0 YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2 X3ZlY3Rvci5oIg0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxz dGRpbnQtZ2NjLmg+DQorDQorI2RlZmluZSBPUklHSU5BTF9GUk0gMQ0KKw0K K3N0YXRpYyBpbnQNCitnZXRfZnJtICgpDQorew0KKyAgaW50IGZybSA9IC0x Ow0KKw0KKyAgX19hc21fXyB2b2xhdGlsZSAoDQorICAgICJmcnJtICUwIg0K KyAgICA6Ij1yIihmcm0pDQorICAgIDoNCisgICAgOg0KKyAgKTsNCisNCisg IHJldHVybiBmcm07DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQorc2V0X2ZybSAo aW50IGZybSkNCit7DQorICBfX2FzbV9fIHZvbGF0aWxlICgNCisgICAgImZz cm0gJTAiDQorICAgIDoNCisgICAgOiJyIihmcm0pDQorICAgIDoNCisgICk7 DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZA0KK2Fzc2VydF9lcXVhbCAo aW50IGEsIGludCBiLCBjaGFyICptZXNzYWdlKQ0KK3sNCisgIGlmIChhICE9 IGIpDQorICAgIHsNCisgICAgICBmcHJpbnRmIChzdGRvdXQsICIlcywgYnV0 IGdldCAlZCAhPSAlZFxuIiwgbWVzc2FnZSwgYSwgYik7DQorICAgICAgX19i dWlsdGluX2Fib3J0ICgpOw0KKyAgICB9DQorfQ0KKw0KK3ZmbG9hdDMybTFf dCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK290aGVyX2Z1bmN0aW9u ICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qg dmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMjsNCisNCisg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0 LCB2bCk7DQorDQorICBhc3NlcnRfZXF1YWwgKE9SSUdJTkFMX0ZSTSwgZ2V0 X2ZybSAoKSwNCisgIlRoZSB2YWx1ZSBvZiBmcm0gcmVnaXN0ZXIgc2hvdWxk IGJlIE9SSUdJTkFMX0ZSTS4iKTsNCisNCisgIHJldHVybiByZXN1bHQ7DQor fQ0KKw0KK3ZmbG9hdDMybTFfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUp KQ0KK3Rlc3RfZmxvYXRfcG9pbnRfZnJtX3J1biAodmZsb2F0MzJtMV90IG9w MSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9h dDMybTFfdCByZXN1bHQgPSB7fTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCA0LCB2bCk7DQorDQor ICBhc3NlcnRfZXF1YWwgKDQsIGdldF9mcm0gKCksICJUaGUgdmFsdWUgb2Yg ZnJtIHJlZ2lzdGVyIHNob3VsZCBiZSA0LiIpOw0KKw0KKyAgcmV0dXJuIG90 aGVyX2Z1bmN0aW9uIChyZXN1bHQsIG9wMiwgdmwpOw0KK30NCisNCitpbnQN CittYWluICgpDQorew0KKyAgc2l6ZV90IHZsID0gODsNCisgIHZmbG9hdDMy bTFfdCBvcDEgPSB7fTsNCisgIHZmbG9hdDMybTFfdCBvcDIgPSB7fTsNCisN CisgIHNldF9mcm0gKE9SSUdJTkFMX0ZSTSk7DQorICB0ZXN0X2Zsb2F0X3Bv aW50X2ZybV9ydW4gKG9wMSwgb3AyLCB2bCk7DQorDQorICByZXR1cm4gMDsN Cit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNS5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWZybS1ydW4tNS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLjIwOGE2NWZjZDNhDQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZnJtLXJ1bi01LmMNCkBAIC0wLDAgKzEsODMgQEANCisvKiB7IGRn LWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3ZlY3RvciB9IH0gfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5j bHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorI2luY2x1ZGUgPHN0ZGlvLmg+DQor I2luY2x1ZGUgPHN0ZGludC1nY2MuaD4NCisNCisjZGVmaW5lIE9SSUdJTkFM X0ZSTSAxDQorI2RlZmluZSBORVdfRlJNIDQNCisNCitzdGF0aWMgaW50DQor Z2V0X2ZybSAoKQ0KK3sNCisgIGludCBmcm0gPSAtMTsNCisNCisgIF9fYXNt X18gdm9sYXRpbGUgKA0KKyAgICAiZnJybSAlMCINCisgICAgOiI9ciIoZnJt KQ0KKyAgICA6DQorICAgIDoNCisgICk7DQorDQorICByZXR1cm4gZnJtOw0K K30NCisNCitzdGF0aWMgdm9pZA0KK3NldF9mcm0gKGludCBmcm0pDQorew0K KyAgX19hc21fXyB2b2xhdGlsZSAoDQorICAgICJmc3JtICUwIg0KKyAgICA6 DQorICAgIDoiciIoZnJtKQ0KKyAgICA6DQorICApOw0KK30NCisNCitzdGF0 aWMgaW5saW5lIHZvaWQNCithc3NlcnRfZXF1YWwgKGludCBhLCBpbnQgYiwg Y2hhciAqbWVzc2FnZSkNCit7DQorICBpZiAoYSAhPSBiKQ0KKyAgICB7DQor ICAgICAgZnByaW50ZiAoc3Rkb3V0LCAiJXMsIGJ1dCBnZXQgJWQgIT0gJWRc biIsIG1lc3NhZ2UsIGEsIGIpOw0KKyAgICAgIF9fYnVpbHRpbl9hYm9ydCAo KTsNCisgICAgfQ0KK30NCisNCit2b2lkIF9fYXR0cmlidXRlX18gKChub2lu bGluZSkpDQorb3RoZXJfZnVuY3Rpb24gKCkNCit7DQorICBzZXRfZnJtIChO RVdfRlJNKTsNCit9DQorDQordmZsb2F0MzJtMV90IF9fYXR0cmlidXRlX18g KChub2lubGluZSkpDQordGVzdF9mbG9hdF9wb2ludF9mcm1fcnVuICh2Zmxv YXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3QgdmwpDQor ew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IHt9Ow0KKw0KKyAgb3RoZXJf ZnVuY3Rpb24gKCk7DQorICBhc3NlcnRfZXF1YWwgKE5FV19GUk0sIGdldF9m cm0gKCksDQorICJUaGUgdmFsdWUgb2YgZnJtIHJlZ2lzdGVyIHNob3VsZCBi ZSBORVdfRlJNLiIpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisgIGFzc2VydF9l cXVhbCAoMiwgZ2V0X2ZybSAoKSwgIlRoZSB2YWx1ZSBvZiBmcm0gcmVnaXN0 ZXIgc2hvdWxkIGJlIDIuIik7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3Zm YWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyAgYXNzZXJ0X2Vx dWFsIChORVdfRlJNLCBnZXRfZnJtICgpLA0KKyAiVGhlIHZhbHVlIG9mIGZy bSByZWdpc3RlciBzaG91bGQgYmUgTkVXX0ZSTS4iKTsNCisNCisgIHJldHVy biByZXN1bHQ7DQorfQ0KKw0KK2ludA0KK21haW4gKCkNCit7DQorICBzaXpl X3QgdmwgPSA4Ow0KKyAgdmZsb2F0MzJtMV90IG9wMSA9IHt9Ow0KKyAgdmZs b2F0MzJtMV90IG9wMiA9IHt9Ow0KKw0KKyAgc2V0X2ZybSAoT1JJR0lOQUxf RlJNKTsNCisgIHRlc3RfZmxvYXRfcG9pbnRfZnJtX3J1biAob3AxLCBvcDIs IHZsKTsNCisNCisgIHJldHVybiAwOw0KK30NCi0tIA0KMi4zNC4xDQogDQog DQo= ------=_001_NextPart834523517273_=------