Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wcWfB-003QKS-0u for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 23:05:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wcWfA-002roA-0H for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 23:05:44 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wcWf9-002ro2-1G for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2026 23:05:43 +0000 Received: from mail-oo1-xc2e.google.com ([2607:f8b0:4864:20::c2e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wcWf7-000000005u5-1Ej5 for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2026 23:05:42 +0000 Received: by mail-oo1-xc2e.google.com with SMTP id 006d021491bc7-69d862236ddso995632eaf.0 for ; Wed, 24 Jun 2026 16:05:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782342340; cv=none; d=google.com; s=arc-20240605; b=CEBOpSsx66ikgFYY+MWcMs3QfVwFbQgKr6bn2WGaL+JKV5KqnFTN2NOL75TPaC7i3g OgMqotWmGtdUVeRfTU8wdlYLPMNp348i/9WaxCl/LRa6iVDhEc67qHSo/B0v/cOFwJMi fmxTR1SEyHssMpBcw3U81/GPW/Xel9DMPm9LOlWVahMTAKa+LVO0VpmED2FbiXdZHzsP NNiQIPDpvB3nAFt3+Fxuj9bRqCJaDFhq+LqtUwZPO/O6UdPWiZ/9hPP8jW84iiPbiTAZ 8/xMia3oq+fkS671UWpchHWwR2SY0M+mMViucWW0hhj64WNf77tSr0z72GyAXvhoIG+h TMdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=5Y1T2QnH2o75Ij2j5Ks4gnaTlUhm3mcnkzIe+tayXU4=; fh=qddF86tugadTAvGaoryAingbcEoXnut2Eskx3pK2kOs=; b=aVDB5fc5T1D2nwT0A7TkICe+C51UuIjaajSCVAZxFqNxB9vv+B20FDwBfZ23O4+8YW k6gXhrwsoV1SAQrtCpCW9dI13EvMIQsP8/aNmqUjVFcsP66vIVGdCNk0lFyfWa2/4rb4 SFHA27TQVSUiPdGCzs1Gw4am2giCxgbO2Q7yys7XxzuT5t00bOXlSPfNT60/oR5RxK7O yrYgwdahtg4G0E2qRTdUsZBcXa4myS7uKCi+bwNy/guac4/6Uqli1F+rox5xoToJw88W XO7sDV4L9Fq/QlDLsrAFv0ve+4DT7LM8bK43qWKkO5iwkxQ9ABxW8aQwUoNNQ4yD9YXq pP4g==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782342340; x=1782947140; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=5Y1T2QnH2o75Ij2j5Ks4gnaTlUhm3mcnkzIe+tayXU4=; b=GfNM28klolm1/ECfgv+OjFy3mbzIYzOLu+OJs6p2gz7cWxCfT8U/XqWUnhgkdgKkmZ sJpZRAVTmLJvuBGamtRANIm7Ieo6TJ98qSiii7WbIpAOYNzx5j9TkZ3JhFvYV1E40pjc gz21I2a/jH8T1NPTT0nh8Jt9JhQNp6ElPJTzt2FbPiLVQL4JxHwVVtwJ9aKSozS+t1YF DULBzSW3VZberHZG4qdokFZRbl2hCmRIhnfbdgAU8l0qPQkeEtBhF5AoSEXFwgGDYNb4 9qKyiTNdsGwiueO2wrCbaNgOAR5jNZJ72k7VDrzv23qINEkfNoRTCXFMmhfXQQ4/qmh2 28fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782342340; x=1782947140; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=5Y1T2QnH2o75Ij2j5Ks4gnaTlUhm3mcnkzIe+tayXU4=; b=n0wIkCPw73aQ0hceHfJsoiHtP4Ok6XbdIm/KdUmQjdfXVyAvj6hBQHIclBhOQf0igR Xosy5Zlva27l2saAOZ/h8CRETl4G1UI6TNyGs0A7WF2f/zR9MSna1CZ2zX3ZZ6UV2zQr hMOet7tn8k47FnJfzE0lSZ3MzKWFcdUA1fNnmpVtpxHJP7AcR1W3ufd6arf3lXS2rYAL xPe8cYaRDsqVDiOqXslMTwKOca0vYMXgivr3AIfDrcdqU2jjmbq09m0jOxQn3eGf5E1i GnE1rWXgalNAGI3ezyo+M2xO0//XIrbutO2Y/gtSHySrXxAz7NytvMHkU7wgaUMjkRlZ TP2g== X-Forwarded-Encrypted: i=1; AFNElJ+A1WJWWTOu0QrEbMBkv3eOAreXB258AGMjM8H2BgooyguragRtUC+ycbf7lriPqVZDGZDlbZdrlt6Mxk+t@lists.postgresql.org X-Gm-Message-State: AOJu0Yw2Z0/WLjzov+ZKWSrQIOFWkWGYcgOEx0WjAHdwr5viwjFNMpgA ZdEs2TcUG+w6y7rvgasnIg6JbHBfu4lT7qMGtgahtieczwAJDR0scyggWZsCmMKOYH7pvVrlxoH XpZI85YkTySqytm21NQ85oZNYwTYFEEE= X-Gm-Gg: AfdE7cmuj4ggUV4kqLg5qwyw+jWisi3dZfF28HLeQdJP4KI7SKHTTwPUqykJmS/N2ev 1ljMXxP9tRdOW5msrMKK5LW5zGjDgTipzZrDn5zAKAsbXd7DGq/ykygg7x1LvOTGKbOU5IAXzpo aDlE9GnaclQbZXU99pL+dcfqwPIsfDP9inwlTEj+fYoKUl1up5qId9i7J7hF3ij6nOT5BXUSaxd O0sFc8dt3stABC8bNXIIplN9g2YfH5+KJvfOzNwfmRq2tiuKVQUxywc7R1G1s4Ht1bQF39VyKXo uuWhNLD1Uw== X-Received: by 2002:a05:6820:4b14:b0:69e:ba22:33a8 with SMTP id 006d021491bc7-6a122e90ea3mr3771520eaf.9.1782342339732; Wed, 24 Jun 2026 16:05:39 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Richard Guo Date: Thu, 25 Jun 2026 08:05:28 +0900 X-Gm-Features: AVVi8CexeGehAEF1mN08IPST4-_kOTP6ETyp3gG1hkNDfnHjJdZKsI3rUBjZ4DM Message-ID: Subject: Re: Add enable_groupagg GUC parameter to control GroupAggregate usage To: Tatsuro Yamada Cc: David Rowley , Ashutosh Bapat , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000074366065507ea6a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000074366065507ea6a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Jun 20, 2025 at 7:35=E2=80=AFPM Tatsuro Yamada wrote: > Thank you for the explanation. > I wasn't aware that enable_sort could be used to switch from GroupAgg > to HashAgg. > From a user's perspective, I think many would expect that if > enable_hashagg exists, then enable_groupagg would as well. Adding > such a GUC parameter seems intuitive and reasonable.So, I believe > there's value in introducing the parameter I proposed. > > On the other hand, if this technique (using enable_sort) is already > widely known and commonly used, and I'm simply unfamiliar with it, > then perhaps adding this GUC might not be worth the effort. > > If several people support the idea of adding this GUC parameter, > I'm thinking of creating and submitting a patch that incorporates your > comment below. I believe both David and Ashutosh support the proposal. > Can I go ahead as planned? > > What do others involved in planner and plan-tuning think? I think this is a nice idea. It is true that we can sometimes use enable_sort to push the planner off a sorted grouping plan, but it is a much bigger hammer, as it discourages every Sort in the query, not just the one under the grouping, so it can move other parts of the plan around and doesn't really isolate the grouping choice. And it doesn't always work anyway. If the grouping input happens to be cheaply sorted there's no Sort to penalize, so the sorted plan survives. I ran into exactly that in union.sql, where enable_sort=3Doff isn't really producing the hashed INTERSECT it looks like it is testing. Look at this plan from union.out: -- check hashed implementation set enable_hashagg =3D true; set enable_sort =3D false; explain (costs off) select from generate_series(1,5) intersect select from generate_series(1,3)= ; QUERY PLAN ---------------------------------------------------------- SetOp Intersect -> Function Scan on generate_series -> Function Scan on generate_series generate_series_1 (3 rows) Also, without such a GUC, there are some paths that we have no way to generate. Look at this comment in union.sql: -- We've no way to check hashed UNION as the empty pathkeys in the Append a= re -- fine to make use of Unique, which is cheaper than HashAggregate and we'v= e -- no means to disable Unique. Regarding the patch, currently the new GUC only covers GroupAggregate. I think we should make it to cover all sort-based equivalents of enable_hashagg, such as the sorted mode of SetOp (as David suggested), sort-based Unique step used for DISTINCT and semijoin unique-ification, and maybe also Group nodes. I rebased your last patch and made some changes. Attached is what I ended up with. - Richard --000000000000074366065507ea6a Content-Type: application/octet-stream; name="v3-0001-Add-an-enable_groupagg-GUC-parameter.patch" Content-Disposition: attachment; filename="v3-0001-Add-an-enable_groupagg-GUC-parameter.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqsolhm00 RnJvbSA5NmIyZDU1MjZlYmYzZTVkOTEwNDQ2YjA4ODA5ODcwMjgzNjg2OWNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEd1byA8Z3VvZmVuZ2xpbnV4QGdtYWlsLmNvbT4K RGF0ZTogV2VkLCAyNCBKdW4gMjAyNiAxODowOTowNiArMDkwMApTdWJqZWN0OiBbUEFUQ0ggdjNd IEFkZCBhbiBlbmFibGVfZ3JvdXBhZ2cgR1VDIHBhcmFtZXRlcgoKV2UndmUgbG9uZyBoYWQgZW5h YmxlX2hhc2hhZ2cgdG8gZGlzY291cmFnZSBoYXNoZWQgYWdncmVnYXRpb24sIGJ1dAp0aGVyZSB3 YXMgbm8gZXF1aXZhbGVudCBmb3IgZ3JvdXBpbmcgdGhhdCB3b3JrcyBieSByZWFkaW5nIHByZXNv cnRlZAppbnB1dC4gIFRoYXQncyBoYW5keSB3aGVuIGludmVzdGlnYXRpbmcgcGxhbm5lciBjb3N0 IG1pc2VzdGltYXRlcywgYW5kCmFzIGFuIGVzY2FwZSBoYXRjaCB3aGVuIGEgc29ydGVkIGdyb3Vw aW5nIHBsYW4gaXMgY2hvc2VuIG92ZXIgYSBtdWNoCmNoZWFwZXIgaGFzaGVkIG9uZS4KCmVuYWJs ZV9ncm91cGFnZyAob24gYnkgZGVmYXVsdCkgY292ZXJzIHRoZSBHcm91cEFnZ3JlZ2F0ZSBhbmQg R3JvdXAKbm9kZXMsIHRoZSBzb3J0LWJhc2VkIFVuaXF1ZSBzdGVwIHVzZWQgZm9yIERJU1RJTkNU IGFuZCBzZW1pam9pbgp1bmlxdWUtaWZpY2F0aW9uLCBhbmQgdGhlIHNvcnRlZCBtb2RlIG9mIFNl dE9wLiAgSXQgaXNuJ3QgYSBoYXJkCnN3aXRjaDsgaXQgb25seSBidW1wcyBkaXNhYmxlZF9ub2Rl cywgc28gcGxhbnMgd2l0aCBubyBvdGhlciBjaG9pY2UKYXJlIHN0aWxsIHByb2R1Y2VkLgoKU2V2 ZXJhbCByZWdyZXNzaW9uIGFuZCBtb2R1bGUgdGVzdHMgaGFkIGJlZW4gc2V0dGluZyBlbmFibGVf c29ydCBvZmYsCmFuZCBvbmUgZW5hYmxlX2luZGV4c2NhbiBvZmYsIG9ubHkgdG8gZm9yY2UgYSBo YXNoZWQgcGxhbi4gIFVzZQplbmFibGVfZ3JvdXBhZ2cgdGhlcmUgaW5zdGVhZCwgd2hlcmUgdGhh dCB3YXMgdGhlIHJlYWwgaW50ZW50LiAgSW4KdW5pb24uc3FsIHRoaXMgYWxzbyBsZXRzIHVzIHRl c3QgdGhlIGhhc2hlZCBVTklPTiBwYXRoLCB3aGljaCB3ZSBoYWQKbm8gd2F5IHRvIHJlYWNoIGJl Zm9yZS4KLS0tCiBjb250cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0ICAgICAgICAgICAg fCAgNCArLQogY29udHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwgICAgICAgICAgICAgICAgIHwg IDQgKy0KIGNvbnRyaWIvbHRyZWUvZXhwZWN0ZWQvbHRyZWUub3V0ICAgICAgICAgICAgICB8ICA0 ICstCiBjb250cmliL2x0cmVlL3NxbC9sdHJlZS5zcWwgICAgICAgICAgICAgICAgICAgfCAgNCAr LQogZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysr KysrKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvY29zdHNpemUuYyAgICAgICAgIHwgMjMg KysrKysrKysrLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jICAgICAg ICAgfCAyMCArKysrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJz LmRhdCAgICAgfCAgNyArKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29u Zi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIvY29zdC5oICAgICAgICAgICAg ICAgICAgfCAgMSArCiAuLi4vaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9oYXNoYWdnLm91dCAg ICAgfCAgMiArLQogLi4uL21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcWwvaGFzaGFnZy5zcWwg IHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWdncmVnYXRlcy5vdXQgICAgICB8 IDEwICsrLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyb3VwaW5nc2V0cy5vdXQgICAg fCAgNyArKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCAgICAgICAgICAg fCAgNiArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dCB8 ICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0ICAgICAgfCAg NCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZWxlY3RfZGlzdGluY3Qub3V0IHwgIDQg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2VsZWN0Lm91dCAgICAgICB8ICAyICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dCAgICAgICAgfCAgMyArLQog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQgICAgICAgICAgIHwgMzcgKysrKysr KysrKysrLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWdncmVnYXRlcy5zcWwgICAgICAg ICAgIHwgMTAgKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyb3VwaW5nc2V0cy5zcWwgICAg ICAgICB8ICA3ICsrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCAgICAgICAgICAg ICAgICB8ICA2ICstLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbCAg ICAgIHwgIDQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsICAgICAgICAg ICB8ICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZWxlY3RfZGlzdGluY3Quc3FsICAgICAg fCAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2VsZWN0LnNxbCAgICAgICAgICAgIHwg IDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VuaW9uLnNxbCAgICAgICAgICAgICAgICB8IDE2 ICsrKystLS0tCiAyOSBmaWxlcyBjaGFuZ2VkLCAxNDcgaW5zZXJ0aW9ucygrKSwgNjkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3JlLm91dCBi L2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5vdXQKaW5kZXggYWNlYTg4MDZiYTQuLjk3 MTMzNzJiN2E0IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0 CisrKyBiL2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5vdXQKQEAgLTE1MDksNyArMTUw OSw3IEBAIHNlbGVjdCBjb3VudCgqKSBmcm9tIChzZWxlY3QgaCBmcm9tIChzZWxlY3QgKiBmcm9t IHRlc3Roc3RvcmUgdW5pb24gYWxsIHNlbGVjdCAqCiAoMSByb3cpCiAKIHNldCBlbmFibGVfaGFz aGFnZyA9IHRydWU7Ci1zZXQgZW5hYmxlX3NvcnQgPSBmYWxzZTsKK3NldCBlbmFibGVfZ3JvdXBh Z2cgPSBmYWxzZTsKIHNlbGVjdCBjb3VudCgqKSBmcm9tIChzZWxlY3QgaCBmcm9tIChzZWxlY3Qg KiBmcm9tIHRlc3Roc3RvcmUgdW5pb24gYWxsIHNlbGVjdCAqIGZyb20gdGVzdGhzdG9yZSkgaHMg Z3JvdXAgYnkgaCkgaHMyOwogIGNvdW50IAogLS0tLS0tLQpAQCAtMTUyMiw3ICsxNTIyLDcgQEAg c2VsZWN0IGRpc3RpbmN0ICogZnJvbSAodmFsdWVzIChoc3RvcmUgJycgfHwgJycpLCgnJykpIHYo aCk7CiAgCiAoMSByb3cpCiAKLXNldCBlbmFibGVfc29ydCA9IHRydWU7CitzZXQgZW5hYmxlX2dy b3VwYWdnID0gdHJ1ZTsKIC0tIGJ0cmVlCiBkcm9wIGluZGV4IGhpZHg7CiBjcmVhdGUgaW5kZXgg aGlkeCBvbiB0ZXN0aHN0b3JlIHVzaW5nIGJ0cmVlIChoKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIv aHN0b3JlL3NxbC9oc3RvcmUuc3FsIGIvY29udHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwKaW5k ZXggOGFlOTVlOGE1MTAuLmFjOTI5ZTA3NTA5IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9z cWwvaHN0b3JlLnNxbAorKysgYi9jb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbApAQCAtMzQ1 LDEwICszNDUsMTAgQEAgc2VsZWN0IGNvdW50KGRpc3RpbmN0IGgpIGZyb20gdGVzdGhzdG9yZTsK IHNldCBlbmFibGVfaGFzaGFnZyA9IGZhbHNlOwogc2VsZWN0IGNvdW50KCopIGZyb20gKHNlbGVj dCBoIGZyb20gKHNlbGVjdCAqIGZyb20gdGVzdGhzdG9yZSB1bmlvbiBhbGwgc2VsZWN0ICogZnJv bSB0ZXN0aHN0b3JlKSBocyBncm91cCBieSBoKSBoczI7CiBzZXQgZW5hYmxlX2hhc2hhZ2cgPSB0 cnVlOwotc2V0IGVuYWJsZV9zb3J0ID0gZmFsc2U7CitzZXQgZW5hYmxlX2dyb3VwYWdnID0gZmFs c2U7CiBzZWxlY3QgY291bnQoKikgZnJvbSAoc2VsZWN0IGggZnJvbSAoc2VsZWN0ICogZnJvbSB0 ZXN0aHN0b3JlIHVuaW9uIGFsbCBzZWxlY3QgKiBmcm9tIHRlc3Roc3RvcmUpIGhzIGdyb3VwIGJ5 IGgpIGhzMjsKIHNlbGVjdCBkaXN0aW5jdCAqIGZyb20gKHZhbHVlcyAoaHN0b3JlICcnIHx8ICcn KSwoJycpKSB2KGgpOwotc2V0IGVuYWJsZV9zb3J0ID0gdHJ1ZTsKK3NldCBlbmFibGVfZ3JvdXBh Z2cgPSB0cnVlOwogCiAtLSBidHJlZQogZHJvcCBpbmRleCBoaWR4OwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9sdHJlZS9leHBlY3RlZC9sdHJlZS5vdXQgYi9jb250cmliL2x0cmVlL2V4cGVjdGVkL2x0 cmVlLm91dAppbmRleCBmMWQwZWIzN2I4MS4uMGFiNjIzY2MyMDQgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvbHRyZWUvZXhwZWN0ZWQvbHRyZWUub3V0CisrKyBiL2NvbnRyaWIvbHRyZWUvZXhwZWN0ZWQv bHRyZWUub3V0CkBAIC03ODkxLDcgKzc4OTEsNyBAQCByZXNldCBlbmFibGVfc2Vxc2NhbjsKIHJl c2V0IGVuYWJsZV9iaXRtYXBzY2FuOwogLS0gdGVzdCBoYXNoIGFnZ3JlZ2F0ZQogc2V0IGVuYWJs ZV9oYXNoYWdnPW9uOwotc2V0IGVuYWJsZV9zb3J0PW9mZjsKK3NldCBlbmFibGVfZ3JvdXBhZ2c9 b2ZmOwogRVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIGNvdW50KCopIEZST00gKAogU0VMRUNU IHQgRlJPTSAoU0VMRUNUICogRlJPTSBsdHJlZXRlc3QgVU5JT04gQUxMIFNFTEVDVCAqIEZST00g bHRyZWV0ZXN0KSB0MSBHUk9VUCBCWSB0CkBAIC03OTE1LDcgKzc5MTUsNyBAQCBTRUxFQ1QgdCBG Uk9NIChTRUxFQ1QgKiBGUk9NIGx0cmVldGVzdCBVTklPTiBBTEwgU0VMRUNUICogRlJPTSBsdHJl ZXRlc3QpIHQxIEdSTwogKDEgcm93KQogCiByZXNldCBlbmFibGVfaGFzaGFnZzsKLXJlc2V0IGVu YWJsZV9zb3J0OworcmVzZXQgZW5hYmxlX2dyb3VwYWdnOwogZHJvcCBpbmRleCB0c3RpZHg7CiAt LSB0ZXN0IGdpc3QgaW5kZXgKIGNyZWF0ZSBpbmRleCB0c3RpZHggb24gbHRyZWV0ZXN0IHVzaW5n IGdpc3QgKHQgZ2lzdF9sdHJlZV9vcHMoc2lnbGVuPTApKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIv bHRyZWUvc3FsL2x0cmVlLnNxbCBiL2NvbnRyaWIvbHRyZWUvc3FsL2x0cmVlLnNxbAppbmRleCA4 MzMwOTFkYzZiYi4uNWMzMjQxNjBhZmQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvbHRyZWUvc3FsL2x0 cmVlLnNxbAorKysgYi9jb250cmliL2x0cmVlL3NxbC9sdHJlZS5zcWwKQEAgLTM3Miw3ICszNzIs NyBAQCByZXNldCBlbmFibGVfYml0bWFwc2NhbjsKIC0tIHRlc3QgaGFzaCBhZ2dyZWdhdGUKIAog c2V0IGVuYWJsZV9oYXNoYWdnPW9uOwotc2V0IGVuYWJsZV9zb3J0PW9mZjsKK3NldCBlbmFibGVf Z3JvdXBhZ2c9b2ZmOwogCiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgY291bnQoKikgRlJP TSAoCkBAIC0zODQsNyArMzg0LDcgQEAgU0VMRUNUIHQgRlJPTSAoU0VMRUNUICogRlJPTSBsdHJl ZXRlc3QgVU5JT04gQUxMIFNFTEVDVCAqIEZST00gbHRyZWV0ZXN0KSB0MSBHUk8KICkgdDI7CiAK IHJlc2V0IGVuYWJsZV9oYXNoYWdnOwotcmVzZXQgZW5hYmxlX3NvcnQ7CityZXNldCBlbmFibGVf Z3JvdXBhZ2c7CiAKIGRyb3AgaW5kZXggdHN0aWR4OwogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggZmE1NjZjOWU1 NTMuLmIzOTUyMjFjYWQxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC01ODYxLDYgKzU4NjEsMjAgQEAgQU5ZIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1fc3luYzwvcmVwbGFjZWFibGU+ICggPHJl cGxhY2VhYmxlIGNsYXNzPSIKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5 PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1lbmFibGUtZ3JvdXBhZ2ciIHhyZWZsYWJl bD0iZW5hYmxlX2dyb3VwYWdnIj4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmVuYWJsZV9ncm91cGFn ZzwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAg ICAgICA8cHJpbWFyeT48dmFybmFtZT5lbmFibGVfZ3JvdXBhZ2c8L3Zhcm5hbWU+IGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rl cm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEVuYWJsZXMgb3Ig ZGlzYWJsZXMgdGhlIHF1ZXJ5IHBsYW5uZXIncyB1c2Ugb2Ygc29ydC1iYXNlZCBncm91cGluZwor ICAgICAgICBhbmQgYWdncmVnYXRpb24gcGxhbiB0eXBlcy4gVGhlIGRlZmF1bHQgaXMgPGxpdGVy YWw+b248L2xpdGVyYWw+LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAg IDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1lbmFibGUtaGFz aGFnZyIgeHJlZmxhYmVsPSJlbmFibGVfaGFzaGFnZyI+CiAgICAgICA8dGVybT48dmFybmFtZT5l bmFibGVfaGFzaGFnZzwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQogICAgICAgPGlu ZGV4dGVybT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2Nvc3RzaXpl LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5jCmluZGV4IDFjNTc1ZTU2 ZmY2Li45ZDFlN2U5YjlhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgv Y29zdHNpemUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9jb3N0c2l6ZS5jCkBA IC0xNTEsNiArMTUxLDcgQEAgYm9vbAkJZW5hYmxlX3RpZHNjYW4gPSB0cnVlOwogYm9vbAkJZW5h YmxlX3NvcnQgPSB0cnVlOwogYm9vbAkJZW5hYmxlX2luY3JlbWVudGFsX3NvcnQgPSB0cnVlOwog Ym9vbAkJZW5hYmxlX2hhc2hhZ2cgPSB0cnVlOworYm9vbAkJZW5hYmxlX2dyb3VwYWdnID0gdHJ1 ZTsKIGJvb2wJCWVuYWJsZV9uZXN0bG9vcCA9IHRydWU7CiBib29sCQllbmFibGVfbWF0ZXJpYWwg PSB0cnVlOwogYm9vbAkJZW5hYmxlX21lbW9pemUgPSB0cnVlOwpAQCAtMjg0Myw4ICsyODQ0LDYg QEAgY29zdF9hZ2coUGF0aCAqcGF0aCwgUGxhbm5lckluZm8gKnJvb3QsCiAJCS8qIEhlcmUgd2Ug YXJlIGFibGUgdG8gZGVsaXZlciBvdXRwdXQgb24tdGhlLWZseSAqLwogCQlzdGFydHVwX2Nvc3Qg PSBpbnB1dF9zdGFydHVwX2Nvc3Q7CiAJCXRvdGFsX2Nvc3QgPSBpbnB1dF90b3RhbF9jb3N0Owot CQlpZiAoYWdnc3RyYXRlZ3kgPT0gQUdHX01JWEVEICYmICFlbmFibGVfaGFzaGFnZykKLQkJCSsr ZGlzYWJsZWRfbm9kZXM7CiAJCS8qIGNhbGNzIHBocmFzZWQgdGhpcyB3YXkgdG8gbWF0Y2ggSEFT SEVEIGNhc2UsIHNlZSBub3RlIGFib3ZlICovCiAJCXRvdGFsX2Nvc3QgKz0gYWdnY29zdHMtPnRy YW5zQ29zdC5zdGFydHVwOwogCQl0b3RhbF9jb3N0ICs9IGFnZ2Nvc3RzLT50cmFuc0Nvc3QucGVy X3R1cGxlICogaW5wdXRfdHVwbGVzOwpAQCAtMjg1MywxMyArMjg1MiwyNCBAQCBjb3N0X2FnZyhQ YXRoICpwYXRoLCBQbGFubmVySW5mbyAqcm9vdCwKIAkJdG90YWxfY29zdCArPSBhZ2djb3N0cy0+ ZmluYWxDb3N0LnBlcl90dXBsZSAqIG51bUdyb3VwczsKIAkJdG90YWxfY29zdCArPSBjcHVfdHVw bGVfY29zdCAqIG51bUdyb3VwczsKIAkJb3V0cHV0X3R1cGxlcyA9IG51bUdyb3VwczsKKworCQkv KgorCQkgKiBBR0dfTUlYRUQgcGVyZm9ybXMgYm90aCBoYXNoZWQgYW5kIHNvcnRlZCBncm91cGlu Zywgc28gaXQgaXMKKwkJICogZGlzYWJsZWQgaWYgZWl0aGVyIHN3aXRjaCBpcyBvZmY7IEFHR19T T1JURUQgaXMgZGlzYWJsZWQgb25seSBieQorCQkgKiBlbmFibGVfZ3JvdXBhZ2cuCisJCSAqLwor CQlpZiAoYWdnc3RyYXRlZ3kgPT0gQUdHX01JWEVEKQorCQl7CisJCQlpZiAoIWVuYWJsZV9oYXNo YWdnIHx8ICFlbmFibGVfZ3JvdXBhZ2cpCisJCQkJKytkaXNhYmxlZF9ub2RlczsKKwkJfQorCQll bHNlIGlmICghZW5hYmxlX2dyb3VwYWdnKQkvKiBBR0dfU09SVEVEICovCisJCQkrK2Rpc2FibGVk X25vZGVzOwogCX0KIAllbHNlCiAJewogCQkvKiBtdXN0IGJlIEFHR19IQVNIRUQgKi8KIAkJc3Rh cnR1cF9jb3N0ID0gaW5wdXRfdG90YWxfY29zdDsKLQkJaWYgKCFlbmFibGVfaGFzaGFnZykKLQkJ CSsrZGlzYWJsZWRfbm9kZXM7CiAJCXN0YXJ0dXBfY29zdCArPSBhZ2djb3N0cy0+dHJhbnNDb3N0 LnN0YXJ0dXA7CiAJCXN0YXJ0dXBfY29zdCArPSBhZ2djb3N0cy0+dHJhbnNDb3N0LnBlcl90dXBs ZSAqIGlucHV0X3R1cGxlczsKIAkJLyogY29zdCBvZiBjb21wdXRpbmcgaGFzaCB2YWx1ZSAqLwpA QCAtMjg3MSw2ICsyODgxLDkgQEAgY29zdF9hZ2coUGF0aCAqcGF0aCwgUGxhbm5lckluZm8gKnJv b3QsCiAJCS8qIGNvc3Qgb2YgcmV0cmlldmluZyBmcm9tIGhhc2ggdGFibGUgKi8KIAkJdG90YWxf Y29zdCArPSBjcHVfdHVwbGVfY29zdCAqIG51bUdyb3VwczsKIAkJb3V0cHV0X3R1cGxlcyA9IG51 bUdyb3VwczsKKworCQlpZiAoIWVuYWJsZV9oYXNoYWdnKQorCQkJKytkaXNhYmxlZF9ub2RlczsK IAl9CiAKIAkvKgpAQCAtMzM0MCw3ICszMzUzLDcgQEAgY29zdF9ncm91cChQYXRoICpwYXRoLCBQ bGFubmVySW5mbyAqcm9vdCwKIAl9CiAKIAlwYXRoLT5yb3dzID0gb3V0cHV0X3R1cGxlczsKLQlw YXRoLT5kaXNhYmxlZF9ub2RlcyA9IGlucHV0X2Rpc2FibGVkX25vZGVzOworCXBhdGgtPmRpc2Fi bGVkX25vZGVzID0gaW5wdXRfZGlzYWJsZWRfbm9kZXMgKyAoZW5hYmxlX2dyb3VwYWdnID8gMCA6 IDEpOwogCXBhdGgtPnN0YXJ0dXBfY29zdCA9IHN0YXJ0dXBfY29zdDsKIAlwYXRoLT50b3RhbF9j b3N0ID0gdG90YWxfY29zdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL3BhdGhub2RlLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCmlu ZGV4IDczNTE4YzhmODcwLi4zODc1ZTNkZDU3MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvcGF0aG5vZGUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9w YXRobm9kZS5jCkBAIC0zMDM2LDYgKzMwMzYsMTYgQEAgY3JlYXRlX3VuaXF1ZV9wYXRoKFBsYW5u ZXJJbmZvICpyb290LAogCQljcHVfb3BlcmF0b3JfY29zdCAqIHN1YnBhdGgtPnJvd3MgKiBudW1D b2xzOwogCXBhdGhub2RlLT5wYXRoLnJvd3MgPSBudW1Hcm91cHM7CiAKKwkvKgorCSAqIE1hcmsg dGhlIHBhdGggYXMgZGlzYWJsZWQgaWYgZW5hYmxlX2dyb3VwYWdnIGlzIG9mZi4gIFdoaWxlIHRo aXMgaXNuJ3QKKwkgKiBhIGdyb3VwaW5nIEFnZyBub2RlLCBpdCBpcyB0aGUgc29ydC1iYXNlZCB3 YXkgb2YgcmVtb3ZpbmcgZHVwbGljYXRlcworCSAqIGFuZCBzbyBpcyB0aGUgbmF0dXJhbCBjb3Vu dGVycGFydCB0byB0aGUgQUdHX0hBU0hFRCBwYXRoIHRoYXQKKwkgKiBlbmFibGVfaGFzaGFnZyBj b250cm9sczsgaXQgc2VlbXMgY2xvc2UgZW5vdWdoIHRvIGp1c3RpZnkgbGV0dGluZyB0aGF0CisJ ICogc3dpdGNoIGNvbnRyb2wgaXQuCisJICovCisJaWYgKCFlbmFibGVfZ3JvdXBhZ2cpCisJCXBh dGhub2RlLT5wYXRoLmRpc2FibGVkX25vZGVzKys7CisKIAlyZXR1cm4gcGF0aG5vZGU7CiB9CiAK QEAgLTM1MjIsNiArMzUzMiwxNiBAQCBjcmVhdGVfc2V0b3BfcGF0aChQbGFubmVySW5mbyAqcm9v dCwKIAkJICogcXVhbC1jaGVja2luZyBvciBwcm9qZWN0aW9uLgogCQkgKi8KIAkJcGF0aG5vZGUt PnBhdGgudG90YWxfY29zdCArPSBjcHVfb3BlcmF0b3JfY29zdCAqIG91dHB1dFJvd3M7CisKKwkJ LyoKKwkJICogTWFyayB0aGUgcGF0aCBhcyBkaXNhYmxlZCBpZiBlbmFibGVfZ3JvdXBhZ2cgaXMg b2ZmLiAgV2hpbGUgdGhpcworCQkgKiBpc24ndCBhIGdyb3VwaW5nIEFnZyBub2RlLCBpdCBpcyB0 aGUgc29ydC1iYXNlZCBpbXBsZW1lbnRhdGlvbiBhbmQKKwkJICogc28gaXMgdGhlIG5hdHVyYWwg Y291bnRlcnBhcnQgdG8gdGhlIFNFVE9QX0hBU0hFRCBwYXRoIHRoYXQKKwkJICogZW5hYmxlX2hh c2hhZ2cgY29udHJvbHM7IGl0IHNlZW1zIGNsb3NlIGVub3VnaCB0byBqdXN0aWZ5IGxldHRpbmcK KwkJICogdGhhdCBzd2l0Y2ggY29udHJvbCBpdC4KKwkJICovCisJCWlmICghZW5hYmxlX2dyb3Vw YWdnKQorCQkJcGF0aG5vZGUtPnBhdGguZGlzYWJsZWRfbm9kZXMrKzsKIAl9CiAJZWxzZQogCXsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0IGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5kYXQKaW5kZXggN2IxZWI2ZTYx YmMuLjNmOWRjM2ZjNWE2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19w YXJhbWV0ZXJzLmRhdAorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJz LmRhdApAQCAtOTA1LDYgKzkwNSwxMyBAQAogICBib290X3ZhbCA9PiAndHJ1ZScsCiB9LAogCit7 IG5hbWUgPT4gJ2VuYWJsZV9ncm91cGFnZycsIHR5cGUgPT4gJ2Jvb2wnLCBjb250ZXh0ID0+ICdQ R0NfVVNFUlNFVCcsIGdyb3VwID0+ICdRVUVSWV9UVU5JTkdfTUVUSE9EJywKKyAgc2hvcnRfZGVz YyA9PiAnRW5hYmxlcyB0aGUgcGxhbm5lclwncyB1c2Ugb2Ygc29ydC1iYXNlZCBncm91cGluZyBh bmQgYWdncmVnYXRpb24gcGxhbnMuJywKKyAgZmxhZ3MgPT4gJ0dVQ19FWFBMQUlOJywKKyAgdmFy aWFibGUgPT4gJ2VuYWJsZV9ncm91cGFnZycsCisgIGJvb3RfdmFsID0+ICd0cnVlJywKK30sCisK IHsgbmFtZSA9PiAnZW5hYmxlX2hhc2hhZ2cnLCB0eXBlID0+ICdib29sJywgY29udGV4dCA9PiAn UEdDX1VTRVJTRVQnLCBncm91cCA9PiAnUVVFUllfVFVOSU5HX01FVEhPRCcsCiAgIHNob3J0X2Rl c2MgPT4gJ0VuYWJsZXMgdGhlIHBsYW5uZXJcJ3MgdXNlIG9mIGhhc2hlZCBhZ2dyZWdhdGlvbiBw bGFucy4nLAogICBmbGFncyA9PiAnR1VDX0VYUExBSU4nLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGFjMzhjZGRhYWY5Li4yNDkwZjI3NjAx OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2Ft cGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpA QCAtNDI2LDYgKzQyNiw3IEBACiAjZW5hYmxlX2FzeW5jX2FwcGVuZCA9IG9uCiAjZW5hYmxlX2Jp dG1hcHNjYW4gPSBvbgogI2VuYWJsZV9nYXRoZXJtZXJnZSA9IG9uCisjZW5hYmxlX2dyb3VwYWdn ID0gb24KICNlbmFibGVfaGFzaGFnZyA9IG9uCiAjZW5hYmxlX2hhc2hqb2luID0gb24KICNlbmFi bGVfaW5jcmVtZW50YWxfc29ydCA9IG9uCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6 ZXIvY29zdC5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL2Nvc3QuaAppbmRleCBmMmZkNWQzMTUw Ny4uYmRhM2YxNjkwYzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9jb3N0LmgK KysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL2Nvc3QuaApAQCAtNTcsNiArNTcsNyBAQCBleHRl cm4gUEdETExJTVBPUlQgYm9vbCBlbmFibGVfdGlkc2NhbjsKIGV4dGVybiBQR0RMTElNUE9SVCBi b29sIGVuYWJsZV9zb3J0OwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgZW5hYmxlX2luY3JlbWVu dGFsX3NvcnQ7CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBlbmFibGVfaGFzaGFnZzsKK2V4dGVy biBQR0RMTElNUE9SVCBib29sIGVuYWJsZV9ncm91cGFnZzsKIGV4dGVybiBQR0RMTElNUE9SVCBi b29sIGVuYWJsZV9uZXN0bG9vcDsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIGVuYWJsZV9tYXRl cmlhbDsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIGVuYWJsZV9tZW1vaXplOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2hhc2hhZ2cub3V0 IGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2hhc2hhZ2cub3V0 CmluZGV4IGNjNDI0N2FmOTdkLi4yZjc1ZTliZThiNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9k dWxlcy9pbmplY3Rpb25fcG9pbnRzL2V4cGVjdGVkL2hhc2hhZ2cub3V0CisrKyBiL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9oYXNoYWdnLm91dApAQCAtMzYsNyAr MzYsNyBAQCBDUkVBVEUgVEFCTEUgaGFzaGFnZ19paih4IElOVEVHRVIpOwogSU5TRVJUIElOVE8g aGFzaGFnZ19paiBTRUxFQ1QgZyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDUxMDApIGc7CiBTRVQg bWF4X3BhcmFsbGVsX3dvcmtlcnM9MDsKIFNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0 aGVyPTA7Ci1TRVQgZW5hYmxlX3NvcnQ9RkFMU0U7CitTRVQgZW5hYmxlX2dyb3VwYWdnPUZBTFNF OwogU0VUIHdvcmtfbWVtPSc0TUInOwogU0VMRUNUIENPVU5UKCopIEZST00gKFNFTEVDVCBESVNU SU5DVCB4IEZST00gaGFzaGFnZ19paikgczsKIE5PVElDRTogIG5vdGljZSB0cmlnZ2VyZWQgZm9y IGluamVjdGlvbiBwb2ludCBoYXNoLWFnZ3JlZ2F0ZS1zcGlsbC0xMDAwCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3FsL2hhc2hhZ2cuc3FsIGIvc3JjL3Rl c3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL3NxbC9oYXNoYWdnLnNxbAppbmRleCA1MWQ4MTQ2 MjNmYy4uNWQ1ODBmOGU0MjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9u X3BvaW50cy9zcWwvaGFzaGFnZy5zcWwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25f cG9pbnRzL3NxbC9oYXNoYWdnLnNxbApAQCAtMTcsNyArMTcsNyBAQCBJTlNFUlQgSU5UTyBoYXNo YWdnX2lqIFNFTEVDVCBnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsNTEwMCkgZzsKIAogU0VUIG1h eF9wYXJhbGxlbF93b3JrZXJzPTA7CiBTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhl cj0wOwotU0VUIGVuYWJsZV9zb3J0PUZBTFNFOworU0VUIGVuYWJsZV9ncm91cGFnZz1GQUxTRTsK IFNFVCB3b3JrX21lbT0nNE1CJzsKIAogU0VMRUNUIENPVU5UKCopIEZST00gKFNFTEVDVCBESVNU SU5DVCB4IEZST00gaGFzaGFnZ19paikgczsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvYWdncmVnYXRlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FnZ3Jl Z2F0ZXMub3V0CmluZGV4IDg5ZTA1MWVlODI0Li5kZTZmOTRhOWUxOSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hZ2dyZWdhdGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2FnZ3JlZ2F0ZXMub3V0CkBAIC0xNDU5LDcgKzE0NTksNyBAQCBkcm9wIGNh c2NhZGVzIHRvIHRhYmxlIG1pbm1heHRlc3QyCiBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIG1pbm1h eHRlc3QzCiAtLSBESVNUSU5DVCBjYW4gYWxzbyB0cmlnZ2VyIHdyb25nIGFuc3dlcnMgd2l0aCBo YXNoIGFnZ3JlZ2F0aW9uIChidWcgIzE4NDY1KQogYmVnaW47Ci1zZXQgbG9jYWwgZW5hYmxlX3Nv cnQgPSBvZmY7CitzZXQgbG9jYWwgZW5hYmxlX2dyb3VwYWdnID0gb2ZmOwogZXhwbGFpbiAoY29z dHMgb2ZmKQogICBzZWxlY3QgZjEsIChzZWxlY3QgZGlzdGluY3QgbWluKHQxLmYxKSBmcm9tIGlu dDRfdGJsIHQxIHdoZXJlIHQxLmYxID0gdDAuZjEpCiAgIGZyb20gaW50NF90YmwgdDA7CkBAIC0z ODA0LDcgKzM4MDQsNyBAQCBzZWxlY3Qgdnx8J2EnLCBjYXNlIHdoZW4gdnx8J2EnID0gJ2FhJyB0 aGVuIDEgZWxzZSAwIGVuZCwgY291bnQoKikKIC0tCiAtLSBIYXNoIEFnZ3JlZ2F0aW9uIFNwaWxs IHRlc3RzCiAtLQotc2V0IGVuYWJsZV9zb3J0PWZhbHNlOworc2V0IGVuYWJsZV9ncm91cGFnZz1m YWxzZTsKIHNldCB3b3JrX21lbT0nNjRrQic7CiBzZWxlY3QgdW5pcXVlMSwgY291bnQoKiksIHN1 bSh0d290aG91c2FuZCkgZnJvbSB0ZW5rMQogZ3JvdXAgYnkgdW5pcXVlMQpAQCAtMzg2Myw3ICsz ODYzLDcgQEAgb3JkZXIgYnkgc3VtKHR3b3Rob3VzYW5kKTsKICg0OCByb3dzKQogCiBzZXQgd29y a19tZW0gdG8gZGVmYXVsdDsKLXNldCBlbmFibGVfc29ydCB0byBkZWZhdWx0Oworc2V0IGVuYWJs ZV9ncm91cGFnZyB0byBkZWZhdWx0OwogLS0KIC0tIENvbXBhcmUgcmVzdWx0cyBiZXR3ZWVuIHBs YW5zIHVzaW5nIHNvcnRpbmcgYW5kIHBsYW5zIHVzaW5nIGhhc2gKIC0tIGFnZ3JlZ2F0aW9uLiBG b3JjZSBzcGlsbGluZyBpbiBib3RoIGNhc2VzIGJ5IHNldHRpbmcgd29ya19tZW0gbG93LgpAQCAt MzkxMiw3ICszOTEyLDcgQEAgc2VsZWN0IChnLzIpOjpudW1lcmljIGFzIGMxLCBhcnJheV9hZ2co Zzo6bnVtZXJpYykgYXMgYzIsIGNvdW50KCopIGFzIGMzCiAgIGZyb20gYWdnX2RhdGFfMmsgZ3Jv dXAgYnkgZy8yOwogLS0gUHJvZHVjZSByZXN1bHRzIHdpdGggaGFzaCBhZ2dyZWdhdGlvbgogc2V0 IGVuYWJsZV9oYXNoYWdnID0gdHJ1ZTsKLXNldCBlbmFibGVfc29ydCA9IGZhbHNlOworc2V0IGVu YWJsZV9ncm91cGFnZyA9IGZhbHNlOwogc2V0IGppdF9hYm92ZV9jb3N0ID0gMDsKIGV4cGxhaW4g KGNvc3RzIG9mZikKIHNlbGVjdCBnJTEwMDAwIGFzIGMxLCBzdW0oZzo6bnVtZXJpYykgYXMgYzIs IGNvdW50KCopIGFzIGMzCkBAIC0zOTQ0LDcgKzM5NDQsNyBAQCBzZWxlY3QgKGcvMik6Om51bWVy aWMgYXMgYzEsIHN1bSg3OjppbnQ0KSBhcyBjMiwgY291bnQoKikgYXMgYzMKIGNyZWF0ZSB0YWJs ZSBhZ2dfaGFzaF80IGFzCiBzZWxlY3QgKGcvMik6Om51bWVyaWMgYXMgYzEsIGFycmF5X2FnZyhn OjpudW1lcmljKSBhcyBjMiwgY291bnQoKikgYXMgYzMKICAgZnJvbSBhZ2dfZGF0YV8yayBncm91 cCBieSBnLzI7Ci1zZXQgZW5hYmxlX3NvcnQgPSB0cnVlOworc2V0IGVuYWJsZV9ncm91cGFnZyA9 IHRydWU7CiBzZXQgd29ya19tZW0gdG8gZGVmYXVsdDsKIC0tIENvbXBhcmUgZ3JvdXAgYWdncmVn YXRpb24gcmVzdWx0cyB0byBoYXNoIGFnZ3JlZ2F0aW9uIHJlc3VsdHMKIChzZWxlY3QgKiBmcm9t IGFnZ19oYXNoXzEgZXhjZXB0IHNlbGVjdCAqIGZyb20gYWdnX2dyb3VwXzEpCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyb3VwaW5nc2V0cy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2dyb3VwaW5nc2V0cy5vdXQKaW5kZXggYjA4MDgzZWM1NGMuLjYwMzc2 ZGIzZWEzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dyb3VwaW5nc2V0 cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ncm91cGluZ3NldHMub3V0CkBA IC0yMDEwLDYgKzIwMTAsOSBAQCBhbHRlciB0YWJsZSBidWdfMTY3ODQgc2V0IChhdXRvdmFjdXVt X2VuYWJsZWQgPSAnZmFsc2UnKTsKIHVwZGF0ZSBwZ19jbGFzcyBzZXQgcmVsdHVwbGVzID0gMTAg d2hlcmUgcmVsbmFtZT0nYnVnXzE2Nzg0JzsKIGluc2VydCBpbnRvIGJ1Z18xNjc4NCBzZWxlY3Qg Zy8xMCwgZyBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDQwKSBnOwogc2V0IHdvcmtfbWVtPSc2NGtC JzsKKy0tIFVzZSBlbmFibGVfc29ydCwgbm90IGVuYWJsZV9ncm91cGFnZywgdG8gZm9yY2UgaGFz aGluZyBoZXJlOiBjdWJlKCkKKy0tIGluY2x1ZGVzIHRoZSBlbXB0eSBncm91cGluZyBzZXQsIHdo aWNoIGNhbid0IGJlIGhhc2hlZCwgc28gZXZlbiB0aGUKKy0tIG1vc3QtaGFzaGVkIHBsYW4gaXMg QUdHX01JWEVELiAgZW5hYmxlX2dyb3VwYWdnIHdvdWxkIGRpc2FibGUgdGhhdCB0b28uCiBzZXQg ZW5hYmxlX3NvcnQgPSBmYWxzZTsKIHNlbGVjdCAqIGZyb20KICAgKHZhbHVlcyAoMSksKDIpKSB2 KGEpLApAQCAtMjIzMiw3ICsyMjM1LDkgQEAgZnJvbSBnc19kYXRhXzEgZ3JvdXAgYnkgY3ViZSAo ZzEwMDAsIGcxMDAsZzEwKTsKIGNyZWF0ZSB0YWJsZSBnc19ncm91cF8xIGFzCiBzZWxlY3QgZzEw MCwgZzEwLCBzdW0oZzo6bnVtZXJpYyksIGNvdW50KCopLCBtYXgoZzo6dGV4dCkKIGZyb20gZ3Nf ZGF0YV8xIGdyb3VwIGJ5IGN1YmUgKGcxMDAwLCBnMTAwLGcxMCk7Ci0tLSBQcm9kdWNlIHJlc3Vs dHMgd2l0aCBoYXNoIGFnZ3JlZ2F0aW9uLgorLS0gUHJvZHVjZSByZXN1bHRzIHdpdGggaGFzaCBh Z2dyZWdhdGlvbi4gIEFzIGFib3ZlLCB1c2UgZW5hYmxlX3NvcnQgcmF0aGVyCistLSB0aGFuIGVu YWJsZV9ncm91cGFnZzogY3ViZSgpJ3MgZW1wdHkgZ3JvdXBpbmcgc2V0IGZvcmNlcyBhbiBBR0df TUlYRUQKKy0tIHBsYW4sIHdoaWNoIGVuYWJsZV9ncm91cGFnZyB3b3VsZCBkaXNhYmxlLCBsZWF2 aW5nIGEgc29ydGVkIHBsYW4gaW5zdGVhZC4KIHNldCBlbmFibGVfaGFzaGFnZyA9IHRydWU7CiBz ZXQgZW5hYmxlX3NvcnQgPSBmYWxzZTsKIGV4cGxhaW4gKGNvc3RzIG9mZikKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9qc29uYi5vdXQKaW5kZXggNGUyNDY3ODUyZGIuLmIxZDJjZTVmMDNhIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dApAQCAtMzQ3Myw3ICszNDczLDcgQEAgU0VMRUNUIGNv dW50KCopIEZST00gKFNFTEVDVCBqIEZST00gKFNFTEVDVCAqIEZST00gdGVzdGpzb25iIFVOSU9O IEFMTCBTRUxFQ1QgKgogKDEgcm93KQogCiBTRVQgZW5hYmxlX2hhc2hhZ2cgPSBvbjsKLVNFVCBl bmFibGVfc29ydCA9IG9mZjsKK1NFVCBlbmFibGVfZ3JvdXBhZ2cgPSBvZmY7CiBTRUxFQ1QgY291 bnQoKikgRlJPTSAoU0VMRUNUIGogRlJPTSAoU0VMRUNUICogRlJPTSB0ZXN0anNvbmIgVU5JT04g QUxMIFNFTEVDVCAqIEZST00gdGVzdGpzb25iKSBqcyBHUk9VUCBCWSBqKSBqczI7CiAgY291bnQg CiAtLS0tLS0tCkBAIC0zNDg2LDkgKzM0ODYsOSBAQCBTRUxFQ1QgZGlzdGluY3QgKiBGUk9NICh2 YWx1ZXMgKGpzb25iICd7fScgfHwgJyc6OnRleHQpLCgne30nKSkgdihqKTsKICB7fQogKDEgcm93 KQogCi1TRVQgZW5hYmxlX3NvcnQgPSBvbjsKK1NFVCBlbmFibGVfZ3JvdXBhZ2cgPSBvbjsKIFJF U0VUIGVuYWJsZV9oYXNoYWdnOwotUkVTRVQgZW5hYmxlX3NvcnQ7CitSRVNFVCBlbmFibGVfZ3Jv dXBhZ2c7CiBEUk9QIElOREVYIGppZHg7CiBEUk9QIElOREVYIGppZHhfYXJyYXk7CiAtLSBidHJl ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tdWx0aXJhbmdldHlwZXMu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9tdWx0aXJhbmdldHlwZXMub3V0CmluZGV4 IDYwMDZhZWRlMzFkLi5kNDdjZTRiNmQ2YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9tdWx0aXJhbmdldHlwZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvbXVsdGlyYW5nZXR5cGVzLm91dApAQCAtMzQ0MiwxNCArMzQ0MiwxNCBAQCBOT1RJQ0U6ICBk cm9wIGNhc2NhZGVzIHRvIHR5cGUgdHdvX2ludHNfcmFuZ2UKIC0tCiAtLSBDaGVjayBiZWhhdmlv ciB3aGVuIHN1YnR5cGUgbGFja3MgYSBoYXNoIGZ1bmN0aW9uCiAtLQotc2V0IGVuYWJsZV9zb3J0 ID0gb2ZmOyAgLS0gdHJ5IHRvIG1ha2UgaXQgcGljayBhIGhhc2ggc2V0b3AgaW1wbGVtZW50YXRp b24KK3NldCBlbmFibGVfZ3JvdXBhZ2cgPSBvZmY7ICAtLSB0cnkgdG8gbWFrZSBpdCBwaWNrIGEg aGFzaCBzZXRvcCBpbXBsZW1lbnRhdGlvbgogc2VsZWN0ICd7KDAxLDEwKX0nOjp2YXJiaXRtdWx0 aXJhbmdlIGV4Y2VwdCBzZWxlY3QgJ3soMTAsMTEpfSc6OnZhcmJpdG11bHRpcmFuZ2U7CiAgdmFy Yml0bXVsdGlyYW5nZSAKIC0tLS0tLS0tLS0tLS0tLS0tLQogIHsoMDEsMTApfQogKDEgcm93KQog Ci1yZXNldCBlbmFibGVfc29ydDsKK3Jlc2V0IGVuYWJsZV9ncm91cGFnZzsKIC0tCiAtLSBPVVQv SU5PVVQvVEFCTEUgZnVuY3Rpb25zCiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9yYW5nZXR5cGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0 eXBlcy5vdXQKaW5kZXggZTA2MmE0ZTVjMmMuLmJhNjMwZTZmMjE1IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQKQEAgLTE4MTksMTQgKzE4MTksMTQgQEAgTk9USUNF OiAgZHJvcCBjYXNjYWRlcyB0byB0eXBlIHR3b19pbnRzX3JhbmdlCiAtLSBDaGVjayBiZWhhdmlv ciB3aGVuIHN1YnR5cGUgbGFja3MgYSBoYXNoIGZ1bmN0aW9uCiAtLQogY3JlYXRlIHR5cGUgdmFy Yml0cmFuZ2UgYXMgcmFuZ2UgKHN1YnR5cGUgPSB2YXJiaXQpOwotc2V0IGVuYWJsZV9zb3J0ID0g b2ZmOyAgLS0gdHJ5IHRvIG1ha2UgaXQgcGljayBhIGhhc2ggc2V0b3AgaW1wbGVtZW50YXRpb24K K3NldCBlbmFibGVfZ3JvdXBhZ2cgPSBvZmY7ICAtLSB0cnkgdG8gbWFrZSBpdCBwaWNrIGEgaGFz aCBzZXRvcCBpbXBsZW1lbnRhdGlvbgogc2VsZWN0ICcoMDEsMTApJzo6dmFyYml0cmFuZ2UgZXhj ZXB0IHNlbGVjdCAnKDEwLDExKSc6OnZhcmJpdHJhbmdlOwogIHZhcmJpdHJhbmdlIAogLS0tLS0t LS0tLS0tLQogICgwMSwxMCkKICgxIHJvdykKIAotcmVzZXQgZW5hYmxlX3NvcnQ7CityZXNldCBl bmFibGVfZ3JvdXBhZ2c7CiAtLQogLS0gT1VUL0lOT1VUL1RBQkxFIGZ1bmN0aW9ucwogLS0KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X2Rpc3RpbmN0Lm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2VsZWN0X2Rpc3RpbmN0Lm91dAppbmRleCAzNzli YTBiYzlmYS4uNzQxZjcyMzg3NDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2VsZWN0X2Rpc3RpbmN0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl bGVjdF9kaXN0aW5jdC5vdXQKQEAgLTE4Nyw3ICsxODcsNyBAQCBTRUxFQ1QgRElTVElOQ1QgaHVu ZHJlZCwgdHdvIEZST00gdGVuazE7CiBSRVNFVCBlbmFibGVfc2Vxc2NhbjsKIFNFVCBlbmFibGVf aGFzaGFnZz1UUlVFOwogLS0gUHJvZHVjZSByZXN1bHRzIHdpdGggaGFzaCBhZ2dyZWdhdGlvbi4K LVNFVCBlbmFibGVfc29ydD1GQUxTRTsKK1NFVCBlbmFibGVfZ3JvdXBhZ2c9RkFMU0U7CiBTRVQg aml0X2Fib3ZlX2Nvc3Q9MDsKIEVYUExBSU4gKGNvc3RzIG9mZikKIFNFTEVDVCBESVNUSU5DVCBn JTEwMDAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMCw5OTk5KSBnOwpAQCAtMjAzLDcgKzIwMyw3IEBA IFNFTEVDVCBESVNUSU5DVCBnJTEwMDAgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMCw5OTk5KSBnOwog U0VUIGppdF9hYm92ZV9jb3N0IFRPIERFRkFVTFQ7CiBDUkVBVEUgVEFCTEUgZGlzdGluY3RfaGFz aF8yIEFTCiBTRUxFQ1QgRElTVElOQ1QgKGclMTAwMCk6OnRleHQgRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMCw5OTk5KSBnOwotU0VUIGVuYWJsZV9zb3J0PVRSVUU7CitTRVQgZW5hYmxlX2dyb3VwYWdn PVRSVUU7CiBTRVQgd29ya19tZW0gVE8gREVGQVVMVDsKIC0tIENvbXBhcmUgcmVzdWx0cwogKFNF TEVDVCAqIEZST00gZGlzdGluY3RfaGFzaF8xIEVYQ0VQVCBTRUxFQ1QgKiBGUk9NIGRpc3RpbmN0 X2dyb3VwXzEpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNlbGVj dC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNlbGVjdC5vdXQKaW5kZXggYTM3 NzhjMjNjMzQuLmE3NWM0ZWYzZDNmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3N1YnNlbGVjdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzZWxl Y3Qub3V0CkBAIC0xNDU0LDcgKzE0NTQsNyBAQCB3aGVyZSBvLnRlbiA9IDA7CiAtLSBUZXN0IHJl c2NhbiBvZiBhIGhhc2hlZCBTZXRPcCBub2RlCiAtLQogYmVnaW47Ci1zZXQgbG9jYWwgZW5hYmxl X3NvcnQgPSBvZmY7CitzZXQgbG9jYWwgZW5hYmxlX2dyb3VwYWdnID0gb2ZmOwogZXhwbGFpbiAo Y29zdHMgb2ZmKQogc2VsZWN0IGNvdW50KCopIGZyb20KICAgb25layBvIGNyb3NzIGpvaW4gbGF0 ZXJhbCAoCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0CmluZGV4IDEzMmI1NmE1 ODY0Li4xZTMyN2MyYWZhNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z eXN2aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQK QEAgLTE2MSw2ICsxNjEsNyBAQCBzZWxlY3QgbmFtZSwgc2V0dGluZyBmcm9tIHBnX3NldHRpbmdz IHdoZXJlIG5hbWUgbGlrZSAnZW5hYmxlJSc7CiAgZW5hYmxlX2VhZ2VyX2FnZ3JlZ2F0ZSAgICAg ICAgIHwgb24KICBlbmFibGVfZ2F0aGVybWVyZ2UgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV9n cm91cF9ieV9yZW9yZGVyaW5nICAgICB8IG9uCisgZW5hYmxlX2dyb3VwYWdnICAgICAgICAgICAg ICAgIHwgb24KICBlbmFibGVfaGFzaGFnZyAgICAgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV9o YXNoam9pbiAgICAgICAgICAgICAgICB8IG9uCiAgZW5hYmxlX2luY3JlbWVudGFsX3NvcnQgICAg ICAgIHwgb24KQEAgLTE4MCw3ICsxODEsNyBAQCBzZWxlY3QgbmFtZSwgc2V0dGluZyBmcm9tIHBn X3NldHRpbmdzIHdoZXJlIG5hbWUgbGlrZSAnZW5hYmxlJSc7CiAgZW5hYmxlX3NlcXNjYW4gICAg ICAgICAgICAgICAgIHwgb24KICBlbmFibGVfc29ydCAgICAgICAgICAgICAgICAgICAgfCBvbgog IGVuYWJsZV90aWRzY2FuICAgICAgICAgICAgICAgICB8IG9uCi0oMjUgcm93cykKKygyNiByb3dz KQogCiAtLSBUaGVyZSBhcmUgYWx3YXlzIHdhaXQgZXZlbnQgZGVzY3JpcHRpb25zIGZvciB2YXJp b3VzIHR5cGVzLiAgSW5qZWN0aW9uUG9pbnQKIC0tIG1heSBiZSBwcmVzZW50IG9yIGFic2VudCwg ZGVwZW5kaW5nIG9uIGhpc3Rvcnkgc2luY2UgbGFzdCBwb3N0bWFzdGVyIHN0YXJ0LgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3VuaW9uLm91dAppbmRleCAzYTQ5YjM1NDA1OC4uNjIwNjU5NTNhODQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CkBAIC0zODYsMTQgKzM4NiwxNCBAQCBzZWxl Y3QgY291bnQoKikgZnJvbQogKDEgcm93KQogCiAtLSB0aGlzIHF1ZXJ5IHdpbGwgcHJlZmVyIGEg c29ydGVkIHNldG9wIHVubGVzcyB3ZSBmb3JjZSBpdC4KLXNldCBlbmFibGVfaW5kZXhzY2FuIHRv IG9mZjsKK3NldCBlbmFibGVfZ3JvdXBhZ2cgdG8gb2ZmOwogZXhwbGFpbiAoY29zdHMgb2ZmKQog c2VsZWN0IHVuaXF1ZTEgZnJvbSB0ZW5rMSBleGNlcHQgc2VsZWN0IHVuaXF1ZTIgZnJvbSB0ZW5r MSB3aGVyZSB1bmlxdWUyICE9IDEwOwotICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgSGFzaFNldE9w IEV4Y2VwdAotICAgLT4gIFNlcSBTY2FuIG9uIHRlbmsxCi0gICAtPiAgU2VxIFNjYW4gb24gdGVu azEgdGVuazFfMQorICAgLT4gIEluZGV4IE9ubHkgU2NhbiB1c2luZyB0ZW5rMV91bmlxdWUxIG9u IHRlbmsxCisgICAtPiAgSW5kZXggT25seSBTY2FuIHVzaW5nIHRlbmsxX3VuaXF1ZTIgb24gdGVu azEgdGVuazFfMQogICAgICAgICAgRmlsdGVyOiAodW5pcXVlMiA8PiAxMCkKICg0IHJvd3MpCiAK QEAgLTQwMyw3ICs0MDMsNyBAQCBzZWxlY3QgdW5pcXVlMSBmcm9tIHRlbmsxIGV4Y2VwdCBzZWxl Y3QgdW5pcXVlMiBmcm9tIHRlbmsxIHdoZXJlIHVuaXF1ZTIgIT0gMTA7CiAgICAgICAxMAogKDEg cm93KQogCi1yZXNldCBlbmFibGVfaW5kZXhzY2FuOworcmVzZXQgZW5hYmxlX2dyb3VwYWdnOwog LS0gdGhlIGhhc2hlZCBpbXBsZW1lbnRhdGlvbiBpcyBzZW5zaXRpdmUgdG8gY2hpbGQgcGxhbnMn IHR1cGxlIHNsb3QgdHlwZXMKIGV4cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCAqIGZyb20gaW50 OF90YmwgaW50ZXJzZWN0IHNlbGVjdCBxMiwgcTEgZnJvbSBpbnQ4X3RibCBvcmRlciBieSAxLCAy OwpAQCAtOTgxLDE5ICs5ODEsMzAgQEAgc2VsZWN0IGV4Y2VwdCBzZWxlY3Q7CiAKIC0tIGNoZWNr IGhhc2hlZCBpbXBsZW1lbnRhdGlvbgogc2V0IGVuYWJsZV9oYXNoYWdnID0gdHJ1ZTsKLXNldCBl bmFibGVfc29ydCA9IGZhbHNlOwotLS0gV2UndmUgbm8gd2F5IHRvIGNoZWNrIGhhc2hlZCBVTklP TiBhcyB0aGUgZW1wdHkgcGF0aGtleXMgaW4gdGhlIEFwcGVuZCBhcmUKLS0tIGZpbmUgdG8gbWFr ZSB1c2Ugb2YgVW5pcXVlLCB3aGljaCBpcyBjaGVhcGVyIHRoYW4gSGFzaEFnZ3JlZ2F0ZSBhbmQg d2UndmUKLS0tIG5vIG1lYW5zIHRvIGRpc2FibGUgVW5pcXVlLgorc2V0IGVuYWJsZV9ncm91cGFn ZyA9IGZhbHNlOworZXhwbGFpbiAoY29zdHMgb2ZmKQorc2VsZWN0IGZyb20gZ2VuZXJhdGVfc2Vy aWVzKDEsNSkgdW5pb24gc2VsZWN0IGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgSGFzaEFnZ3JlZ2F0ZQorICAgLT4gIEFwcGVuZAorICAgICAgICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzCisgICAgICAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgZ2VuZXJhdGVfc2VyaWVzXzEKKyg0IHJvd3MpCisKIGV4cGxh aW4gKGNvc3RzIG9mZikKIHNlbGVjdCBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDUpIGludGVyc2Vj dCBzZWxlY3QgZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSwzKTsKICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTZXRPcCBJbnRlcnNl Y3QKKyBIYXNoU2V0T3AgSW50ZXJzZWN0CiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBnZW5lcmF0 ZV9zZXJpZXNfMQogKDMgcm93cykKIAorc2VsZWN0IGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsNSkg dW5pb24gc2VsZWN0IGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMyk7CistLQorKDEgcm93KQorCiBz ZWxlY3QgZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSw1KSB1bmlvbiBhbGwgc2VsZWN0IGZyb20gZ2Vu ZXJhdGVfc2VyaWVzKDEsMyk7CiAtLQogKDggcm93cykKQEAgLTEwMTYsNyArMTAyNyw3IEBAIHNl bGVjdCBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDUpIGV4Y2VwdCBhbGwgc2VsZWN0IGZyb20gZ2Vu ZXJhdGVfc2VyaWVzKDEsMyk7CiAKIC0tIGNoZWNrIHNvcnRlZCBpbXBsZW1lbnRhdGlvbgogc2V0 IGVuYWJsZV9oYXNoYWdnID0gZmFsc2U7Ci1zZXQgZW5hYmxlX3NvcnQgPSB0cnVlOworc2V0IGVu YWJsZV9ncm91cGFnZyA9IHRydWU7CiBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgZnJvbSBn ZW5lcmF0ZV9zZXJpZXMoMSw1KSB1bmlvbiBzZWxlY3QgZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSwz KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAKQEAgLTEwNzUsNyArMTA4Niw3IEBAIHNlbGVjdCBmcm9tIGN0ZSB1bmlvbiBz ZWxlY3QgZnJvbSBjdGU7CiAoMSByb3cpCiAKIHJlc2V0IGVuYWJsZV9oYXNoYWdnOwotcmVzZXQg ZW5hYmxlX3NvcnQ7CityZXNldCBlbmFibGVfZ3JvdXBhZ2c7CiAtLQogLS0gQ2hlY2sgaGFuZGxp bmcgb2YgYSBjYXNlIHdpdGggdW5rbm93biBjb25zdGFudHMuICBXZSBkb24ndCBndWFyYW50ZWUK IC0tIGFuIHVuZGVjb3JhdGVkIGNvbnN0YW50IHdpbGwgd29yayBpbiBhbGwgY2FzZXMsIGJ1dCBo aXN0b3JpY2FsbHkgdGhpcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvYWdncmVn YXRlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9hZ2dyZWdhdGVzLnNxbAppbmRleCA5MTYz ODNkYjkyNy4uYjY2ZGFkNTY2MGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Fn Z3JlZ2F0ZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FnZ3JlZ2F0ZXMuc3FsCkBA IC00OTMsNyArNDkzLDcgQEAgZHJvcCB0YWJsZSBtaW5tYXh0ZXN0IGNhc2NhZGU7CiAKIC0tIERJ U1RJTkNUIGNhbiBhbHNvIHRyaWdnZXIgd3JvbmcgYW5zd2VycyB3aXRoIGhhc2ggYWdncmVnYXRp b24gKGJ1ZyAjMTg0NjUpCiBiZWdpbjsKLXNldCBsb2NhbCBlbmFibGVfc29ydCA9IG9mZjsKK3Nl dCBsb2NhbCBlbmFibGVfZ3JvdXBhZ2cgPSBvZmY7CiBleHBsYWluIChjb3N0cyBvZmYpCiAgIHNl bGVjdCBmMSwgKHNlbGVjdCBkaXN0aW5jdCBtaW4odDEuZjEpIGZyb20gaW50NF90YmwgdDEgd2hl cmUgdDEuZjEgPSB0MC5mMSkKICAgZnJvbSBpbnQ0X3RibCB0MDsKQEAgLTE2NzIsNyArMTY3Miw3 IEBAIHNlbGVjdCB2fHwnYScsIGNhc2Ugd2hlbiB2fHwnYScgPSAnYWEnIHRoZW4gMSBlbHNlIDAg ZW5kLCBjb3VudCgqKQogLS0gSGFzaCBBZ2dyZWdhdGlvbiBTcGlsbCB0ZXN0cwogLS0KIAotc2V0 IGVuYWJsZV9zb3J0PWZhbHNlOworc2V0IGVuYWJsZV9ncm91cGFnZz1mYWxzZTsKIHNldCB3b3Jr X21lbT0nNjRrQic7CiAKIHNlbGVjdCB1bmlxdWUxLCBjb3VudCgqKSwgc3VtKHR3b3Rob3VzYW5k KSBmcm9tIHRlbmsxCkBAIC0xNjgxLDcgKzE2ODEsNyBAQCBoYXZpbmcgc3VtKGZpdmV0aG91cykg PiA0OTc1CiBvcmRlciBieSBzdW0odHdvdGhvdXNhbmQpOwogCiBzZXQgd29ya19tZW0gdG8gZGVm YXVsdDsKLXNldCBlbmFibGVfc29ydCB0byBkZWZhdWx0Oworc2V0IGVuYWJsZV9ncm91cGFnZyB0 byBkZWZhdWx0OwogCiAtLQogLS0gQ29tcGFyZSByZXN1bHRzIGJldHdlZW4gcGxhbnMgdXNpbmcg c29ydGluZyBhbmQgcGxhbnMgdXNpbmcgaGFzaApAQCAtMTczNiw3ICsxNzM2LDcgQEAgc2VsZWN0 IChnLzIpOjpudW1lcmljIGFzIGMxLCBhcnJheV9hZ2coZzo6bnVtZXJpYykgYXMgYzIsIGNvdW50 KCopIGFzIGMzCiAtLSBQcm9kdWNlIHJlc3VsdHMgd2l0aCBoYXNoIGFnZ3JlZ2F0aW9uCiAKIHNl dCBlbmFibGVfaGFzaGFnZyA9IHRydWU7Ci1zZXQgZW5hYmxlX3NvcnQgPSBmYWxzZTsKK3NldCBl bmFibGVfZ3JvdXBhZ2cgPSBmYWxzZTsKIAogc2V0IGppdF9hYm92ZV9jb3N0ID0gMDsKIApAQCAt MTc2OSw3ICsxNzY5LDcgQEAgY3JlYXRlIHRhYmxlIGFnZ19oYXNoXzQgYXMKIHNlbGVjdCAoZy8y KTo6bnVtZXJpYyBhcyBjMSwgYXJyYXlfYWdnKGc6Om51bWVyaWMpIGFzIGMyLCBjb3VudCgqKSBh cyBjMwogICBmcm9tIGFnZ19kYXRhXzJrIGdyb3VwIGJ5IGcvMjsKIAotc2V0IGVuYWJsZV9zb3J0 ID0gdHJ1ZTsKK3NldCBlbmFibGVfZ3JvdXBhZ2cgPSB0cnVlOwogc2V0IHdvcmtfbWVtIHRvIGRl ZmF1bHQ7CiAKIC0tIENvbXBhcmUgZ3JvdXAgYWdncmVnYXRpb24gcmVzdWx0cyB0byBoYXNoIGFn Z3JlZ2F0aW9uIHJlc3VsdHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dyb3Vw aW5nc2V0cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncm91cGluZ3NldHMuc3FsCmluZGV4 IGE1OTQ0NDliNjk3Li5lYjc0ZTA0ZDNiMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZ3JvdXBpbmdzZXRzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ncm91cGluZ3Nl dHMuc3FsCkBAIC01ODMsNiArNTgzLDkgQEAgdXBkYXRlIHBnX2NsYXNzIHNldCByZWx0dXBsZXMg PSAxMCB3aGVyZSByZWxuYW1lPSdidWdfMTY3ODQnOwogaW5zZXJ0IGludG8gYnVnXzE2Nzg0IHNl bGVjdCBnLzEwLCBnIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsNDApIGc7CiAKIHNldCB3b3JrX21l bT0nNjRrQic7CistLSBVc2UgZW5hYmxlX3NvcnQsIG5vdCBlbmFibGVfZ3JvdXBhZ2csIHRvIGZv cmNlIGhhc2hpbmcgaGVyZTogY3ViZSgpCistLSBpbmNsdWRlcyB0aGUgZW1wdHkgZ3JvdXBpbmcg c2V0LCB3aGljaCBjYW4ndCBiZSBoYXNoZWQsIHNvIGV2ZW4gdGhlCistLSBtb3N0LWhhc2hlZCBw bGFuIGlzIEFHR19NSVhFRC4gIGVuYWJsZV9ncm91cGFnZyB3b3VsZCBkaXNhYmxlIHRoYXQgdG9v Lgogc2V0IGVuYWJsZV9zb3J0ID0gZmFsc2U7CiAKIHNlbGVjdCAqIGZyb20KQEAgLTYyMSw3ICs2 MjQsOSBAQCBjcmVhdGUgdGFibGUgZ3NfZ3JvdXBfMSBhcwogc2VsZWN0IGcxMDAsIGcxMCwgc3Vt KGc6Om51bWVyaWMpLCBjb3VudCgqKSwgbWF4KGc6OnRleHQpCiBmcm9tIGdzX2RhdGFfMSBncm91 cCBieSBjdWJlIChnMTAwMCwgZzEwMCxnMTApOwogCi0tLSBQcm9kdWNlIHJlc3VsdHMgd2l0aCBo YXNoIGFnZ3JlZ2F0aW9uLgorLS0gUHJvZHVjZSByZXN1bHRzIHdpdGggaGFzaCBhZ2dyZWdhdGlv bi4gIEFzIGFib3ZlLCB1c2UgZW5hYmxlX3NvcnQgcmF0aGVyCistLSB0aGFuIGVuYWJsZV9ncm91 cGFnZzogY3ViZSgpJ3MgZW1wdHkgZ3JvdXBpbmcgc2V0IGZvcmNlcyBhbiBBR0dfTUlYRUQKKy0t IHBsYW4sIHdoaWNoIGVuYWJsZV9ncm91cGFnZyB3b3VsZCBkaXNhYmxlLCBsZWF2aW5nIGEgc29y dGVkIHBsYW4gaW5zdGVhZC4KIAogc2V0IGVuYWJsZV9oYXNoYWdnID0gdHJ1ZTsKIHNldCBlbmFi bGVfc29ydCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCmluZGV4IGQyOGVkMWMxZTg1Li5k NGU4ZDdkOGM5ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbApAQCAtOTI3LDEzICs5MjcsMTMgQEAg U0VMRUNUIGNvdW50KGRpc3RpbmN0IGopIEZST00gdGVzdGpzb25iOwogU0VUIGVuYWJsZV9oYXNo YWdnID0gb2ZmOwogU0VMRUNUIGNvdW50KCopIEZST00gKFNFTEVDVCBqIEZST00gKFNFTEVDVCAq IEZST00gdGVzdGpzb25iIFVOSU9OIEFMTCBTRUxFQ1QgKiBGUk9NIHRlc3Rqc29uYikganMgR1JP VVAgQlkgaikganMyOwogU0VUIGVuYWJsZV9oYXNoYWdnID0gb247Ci1TRVQgZW5hYmxlX3NvcnQg PSBvZmY7CitTRVQgZW5hYmxlX2dyb3VwYWdnID0gb2ZmOwogU0VMRUNUIGNvdW50KCopIEZST00g KFNFTEVDVCBqIEZST00gKFNFTEVDVCAqIEZST00gdGVzdGpzb25iIFVOSU9OIEFMTCBTRUxFQ1Qg KiBGUk9NIHRlc3Rqc29uYikganMgR1JPVVAgQlkgaikganMyOwogU0VMRUNUIGRpc3RpbmN0ICog RlJPTSAodmFsdWVzIChqc29uYiAne30nIHx8ICcnOjp0ZXh0KSwoJ3t9JykpIHYoaik7Ci1TRVQg ZW5hYmxlX3NvcnQgPSBvbjsKK1NFVCBlbmFibGVfZ3JvdXBhZ2cgPSBvbjsKIAogUkVTRVQgZW5h YmxlX2hhc2hhZ2c7Ci1SRVNFVCBlbmFibGVfc29ydDsKK1JFU0VUIGVuYWJsZV9ncm91cGFnZzsK IAogRFJPUCBJTkRFWCBqaWR4OwogRFJPUCBJTkRFWCBqaWR4X2FycmF5OwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwKaW5kZXggZGRmZjcyMmIyOGMuLmNmMGZmZjZmZGRk IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwKQEAgLTg2MiwxMSAr ODYyLDExIEBAIGRyb3AgdHlwZSB0d29faW50cyBjYXNjYWRlOwogLS0gQ2hlY2sgYmVoYXZpb3Ig d2hlbiBzdWJ0eXBlIGxhY2tzIGEgaGFzaCBmdW5jdGlvbgogLS0KIAotc2V0IGVuYWJsZV9zb3J0 ID0gb2ZmOyAgLS0gdHJ5IHRvIG1ha2UgaXQgcGljayBhIGhhc2ggc2V0b3AgaW1wbGVtZW50YXRp b24KK3NldCBlbmFibGVfZ3JvdXBhZ2cgPSBvZmY7ICAtLSB0cnkgdG8gbWFrZSBpdCBwaWNrIGEg aGFzaCBzZXRvcCBpbXBsZW1lbnRhdGlvbgogCiBzZWxlY3QgJ3soMDEsMTApfSc6OnZhcmJpdG11 bHRpcmFuZ2UgZXhjZXB0IHNlbGVjdCAneygxMCwxMSl9Jzo6dmFyYml0bXVsdGlyYW5nZTsKIAot cmVzZXQgZW5hYmxlX3NvcnQ7CityZXNldCBlbmFibGVfZ3JvdXBhZ2c7CiAKIC0tCiAtLSBPVVQv SU5PVVQvVEFCTEUgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9y YW5nZXR5cGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsCmluZGV4 IDVjNGIwMzM3YjdhLi5kYmZlMGQwNDlkYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcmFuZ2V0eXBlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcmFuZ2V0eXBlcy5z cWwKQEAgLTU4NywxMSArNTg3LDExIEBAIGRyb3AgdHlwZSB0d29faW50cyBjYXNjYWRlOwogCiBj cmVhdGUgdHlwZSB2YXJiaXRyYW5nZSBhcyByYW5nZSAoc3VidHlwZSA9IHZhcmJpdCk7CiAKLXNl dCBlbmFibGVfc29ydCA9IG9mZjsgIC0tIHRyeSB0byBtYWtlIGl0IHBpY2sgYSBoYXNoIHNldG9w IGltcGxlbWVudGF0aW9uCitzZXQgZW5hYmxlX2dyb3VwYWdnID0gb2ZmOyAgLS0gdHJ5IHRvIG1h a2UgaXQgcGljayBhIGhhc2ggc2V0b3AgaW1wbGVtZW50YXRpb24KIAogc2VsZWN0ICcoMDEsMTAp Jzo6dmFyYml0cmFuZ2UgZXhjZXB0IHNlbGVjdCAnKDEwLDExKSc6OnZhcmJpdHJhbmdlOwogCi1y ZXNldCBlbmFibGVfc29ydDsKK3Jlc2V0IGVuYWJsZV9ncm91cGFnZzsKIAogLS0KIC0tIE9VVC9J Tk9VVC9UQUJMRSBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl bGVjdF9kaXN0aW5jdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZWxlY3RfZGlzdGluY3Qu c3FsCmluZGV4IDUwYWM3ZGRlMzk2Li4yZWQxNjE2YjA5OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2VsZWN0X2Rpc3RpbmN0LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZWxlY3RfZGlzdGluY3Quc3FsCkBAIC04MSw3ICs4MSw3IEBAIFNFVCBlbmFibGVfaGFzaGFn Zz1UUlVFOwogCiAtLSBQcm9kdWNlIHJlc3VsdHMgd2l0aCBoYXNoIGFnZ3JlZ2F0aW9uLgogCi1T RVQgZW5hYmxlX3NvcnQ9RkFMU0U7CitTRVQgZW5hYmxlX2dyb3VwYWdnPUZBTFNFOwogCiBTRVQg aml0X2Fib3ZlX2Nvc3Q9MDsKIApAQCAtOTYsNyArOTYsNyBAQCBTRVQgaml0X2Fib3ZlX2Nvc3Qg VE8gREVGQVVMVDsKIENSRUFURSBUQUJMRSBkaXN0aW5jdF9oYXNoXzIgQVMKIFNFTEVDVCBESVNU SU5DVCAoZyUxMDAwKTo6dGV4dCBGUk9NIGdlbmVyYXRlX3NlcmllcygwLDk5OTkpIGc7CiAKLVNF VCBlbmFibGVfc29ydD1UUlVFOworU0VUIGVuYWJsZV9ncm91cGFnZz1UUlVFOwogCiBTRVQgd29y a19tZW0gVE8gREVGQVVMVDsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vi c2VsZWN0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNlbGVjdC5zcWwKaW5kZXggMWEw MmMzZjg2YzAuLjVjOGUyNGViNmRiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z dWJzZWxlY3Quc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNlbGVjdC5zcWwKQEAg LTczMCw3ICs3MzAsNyBAQCB3aGVyZSBvLnRlbiA9IDA7CiAtLSBUZXN0IHJlc2NhbiBvZiBhIGhh c2hlZCBTZXRPcCBub2RlCiAtLQogYmVnaW47Ci1zZXQgbG9jYWwgZW5hYmxlX3NvcnQgPSBvZmY7 CitzZXQgbG9jYWwgZW5hYmxlX2dyb3VwYWdnID0gb2ZmOwogCiBleHBsYWluIChjb3N0cyBvZmYp CiBzZWxlY3QgY291bnQoKikgZnJvbQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv dW5pb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdW5pb24uc3FsCmluZGV4IDA3OGM4NTg0 MjlmLi5mODE0YWRlNDVhNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdW5pb24u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3VuaW9uLnNxbApAQCAtMTM1LDEzICsxMzUs MTMgQEAgc2VsZWN0IGNvdW50KCopIGZyb20KICAgKCBzZWxlY3QgdW5pcXVlMSBmcm9tIHRlbmsx IGludGVyc2VjdCBzZWxlY3QgZml2ZXRob3VzIGZyb20gdGVuazEgKSBzczsKIAogLS0gdGhpcyBx dWVyeSB3aWxsIHByZWZlciBhIHNvcnRlZCBzZXRvcCB1bmxlc3Mgd2UgZm9yY2UgaXQuCi1zZXQg ZW5hYmxlX2luZGV4c2NhbiB0byBvZmY7CitzZXQgZW5hYmxlX2dyb3VwYWdnIHRvIG9mZjsKIAog ZXhwbGFpbiAoY29zdHMgb2ZmKQogc2VsZWN0IHVuaXF1ZTEgZnJvbSB0ZW5rMSBleGNlcHQgc2Vs ZWN0IHVuaXF1ZTIgZnJvbSB0ZW5rMSB3aGVyZSB1bmlxdWUyICE9IDEwOwogc2VsZWN0IHVuaXF1 ZTEgZnJvbSB0ZW5rMSBleGNlcHQgc2VsZWN0IHVuaXF1ZTIgZnJvbSB0ZW5rMSB3aGVyZSB1bmlx dWUyICE9IDEwOwogCi1yZXNldCBlbmFibGVfaW5kZXhzY2FuOworcmVzZXQgZW5hYmxlX2dyb3Vw YWdnOwogCiAtLSB0aGUgaGFzaGVkIGltcGxlbWVudGF0aW9uIGlzIHNlbnNpdGl2ZSB0byBjaGls ZCBwbGFucycgdHVwbGUgc2xvdCB0eXBlcwogZXhwbGFpbiAoY29zdHMgb2ZmKQpAQCAtMzIxLDE0 ICszMjEsMTQgQEAgc2VsZWN0IGV4Y2VwdCBzZWxlY3Q7CiAKIC0tIGNoZWNrIGhhc2hlZCBpbXBs ZW1lbnRhdGlvbgogc2V0IGVuYWJsZV9oYXNoYWdnID0gdHJ1ZTsKLXNldCBlbmFibGVfc29ydCA9 IGZhbHNlOworc2V0IGVuYWJsZV9ncm91cGFnZyA9IGZhbHNlOwogCi0tLSBXZSd2ZSBubyB3YXkg dG8gY2hlY2sgaGFzaGVkIFVOSU9OIGFzIHRoZSBlbXB0eSBwYXRoa2V5cyBpbiB0aGUgQXBwZW5k IGFyZQotLS0gZmluZSB0byBtYWtlIHVzZSBvZiBVbmlxdWUsIHdoaWNoIGlzIGNoZWFwZXIgdGhh biBIYXNoQWdncmVnYXRlIGFuZCB3ZSd2ZQotLS0gbm8gbWVhbnMgdG8gZGlzYWJsZSBVbmlxdWUu CitleHBsYWluIChjb3N0cyBvZmYpCitzZWxlY3QgZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSw1KSB1 bmlvbiBzZWxlY3QgZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSwzKTsKIGV4cGxhaW4gKGNvc3RzIG9m ZikKIHNlbGVjdCBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDUpIGludGVyc2VjdCBzZWxlY3QgZnJv bSBnZW5lcmF0ZV9zZXJpZXMoMSwzKTsKIAorc2VsZWN0IGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEs NSkgdW5pb24gc2VsZWN0IGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMyk7CiBzZWxlY3QgZnJvbSBn ZW5lcmF0ZV9zZXJpZXMoMSw1KSB1bmlvbiBhbGwgc2VsZWN0IGZyb20gZ2VuZXJhdGVfc2VyaWVz KDEsMyk7CiBzZWxlY3QgZnJvbSBnZW5lcmF0ZV9zZXJpZXMoMSw1KSBpbnRlcnNlY3Qgc2VsZWN0 IGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMyk7CiBzZWxlY3QgZnJvbSBnZW5lcmF0ZV9zZXJpZXMo MSw1KSBpbnRlcnNlY3QgYWxsIHNlbGVjdCBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDMpOwpAQCAt MzM3LDcgKzMzNyw3IEBAIHNlbGVjdCBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDUpIGV4Y2VwdCBh bGwgc2VsZWN0IGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsMyk7CiAKIC0tIGNoZWNrIHNvcnRlZCBp bXBsZW1lbnRhdGlvbgogc2V0IGVuYWJsZV9oYXNoYWdnID0gZmFsc2U7Ci1zZXQgZW5hYmxlX3Nv cnQgPSB0cnVlOworc2V0IGVuYWJsZV9ncm91cGFnZyA9IHRydWU7CiAKIGV4cGxhaW4gKGNvc3Rz IG9mZikKIHNlbGVjdCBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDUpIHVuaW9uIHNlbGVjdCBmcm9t IGdlbmVyYXRlX3NlcmllcygxLDMpOwpAQCAtMzYzLDcgKzM2Myw3IEBAIHdpdGggY3RlIGFzIG5v dCBtYXRlcmlhbGl6ZWQgKHNlbGVjdCBzIGZyb20gZ2VuZXJhdGVfc2VyaWVzKDEsNSkgcykKIHNl bGVjdCBmcm9tIGN0ZSB1bmlvbiBzZWxlY3QgZnJvbSBjdGU7CiAKIHJlc2V0IGVuYWJsZV9oYXNo YWdnOwotcmVzZXQgZW5hYmxlX3NvcnQ7CityZXNldCBlbmFibGVfZ3JvdXBhZ2c7CiAKIC0tCiAt LSBDaGVjayBoYW5kbGluZyBvZiBhIGNhc2Ugd2l0aCB1bmtub3duIGNvbnN0YW50cy4gIFdlIGRv bid0IGd1YXJhbnRlZQotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --000000000000074366065507ea6a--