<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>196791</bug_id>
          
          <creation_ts>2019-04-10 16:19:23 -0700</creation_ts>
          <short_desc>[GTK] REGRESSION(r243860): Many tests failing</short_desc>
          <delta_ts>2019-04-12 01:47:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alicia Boya García">aboya</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1526204</commentid>
    <comment_count>0</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-04-10 16:19:23 -0700</bug_when>
    <thetext>compositing/backing/backing-store-attachment-empty-keyframe.html is failing since r243860

I&apos;m tempted to just rebaseline, but I&apos;m not really sure, since the patch is not touching the test at all and it did share expectations with the Mac port without issues.

--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/scrolling/scroll-animator-basic-events-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/fast/scrolling/scroll-animator-basic-events-actual.txt
@@ -1,5 +1,5 @@
-CONSOLE MESSAGE: line 24: MainFrameView: didAddVerticalScrollbar
-CONSOLE MESSAGE: line 24: RenderLayer: didAddVerticalScrollbar
+CONSOLE MESSAGE: MainFrameView: didAddVerticalScrollbar
+CONSOLE MESSAGE: RenderLayer: didAddVerticalScrollbar
 CONSOLE MESSAGE: line 24: MainFrameView: mouseEnteredContentArea
 CONSOLE MESSAGE: line 24: MainFrameView: mouseMovedInContentArea
 CONSOLE MESSAGE: line 25: RenderLayer: mouseEnteredContentArea</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526227</commentid>
    <comment_count>1</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-04-10 17:09:10 -0700</bug_when>
    <thetext>I kept experimenting with the bisection and found that almost all of the failures from the r243859:r243864 build are regressions from this revision.

Some of them show visible layout changes.

Non comprehensive list of tests failing:

tables/mozilla/dom/deleteCol1.html
tables/mozilla/dom/deleteCol2.html
tables/mozilla/dom/deleteCol3.html
tables/mozilla/dom/deleteColGroup1.html
tables/mozilla/dom/deleteColGroup2.html
tables/mozilla/dom/insertColGroups1.html
tables/mozilla/dom/insertColGroups2.html
tables/mozilla/dom/insertCols1.html
tables/mozilla/dom/insertCols2.html
tables/mozilla/dom/insertCols3.html
tables/mozilla/dom/insertCols4.html
tables/mozilla/dom/insertCols5.html
svg/hixie/text/003.html
svg/custom/linking-uri-01-b.svg
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px.html
fast/text/international/bidi-listbox-atsui.html
fast/text/international/bidi-innertext.html
fast/text/international/bidi-L2-run-reordering.html
fast/scrolling/scroll-animator-select-list-events.html
fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html
fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html
fast/scrolling/scroll-animator-basic-events.html
fast/frames/inline-object-inside-frameset.html
fast/frames/crash-when-iframe-is-remove-in-eventhandler.html
fast/forms/visual-hebrew-text-field.html
fast/forms/select-visual-hebrew.html
fast/forms/form-submission-crash-3.html
compositing/backing/backing-store-attachment-empty-keyframe.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526236</commentid>
    <comment_count>2</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2019-04-10 17:24:36 -0700</bug_when>
    <thetext>These tests are also failing, bisected to the same revision:

fast/images/animated-gif-no-layout.html
http/tests/incremental/stylesheet-body-incremental-rendering.html
http/tests/webfont/font-loading-system-fallback-visibility-FontRanges.html
mathml/scripts-removeChild.html
mathml/presentation/attributes-accent-accentunder-dynamic.html
mathml/presentation/menclose-notation-attribute-add.html
mathml/presentation/menclose-notation-attribute-change-value.html
mathml/presentation/menclose-notation-attribute-remove.html
mathml/presentation/mo-form-dynamic.html
mathml/presentation/mpadded-dynamic.html
mathml/presentation/stretchy-minsize-maxsize-dynamic.html
svg/custom/textPath-change-id-pattern.svg
svg/custom/textPath-change-id.svg
svg/custom/textPath-insert-path-pattern.svg
svg/custom/textPath-insert-path.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526253</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-04-10 18:09:51 -0700</bug_when>
    <thetext>Carlos, this was the window object cleared patch.

(In reply to Alicia Boya García from comment #0)
&gt; I&apos;m tempted to just rebaseline, but I&apos;m not really sure, since the patch is
&gt; not touching the test at all and it did share expectations with the Mac port
&gt; without issues.

Not rebaselining is probably the right choice as that patch should not have affected other than accessibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526389</commentid>
    <comment_count>4</comment_count>
      <attachid>367221</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-04-11 09:34:38 -0700</bug_when>
    <thetext>Created attachment 367221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526671</commentid>
    <comment_count>5</comment_count>
      <attachid>367221</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-12 00:25:13 -0700</bug_when>
    <thetext>Comment on attachment 367221
Patch

Rejecting attachment 367221 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 367221, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=367221&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=196791&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 367221 from bug 196791.
Fetching: https://bugs.webkit.org/attachment.cgi?id=367221
Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/platform/gtk/TestExpectations
	M	Source/WebKit/ChangeLog
	M	Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
	M	Source/WebKit/WebProcess/WebPage/WebPage.h
	M	Source/WebKit/WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.cpp
	M	Source/WebKit/WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.h
	M	Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp
	M	Tools/ChangeLog
	M	Tools/TestWebKitAPI/Tests/WebKitGtk/AccessibilityTestServer.cpp
	M	Tools/TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp

ERROR from SVN:
A repository hook failed: Commit blocked by pre-commit hook (exit code 1) with output:

    The following files contain tab characters:

        trunk/Tools/TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp

    Please use spaces instead to indent.
    If you must commit a file with tabs, use svn propset to set the &quot;allow-tabs&quot; property.
W: 8955ccac4cdde125206c6025f2ccb07c4cb53fc8 and refs/remotes/origin/master differ, using rebase:
:040000 040000 76964240a41fea055e77d8eea0a65b81407b8164 3cf0915953c83233f1ab21e95d854adde8e1059b M	LayoutTests
:040000 040000 9359580af33d418ac607366c9ce8bc370f00fad5 5f4a017abf698134231f6024c6b9e25c9337824c M	Source
:040000 040000 2574c2cb30011164eed025e0fba32b016923f02b 249250c8dca3dc7c215b0e3851f993581583182a M	Tools
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/platform/gtk/TestExpectations
	M	Source/WebKit/ChangeLog
	M	Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
	M	Source/WebKit/WebProcess/WebPage/WebPage.h
	M	Source/WebKit/WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.cpp
	M	Source/WebKit/WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.h
	M	Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp
	M	Tools/ChangeLog
	M	Tools/TestWebKitAPI/Tests/WebKitGtk/AccessibilityTestServer.cpp
	M	Tools/TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp

ERROR from SVN:
A repository hook failed: Commit blocked by pre-commit hook (exit code 1) with output:

    The following files contain tab characters:

        trunk/Tools/TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp

    Please use spaces instead to indent.
    If you must commit a file with tabs, use svn propset to set the &quot;allow-tabs&quot; property.
W: 8955ccac4cdde125206c6025f2ccb07c4cb53fc8 and refs/remotes/origin/master differ, using rebase:
:040000 040000 76964240a41fea055e77d8eea0a65b81407b8164 3cf0915953c83233f1ab21e95d854adde8e1059b M	LayoutTests
:040000 040000 9359580af33d418ac607366c9ce8bc370f00fad5 5f4a017abf698134231f6024c6b9e25c9337824c M	Source
:040000 040000 2574c2cb30011164eed025e0fba32b016923f02b 249250c8dca3dc7c215b0e3851f993581583182a M	Tools
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
Current branch master is up to date.
Total errors found: 0 in 1 files

Full output: https://webkit-queues.webkit.org/results/11851652</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526682</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-04-12 01:47:03 -0700</bug_when>
    <thetext>Committed r244212: &lt;https://trac.webkit.org/changeset/244212&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367221</attachid>
            <date>2019-04-11 09:34:38 -0700</date>
            <delta_ts>2019-04-12 00:25:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-a11y-update-tree-on-navigation.diff</filename>
            <type>text/plain</type>
            <size>36250</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZjAzMzUwMWE0NC4uMTBiNmRhZjNiNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOS0wNC0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dUS10gUkVHUkVTU0lPTihyMjQzODYwKTogTWFueSB0ZXN0cyBmYWlsaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3OTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgZXhw
ZWN0YXRpb25zIGZvciB0ZXN0cyB0aGF0IHBhc3Mgbm93LgorCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTktMDQtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIExheW91dCB0ZXN0IGFjY2Vz
c2liaWxpdHkvYXJpYS1oaWRkZW4tZmFsc2Utd29ya3MtaW4tc3VidHJlZXMuaHRtbCBmYWlscyBh
ZnRlciByMTg0ODkwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDAwOTdmNGM2YjNlLi41MTk3NWE5MmI2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4OTMsNyArMTg5Myw3IEBAIHdlYmtpdC5vcmcvYi8xNzkx
NzQgaW5zcGVjdG9yL2NvbnNvbGUvd2ViY29yZS1sb2dnaW5nLmh0bWwgWyBGYWlsdXJlIENyYXNo
IF0KIAogd2Via2l0Lm9yZy9iLzE4MTAzMCB3YXNtL2lmcmFtZS1wb3N0bWVzc2FnZS5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNzk5NDggWyBSZWxlYXNlIF0gZmFzdC9oaWRw
aS9maWx0ZXJzLXJlZmVyZW5jZS5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi8xOTY3OTEgd2Via2l0Lm9yZy9iLzE4MTAzMSBmYXN0L2ZyYW1lcy9jcmFzaC13aGVu
LWlmcmFtZS1pcy1yZW1vdmUtaW4tZXZlbnRoYW5kbGVyLmh0bWwgWyBQYXNzIENyYXNoIEZhaWx1
cmUgXQord2Via2l0Lm9yZy9iLzE4MTAzMSBmYXN0L2ZyYW1lcy9jcmFzaC13aGVuLWlmcmFtZS1p
cy1yZW1vdmUtaW4tZXZlbnRoYW5kbGVyLmh0bWwgWyBQYXNzIENyYXNoIF0KIAogd2Via2l0Lm9y
Zy9iLzE4MTUyOCBodHRwL3Rlc3RzL2NhY2hlL21lbW9yeS1jYWNoZS1wcnVuaW5nLmh0bWwgWyBQ
YXNzIENyYXNoIF0KIApAQCAtMzgxNyw0OSArMzgxNyw2IEBAIHdlYmtpdC5vcmcvYi8xMTY5Nzcg
bWVkaWEvZXZlbnQtYXR0cmlidXRlcy5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8x
OTY1NDEgZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWNvbnRlbnQtd2l0aC1vdmVyZmxvdy1hdXRv
LXBhcmVudC1hY3Jvc3Mtb3JpZ2luLmh0bWwgWyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE5
Njc5MSB0YWJsZXMvbW96aWxsYS9kb20vZGVsZXRlQ29sMS5odG1sIFsgRmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvMTk2NzkxIHRhYmxlcy9tb3ppbGxhL2RvbS9kZWxldGVDb2wyLmh0bWwgWyBGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi8xOTY3OTEgdGFibGVzL21vemlsbGEvZG9tL2RlbGV0ZUNvbDMu
aHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSB0YWJsZXMvbW96aWxsYS9kb20v
ZGVsZXRlQ29sR3JvdXAxLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xOTY3OTEgdGFi
bGVzL21vemlsbGEvZG9tL2RlbGV0ZUNvbEdyb3VwMi5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMTk2NzkxIHRhYmxlcy9tb3ppbGxhL2RvbS9pbnNlcnRDb2xHcm91cHMxLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xOTY3OTEgdGFibGVzL21vemlsbGEvZG9tL2luc2VydENv
bEdyb3VwczIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSB0YWJsZXMvbW96
aWxsYS9kb20vaW5zZXJ0Q29sczEuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5
MSB0YWJsZXMvbW96aWxsYS9kb20vaW5zZXJ0Q29sczIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0
Lm9yZy9iLzE5Njc5MSB0YWJsZXMvbW96aWxsYS9kb20vaW5zZXJ0Q29sczMuaHRtbCBbIEZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSB0YWJsZXMvbW96aWxsYS9kb20vaW5zZXJ0Q29sczQu
aHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSB0YWJsZXMvbW96aWxsYS9kb20v
aW5zZXJ0Q29sczUuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSBzdmcvaGl4
aWUvdGV4dC8wMDMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSBzdmcvY3Vz
dG9tL2xpbmtpbmctdXJpLTAxLWIuc3ZnIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTk2Nzkx
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC90aGUtaW1nLWVsZW1lbnQvc2l6ZXMvcGFyc2UtYS1zaXplcy1hdHRyaWJ1dGUtd2lk
dGgtMTAwMHB4Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xOTY3OTEgZmFzdC90ZXh0
L2ludGVybmF0aW9uYWwvYmlkaS1saXN0Ym94LWF0c3VpLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi8xOTY3OTEgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmlkaS1pbm5lcnRleHQuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSBmYXN0L3RleHQvaW50ZXJuYXRpb25h
bC9iaWRpLUwyLXJ1bi1yZW9yZGVyaW5nLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8x
OTY3OTEgZmFzdC9zY3JvbGxpbmcvc2Nyb2xsLWFuaW1hdG9yLXNlbGVjdC1saXN0LWV2ZW50cy5o
dG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTk2NzkxIGZhc3Qvc2Nyb2xsaW5nL3Njcm9s
bC1hbmltYXRvci1vdmVybGF5LXNjcm9sbGJhcnMtaG92ZXJlZC5odG1sIFsgRmFpbHVyZSBdCi13
ZWJraXQub3JnL2IvMTk2NzkxIGZhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmltYXRvci1vdmVybGF5
LXNjcm9sbGJhcnMtY2xpY2tlZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTk2Nzkx
IGZhc3Qvc2Nyb2xsaW5nL3Njcm9sbC1hbmltYXRvci1iYXNpYy1ldmVudHMuaHRtbCBbIEZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSBmYXN0L2ZyYW1lcy9pbmxpbmUtb2JqZWN0LWluc2lk
ZS1mcmFtZXNldC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTk2NzkxIGZhc3QvZm9y
bXMvdmlzdWFsLWhlYnJldy10ZXh0LWZpZWxkLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8xOTY3OTEgZmFzdC9mb3Jtcy9zZWxlY3QtdmlzdWFsLWhlYnJldy5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMTk2NzkxIGZhc3QvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLWNyYXNoLTMu
aHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSBjb21wb3NpdGluZy9iYWNraW5n
L2JhY2tpbmctc3RvcmUtYXR0YWNobWVudC1lbXB0eS1rZXlmcmFtZS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMTk2NzkxIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1uby1sYXlvdXQu
aHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSBodHRwL3Rlc3RzL2luY3JlbWVu
dGFsL3N0eWxlc2hlZXQtYm9keS1pbmNyZW1lbnRhbC1yZW5kZXJpbmcuaHRtbCBbIEZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzE5Njc5MSBodHRwL3Rlc3RzL3dlYmZvbnQvZm9udC1sb2FkaW5nLXN5
c3RlbS1mYWxsYmFjay12aXNpYmlsaXR5LUZvbnRSYW5nZXMuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzE5Njc5MSBtYXRobWwvc2NyaXB0cy1yZW1vdmVDaGlsZC5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMTk2NzkxIG1hdGhtbC9wcmVzZW50YXRpb24vYXR0cmlidXRlcy1h
Y2NlbnQtYWNjZW50dW5kZXItZHluYW1pYy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
MTk2NzkxIG1hdGhtbC9wcmVzZW50YXRpb24vbWVuY2xvc2Utbm90YXRpb24tYXR0cmlidXRlLWFk
ZC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTk2NzkxIG1hdGhtbC9wcmVzZW50YXRp
b24vbWVuY2xvc2Utbm90YXRpb24tYXR0cmlidXRlLWNoYW5nZS12YWx1ZS5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMTk2NzkxIG1hdGhtbC9wcmVzZW50YXRpb24vbWVuY2xvc2Utbm90
YXRpb24tYXR0cmlidXRlLXJlbW92ZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTk2
NzkxIG1hdGhtbC9wcmVzZW50YXRpb24vbW8tZm9ybS1keW5hbWljLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi8xOTY3OTEgbWF0aG1sL3ByZXNlbnRhdGlvbi9tcGFkZGVkLWR5bmFtaWMu
aHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5Njc5MSBtYXRobWwvcHJlc2VudGF0aW9u
L3N0cmV0Y2h5LW1pbnNpemUtbWF4c2l6ZS1keW5hbWljLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi8xOTY3OTEgc3ZnL2N1c3RvbS90ZXh0UGF0aC1jaGFuZ2UtaWQtcGF0dGVybi5zdmcg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xOTY3OTEgc3ZnL2N1c3RvbS90ZXh0UGF0aC1jaGFu
Z2UtaWQuc3ZnIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTk2NzkxIHN2Zy9jdXN0b20vdGV4
dFBhdGgtaW5zZXJ0LXBhdGgtcGF0dGVybi5zdmcgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8x
OTY3OTEgc3ZnL2N1c3RvbS90ZXh0UGF0aC1pbnNlcnQtcGF0aC5zdmcgWyBGYWlsdXJlIF0KLQog
Iy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIG5vbi1jcmFzaGluZywg
bm9uLWZsYWt5IHRlc3RzIGZhaWxpbmcKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGM2ODhiYTE5YWRjLi40ZmQ1MzBkMjJlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNyBAQAorMjAxOS0wNC0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS10gUkVHUkVTU0lPTihyMjQzODYwKTogTWFueSB0ZXN0cyBm
YWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTY3OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
YWxsaW5nIHVwZGF0ZUFjY2Vzc2liaWxpdHlUcmVlKCkgb24gZG9jdW1lbnQgbG9hZGVkIHdhcyBj
YXVzaW5nIGEgcmUtbGF5b3V0IGJlY2F1c2Ugb2YgdGhlIGJhY2tpbmcgc3RvcmUgdXBkYXRlCisg
ICAgICAgIHRoYXQgY29uZnVzZWQgYWxsIHRob3NlIHRlc3RzLiBXZSBzaG91bGRuJ3QgbmVlZCB0
byB1cGRhdGUgdGhlIGFjY2Vzc2liaWxpdHkgdHJlZSBvbiBkb2N1bWVudCBsb2FkLCBpdCBzaG91
bGQKKyAgICAgICAgaGFwcGVuIGF1dG9tYXRpY2FsbHkgd2hlbiByb290IG9iamVjdCBpcyBhdHRh
Y2hlZC9kZXRhY2hlZC4gVGhpcyBwYXRjaCBlbWl0cyBjaGlsZHJlbi1jaGFuZ2VkOjphZGQgd2hl
biB0aGUgcm9vdAorICAgICAgICBvYmplY3Qgd3JhcHBlciBpcyBhdHRhY2hlZCBhbmQgY2hpbGRy
ZW4tY2hhbmdlZDo6cmVtb3ZlIHdoZW4gdGhlIHJvb3Qgb2JqZWN0IGlzIGRldGFjaGVkLiBUaGF0
IHdheSBBVHMgYXJlCisgICAgICAgIG5vdGlmaWVkIG9mIHRoZSBjaGFuZ2VzIGluIHRoZSBhY2Nl
c3NpYmlsaXR5IHRyZWUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKTogUmVtb3ZlIGNhbGwgdG8gV2Vi
UGFnZTo6dXBkYXRlQWNjZXNzaWJpbGl0eVRyZWUoKS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOiBSZW1vdmUgdXBkYXRlQWNjZXNzaWJpbGl0eVRyZWUoKS4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYktpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcDoKKyAgICAgICAgKGNvcmVSb290T2JqZWN0V3JhcHBlckRldGFjaGVkQ2FsbGJhY2sp
OiBFbWl0IGNoaWxkcmVuLWNoYW5nZWQ6OnJlbW92ZS4KKyAgICAgICAgKHJvb3RXZWJBcmVhV3Jh
cHBlcik6IEhlbHBlciB0byBnZXQgdGhlIHJvb3QgV2ViQXJlYSB3cmFwcGVyLgorICAgICAgICAo
YWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyKTogU2V0IHRoZSBwYXJlbnQgaGVyZSB3aGVu
IHJvb3Qgb2JqZWN0IGlzIGNyZWF0ZWQgYW5kIGVtaXQgY2hpbGRyZW4tY2hhbmdlZDo6YWRkLgor
ICAgICAgICAod2Via2l0V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZDaGlsZCk6IERvdCBu
byBzZXQgdGhlIHBhcmVudCBoZXJlLCBpdCdzIG5vdyBzZXQgd2hlbiB0aGUgcm9vdCBvYmplY3Qg
aXMgY3JlYXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYktpdFdlYlBh
Z2VBY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6IFJlbW92ZSB3ZWJraXRXZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdFJlZnJlc2goKS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBh
Z2VHdGsuY3BwOgorCiAyMDE5LTA0LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVncmVzc2lvbihyMjQ0MTQ0KSBQcm9jZXNzU3dhcC5SZXVzZVN1c3BlbmRl
ZFByb2Nlc3NMb2FkSFRNTFN0cmluZyBBUEkgdGVzdCBpcyBmbGFreQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggMzE1MGUzNGFmNzUuLjU5MmUwYTc3OWYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTU5OSwxMSArNTk5LDYgQEAgdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKQogCiAgICAgLy8g
Tm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCks
IG5hdmlnYXRpb25JRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7Ci0KLSNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpICYmIFBMQVRGT1JNKEdUSykKLSAgICAvLyBFbnN1cmUgdGhlIGFjY2Vzc2li
aWxpdHkgaGllcmFyY2h5IGlzIHVwZGF0ZWQuCi0gICAgd2ViUGFnZS0+dXBkYXRlQWNjZXNzaWJp
bGl0eVRyZWUoKTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEZpbmlzaExvYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IGFlZTc3NDhmNDVmLi4yZTBiMWZkNDk5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtODA1LDEwICs4MDUsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZXBsYWNlU2VsZWN0aW9uV2l0aFBhc3RlYm9hcmREYXRhKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiB0eXBlcywgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAjZW5kaWYKIAot
I2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgUExBVEZPUk0oR1RLKQotICAgIHZvaWQgdXBkYXRl
QWNjZXNzaWJpbGl0eVRyZWUoKTsKLSNlbmRpZgotCiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbkZv
clRlc3RpbmcoY29uc3QgU3RyaW5nJiBjb21wb3NpdGlvblN0cmluZywgdWludDY0X3QgZnJvbSwg
dWludDY0X3QgbGVuZ3RoLCBib29sIHN1cHByZXNzVW5kZXJsaW5lKTsKICAgICBib29sIGhhc0Nv
bXBvc2l0aW9uRm9yVGVzdGluZygpOwogICAgIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uRm9yVGVz
dGluZyhjb25zdCBTdHJpbmcmIGNvbXBvc2l0aW9uU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJLaXRXZWJQYWdlQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViS2l0
V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDFmMDRjMDNkYmY1Li44MTQ5NDdk
YmI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dl
YktpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9hdGsvV2ViS2l0V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9BWE9iamVjdENhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BY2Nlc3NpYmlsaXR5U2Ny
b2xsVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CkBAIC00NCw2ICs0NSwyNSBA
QCBzdHJ1Y3QgX1dlYktpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UHJpdmF0ZSB7CiAKIFdF
QktJVF9ERUZJTkVfVFlQRShXZWJLaXRXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdCwgd2Via2l0
X3dlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0LCBBVEtfVFlQRV9QTFVHKQogCitzdGF0aWMg
dm9pZCBjb3JlUm9vdE9iamVjdFdyYXBwZXJEZXRhY2hlZENhbGxiYWNrKEF0a09iamVjdCogd3Jh
cHBlciwgY29uc3QgY2hhciosIGdib29sZWFuIHZhbHVlLCBBdGtPYmplY3QqIGF0a09iamVjdCkK
K3sKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUoYXRrT2JqZWN0LCAiY2hpbGRyZW4tY2hhbmdlZDo6cmVtb3ZlIiwgMCwgd3JhcHBl
cik7Cit9CisKK3N0YXRpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogcm9vdFdlYkFyZWFX
cmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QmIHJvb3RPYmplY3QpCit7CisgICAgaWYgKCFyb290
T2JqZWN0LmlzQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBpZiAoYXV0byogd2ViQXJlYU9iamVjdCA9IGRvd25jYXN0PEFjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3Pihyb290T2JqZWN0KS53ZWJBcmVhT2JqZWN0KCkpCisgICAgICAgIHJldHVy
biB3ZWJBcmVhT2JqZWN0LT53cmFwcGVyKCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwog
c3RhdGljIEF0a09iamVjdCogYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVyKEF0a09iamVj
dCogYXRrT2JqZWN0KQogewogICAgIGlmICghQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKQEAgLTY5LDcgKzg5LDIxIEBAIHN0YXRpYyBBdGtPYmplY3QqIGFjY2Vzc2liaWxp
dHlSb290T2JqZWN0V3JhcHBlcihBdGtPYmplY3QqIGF0a09iamVjdCkKICAgICBpZiAoIWNvcmVS
b290T2JqZWN0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJldHVybiBBVEtfT0JK
RUNUKGNvcmVSb290T2JqZWN0LT53cmFwcGVyKCkpOworICAgIGF1dG8qIHdyYXBwZXIgPSBBVEtf
T0JKRUNUKGNvcmVSb290T2JqZWN0LT53cmFwcGVyKCkpOworICAgIGlmICghd3JhcHBlcikKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoYXRrX29iamVjdF9wZWVrX3BhcmVudCh3
cmFwcGVyKSAhPSBBVEtfT0JKRUNUKGFjY2Vzc2libGUpKSB7CisgICAgICAgIGF0a19vYmplY3Rf
c2V0X3BhcmVudCh3cmFwcGVyLCBBVEtfT0JKRUNUKGFjY2Vzc2libGUpKTsKKyAgICAgICAgZ19z
aWduYWxfZW1pdF9ieV9uYW1lKGFjY2Vzc2libGUsICJjaGlsZHJlbi1jaGFuZ2VkOjphZGQiLCAw
LCB3cmFwcGVyKTsKKworICAgICAgICBpZiAoYXV0byogd2ViQXJlYVdyYXBwZXIgPSByb290V2Vi
QXJlYVdyYXBwZXIoKmNvcmVSb290T2JqZWN0KSkgeworICAgICAgICAgICAgZ19zaWduYWxfY29u
bmVjdF9vYmplY3Qod2ViQXJlYVdyYXBwZXIsICJzdGF0ZS1jaGFuZ2U6OmRlZnVuY3QiLAorICAg
ICAgICAgICAgICAgIEdfQ0FMTEJBQ0soY29yZVJvb3RPYmplY3RXcmFwcGVyRGV0YWNoZWRDYWxs
YmFjayksIGFjY2Vzc2libGUsIHN0YXRpY19jYXN0PEdDb25uZWN0RmxhZ3M+KDApKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIHJldHVybiB3cmFwcGVyOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJr
aXRXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVjdEluaXRpYWxpemUoQXRrT2JqZWN0KiBhdGtPYmpl
Y3QsIGdwb2ludGVyIGRhdGEpCkBAIC05OCwxNCArMTMyLDEwIEBAIHN0YXRpYyBBdGtPYmplY3Qq
IHdlYmtpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmQ2hpbGQoQXRrT2JqZWN0KiBhdGtP
YmplY3QsCiAgICAgaWYgKGluZGV4ICYmIGluZGV4ICE9IDEpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgQXRrT2JqZWN0KiByb290T2JqZWN0ID0gYWNjZXNzaWJpbGl0eVJvb3RPYmpl
Y3RXcmFwcGVyKGF0a09iamVjdCk7Ci0gICAgaWYgKCFyb290T2JqZWN0KQotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0byogcm9vdE9iamVjdFdyYXBwZXIgPSBhY2Nlc3NpYmls
aXR5Um9vdE9iamVjdFdyYXBwZXIoYXRrT2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIEFUS19PQkpF
Q1QoZ19vYmplY3RfcmVmKHJvb3RPYmplY3RXcmFwcGVyKSk7CiAKLSAgICBhdGtfb2JqZWN0X3Nl
dF9wYXJlbnQocm9vdE9iamVjdCwgYXRrT2JqZWN0KTsKLSAgICBnX29iamVjdF9yZWYocm9vdE9i
amVjdCk7Ci0KLSAgICByZXR1cm4gcm9vdE9iamVjdDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X2NsYXNz
X2luaXQoV2ViS2l0V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RDbGFzcyoga2xhc3MpCkBAIC0x
MjcsMTMgKzE1Nyw0IEBAIEF0a09iamVjdCogd2Via2l0V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmpl
Y3ROZXcoV2ViUGFnZSogcGFnZSkKICAgICByZXR1cm4gb2JqZWN0OwogfQogCi12b2lkIHdlYmtp
dFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaChXZWJLaXRXZWJQYWdlQWNjZXNzaWJp
bGl0eU9iamVjdCogYWNjZXNzaWJsZSkKLXsKLSAgICAvLyBXZSBqdXN0IG5lZWQgdG8gZW5zdXJl
IHRoYXQgdGhlcmUncyBhIGNvbm5lY3Rpb24gaW4gdGhlIEFUSwotICAgIC8vIHdvcmxkIGJldHdl
ZW4gdGhpcyBhY2Nlc3NpYmlsaXR5IG9iamVjdCBhbmQgdGhlIEF0a09iamVjdCBvZgotICAgIC8v
IHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdCBmb3IgdGhlIHJvb3Qgb2YgdGhlIERPTSB0cmVlLgot
ICAgIGlmIChhdXRvKiByb290T2JqZWN0ID0gYWNjZXNzaWJpbGl0eVJvb3RPYmplY3RXcmFwcGVy
KEFUS19PQkpFQ1QoYWNjZXNzaWJsZSkpKQotICAgICAgICBhdGtfb2JqZWN0X3NldF9wYXJlbnQo
cm9vdE9iamVjdCwgQVRLX09CSkVDVChhY2Nlc3NpYmxlKSk7Ci19Ci0KICNlbmRpZiAvLyBIQVZF
KEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9hdGsvV2ViS2l0V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ay9XZWJLaXRXZWJQYWdlQWNjZXNzaWJpbGl0eU9iamVj
dC5oCmluZGV4IDNlOWYzMjcyODMzLi5kNmZmZTAzODQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYktpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvYXRrL1dlYktpdFdl
YlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTYwLDggKzYwLDYgQEAgR1R5cGUgd2Via2l0
X3dlYl9wYWdlX2FjY2Vzc2liaWxpdHlfb2JqZWN0X2dldF90eXBlKCk7CiAKIEF0a09iamVjdCog
d2Via2l0V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3ROZXcoV2ViS2l0OjpXZWJQYWdlKik7CiAK
LXZvaWQgd2Via2l0V2ViUGFnZUFjY2Vzc2liaWxpdHlPYmplY3RSZWZyZXNoKFdlYktpdFdlYlBh
Z2VBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7Ci0KIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvLyBIQVZF
KEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvV2ViUGFnZUd0ay5jcHAKaW5kZXggMmUyMWVkOGE2MmQuLjI2MWRiNWM5MjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsu
Y3BwCkBAIC0xMTEsMTYgKzExMSw2IEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1FZGl0b3JTdGF0
ZShGcmFtZSYgZnJhbWUsIEVkaXRvclN0YXRlJiByZXN1bHQsIEluY2x1ZGVQb3N0CiAgICAgfQog
fQogCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotdm9pZCBXZWJQYWdlOjp1cGRhdGVBY2Nlc3Np
YmlsaXR5VHJlZSgpCi17Ci0gICAgaWYgKCFtX2FjY2Vzc2liaWxpdHlPYmplY3QpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHdlYmtpdFdlYlBhZ2VBY2Nlc3NpYmlsaXR5T2JqZWN0UmVmcmVzaChX
RUJLSVRfV0VCX1BBR0VfQUNDRVNTSUJJTElUWV9PQkpFQ1QobV9hY2Nlc3NpYmlsaXR5T2JqZWN0
LmdldCgpKSk7Ci19Ci0jZW5kaWYKLQogYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2
aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKIHsK
ICAgICBpZiAoa2V5Ym9hcmRFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6OktleURvd24gJiYga2V5
Ym9hcmRFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6OlJhd0tleURvd24pCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGVjZmUxMWM2ZjUuLjYwMTdk
NWQ2OGY5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMDQtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFJFR1JFU1NJT04ocjI0Mzg2MCk6IE1h
bnkgdGVzdHMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk2NzkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmV3b3JrIHRoZSBhY2Nlc3NpYmlsaXR5IHVuaXQgdGVzdCB0byB1c2UgREJ1cyBm
b3IgdGhlIGNvbW11bmljYXRpb24gd2l0aCB0aGUgc2VydmVyLiBUaGlzIHdheSB3ZSBjYW4gbG9h
ZAorICAgICAgICBtdWx0aXBsZSBkb2N1bWVudHMgYW5kIGNoZWNrIHRoYXQgYWNjZXNzaWJpbGl0
eSBoaWVyYXJjaHkgaXMgdXBkYXRlZCBhZnRlciBhIG5hdmlnYXRpb24uCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9BY2Nlc3NpYmlsaXR5VGVzdFNlcnZlci5jcHA6
CisgICAgICAgIChsb2FkQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHA6CisgICAgICAgIChB
Y2Nlc3NpYmlsaXR5VGVzdDo6QWNjZXNzaWJpbGl0eVRlc3QpOgorICAgICAgICAoQWNjZXNzaWJp
bGl0eVRlc3Q6On5BY2Nlc3NpYmlsaXR5VGVzdCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VGVz
dDo6bG9hZEhUTUxBbmRXYWl0VW50aWxGaW5pc2hlZCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
VGVzdDo6ZmluZFRlc3RTZXJ2ZXJBcHBsaWNhdGlvbik6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
VGVzdDo6ZmluZERvY3VtZW50V2ViKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlUZXN0OjpmaW5k
Um9vdE9iamVjdCk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VGVzdDo6d2FpdFVudGlsQ2hpbGRy
ZW5SZW1vdmVkKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlUZXN0OjplbnN1cmVQcm94eSk6Cisg
ICAgICAgICh0ZXN0QXRzcGlCYXNpY0hpZXJhcmNoeSk6CisgICAgICAgIChiZWZvcmVBbGwpOgor
ICAgICAgICAoYWZ0ZXJBbGwpOgorCiAyMDE5LTA0LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV0tOYXZpZ2F0aW9uUmVzcG9uc2UuX2Rv
d25sb2FkQXR0cmlidXRlIHNob3VsZCBiZSBuaWwgd2hlbiBubyBkb3dubG9hZCBhdHRyaWJ1dGUg
aXMgcHJlc2VudApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
dGsvQWNjZXNzaWJpbGl0eVRlc3RTZXJ2ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHdGsvQWNjZXNzaWJpbGl0eVRlc3RTZXJ2ZXIuY3BwCmluZGV4IDE2NWZjZmI2ZTQ4
Li5mNmY3ODI5MGIyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHdGsvQWNjZXNzaWJpbGl0eVRlc3RTZXJ2ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R3RrL0FjY2Vzc2liaWxpdHlUZXN0U2VydmVyLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiwgMjAxOSBJZ2FsaWEgUy5MLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTIyLDEz
ICsyMiw0NiBAQAogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtp
dDIuaD4KIAotc3RhdGljIHZvaWQgbG9hZENoYW5nZWRDYWxsYmFjayhXZWJLaXRXZWJWaWV3Kiwg
V2ViS2l0TG9hZEV2ZW50IGxvYWRFdmVudCwgZ3BvaW50ZXIpCitzdGF0aWMgY29uc3QgY2hhciBp
bnRyb3NwZWN0aW9uWE1MW10gPQorICAgICI8bm9kZT4iCisgICAgIiA8aW50ZXJmYWNlIG5hbWU9
J29yZy53ZWJraXQuZ3RrLkFjY2Vzc2liaWxpdHlUZXN0Jz4iCisgICAgIiAgPG1ldGhvZCBuYW1l
PSdMb2FkSFRNTCc+IgorICAgICIgICA8YXJnIHR5cGU9J3MnIG5hbWU9J2h0bWwnIGRpcmVjdGlv
bj0naW4nLz4iCisgICAgIiAgIDxhcmcgdHlwZT0ncycgbmFtZT0nYmFzZVVSSScgZGlyZWN0aW9u
PSdpbicvPiIKKyAgICAiICA8L21ldGhvZD4iCisgICAgIiA8L2ludGVyZmFjZT4iCisgICAgIjwv
bm9kZT4iOworCitzdGF0aWMgdm9pZCBsb2FkQ2hhbmdlZENhbGxiYWNrKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYktpdExvYWRFdmVudCBsb2FkRXZlbnQsIEdEQnVzTWV0aG9kSW52b2NhdGlv
biogaW52b2NhdGlvbikKIHsKLSAgICAvLyBTZW5kIGEgbWVzc2FnZSB0byB0aGUgcGFyZW50IHBy
b2Nlc3Mgd2hlbiB3ZSdyZSByZWFkeS4KLSAgICBpZiAobG9hZEV2ZW50ID09IFdFQktJVF9MT0FE
X0ZJTklTSEVEKQotICAgICAgICBnX3ByaW50KCJPSyIpOworICAgIGlmIChsb2FkRXZlbnQgIT0g
V0VCS0lUX0xPQURfRklOSVNIRUQpCisgICAgICAgIHJldHVybjsKKworICAgIGdfc2lnbmFsX2hh
bmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyh3ZWJWaWV3LCByZWludGVycHJldF9jYXN0PHZvaWQq
Pihsb2FkQ2hhbmdlZENhbGxiYWNrKSwgaW52b2NhdGlvbik7CisgICAgZ19kYnVzX21ldGhvZF9p
bnZvY2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBudWxscHRyKTsKIH0KIAorc3RhdGlj
IGNvbnN0IEdEQnVzSW50ZXJmYWNlVlRhYmxlIGludGVyZmFjZVZpcnR1YWxUYWJsZSA9IHsKKyAg
ICAvLyBtZXRob2RDYWxsCisgICAgW10oR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25z
dCBjaGFyKiBzZW5kZXIsIGNvbnN0IGNoYXIqIG9iamVjdFBhdGgsIGNvbnN0IGNoYXIqIGludGVy
ZmFjZU5hbWUsIGNvbnN0IGNoYXIqIG1ldGhvZE5hbWUsIEdWYXJpYW50KiBwYXJhbWV0ZXJzLCBH
REJ1c01ldGhvZEludm9jYXRpb24qIGludm9jYXRpb24sIGdwb2ludGVyIHVzZXJEYXRhKSB7Cisg
ICAgICAgIGlmIChnX3N0cmNtcDAoaW50ZXJmYWNlTmFtZSwgIm9yZy53ZWJraXQuZ3RrLkFjY2Vz
c2liaWxpdHlUZXN0IikpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byogd2Vi
VmlldyA9IFdFQktJVF9XRUJfVklFVyh1c2VyRGF0YSk7CisKKyAgICAgICAgaWYgKCFnX3N0cmNt
cDAobWV0aG9kTmFtZSwgIkxvYWRIVE1MIikpIHsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIGh0
bWw7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBiYXNlVVJJOworICAgICAgICAgICAgZ192YXJp
YW50X2dldChwYXJhbWV0ZXJzLCAiKCZzJnMpIiwgJmh0bWwsICZiYXNlVVJJKTsKKyAgICAgICAg
ICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViVmlldywgImxvYWQtY2hhbmdlZCIsIEdfQ0FMTEJBQ0so
bG9hZENoYW5nZWRDYWxsYmFjayksIGludm9jYXRpb24pOworICAgICAgICAgICAgd2Via2l0X3dl
Yl92aWV3X2xvYWRfaHRtbCh3ZWJWaWV3LCBodG1sLCBiYXNlVVJJICYmICpiYXNlVVJJID8gYmFz
ZVVSSSA6IG51bGxwdHIpOworICAgICAgICB9CisgICAgfSwKKyAgICBudWxscHRyLAorICAgIG51
bGxwdHIsCisgICAgeyAwLCB9Cit9OworCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
CiB7CiAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIEFUSyBicmlkZ2UgaXMgbG9hZGVkLgpAQCAt
MzYsMjMgKzY5LDIyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIAogICAgIGd0
a19pbml0KCZhcmdjLCAmYXJndik7CiAKLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VC
S0lUX1dFQl9WSUVXKHdlYmtpdF93ZWJfdmlld19uZXcoKSk7Ci0gICAgd2Via2l0X3dlYl92aWV3
X2xvYWRfaHRtbCh3ZWJWaWV3LAotICAgICAgICAiPGh0bWw+IgotICAgICAgICAiICA8Ym9keT4i
Ci0gICAgICAgICIgICA8aDE+VGhpcyBpcyBhIHRlc3Q8L2gxPiIKLSAgICAgICAgIiAgIDxwPlRo
aXMgaXMgYSBwYXJhZ3JhcGggd2l0aCBzb21lIHBsYWluIHRleHQuPC9wPiIKLSAgICAgICAgIiAg
IDxwPlRoaXMgcGFyYWdyYXBoIGNvbnRhaW5zIDxhIGhyZWY9XCJodHRwOi8vd3d3LndlYmtpdGd0
ay5vcmdcIj5hIGxpbms8L2E+IGluIHRoZSBtaWRkbGUuPC9wPiIKLSAgICAgICAgIiAgPC9ib2R5
PiIKLSAgICAgICAgIjwvaHRtbD4iLAotICAgICAgICAwKTsKKyAgICBHdGtXaWRnZXQqIHdlYlZp
ZXcgPSB3ZWJraXRfd2ViX3ZpZXdfbmV3KCk7CiAKICAgICBHdGtXaWRnZXQqIHdpbmRvdyA9IGd0
a193aW5kb3dfbmV3KEdUS19XSU5ET1dfVE9QTEVWRUwpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
d2luZG93LCAiZGVsZXRlLWV2ZW50IiwgR19DQUxMQkFDSyhndGtfbWFpbl9xdWl0KSwgbnVsbHB0
cik7CiAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUih3aW5kb3cpLCBHVEtfV0lE
R0VUKHdlYlZpZXcpKTsKICAgICBndGtfd2lkZ2V0X3Nob3dfYWxsKHdpbmRvdyk7CiAKLSAgICBn
X3NpZ25hbF9jb25uZWN0KHdpbmRvdywgImRlbGV0ZS1ldmVudCIsIEdfQ0FMTEJBQ0soZ3RrX21h
aW5fcXVpdCksIDApOwotICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViVmlldywgImxvYWQtY2hhbmdl
ZCIsIEdfQ0FMTEJBQ0sobG9hZENoYW5nZWRDYWxsYmFjayksIDApOworICAgIGdfYnVzX293bl9u
YW1lKEdfQlVTX1RZUEVfU0VTU0lPTiwgIm9yZy53ZWJraXQuZ3RrLkFjY2Vzc2liaWxpdHlUZXN0
IiwgR19CVVNfTkFNRV9PV05FUl9GTEFHU19OT05FLAorICAgICAgICBbXShHREJ1c0Nvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqIG5hbWUsIGdwb2ludGVyIHVzZXJEYXRhKSB7Cisg
ICAgICAgICAgICBzdGF0aWMgR0RCdXNOb2RlSW5mbyAqaW50cm9zcGVjdGlvbkRhdGEgPSBudWxs
cHRyOworICAgICAgICAgICAgaWYgKCFpbnRyb3NwZWN0aW9uRGF0YSkKKyAgICAgICAgICAgICAg
ICBpbnRyb3NwZWN0aW9uRGF0YSA9IGdfZGJ1c19ub2RlX2luZm9fbmV3X2Zvcl94bWwoaW50cm9z
cGVjdGlvblhNTCwgbnVsbHB0cik7CisKKyAgICAgICAgICAgIGdfZGJ1c19jb25uZWN0aW9uX3Jl
Z2lzdGVyX29iamVjdChjb25uZWN0aW9uLCAiL29yZy93ZWJraXQvZ3RrL0FjY2Vzc2liaWxpdHlU
ZXN0IiwgaW50cm9zcGVjdGlvbkRhdGEtPmludGVyZmFjZXNbMF0sCisgICAgICAgICAgICAgICAg
JmludGVyZmFjZVZpcnR1YWxUYWJsZSwgdXNlckRhdGEsIG51bGxwdHIsIG51bGxwdHIpOworICAg
ICAgICB9LCBudWxscHRyLCBudWxscHRyLCB3ZWJWaWV3LCBudWxscHRyKTsKIAogICAgIGd0a19t
YWluKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0
ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAKaW5kZXggNTEwNDg3MjM5OWMu
LmU0ZGQyNjcwYWY3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDE5IElnYWxpYSBTLkwuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsMjA0
ICsyMCwyMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIlRlc3RNYWluLmgi
Ci0jaW5jbHVkZSAiV2ViVmlld1Rlc3QuaCIKKyNpbmNsdWRlICJXZWJLaXRUZXN0QnVzLmgiCiAK
IC8vIFRoZSBsaWJhdHNwaSBoZWFkZXJzIGRvbid0IHVzZSBHX0JFR0lOX0RFQ0xTCiBleHRlcm4g
IkMiIHsKICNpbmNsdWRlIDxhdHNwaS9hdHNwaS5oPgogfQogCi0jaW5jbHVkZSA8ZXJybm8uaD4K
LSNpbmNsdWRlIDxmY250bC5oPgotI2luY2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDxzaWduYWwu
aD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorc3RhdGljIFdlYktpdFRlc3RCdXMqIGJ1
czsKIAotLy8gTmFtZSBvZiB0aGUgdGVzdCBzZXJ2ZXIgYXBwbGljYXRpb24gY3JlYXRpbmcgdGhl
IHdlYlZpZXcgb2JqZWN0Lgotc3RhdGljIGNvbnN0IGNoYXIqIGtUZXN0U2VydmVyQXBwTmFtZSA9
ICJBY2Nlc3NpYmlsaXR5VGVzdFNlcnZlciI7CitjbGFzcyBBY2Nlc3NpYmlsaXR5VGVzdCA6IHB1
YmxpYyBUZXN0IHsKK3B1YmxpYzoKKyAgICBNQUtFX0dMSUJfVEVTVF9GSVhUVVJFKEFjY2Vzc2li
aWxpdHlUZXN0KTsKIAotLy8gTWF4IHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIHRlc3Qgc2VydmVy
IGJlZm9yZSBpbnNwZWN0aW5nIGl0Lgotc3RhdGljIGNvbnN0IGludCBrTWF4V2FpdEZvckNoaWxk
ID0gNTsKKyAgICBBY2Nlc3NpYmlsaXR5VGVzdCgpCisgICAgeworICAgICAgICBHVW5pcXVlUHRy
PGNoYXI+IHRlc3RTZXJ2ZXJQYXRoKGdfYnVpbGRfZmlsZW5hbWUoV0VCS0lUX0VYRUNfUEFUSCwg
IlRlc3RXZWJLaXRBUEkiLCAiV2ViS2l0Mkd0ayIsICJBY2Nlc3NpYmlsaXR5VGVzdFNlcnZlciIs
IG51bGxwdHIpKTsKKyAgICAgICAgY2hhciogYXJnc1syXTsKKyAgICAgICAgYXJnc1swXSA9IHRl
c3RTZXJ2ZXJQYXRoLmdldCgpOworICAgICAgICBhcmdzWzFdID0gbnVsbHB0cjsKIAotLy8gVGhl
IFBJRCBmb3IgdGhlIHRlc3Qgc2VydmVyIHJ1bm5pbmcsIHNvIHdlIGNhbiBraWxsIGl0IGlmIG5l
ZWRlZC4KLXN0YXRpYyBHUGlkIGtDaGlsZFByb2Nlc3NQaWQgPSAwOwotCi0vLyBXaGV0aGVyIHRo
ZSBjaGlsZCBoYXMgcmVwbGllZCBhbmQgaXQncyByZWFkeS4KLXN0YXRpYyBib29sIGtDaGlsZElz
UmVhZHkgPSBmYWxzZTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShnX3NwYXduX2FzeW5jKG51bGxw
dHIsIGFyZ3MsIG51bGxwdHIsIEdfU1BBV05fREVGQVVMVCwgbnVsbHB0ciwgbnVsbHB0ciwgJm1f
Y2hpbGRQcm9jZXNzSUQsIG51bGxwdHIpKTsKKyAgICB9CiAKLXN0YXRpYyB2b2lkIHN0b3BUZXN0
U2VydmVyKCkKLXsKLSAgICAvLyBEbyBub3RoaW5nIGlmIHRoZXJlJ3Mgbm8gc2VydmVyIHJ1bm5p
bmcuCi0gICAgaWYgKCFrQ2hpbGRQcm9jZXNzUGlkKQotICAgICAgICByZXR1cm47CisgICAgfkFj
Y2Vzc2liaWxpdHlUZXN0KCkKKyAgICB7CisgICAgICAgIGlmIChtX2NoaWxkUHJvY2Vzc0lEKSB7
CisgICAgICAgICAgICBnX3NwYXduX2Nsb3NlX3BpZChtX2NoaWxkUHJvY2Vzc0lEKTsKKyAgICAg
ICAgICAgIGtpbGwobV9jaGlsZFByb2Nlc3NJRCwgU0lHVEVSTSk7CisgICAgICAgIH0KKyAgICB9
CiAKLSAgICBnX3NwYXduX2Nsb3NlX3BpZChrQ2hpbGRQcm9jZXNzUGlkKTsKLSAgICBraWxsKGtD
aGlsZFByb2Nlc3NQaWQsIFNJR1RFUk0pOwotICAgIGtDaGlsZFByb2Nlc3NQaWQgPSAwOwotfQor
ICAgIHZvaWQgbG9hZEhUTUxBbmRXYWl0VW50aWxGaW5pc2hlZChjb25zdCBjaGFyKiBodG1sLCBj
b25zdCBjaGFyKiBiYXNlVVJJKQorICAgIHsKKyAgICAgICAgZW5zdXJlUHJveHkoKTsKIAotc3Rh
dGljIHZvaWQgc2lnQWJvcnRIYW5kbGVyKGludCBzaWdOdW0pCi17Ci0gICAgLy8gSnVzdCBzdG9w
IHRoZSB0ZXN0IHNlcnZlciBpZiBTSUdBQlJUIHdhcyByZWNlaXZlZC4KLSAgICBzdG9wVGVzdFNl
cnZlcigpOwotfQotCi1zdGF0aWMgZ3BvaW50ZXIgdGVzdFNlcnZlck1vbml0b3JUaHJlYWRGdW5j
KGdwb2ludGVyKQotewotICAgIC8vIFdhaXQgZm9yIHRoZSBzcGVjaWZpZWQgdGltZW91dCB0byBo
YXBwZW4uCi0gICAgZ191c2xlZXAoa01heFdhaXRGb3JDaGlsZCAqIEdfVVNFQ19QRVJfU0VDKTsK
KyAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgICAgICBHUmVmUHRyPEdW
YXJpYW50PiByZXN1bHQgPSBhZG9wdEdSZWYoZ19kYnVzX3Byb3h5X2NhbGxfc3luYyhtX3Byb3h5
LmdldCgpLCAiTG9hZEhUTUwiLAorICAgICAgICAgICAgZ192YXJpYW50X25ldygiKHNzKSIsIGh0
bWwsIGJhc2VVUkkgPyBiYXNlVVJJIDogIiIpLCBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLCAtMSwg
bnVsbHB0ciwgJmVycm9yLm91dFB0cigpKSk7CisgICAgICAgIGdfYXNzZXJ0X25vX2Vycm9yKGVy
cm9yLmdldCgpKTsKKyAgICB9CiAKLSAgICAvLyBLaWxsIHRoZSBjaGlsZCBwcm9jZXNzIGlmIG5v
dCByZWFkeSB5ZXQuCi0gICAgaWYgKCFrQ2hpbGRJc1JlYWR5KQotICAgICAgICBzdG9wVGVzdFNl
cnZlcigpOworICAgIEdSZWZQdHI8QXRzcGlBY2Nlc3NpYmxlPiBmaW5kVGVzdFNlcnZlckFwcGxp
Y2F0aW9uKCkKKyAgICB7CisgICAgICAgIC8vIE9ubHkgb25lIGRlc2t0b3AgaXMgc3VwcG9ydGVk
IGJ5IEFUU1BJIGF0IHRoZSBtb21lbnQuCisgICAgICAgIEdSZWZQdHI8QXRzcGlBY2Nlc3NpYmxl
PiBkZXNrdG9wID0gYWRvcHRHUmVmKGF0c3BpX2dldF9kZXNrdG9wKDApKTsKIAotICAgIGdfdGhy
ZWFkX2V4aXQoMCk7Ci0gICAgcmV0dXJuIDA7Ci19CisgICAgICAgIGludCBjaGlsZENvdW50ID0g
YXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfY291bnQoZGVza3RvcC5nZXQoKSwgbnVsbHB0cik7
CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsgKytpKSB7CisgICAgICAg
ICAgICBHUmVmUHRyPEF0c3BpQWNjZXNzaWJsZT4gY3VycmVudCA9IGFkb3B0R1JlZihhdHNwaV9h
Y2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChkZXNrdG9wLmdldCgpLCBpLCBudWxscHRyKSk7
CisgICAgICAgICAgICBpZiAoIWdfc3RyY21wMChhdHNwaV9hY2Nlc3NpYmxlX2dldF9uYW1lKGN1
cnJlbnQuZ2V0KCksIG51bGxwdHIpLCAiQWNjZXNzaWJpbGl0eVRlc3RTZXJ2ZXIiKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY3VycmVudDsKKyAgICAgICAgfQogCi1zdGF0aWMgdm9pZCBzdGFy
dFRlc3RTZXJ2ZXJNb25pdG9yKCkKLXsKLSAgICBrQ2hpbGRJc1JlYWR5ID0gZmFsc2U7Ci0gICAg
Z190aHJlYWRfbmV3KCJUZXN0U2VydmVyTW9uaXRvciIsIHRlc3RTZXJ2ZXJNb25pdG9yVGhyZWFk
RnVuYywgMCk7Ci19CisgICAgICAgIHJldHVybiAwOworICAgIH0KIAotc3RhdGljIHZvaWQgc3Rh
cnRUZXN0U2VydmVyKCkKLXsKLSAgICAvLyBQcmVwYXJlIGFyZ3ZbXSBmb3Igc3Bhd25pbmcgdGhl
IHNlcnZlciBwcm9jZXNzLgotICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFNlcnZlclBhdGgoZ19i
dWlsZF9maWxlbmFtZShXRUJLSVRfRVhFQ19QQVRILCAiVGVzdFdlYktpdEFQSSIsICJXZWJLaXQy
R3RrIiwga1Rlc3RTZXJ2ZXJBcHBOYW1lLCBudWxscHRyKSk7Ci0KLSAgICBjaGFyKiB0ZXN0U2Vy
dmVyQXJndlsyXTsKLSAgICB0ZXN0U2VydmVyQXJndlswXSA9IHRlc3RTZXJ2ZXJQYXRoLmdldCgp
OwotICAgIHRlc3RTZXJ2ZXJBcmd2WzFdID0gMDsKLQotICAgIC8vIFNwYXduIHRoZSBzZXJ2ZXIs
IGdldHRpbmcgaXRzIHN0ZG91dCBmaWxlIGRlc2NyaXB0b3IgdG8gc2V0IGEKLSAgICAvLyBjb21t
dW5pY2F0aW9uIGNoYW5uZWwsIHNvIHdlIGtub3cgd2hlbiBpdCdzIHJlYWR5LgotICAgIGludCBj
aGlsZFN0ZG91dCA9IDA7Ci0gICAgaWYgKCFnX3NwYXduX2FzeW5jX3dpdGhfcGlwZXMoMCwgdGVz
dFNlcnZlckFyZ3YsIDAsIHN0YXRpY19jYXN0PEdTcGF3bkZsYWdzPigwKSwgMCwgMCwgJmtDaGls
ZFByb2Nlc3NQaWQsIDAsICZjaGlsZFN0ZG91dCwgMCwgMCkpIHsKLSAgICAgICAgY2xvc2UoY2hp
bGRTdGRvdXQpOwotICAgICAgICByZXR1cm47CisgICAgR1JlZlB0cjxBdHNwaUFjY2Vzc2libGU+
IGZpbmREb2N1bWVudFdlYihBdHNwaUFjY2Vzc2libGUqIGFjY2Vzc2libGUpCisgICAgeworICAg
ICAgICBpbnQgY2hpbGRDb3VudCA9IGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2NvdW50KGFj
Y2Vzc2libGUsIG51bGxwdHIpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoaWxkQ291
bnQ7ICsraSkgeworICAgICAgICAgICAgR1JlZlB0cjxBdHNwaUFjY2Vzc2libGU+IGNoaWxkID0g
YWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGFjY2Vzc2libGUs
IGksIG51bGxwdHIpKTsKKyAgICAgICAgICAgIGlmIChhdHNwaV9hY2Nlc3NpYmxlX2dldF9yb2xl
KGNoaWxkLmdldCgpLCBudWxscHRyKSA9PSBBVFNQSV9ST0xFX0RPQ1VNRU5UX1dFQikKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY2hpbGQ7CisKKyAgICAgICAgICAgIGlmIChhdXRvIGRvY3VtZW50
V2ViID0gZmluZERvY3VtZW50V2ViKGNoaWxkLmdldCgpKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZG9jdW1lbnRXZWI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
fQogCi0gICAgLy8gU3RhcnQgbW9uaXRvcmluZyB0aGUgdGVzdCBzZXJ2ZXIgKGluIGEgc2VwYXJh
dGUgdGhyZWFkKSB0bwotICAgIC8vIGVuc3VyZSB3ZSBkb24ndCBibG9jayBvbiB0aGUgY2hpbGQg
cHJvY2VzcyBtb3JlIHRoYW4gYSB0aW1lb3V0LgotICAgIHN0YXJ0VGVzdFNlcnZlck1vbml0b3Io
KTsKKyAgICBHUmVmUHRyPEF0c3BpQWNjZXNzaWJsZT4gZmluZFJvb3RPYmplY3QoQXRzcGlBY2Nl
c3NpYmxlKiBhcHBsaWNhdGlvbikKKyAgICB7CisgICAgICAgIC8vIEZpbmQgdGhlIGRvY3VtZW50
IHdlYiwgaXRzIHBhcmVudCBpcyB0aGUgc2Nyb2xsIHZpZXcgKFdlYkNvcmUgcm9vdCBvYmplY3Qp
IGFuZCBpdHMgcGFyZW50IGlzCisgICAgICAgIC8vIHRoZSBHdGtQbHVnIChXZWJQcm9jZXNzIHJv
b3QgZWxlbWVudCkuCisgICAgICAgIGF1dG8gZG9jdW1lbnRXZWIgPSBmaW5kRG9jdW1lbnRXZWIo
YXBwbGljYXRpb24pOworICAgICAgICBpZiAoIWRvY3VtZW50V2ViKQorICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBjaGFyIG1zZ1syXTsKLSAgICBHSU9DaGFubmVsKiBpb0NoYW5u
ZWwgPSBnX2lvX2NoYW5uZWxfdW5peF9uZXcoY2hpbGRTdGRvdXQpOwotICAgIGlmIChnX2lvX2No
YW5uZWxfcmVhZF9jaGFycyhpb0NoYW5uZWwsIG1zZywgMiwgMCwgMCkgPT0gR19JT19TVEFUVVNf
Tk9STUFMKSB7Ci0gICAgICAgIC8vIENoZWNrIHdoZXRoZXIgdGhlIHNlcnZlciBzZW50IGEgbWVz
c2FnZSBzYXlpbmcgaXQncyByZWFkeQotICAgICAgICAvLyBhbmQgc3RvcmUgdGhlIHJlc3VsdCBn
bG9iYWxseSwgc28gdGhlIG1vbml0b3IgY2FuIHNlZSBpdC4KLSAgICAgICAga0NoaWxkSXNSZWFk
eSA9IG1zZ1swXSA9PSAnTycgJiYgbXNnWzFdID09ICdLJzsKKyAgICAgICAgYXV0byBwYXJlbnQg
PSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfcGFyZW50KGRvY3VtZW50V2ViLmdldCgp
LCBudWxscHRyKSk7CisgICAgICAgIHJldHVybiBwYXJlbnQgPyBhZG9wdEdSZWYoYXRzcGlfYWNj
ZXNzaWJsZV9nZXRfcGFyZW50KHBhcmVudC5nZXQoKSwgbnVsbHB0cikpIDogbnVsbHB0cjsKICAg
ICB9Ci0gICAgZ19pb19jaGFubmVsX3VucmVmKGlvQ2hhbm5lbCk7Ci0gICAgY2xvc2UoY2hpbGRT
dGRvdXQpOwotCi0gICAgLy8gVGhlIHRpbWVvdXQgd2FzIHJlYWNoZWQgYW5kIHRoZSBzZXJ2ZXIg
aXMgbm90IHJlYWR5IHlldCwgc28KLSAgICAvLyBzdG9wIGl0IGlubWVkaWF0ZWx5LCBhbmQgbGV0
IHRoZSB1bml0IHRlc3RzIGZhaWwuCi0gICAgaWYgKCFrQ2hpbGRJc1JlYWR5KQotICAgICAgICBz
dG9wVGVzdFNlcnZlcigpOwotfQogCi1zdGF0aWMgdm9pZCBjaGVja0F0c3BpQWNjZXNzaWJsZShB
dHNwaUFjY2Vzc2libGUqIGFjY2Vzc2libGUsIGNvbnN0IGNoYXIqIHRhcmdldE5hbWUsIEF0c3Bp
Um9sZSB0YXJnZXRSb2xlKQotewotICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJM
RShhY2Nlc3NpYmxlKSk7CisgICAgdm9pZCB3YWl0VW50aWxDaGlsZHJlblJlbW92ZWQoQXRzcGlB
Y2Nlc3NpYmxlKiBhY2Nlc3NpYmxlKQorICAgIHsKKyAgICAgICAgbV9ldmVudFNvdXJjZSA9IGFj
Y2Vzc2libGU7CisgICAgICAgIEdSZWZQdHI8QXRzcGlFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9
IGFkb3B0R1JlZihhdHNwaV9ldmVudF9saXN0ZW5lcl9uZXcoCisJICAgIFtdKEF0c3BpRXZlbnQq
IGV2ZW50LCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICAgICAgICAgIGF1dG8qIHRlc3Qg
PSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5VGVzdCo+KHVzZXJEYXRhKTsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQtPnNvdXJjZSA9PSB0ZXN0LT5tX2V2ZW50U291cmNlKQorICAgICAgICAg
ICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0KHRlc3QtPm1fbWFpbkxvb3AuZ2V0KCkpOworICAg
ICAgICB9LCB0aGlzLCBudWxscHRyKSk7CisgICAgICAgIGF0c3BpX2V2ZW50X2xpc3RlbmVyX3Jl
Z2lzdGVyKGxpc3RlbmVyLmdldCgpLCAib2JqZWN0OmNoaWxkcmVuLWNoYW5nZWQ6cmVtb3ZlIiwg
bnVsbHB0cik7CisgICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wLmdldCgpKTsKKyAg
ICAgICAgbV9ldmVudFNvdXJjZSA9IG51bGxwdHI7CisgICAgfQogCi0gICAgR1VuaXF1ZVB0cjxj
aGFyPiBuYW1lKGF0c3BpX2FjY2Vzc2libGVfZ2V0X25hbWUoYWNjZXNzaWJsZSwgMCkpOwotICAg
IGdfYXNzZXJ0X2NtcHN0cih0YXJnZXROYW1lLCA9PSwgbmFtZS5nZXQoKSk7Ci0gICAgZ19hc3Nl
cnRfY21waW50KHRhcmdldFJvbGUsID09LCBhdHNwaV9hY2Nlc3NpYmxlX2dldF9yb2xlKGFjY2Vz
c2libGUsIDApKTsKLX0KK3ByaXZhdGU6CisgICAgdm9pZCBlbnN1cmVQcm94eSgpCisgICAgewor
ICAgICAgICBpZiAobV9wcm94eSkKKyAgICAgICAgICAgIHJldHVybjsKIAotc3RhdGljIEdSZWZQ
dHI8QXRzcGlBY2Nlc3NpYmxlPiBmaW5kVGVzdFNlcnZlckFwcGxpY2F0aW9uKCkKLXsKLSAgICAv
LyBPbmx5IG9uZSBkZXNrdG9wIGlzIHN1cHBvcnRlZCBieSBBVFNQSSBhdCB0aGUgbW9tZW50Lgot
ICAgIEdSZWZQdHI8QXRzcGlBY2Nlc3NpYmxlPiBkZXNrdG9wID0gYWRvcHRHUmVmKGF0c3BpX2dl
dF9kZXNrdG9wKDApKTsKLQotICAgIC8vIExvb2sgZm9yIHRoZSBzZXJ2ZXIgYXBwbGljYXRpb24g
aW4gdGhlIGxpc3Qgb2YgYXBwcy4KLSAgICBHUmVmUHRyPEF0c3BpQWNjZXNzaWJsZT4gY3VycmVu
dDsKLSAgICBpbnQgY2hpbGRDb3VudCA9IGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2NvdW50
KGRlc2t0b3AuZ2V0KCksIDApOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hpbGRDb3VudDsg
aSsrKSB7Ci0gICAgICAgIGN1cnJlbnQgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRf
Y2hpbGRfYXRfaW5kZXgoZGVza3RvcC5nZXQoKSwgaSwgMCkpOwotICAgICAgICBpZiAoIWdfc3Ry
Y21wMChhdHNwaV9hY2Nlc3NpYmxlX2dldF9uYW1lKGN1cnJlbnQuZ2V0KCksIDApLCBrVGVzdFNl
cnZlckFwcE5hbWUpKQotICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7CisgICAgICAgIG1fbWFp
bkxvb3AgPSBhZG9wdEdSZWYoZ19tYWluX2xvb3BfbmV3KG51bGxwdHIsIEZBTFNFKSk7CisgICAg
ICAgIG1fcHJveHkgPSBhZG9wdEdSZWYoYnVzLT5jcmVhdGVQcm94eSgib3JnLndlYmtpdC5ndGsu
QWNjZXNzaWJpbGl0eVRlc3QiLCAiL29yZy93ZWJraXQvZ3RrL0FjY2Vzc2liaWxpdHlUZXN0Iiwg
Im9yZy53ZWJraXQuZ3RrLkFjY2Vzc2liaWxpdHlUZXN0IiwgbV9tYWluTG9vcC5nZXQoKSkpOwog
ICAgIH0KIAotICAgIHJldHVybiAwOwotfQorICAgIEdQaWQgbV9jaGlsZFByb2Nlc3NJRCB7IDAg
fTsKKyAgICBHUmVmUHRyPEdEQnVzUHJveHk+IG1fcHJveHk7CisgICAgR1JlZlB0cjxHTWFpbkxv
b3A+IG1fbWFpbkxvb3A7CisgICAgQXRzcGlBY2Nlc3NpYmxlKiBtX2V2ZW50U291cmNlIHsgbnVs
bHB0ciB9OworfTsKIAotc3RhdGljIHZvaWQgdGVzdEF0c3BpQmFzaWNIaWVyYXJjaHkoV2ViVmll
d1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCitzdGF0aWMgdm9pZCB0ZXN0QXRzcGlCYXNpY0hp
ZXJhcmNoeShBY2Nlc3NpYmlsaXR5VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICAv
LyBUaGUgdGVzdCBzZXJ2ZXIncyBhY2Nlc3NpYmlsaXR5IG9iamVjdCAoVUkgUHJvY2VzcykuCi0g
ICAgR1JlZlB0cjxBdHNwaUFjY2Vzc2libGU+IHRlc3RTZXJ2ZXJBcHAgPSBmaW5kVGVzdFNlcnZl
ckFwcGxpY2F0aW9uKCk7CisgICAgdGVzdC0+bG9hZEhUTUxBbmRXYWl0VW50aWxGaW5pc2hlZCgK
KyAgICAgICAgIjxodG1sPiIKKyAgICAgICAgIiAgPGJvZHk+IgorICAgICAgICAiICAgPGgxPlRo
aXMgaXMgYSB0ZXN0PC9oMT4iCisgICAgICAgICIgICA8cD5UaGlzIGlzIGEgcGFyYWdyYXBoIHdp
dGggc29tZSBwbGFpbiB0ZXh0LjwvcD4iCisgICAgICAgICIgICA8cD5UaGlzIHBhcmFncmFwaCBj
b250YWlucyA8YSBocmVmPVwiaHR0cDovL3d3dy53ZWJraXRndGsub3JnXCI+YSBsaW5rPC9hPiBp
biB0aGUgbWlkZGxlLjwvcD4iCisgICAgICAgICIgIDwvYm9keT4iCisgICAgICAgICI8L2h0bWw+
IiwKKyAgICAgICAgbnVsbHB0cik7CisKKyAgICBhdXRvIHRlc3RTZXJ2ZXJBcHAgPSB0ZXN0LT5m
aW5kVGVzdFNlcnZlckFwcGxpY2F0aW9uKCk7CiAgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19B
Q0NFU1NJQkxFKHRlc3RTZXJ2ZXJBcHAuZ2V0KCkpKTsKLSAgICBjaGVja0F0c3BpQWNjZXNzaWJs
ZSh0ZXN0U2VydmVyQXBwLmdldCgpLCAiQWNjZXNzaWJpbGl0eVRlc3RTZXJ2ZXIiLCBBVFNQSV9S
T0xFX0FQUExJQ0FUSU9OKTsKLQotICAgIC8vIFRoZSBtYWluIHdpbmRvdydzIGFjY2Vzc2liaWxp
dHkgb2JqZWN0IChVSSBQcm9jZXNzKS4KLSAgICBHUmVmUHRyPEF0c3BpQWNjZXNzaWJsZT4gY3Vy
cmVudFBhcmVudCA9IHRlc3RTZXJ2ZXJBcHA7Ci0gICAgR1JlZlB0cjxBdHNwaUFjY2Vzc2libGU+
IGN1cnJlbnRDaGlsZCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9p
bmRleChjdXJyZW50UGFyZW50LmdldCgpLCAwLCAwKSk7Ci0gICAgZ19hc3NlcnRfdHJ1ZShBVFNQ
SV9JU19BQ0NFU1NJQkxFKGN1cnJlbnRDaGlsZC5nZXQoKSkpOwotICAgIGNoZWNrQXRzcGlBY2Nl
c3NpYmxlKGN1cnJlbnRDaGlsZC5nZXQoKSwgIiIsIEFUU1BJX1JPTEVfRlJBTUUpOwotCi0gICAg
Ly8gVGhlIFdlYlZpZXcncyBhY2Nlc3NpYmlsaXR5IG9iamVjdCAoVUkgUHJvY2VzcykuCi0gICAg
Y3VycmVudFBhcmVudCA9IGN1cnJlbnRDaGlsZDsKLSAgICBjdXJyZW50Q2hpbGQgPSBhdHNwaV9h
Y2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChjdXJyZW50UGFyZW50LmdldCgpLCAwLCAwKTsK
LSAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUoY3VycmVudENoaWxkLmdldCgp
KSk7Ci0gICAgY2hlY2tBdHNwaUFjY2Vzc2libGUoY3VycmVudENoaWxkLmdldCgpLCAiIiwgQVRT
UElfUk9MRV9GSUxMRVIpOwotCi0gICAgLy8gVGhlIFdlYlBhZ2UncyBhY2Nlc3NpYmlsaXR5IG9i
amVjdCAoV2ViIFByb2Nlc3MpLgotICAgIGN1cnJlbnRQYXJlbnQgPSBjdXJyZW50Q2hpbGQ7Ci0g
ICAgY3VycmVudENoaWxkID0gYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoY3Vy
cmVudFBhcmVudC5nZXQoKSwgMCwgMCk7Ci0gICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NF
U1NJQkxFKGN1cnJlbnRDaGlsZC5nZXQoKSkpOwotICAgIGNoZWNrQXRzcGlBY2Nlc3NpYmxlKGN1
cnJlbnRDaGlsZC5nZXQoKSwgIiIsIEFUU1BJX1JPTEVfRklMTEVSKTsKLQotICAgIC8vIEhUTUwg
cm9vdCBlbGVtZW50J3MgYWNjZXNzaWJsZSBlbGVtZW50IChXZWIgUHJvY2VzcykuCi0gICAgY3Vy
cmVudFBhcmVudCA9IGN1cnJlbnRDaGlsZDsKLSAgICBjdXJyZW50Q2hpbGQgPSBhdHNwaV9hY2Nl
c3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChjdXJyZW50UGFyZW50LmdldCgpLCAwLCAwKTsKLSAg
ICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUoY3VycmVudENoaWxkLmdldCgpKSk7
Ci0KLSAgICAvLyBIVE1MIGJvZHkncyBhY2Nlc3NpYmxlIGVsZW1lbnQgKFdlYiBQcm9jZXNzKS4K
LSAgICBjdXJyZW50UGFyZW50ID0gY3VycmVudENoaWxkOwotICAgIGN1cnJlbnRDaGlsZCA9IGF0
c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGN1cnJlbnRQYXJlbnQuZ2V0KCksIDAs
IDApOwotICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRShjdXJyZW50Q2hpbGQu
Z2V0KCkpKTsKLSAgICBjaGVja0F0c3BpQWNjZXNzaWJsZShjdXJyZW50Q2hpbGQuZ2V0KCksICIi
LCBBVFNQSV9ST0xFX0RPQ1VNRU5UX1dFQik7Ci0KLSAgICAvLyBIVE1MIEgxJ3MgYWNjZXNzaWJs
ZSBlbGVtZW50IChXZWIgUHJvY2VzcykuCi0gICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRDaGls
ZDsKLSAgICBjdXJyZW50Q2hpbGQgPSBhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRl
eChjdXJyZW50UGFyZW50LmdldCgpLCAwLCAwKTsKLSAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lT
X0FDQ0VTU0lCTEUoY3VycmVudENoaWxkLmdldCgpKSk7Ci0gICAgY2hlY2tBdHNwaUFjY2Vzc2li
bGUoY3VycmVudENoaWxkLmdldCgpLCAiVGhpcyBpcyBhIHRlc3QiLCBBVFNQSV9ST0xFX0hFQURJ
TkcpOwotCi0gICAgLy8gSFRNTCBmaXJzdCBwYXJhZ3JhcGgncyBhY2Nlc3NpYmxlIGVsZW1lbnQg
KFdlYiBQcm9jZXNzKS4KLSAgICBjdXJyZW50Q2hpbGQgPSBhdHNwaV9hY2Nlc3NpYmxlX2dldF9j
aGlsZF9hdF9pbmRleChjdXJyZW50UGFyZW50LmdldCgpLCAxLCAwKTsKLSAgICBnX2Fzc2VydF90
cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUoY3VycmVudENoaWxkLmdldCgpKSk7Ci0gICAgY2hlY2tB
dHNwaUFjY2Vzc2libGUoY3VycmVudENoaWxkLmdldCgpLCAiIiwgQVRTUElfUk9MRV9QQVJBR1JB
UEgpOwotCi0gICAgLy8gSFRNTCBzZWNvbmQgcGFyYWdyYXBoJ3MgYWNjZXNzaWJsZSBlbGVtZW50
IChXZWIgUHJvY2VzcykuCi0gICAgY3VycmVudENoaWxkID0gYXRzcGlfYWNjZXNzaWJsZV9nZXRf
Y2hpbGRfYXRfaW5kZXgoY3VycmVudFBhcmVudC5nZXQoKSwgMiwgMCk7Ci0gICAgZ19hc3NlcnRf
dHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKGN1cnJlbnRDaGlsZC5nZXQoKSkpOwotICAgIGNoZWNr
QXRzcGlBY2Nlc3NpYmxlKGN1cnJlbnRDaGlsZC5nZXQoKSwgIiIsIEFUU1BJX1JPTEVfUEFSQUdS
QVBIKTsKLQotICAgIC8vIEhUTUwgbGluaydzIGFjY2Vzc2libGUgZWxlbWVudCAoV2ViIFByb2Nl
c3MpLgotICAgIGN1cnJlbnRQYXJlbnQgPSBjdXJyZW50Q2hpbGQ7Ci0gICAgY3VycmVudENoaWxk
ID0gYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoY3VycmVudFBhcmVudC5nZXQo
KSwgMCwgMCk7Ci0gICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKGN1cnJlbnRD
aGlsZC5nZXQoKSkpOwotICAgIGNoZWNrQXRzcGlBY2Nlc3NpYmxlKGN1cnJlbnRDaGlsZC5nZXQo
KSwgImEgbGluayIsIEFUU1BJX1JPTEVfTElOSyk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBuYW1l
KGF0c3BpX2FjY2Vzc2libGVfZ2V0X25hbWUodGVzdFNlcnZlckFwcC5nZXQoKSwgbnVsbHB0cikp
OworICAgIGdfYXNzZXJ0X2NtcHN0cihuYW1lLmdldCgpLCA9PSwgIkFjY2Vzc2liaWxpdHlUZXN0
U2VydmVyIik7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0X3JvbGUo
dGVzdFNlcnZlckFwcC5nZXQoKSwgbnVsbHB0ciksID09LCBBVFNQSV9ST0xFX0FQUExJQ0FUSU9O
KTsKKworICAgIGF1dG8gcm9vdE9iamVjdCA9IHRlc3QtPmZpbmRSb290T2JqZWN0KHRlc3RTZXJ2
ZXJBcHAuZ2V0KCkpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRShyb290
T2JqZWN0LmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0
X3JvbGUocm9vdE9iamVjdC5nZXQoKSwgbnVsbHB0ciksID09LCBBVFNQSV9ST0xFX0ZJTExFUik7
CisKKyAgICBhdXRvIHNjcm9sbFZpZXcgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRf
Y2hpbGRfYXRfaW5kZXgocm9vdE9iamVjdC5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNz
ZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRShzY3JvbGxWaWV3LmdldCgpKSk7CisgICAgZ19h
c3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0X3JvbGUoc2Nyb2xsVmlldy5nZXQoKSwg
bnVsbHB0ciksID09LCBBVFNQSV9ST0xFX1NDUk9MTF9QQU5FKTsKKworICAgIGF1dG8gZG9jdW1l
bnRXZWIgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoc2Ny
b2xsVmlldy5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNf
QUNDRVNTSUJMRShkb2N1bWVudFdlYi5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNw
aV9hY2Nlc3NpYmxlX2dldF9yb2xlKGRvY3VtZW50V2ViLmdldCgpLCBudWxscHRyKSwgPT0sIEFU
U1BJX1JPTEVfRE9DVU1FTlRfV0VCKTsKKworICAgIGF1dG8gaDEgPSBhZG9wdEdSZWYoYXRzcGlf
YWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1lbnRXZWIuZ2V0KCksIDAsIG51bGxw
dHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUoaDEuZ2V0KCkpKTsK
KyAgICBuYW1lLnJlc2V0KGF0c3BpX2FjY2Vzc2libGVfZ2V0X25hbWUoaDEuZ2V0KCksIG51bGxw
dHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIobmFtZS5nZXQoKSwgPT0sICJUaGlzIGlzIGEgdGVz
dCIpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9yb2xlKGgxLmdl
dCgpLCBudWxscHRyKSwgPT0sIEFUU1BJX1JPTEVfSEVBRElORyk7CisKKyAgICBhdXRvIHAxID0g
YWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGRvY3VtZW50V2Vi
LmdldCgpLCAxLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJ
QkxFKHAxLmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0
X3JvbGUocDEuZ2V0KCksIG51bGxwdHIpLCA9PSwgQVRTUElfUk9MRV9QQVJBR1JBUEgpOworCisg
ICAgYXV0byBwMiA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRl
eChkb2N1bWVudFdlYi5nZXQoKSwgMiwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoQVRT
UElfSVNfQUNDRVNTSUJMRShwMi5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9h
Y2Nlc3NpYmxlX2dldF9yb2xlKHAyLmdldCgpLCBudWxscHRyKSwgPT0sIEFUU1BJX1JPTEVfUEFS
QUdSQVBIKTsKKworICAgIGF1dG8gbGluayA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dl
dF9jaGlsZF9hdF9pbmRleChwMi5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3Ry
dWUoQVRTUElfSVNfQUNDRVNTSUJMRShsaW5rLmdldCgpKSk7CisgICAgbmFtZS5yZXNldChhdHNw
aV9hY2Nlc3NpYmxlX2dldF9uYW1lKGxpbmsuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBnX2Fzc2Vy
dF9jbXBzdHIobmFtZS5nZXQoKSwgPT0sICJhIGxpbmsiKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQo
YXRzcGlfYWNjZXNzaWJsZV9nZXRfcm9sZShsaW5rLmdldCgpLCBudWxscHRyKSwgPT0sIEFUU1BJ
X1JPTEVfTElOSyk7CisKKyAgICB0ZXN0LT5sb2FkSFRNTEFuZFdhaXRVbnRpbEZpbmlzaGVkKAor
ICAgICAgICAiPGh0bWw+IgorICAgICAgICAiICA8Ym9keT4iCisgICAgICAgICIgICA8aDE+VGhp
cyBpcyBhbm90aGVyIHRlc3Q8L2gxPiIKKyAgICAgICAgIiAgIDxpbWcgc3JjPSdkYXRhOmltYWdl
L3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFJQUFBQUNDQUlBQUFEOTFKcHpB
QUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUIzUkpUVVVIM0FZV0RUTVZ3blNabndBQUFC
MXBWRmgwUTI5dGJXVnVkQUFBQUFBQVEzSmxZWFJsWkNCM2FYUm9JRWRKVFZCa0xtVUhBQUFBRmts
RVFWUUkxMlA4ejhEQXdNREF4TURBd01EQUFBQU5IUUVESyttbXlBQUFBQUJKUlU1RXJrSmdnZz09
Jy8+IgorICAgICAgICAiICA8L2JvZHk+IgorICAgICAgICAiPC9odG1sPiIsCisgICAgICAgIG51
bGxwdHIpOworCisgICAgLy8gQ2hlY2sgdGhhdCBjaGlsZHJlbi1jaGFuZ2VkOjpyZW1vdmUgaXMg
ZW1pdHRlZCBvbiB0aGUgcm9vdCBvYmplY3Qgb24gbmF2aWdhdGlvbiwKKyAgICAvLyBhbmQgdGhl
IGExMXkgaGllcmFyY2h5IGlzIHVwZGF0ZWQuCisgICAgdGVzdC0+d2FpdFVudGlsQ2hpbGRyZW5S
ZW1vdmVkKHJvb3RPYmplY3QuZ2V0KCkpOworCisgICAgZG9jdW1lbnRXZWIgPSB0ZXN0LT5maW5k
RG9jdW1lbnRXZWIodGVzdFNlcnZlckFwcC5nZXQoKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQ
SV9JU19BQ0NFU1NJQkxFKGRvY3VtZW50V2ViLmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21waW50
KGF0c3BpX2FjY2Vzc2libGVfZ2V0X3JvbGUoZG9jdW1lbnRXZWIuZ2V0KCksIG51bGxwdHIpLCA9
PSwgQVRTUElfUk9MRV9ET0NVTUVOVF9XRUIpOworCisgICAgaDEgPSBhZG9wdEdSZWYoYXRzcGlf
YWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1lbnRXZWIuZ2V0KCksIDAsIG51bGxw
dHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUoaDEuZ2V0KCkpKTsK
KyAgICBuYW1lLnJlc2V0KGF0c3BpX2FjY2Vzc2libGVfZ2V0X25hbWUoaDEuZ2V0KCksIG51bGxw
dHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIobmFtZS5nZXQoKSwgPT0sICJUaGlzIGlzIGFub3Ro
ZXIgdGVzdCIpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9yb2xl
KGgxLmdldCgpLCBudWxscHRyKSwgPT0sIEFUU1BJX1JPTEVfSEVBRElORyk7CisKKyAgICBhdXRv
IHNlY3Rpb24gPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgo
ZG9jdW1lbnRXZWIuZ2V0KCksIDEsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJ
X0lTX0FDQ0VTU0lCTEUoc2VjdGlvbi5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNw
aV9hY2Nlc3NpYmxlX2dldF9yb2xlKHNlY3Rpb24uZ2V0KCksIG51bGxwdHIpLCA9PSwgQVRTUElf
Uk9MRV9TRUNUSU9OKTsKKworICAgIGF1dG8gaW1nID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2li
bGVfZ2V0X2NoaWxkX2F0X2luZGV4KHNlY3Rpb24uZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICBn
X2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUoaW1nLmdldCgpKSk7CisgICAgZ19hc3Nl
cnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0X3JvbGUoaW1nLmdldCgpLCBudWxscHRyKSwg
PT0sIEFUU1BJX1JPTEVfSU1BR0UpOwogfQogCiB2b2lkIGJlZm9yZUFsbCgpCiB7Ci0gICAgLy8g
V2UgaW5zdGFsbCBhIGhhbmRsZXIgdG8gZW5zdXJlIHRoYXQgd2Uga2lsbCB0aGUgY2hpbGQgcHJv
Y2VzcwotICAgIC8vIGlmIHRoZSBwYXJlbnQgZGllcyBiZWNhdXNlIG9mIHdoYXRldmVyIHRoZSBy
ZWFzb24gaXMuCi0gICAgc2lnbmFsKFNJR0FCUlQsIHNpZ0Fib3J0SGFuZGxlcik7CisgICAgYnVz
ID0gbmV3IFdlYktpdFRlc3RCdXMoKTsKKyAgICBpZiAoIWJ1cy0+cnVuKCkpCisgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIFN0YXJ0IHRoZSBhY2Nlc3NpYmlsaXR5IHRlc3Qgc2VydmVyIGFuZCBs
b2FkIHRoZSB0ZXN0cy4KLSAgICBzdGFydFRlc3RTZXJ2ZXIoKTsKLSAgICBXZWJWaWV3VGVzdDo6
YWRkKCJXZWJLaXRBY2Nlc3NpYmlsaXR5IiwgImF0c3BpLWJhc2ljLWhpZXJhcmNoeSIsIHRlc3RB
dHNwaUJhc2ljSGllcmFyY2h5KTsKKyAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6YWRkKCJXZWJLaXRB
Y2Nlc3NpYmlsaXR5IiwgImF0c3BpLWJhc2ljLWhpZXJhcmNoeSIsIHRlc3RBdHNwaUJhc2ljSGll
cmFyY2h5KTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCiB7Ci0gICAgLy8gRW5zdXJlIHdlIHN0b3Ag
dGhlIHNlcnZlci4KLSAgICBzdG9wVGVzdFNlcnZlcigpOworICAgIGRlbGV0ZSBidXM7CiB9Cg==
</data>
<flag name="review"
          id="383577"
          type_id="1"
          status="+"
          setter="jdiggs"
    />
    <flag name="commit-queue"
          id="383653"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>