<?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>44617</bug_id>
          
          <creation_ts>2010-08-25 09:26:38 -0700</creation_ts>
          <short_desc>Web Inspector: explicit callId argument can be removed from the functions signatures declared in Inspector.idl</short_desc>
          <delta_ts>2010-08-26 01:31:33 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>269281</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-25 09:26:38 -0700</bug_when>
    <thetext>as far as each call from inspector front-end to inspector back-end has its own seq property by default we can remove explicit callId arguments from all backend functions.
And now it is possible to call any InspectorBackend function with a callback as additional argument.

as example
InspectorBackend.enableResourceTracking();

or

InspectorBackend.enableResourceTracking(someCallbackFunction);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269442</commentid>
    <comment_count>1</comment_count>
      <attachid>65462</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-25 12:43:37 -0700</bug_when>
    <thetext>Created attachment 65462
[patch] initial version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269473</commentid>
    <comment_count>2</comment_count>
      <attachid>65462</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-25 13:30:27 -0700</bug_when>
    <thetext>Comment on attachment 65462
[patch] initial version.

WebCore/inspector/CodeGeneratorInspector.pm:357
 +      push(@function, &quot;        responseMessage-&gt;setString(\&quot;type\&quot;, \&quot;response\&quot;);&quot;);
Why do we specify type for something that has seq?

WebCore/inspector/CodeGeneratorInspector.pm: 
 +          reportProtocolError(callId, &quot;dispatch&quot;, &quot;Error: Invalid message format. The type of &apos;command&apos; property should be string.&quot;);
I think this is time to write a test that would issue valid and invalid requests against InspectorBackend and test the response.

WebCore/inspector/front-end/CSSStyleModel.js:94
 +          InspectorBackend.setStyleText(styleId, cssText);
Is this case handled properly? A test would be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269771</commentid>
    <comment_count>3</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-08-26 01:31:17 -0700</bug_when>
    <thetext>Committed r66087
	M	WebKit/chromium/ChangeLog
	M	WebKit/chromium/src/js/ProfilerAgent.js
	M	WebCore/ChangeLog
	M	WebCore/inspector/CodeGeneratorInspector.pm
	M	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/front-end/MetricsSidebarPane.js
	M	WebCore/inspector/front-end/ResourcesPanel.js
	M	WebCore/inspector/front-end/ProfileView.js
	M	WebCore/inspector/front-end/ElementsTreeOutline.js
	M	WebCore/inspector/front-end/Settings.js
	M	WebCore/inspector/front-end/ScriptsPanel.js
	M	WebCore/inspector/front-end/DOMAgent.js
	M	WebCore/inspector/front-end/inspector.js
	M	WebCore/inspector/front-end/CSSStyleModel.js
	M	WebCore/inspector/front-end/ElementsPanel.js
	M	WebCore/inspector/front-end/ScriptView.js
	M	WebCore/inspector/front-end/ProfilesPanel.js
	M	WebCore/inspector/front-end/DOMStorage.js
	M	WebCore/inspector/front-end/Database.js
	M	WebCore/inspector/front-end/AuditRules.js
	M	WebCore/inspector/front-end/BreakpointManager.js
	M	WebCore/inspector/front-end/InjectedScriptAccess.js
	M	LayoutTests/http/tests/inspector/inspect-iframe-from-different-domain.html
	M	LayoutTests/inspector/styles-source-offsets.html
	M	LayoutTests/inspector/elements-panel-search.html
	M	LayoutTests/inspector/styles-iframe.html
	M	LayoutTests/inspector/styles-source-lines.html
	M	LayoutTests/ChangeLog
r66087 = dbd6bd336843e7a0ebbf6b16a6682700ebd6f782 (refs/remotes/trunk)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65462</attachid>
            <date>2010-08-25 12:43:37 -0700</date>
            <delta_ts>2010-08-26 01:31:33 -0700</delta_ts>
            <desc>[patch] initial version.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>44681</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNzkzYjIyLi42MGNkYTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDgt
MjUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkluc3BlY3RvcjogYXMgZmFy
IGFzIHdlIGhhdmUgJ3NlcScgcHJvcGVydHkgaW4gdGhlIGVhY2ggaW5zcGVjdG9yIG1lc3NhZ2UK
KyAgICAgICAgaXQgd291bGQgYmUgYmV0dGVyIHRvIHJlbW92ZSBleHBsaWNpdCBjYWxsSWQgYXJn
dW1lbnQgZnJvbSBJbnNwZWN0b3IuaWRsIGZ1bmN0aW9ucworICAgICAgICBkZWNsYXJhdGlvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDYxNwor
CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzLXBhbmVsLXNlYXJjaC5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9zdHlsZXMtaWZyYW1lLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0
eWxlcy1zb3VyY2UtbGluZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdC1p
ZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLmh0bWwKKworCiAyMDEwLTA4LTI1ICBPamFuIFZh
ZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFu
Zy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Qt
aWZyYW1lLWZyb20tZGlmZmVyZW50LWRvbWFpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLmh0bWwKaW5k
ZXggM2Y4ZTYwNy4uMTI4YjQ4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZmZXJlbnQtZG9tYWluLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdC1pZnJhbWUtZnJvbS1kaWZm
ZXJlbnQtZG9tYWluLmh0bWwKQEAgLTkwLDcgKzkwLDcgQEAgZnVuY3Rpb24gZnJvbnRlbmRfZHVt
cElGcmFtZUJhY2tncm91bmQodGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgdGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgiQmFja2dyb3VuZCBwcm9wZXJ0eSBub3QgZm91bmQiKTsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZXMoV2Vi
SW5zcGVjdG9yLkNhbGxiYWNrLndyYXAoY2FsbGJhY2spLCBkb21Ob2RlLmlkLCB0cnVlKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzKGRvbU5vZGUuaWQsIHRydWUsIGNh
bGxiYWNrKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc2VhcmNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZWxlbWVudHMtcGFuZWwtc2VhcmNoLmh0bWwKaW5kZXggMWU4ZmZiZS4uYjY5Yzc0NSAx
MDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXBhbmVsLXNlYXJjaC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zZWFyY2guaHRt
bApAQCAtMzUsMTAgKzM1LDggQEAgZnVuY3Rpb24gZnJvbnRlbmRfcGVyZm9ybVNlYXJjaCh0ZXN0
Q29udHJvbGxlcikKICAgICAgICAgICAgIHZhciBub2RlID0gV2ViSW5zcGVjdG9yLmRvbUFnZW50
Lm5vZGVGb3JJZChub2RlSWRzW2ldKTsKICAgICAgICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09
PSBOb2RlLlRFWFRfTk9ERSkKICAgICAgICAgICAgICAgICBzZWFyY2hSZXN1bHRzLnB1c2gobm9k
ZS5ub2RlVmFsdWUpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgdmFyIGNh
bGxJZCA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKGFkZFNlYXJjaFJlc3VsdCk7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRPdXRlckhUTUwoY2FsbElkLCBub2RlLmlk
KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLmdldE91dGVySFRNTChub2RlLmlkLCBhZGRTZWFyY2hSZXN1bHQpOwogICAg
ICAgICB9CiAgICAgfQogICAgIC8vIFBsYWluIHRleHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy1pZnJhbWUuaHRtbAppbmRleCA4YzlmYmQwLi5mYmFjZjM5IDEwMDc1NQotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9zdHlsZXMtaWZyYW1lLmh0bWwKQEAgLTQ2LDcgKzQ2LDcgQEAgZnVuY3Rpb24gZnJv
bnRlbmRfZHVtcFN0eWxlc0NvbnRpbnVhdGlvbih0ZXN0Q29udHJvbGxlcikKICAgICAgICAgbWFp
blN0eWxlcyA9IHN0eWxlczsKICAgICB9CiAKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxl
cyhXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChtYWluRnJhbWVDYWxsYmFjayksIGJvZHkuaWQs
IGZhbHNlKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlcyhib2R5LmlkLCBmYWxzZSwg
bWFpbkZyYW1lQ2FsbGJhY2spOwogCiAgICAgLy8gMi4gRmluZCBpZnJhbWUgbm9kZQogICAgIHZh
ciBpbm5lck1hcHBpbmcgPSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuX2lkVG9ET01Ob2RlOwpAQCAt
NjcsNyArNjcsNyBAQCBmdW5jdGlvbiBmcm9udGVuZF9kdW1wU3R5bGVzQ29udGludWF0aW9uKHRl
c3RDb250cm9sbGVyKQogICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKFttYWluU3R5
bGVzLCBzdHlsZXNdKTsKICAgICB9CiAKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlcyhX
ZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChpZnJhbWVDYWxsYmFjayksIGlmcmFtZUJvZHkuaWQs
IGZhbHNlKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlcyhpZnJhbWVCb2R5LmlkLCBm
YWxzZSwgaWZyYW1lQ2FsbGJhY2spOwogfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLWxpbmVzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1saW5lcy5odG1sCmluZGV4IDUxNzE1MGEuLmVlMDFmMmMg
MTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLWxpbmVzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2UtbGluZXMuaHRtbApA
QCAtODUsNyArODUsNyBAQCBmdW5jdGlvbiBmcm9udGVuZF9nZXRSYXdTdHlsZXModGVzdENvbnRy
b2xsZXIpCiAgICAgewogICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHN0eWxlcyk7
CiAgICAgfQotICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzKFdlYkluc3BlY3Rvci5DYWxs
YmFjay53cmFwKGNhbGxiYWNrKSwgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LmJvZHku
aWQsIHRydWUpOworICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzKFdlYkluc3BlY3Rvci5k
b21BZ2VudC5kb2N1bWVudC5ib2R5LmlkLCB0cnVlLCBjYWxsYmFjayk7CiB9CiAKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1s
CmluZGV4IDJkNTk5NzIuLjA1MzM2MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKQEAgLTQxLDkgKzQxLDkgQEAgZnVuY3Rpb24gZnJv
bnRlbmRfcnVuVGVzdCh0ZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgICAgICB0ZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJlc3VsdHMpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0
UnVsZVJhbmdlcyhXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChmcm9udGVuZF9ydWxlUmFuZ2Vz
UmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlciwgcGFyZW50U3R5bGVTaGVldElkLCBt
YXRjaGVkQ1NTUnVsZXMpKSwgcGFyZW50U3R5bGVTaGVldElkKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuZ2V0UnVsZVJhbmdlcyhwYXJlbnRTdHlsZVNoZWV0SWQsIGZyb250ZW5kX3J1
bGVSYW5nZXNSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyLCBwYXJlbnRTdHlsZVNo
ZWV0SWQsIG1hdGNoZWRDU1NSdWxlcykpOwogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJh
Y2tlbmQuZ2V0U3R5bGVzKFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKHN0eWxlc0NhbGxiYWNr
LmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKSwgV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3Vt
ZW50LmJvZHkuaWQsIHRydWUpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlcyhX
ZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYm9keS5pZCwgdHJ1ZSwgc3R5bGVzQ2FsbGJh
Y2suYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwogICAgIH0pOwogfQogCkBAIC01Myw3ICs1
Myw3IEBAIGZ1bmN0aW9uIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZlZCh0ZXN0Q29udHJvbGxl
ciwgc3R5bGVTaGVldElkLCBtYXRjaGVkQ1NTUnVsCiAgICAgICAgIHZhciBydWxlID0gbWF0Y2hl
ZENTU1J1bGVzW2ldOwogICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2gocnVsZS5z
ZWxlY3RvclRleHQgKyAiOiBbIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdl
LnN0YXJ0ICsgIi0iICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFuZ2UuZW5kICsg
Il0iKTsKICAgICB9Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNoZWV0KFdlYkluc3Bl
Y3Rvci5DYWxsYmFjay53cmFwKGZyb250ZW5kX2hhbmRsZVN0eWxlU2hlZXQuYmluZChudWxsLCB0
ZXN0Q29udHJvbGxlcikpLCBzdHlsZVNoZWV0SWQpOworICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0
U3R5bGVTaGVldChzdHlsZVNoZWV0SWQsIGZyb250ZW5kX2hhbmRsZVN0eWxlU2hlZXQuYmluZChu
dWxsLCB0ZXN0Q29udHJvbGxlcikpOwogfQogCiBmdW5jdGlvbiBmcm9udGVuZF9oYW5kbGVTdHls
ZVNoZWV0KHRlc3RDb250cm9sbGVyLCBzdHlsZVNoZWV0KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZjY2MmU3Li42MDJlZmZiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY2IEBACisyMDEwLTA4LTI1ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWJJbnNwZWN0b3I6IGFzIGZhciBhcyB3ZSBoYXZlICdzZXEnIHByb3BlcnR5IGluIHRoZSBlYWNo
IGluc3BlY3RvciBtZXNzYWdlCisgICAgICAgIGl0IHdvdWxkIGJlIGJldHRlciB0byByZW1vdmUg
ZXhwbGljaXQgY2FsbElkIGFyZ3VtZW50IGZyb20gSW5zcGVjdG9yLmlkbCBmdW5jdGlvbnMKKyAg
ICAgICAgZGVjbGFyYXRpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDQ2MTcKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxl
cy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZS5kb1J1bik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXVkaXRSdWxlcy5JbWFnZURpbWVuc2lvbnNSdWxlLnByb3RvdHlwZS5kb1J1bi5yZWNlaXZlZElt
YWdlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUuX3Nl
dEJyZWFrcG9pbnRPbkJhY2tlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NT
U3R5bGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3Rv
dHlwZS5nZXRTdHlsZXNBc3luYyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2Rl
bC5wcm90b3R5cGUuZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5zZXRSdWxlU2VsZWN0b3IpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLmFkZFJ1bGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLnRvZ2dsZVN0eWxlRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuc2V0Q1NTVGV4dCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuYXBwbHlTdHls
ZVRleHQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLmdldENoaWxkTm9kZXNBc3luYyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZUFz
eW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUucmVtb3ZlQXR0
cmlidXRlQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZS5z
ZXRUZXh0Tm9kZVZhbHVlQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9u
Q2FjaGUuZ2V0QXBwbGljYXRpb25DYWNoZXNBc3luYyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q29va2llcy5nZXRDb29raWVzQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlz
dGVuZXJzLmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZUFzeW5jKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZS5wcm90b3R5cGUuZ2V0RW50cmllcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZS5wcm90b3R5cGUuc2V0SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFn
ZS5wcm90b3R5cGUucmVtb3ZlSXRlbSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9E
YXRhYmFzZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZS5wcm90b3R5cGUuZ2V0
VGFibGVOYW1lcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2UucHJvdG90eXBlLmV4
ZWN1dGVTcWwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS5zZXREb2N1
bWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5l
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBl
Ll90YWdOYW1lRWRpdGluZ0NvbW1pdHRlZCk6CisgICAgICAgICgpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuanM6CisgICAgICAgIChJbmplY3Rl
ZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIuSW5qZWN0ZWRTY3JpcHRBY2Nlc3MucHJvdG90
eXBlLm1ldGhvZE5hbWUpOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxI
YW5kbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL01ldHJpY3NTaWRlYmFyUGFu
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NZXRyaWNzU2lkZWJhclBhbmUucHJvdG90eXBl
LnVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWV0cmljc1NpZGViYXJQYW5lLnByb3Rv
dHlwZS5lZGl0aW5nQ29tbWl0dGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5nZXRSZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlw
ZS5zZXR1cFNvdXJjZUZyYW1lSWZOZWVkZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuZWRpdFNjcmlwdFNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lKToKKwog
MjAxMC0wOC0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbSBiL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVH
ZW5lcmF0b3JJbnNwZWN0b3IucG0KaW5kZXggYmUwOTQ4Yi4uNzFlZDc5ZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbQorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCkBAIC0zNTEsNyArMzUxLDcgQEAg
c3ViIGdlbmVyYXRlQmFja2VuZEZ1bmN0aW9uCiAgICAgcHVzaChAZnVuY3Rpb24sICIiKTsKIAog
ICAgIHB1c2goQGZ1bmN0aW9uLCAiICAgIC8vIHVzZSBJbnNwZWN0b3JGcm9udGVuZCBhcyBhIG1h
cmtlciBvZiBXZWJJbnNwZWN0b3IgYXZhaWxhYmlsaXR5Iik7Ci0gICAgcHVzaChAZnVuY3Rpb24s
ICIgICAgaWYgKGNhbGxJZCAmJiBtX2luc3BlY3RvckNvbnRyb2xsZXItPmhhc0Zyb250ZW5kKCkp
IHsiKTsKKyAgICBwdXNoKEBmdW5jdGlvbiwgIiAgICBpZiAoKGNhbGxJZCB8fCBwcm90b2NvbEVy
cm9ycy0+bGVuZ3RoKCkpICYmIG1faW5zcGVjdG9yQ29udHJvbGxlci0+aGFzRnJvbnRlbmQoKSkg
eyIpOwogICAgIHB1c2goQGZ1bmN0aW9uLCAiICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiByZXNwb25zZU1lc3NhZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOyIpOwogICAgIHB1
c2goQGZ1bmN0aW9uLCAiICAgICAgICByZXNwb25zZU1lc3NhZ2UtPnNldE51bWJlcihcInNlcVwi
LCBjYWxsSWQpOyIpOwogICAgIHB1c2goQGZ1bmN0aW9uLCAiICAgICAgICByZXNwb25zZU1lc3Nh
Z2UtPnNldFN0cmluZyhcInR5cGVcIiwgXCJyZXNwb25zZVwiKTsiKTsKQEAgLTQzMiwzMCArNDMy
LDMwIEBAICRtYXBFbnRyaWVzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+IGNhbGxJZFZhbHVlID0gbWVzc2FnZU9iamVjdC0+Z2V0KCJzZXEiKTsK
LSAgICBpZiAoIWNhbGxJZFZhbHVlKSB7CisgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBjb21t
YW5kVmFsdWUgPSBtZXNzYWdlT2JqZWN0LT5nZXQoImNvbW1hbmQiKTsKKyAgICBpZiAoIWNvbW1h
bmRWYWx1ZSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmVwb3J0
UHJvdG9jb2xFcnJvcihjYWxsSWQsICJkaXNwYXRjaCIsICJFcnJvcjogSW52YWxpZCBtZXNzYWdl
IGZvcm1hdC4gJ3NlcScgcHJvcGVydHkgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcmVxdWVzdC4iKTsK
KyAgICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcihjYWxsSWQsICJkaXNwYXRjaCIsICJFcnJvcjog
SW52YWxpZCBtZXNzYWdlIGZvcm1hdC4gJ2NvbW1hbmQnIHByb3BlcnR5IHdhc24ndCBmb3VuZC4i
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghY2FsbElkVmFsdWUtPmFzTnVt
YmVyKCZjYWxsSWQpKSB7CisgICAgU3RyaW5nIGNvbW1hbmQ7CisgICAgaWYgKCFjb21tYW5kVmFs
dWUtPmFzU3RyaW5nKCZjb21tYW5kKSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcihjYWxsSWQsICJkaXNwYXRjaCIsICJFcnJvcjog
SW52YWxpZCBtZXNzYWdlIGZvcm1hdC4gdGhlIHR5cGUgb2YgJ3NlcScgcHJvcGVydHkgc2hvdWxk
IGJlIG51bWJlci4iKTsKKyAgICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcihjYWxsSWQsICJkaXNw
YXRjaCIsICJFcnJvcjogSW52YWxpZCBtZXNzYWdlIGZvcm1hdC4gVGhlIHR5cGUgb2YgJ2NvbW1h
bmQnIHByb3BlcnR5IHNob3VsZCBiZSBzdHJpbmcuIik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGNvbW1hbmRWYWx1ZSA9IG1lc3NhZ2VPYmpl
Y3QtPmdldCgiY29tbWFuZCIpOwotICAgIGlmICghY29tbWFuZFZhbHVlKSB7CisgICAgUmVmUHRy
PEluc3BlY3RvclZhbHVlPiBjYWxsSWRWYWx1ZSA9IG1lc3NhZ2VPYmplY3QtPmdldCgic2VxIik7
CisgICAgaWYgKCFjYWxsSWRWYWx1ZSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcihjYWxsSWQsICJkaXNwYXRjaCIsICJFcnJvcjog
SW52YWxpZCBtZXNzYWdlIGZvcm1hdC4gJ2NvbW1hbmQnIHByb3BlcnR5IHdhc24ndCBmb3VuZC4i
KTsKKyAgICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcihjYWxsSWQsIGNvbW1hbmQudXRmOCgpLmRh
dGEoKSwgIkVycm9yOiBJbnZhbGlkIG1lc3NhZ2UgZm9ybWF0LiAnc2VxJyBwcm9wZXJ0eSB3YXMg
bm90IGZvdW5kIGluIHRoZSByZXF1ZXN0LiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgU3RyaW5nIGNvbW1hbmQ7Ci0gICAgaWYgKCFjb21tYW5kVmFsdWUtPmFzU3RyaW5nKCZjb21t
YW5kKSkgeworICAgIGlmICghY2FsbElkVmFsdWUtPmFzTnVtYmVyKCZjYWxsSWQpKSB7CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXBvcnRQcm90b2NvbEVycm9yKGNh
bGxJZCwgImRpc3BhdGNoIiwgIkVycm9yOiBJbnZhbGlkIG1lc3NhZ2UgZm9ybWF0LiBUaGUgdHlw
ZSBvZiAnY29tbWFuZCcgcHJvcGVydHkgc2hvdWxkIGJlIHN0cmluZy4iKTsKKyAgICAgICAgcmVw
b3J0UHJvdG9jb2xFcnJvcihjYWxsSWQsIGNvbW1hbmQudXRmOCgpLmRhdGEoKSwgIkVycm9yOiBJ
bnZhbGlkIG1lc3NhZ2UgZm9ybWF0LiB0aGUgdHlwZSBvZiAnc2VxJyBwcm9wZXJ0eSBzaG91bGQg
YmUgbnVtYmVyLiIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
LmlkbAppbmRleCBhNTZlZjE0Li43ZjM5ZjhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKQEAg
LTEwMiw3ICsxMDIsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIFRoaXMgbWV0aG9kIGlz
IGdvaW5nIHRvIGJlIGJyb2tlbiBkb3duIGludG8gc21hbGxlciBwYXJ0cy4KICAgICAgICAgW2hh
bmRsZXI9Q29udHJvbGxlcl0gdm9pZCBwb3B1bGF0ZVNjcmlwdE9iamVjdHMoKTsKIAotICAgICAg
ICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGdldFNldHRpbmdzKGluIGxvbmcgY2FsbElkLCBv
dXQgT2JqZWN0IHNldHRpbmdzKTsKKyAgICAgICAgW2hhbmRsZXI9Q29udHJvbGxlcl0gdm9pZCBn
ZXRTZXR0aW5ncyhvdXQgT2JqZWN0IHNldHRpbmdzKTsKICAgICAgICAgW2hhbmRsZXI9Q29udHJv
bGxlcl0gdm9pZCBzdG9yZUxhc3RBY3RpdmVQYW5lbChpbiBTdHJpbmcgcGFuZWxOYW1lKTsKIAog
ICAgICAgICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIHNhdmVBcHBsaWNhdGlvblNldHRpbmdz
KGluIFN0cmluZyBzZXR0aW5ncyk7CkBAIC0xMTYsNyArMTE2LDcgQEAgbW9kdWxlIGNvcmUgewog
CiAgICAgICAgIFtoYW5kbGVyPUNvbnRyb2xsZXJdIHZvaWQgZW5hYmxlUmVzb3VyY2VUcmFja2lu
ZyhpbiBib29sZWFuIGFsd2F5cyk7CiAgICAgICAgIFtoYW5kbGVyPUNvbnRyb2xsZXJdIHZvaWQg
ZGlzYWJsZVJlc291cmNlVHJhY2tpbmcoaW4gYm9vbGVhbiBhbHdheXMpOwotICAgICAgICBbaGFu
ZGxlcj1Db250cm9sbGVyXSB2b2lkIGdldFJlc291cmNlQ29udGVudChpbiBsb25nIGNhbGxJZCwg
aW4gdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBvdXQgU3RyaW5nIGNvbnRlbnQpOworICAgICAg
ICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGdldFJlc291cmNlQ29udGVudChpbiB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIG91dCBTdHJpbmcgY29udGVudCk7CiAgICAgICAgIFtoYW5kbGVy
PUNvbnRyb2xsZXJdIHZvaWQgcmVsb2FkUGFnZSgpOwogCiAgICAgICAgIFtoYW5kbGVyPUNvbnRy
b2xsZXJdIHZvaWQgc3RhcnRUaW1lbGluZVByb2ZpbGVyKCk7CkBAIC0xMjYsNyArMTI2LDcgQEAg
bW9kdWxlIGNvcmUgewogICAgICAgICBbaGFuZGxlcj1CYWNrZW5kXSB2b2lkIGVuYWJsZURlYnVn
Z2VyKGluIGJvb2xlYW4gYWx3YXlzKTsKICAgICAgICAgW2hhbmRsZXI9Q29udHJvbGxlcl0gdm9p
ZCBkaXNhYmxlRGVidWdnZXIoaW4gYm9vbGVhbiBhbHdheXMpOwogCi0gICAgICAgIFtoYW5kbGVy
PURlYnVnXSB2b2lkIHNldEJyZWFrcG9pbnQoaW4gbG9uZyBjYWxsSWQsIGluIFN0cmluZyBzb3Vy
Y2VJRCwgaW4gdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGluIGJvb2xlYW4gZW5hYmxlZCwgaW4g
U3RyaW5nIGNvbmRpdGlvbiwgb3V0IGJvb2xlYW4gc3VjY2Vzcywgb3V0IHVuc2lnbmVkIGludCBh
Y3R1YWxMaW5lTnVtYmVyKTsKKyAgICAgICAgW2hhbmRsZXI9RGVidWddIHZvaWQgc2V0QnJlYWtw
b2ludChpbiBTdHJpbmcgc291cmNlSUQsIGluIHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBpbiBi
b29sZWFuIGVuYWJsZWQsIGluIFN0cmluZyBjb25kaXRpb24sIG91dCBib29sZWFuIHN1Y2Nlc3Ms
IG91dCB1bnNpZ25lZCBpbnQgYWN0dWFsTGluZU51bWJlcik7CiAgICAgICAgIFtoYW5kbGVyPURl
YnVnXSB2b2lkIHJlbW92ZUJyZWFrcG9pbnQoaW4gU3RyaW5nIHNvdXJjZUlELCBpbiB1bnNpZ25l
ZCBsb25nIGxpbmVOdW1iZXIpOwogICAgICAgICBbaGFuZGxlcj1EZWJ1Z10gdm9pZCBhY3RpdmF0
ZUJyZWFrcG9pbnRzKCk7CiAgICAgICAgIFtoYW5kbGVyPURlYnVnXSB2b2lkIGRlYWN0aXZhdGVC
cmVha3BvaW50cygpOwpAQCAtMTQwLDggKzE0MCw4IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAg
ICBbaGFuZGxlcj1EZWJ1Z10gdm9pZCBzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKGluIGxvbmcg
cGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSk7CiAKLSAgICAgICAgW2hhbmRsZXI9RGVidWddIHZvaWQg
ZWRpdFNjcmlwdFNvdXJjZShpbiBsb25nIGNhbGxJZCwgaW4gU3RyaW5nIHNvdXJjZUlELCBpbiBT
dHJpbmcgbmV3Q29udGVudCwgb3V0IGJvb2xlYW4gc3VjY2Vzcywgb3V0IFN0cmluZyByZXN1bHQs
IG91dCBWYWx1ZSBuZXdDYWxsRnJhbWVzKTsKLSAgICAgICAgW2hhbmRsZXI9RGVidWddIHZvaWQg
Z2V0U2NyaXB0U291cmNlKGluIGxvbmcgY2FsbElkLCBpbiBTdHJpbmcgc291cmNlSUQsIG91dCBT
dHJpbmcgc2NyaXB0U291cmNlKTsKKyAgICAgICAgW2hhbmRsZXI9RGVidWddIHZvaWQgZWRpdFNj
cmlwdFNvdXJjZShpbiBTdHJpbmcgc291cmNlSUQsIGluIFN0cmluZyBuZXdDb250ZW50LCBvdXQg
Ym9vbGVhbiBzdWNjZXNzLCBvdXQgU3RyaW5nIHJlc3VsdCwgb3V0IFZhbHVlIG5ld0NhbGxGcmFt
ZXMpOworICAgICAgICBbaGFuZGxlcj1EZWJ1Z10gdm9pZCBnZXRTY3JpcHRTb3VyY2UoaW4gU3Ry
aW5nIHNvdXJjZUlELCBvdXQgU3RyaW5nIHNjcmlwdFNvdXJjZSk7CiAKICAgICAgICAgW2hhbmRs
ZXI9Q29udHJvbGxlcl0gdm9pZCBlbmFibGVQcm9maWxlcihpbiBib29sZWFuIGFsd2F5cyk7CiAg
ICAgICAgIFtoYW5kbGVyPUNvbnRyb2xsZXJdIHZvaWQgZGlzYWJsZVByb2ZpbGVyKGluIGJvb2xl
YW4gYWx3YXlzKTsKQEAgLTE0OSwzNCArMTQ5LDM0IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAg
W2hhbmRsZXI9UHJvZmlsZXJdIHZvaWQgc3RhcnRQcm9maWxpbmcoKTsKICAgICAgICAgW2hhbmRs
ZXI9UHJvZmlsZXJdIHZvaWQgc3RvcFByb2ZpbGluZygpOwogCi0gICAgICAgIFtoYW5kbGVyPVBy
b2ZpbGVyXSB2b2lkIGdldFByb2ZpbGVIZWFkZXJzKGluIGxvbmcgY2FsbElkLCBvdXQgQXJyYXkg
aGVhZGVycyk7Ci0gICAgICAgIFtoYW5kbGVyPVByb2ZpbGVyXSB2b2lkIGdldFByb2ZpbGUoaW4g
bG9uZyBjYWxsSWQsIGluIHVuc2lnbmVkIGxvbmcgdWlkLCBvdXQgT2JqZWN0IHByb2ZpbGUpOwor
ICAgICAgICBbaGFuZGxlcj1Qcm9maWxlcl0gdm9pZCBnZXRQcm9maWxlSGVhZGVycyhvdXQgQXJy
YXkgaGVhZGVycyk7CisgICAgICAgIFtoYW5kbGVyPVByb2ZpbGVyXSB2b2lkIGdldFByb2ZpbGUo
aW4gdW5zaWduZWQgbG9uZyB1aWQsIG91dCBPYmplY3QgcHJvZmlsZSk7CiAKICAgICAgICAgW2hh
bmRsZXI9UHJvZmlsZXJdIHZvaWQgcmVtb3ZlUHJvZmlsZShpbiB1bnNpZ25lZCBsb25nIHVpZCk7
CiAgICAgICAgIFtoYW5kbGVyPVByb2ZpbGVyXSB2b2lkIGNsZWFyUHJvZmlsZXMoKTsKIAogICAg
ICAgICBbaGFuZGxlcj1CYWNrZW5kXSB2b2lkIHRha2VIZWFwU25hcHNob3QoKTsKLSAgICAgICAg
W2hhbmRsZXI9QmFja2VuZF0gdm9pZCBnZXRQcm9maWxlckxvZ0xpbmVzKGluIGxvbmcgY2FsbElk
LCBpbiBsb25nIGluUG9zaXRpb24sIG91dCBsb25nIG91dFBvc2l0aW9uLCBvdXQgU3RyaW5nIGxv
Zyk7CisgICAgICAgIFtoYW5kbGVyPUJhY2tlbmRdIHZvaWQgZ2V0UHJvZmlsZXJMb2dMaW5lcyhp
biBsb25nIGluUG9zaXRpb24sIG91dCBsb25nIG91dFBvc2l0aW9uLCBvdXQgU3RyaW5nIGxvZyk7
CiAjZW5kaWYKICAgICAgICAgW2hhbmRsZXI9QmFja2VuZF0gdm9pZCBzZXRJbmplY3RlZFNjcmlw
dFNvdXJjZShpbiBTdHJpbmcgc2NyaXB0U291cmNlKTsKLSAgICAgICAgW2hhbmRsZXI9QmFja2Vu
ZF0gdm9pZCBkaXNwYXRjaE9uSW5qZWN0ZWRTY3JpcHQoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcg
aW5qZWN0ZWRTY3JpcHRJZCwgaW4gU3RyaW5nIG1ldGhvZE5hbWUsIGluIFN0cmluZyBhcmd1bWVu
dHMsIG91dCBWYWx1ZSByZXN1bHQsIG91dCBib29sZWFuIGlzRXhjZXB0aW9uKTsKKyAgICAgICAg
W2hhbmRsZXI9QmFja2VuZF0gdm9pZCBkaXNwYXRjaE9uSW5qZWN0ZWRTY3JpcHQoaW4gbG9uZyBp
bmplY3RlZFNjcmlwdElkLCBpbiBTdHJpbmcgbWV0aG9kTmFtZSwgaW4gU3RyaW5nIGFyZ3VtZW50
cywgb3V0IFZhbHVlIHJlc3VsdCwgb3V0IGJvb2xlYW4gaXNFeGNlcHRpb24pOwogICAgICAgICBb
aGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoaW4gU3Ry
aW5nIHNjcmlwdFNvdXJjZSk7CiAgICAgICAgIFtoYW5kbGVyPUNvbnRyb2xsZXJdIHZvaWQgcmVt
b3ZlQWxsU2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQoKTsKIAotICAgICAgICBbaGFuZGxlcj1ET01d
IHZvaWQgZ2V0Q2hpbGROb2RlcyhpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQpOwotICAg
ICAgICBbaGFuZGxlcj1ET01dIHZvaWQgc2V0QXR0cmlidXRlKGluIGxvbmcgY2FsbElkLCBpbiBs
b25nIGVsZW1lbnRJZCwgaW4gU3RyaW5nIG5hbWUsIGluIFN0cmluZyB2YWx1ZSwgb3V0IGJvb2xl
YW4gc3VjY2Vzcyk7Ci0gICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCByZW1vdmVBdHRyaWJ1dGUo
aW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgZWxlbWVudElkLCBpbiBTdHJpbmcgbmFtZSwgb3V0IGJv
b2xlYW4gc3VjY2Vzcyk7Ci0gICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBzZXRUZXh0Tm9kZVZh
bHVlKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCwgaW4gU3RyaW5nIHZhbHVlLCBvdXQg
Ym9vbGVhbiBzdWNjZXNzKTsKLSAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldEV2ZW50TGlz
dGVuZXJzRm9yTm9kZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIG91dCBsb25nIG91
dE5vZGVJZCwgb3V0IEFycmF5IGxpc3RlbmVyc0FycmF5KTsKKyAgICAgICAgW2hhbmRsZXI9RE9N
XSB2b2lkIGdldENoaWxkTm9kZXMoaW4gbG9uZyBub2RlSWQpOworICAgICAgICBbaGFuZGxlcj1E
T01dIHZvaWQgc2V0QXR0cmlidXRlKGluIGxvbmcgZWxlbWVudElkLCBpbiBTdHJpbmcgbmFtZSwg
aW4gU3RyaW5nIHZhbHVlLCBvdXQgYm9vbGVhbiBzdWNjZXNzKTsKKyAgICAgICAgW2hhbmRsZXI9
RE9NXSB2b2lkIHJlbW92ZUF0dHJpYnV0ZShpbiBsb25nIGVsZW1lbnRJZCwgaW4gU3RyaW5nIG5h
bWUsIG91dCBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgc2V0
VGV4dE5vZGVWYWx1ZShpbiBsb25nIG5vZGVJZCwgaW4gU3RyaW5nIHZhbHVlLCBvdXQgYm9vbGVh
biBzdWNjZXNzKTsKKyAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldEV2ZW50TGlzdGVuZXJz
Rm9yTm9kZShpbiBsb25nIG5vZGVJZCwgb3V0IGxvbmcgb3V0Tm9kZUlkLCBvdXQgQXJyYXkgbGlz
dGVuZXJzQXJyYXkpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgY29weU5vZGUoaW4gbG9u
ZyBub2RlSWQpOwotICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgcmVtb3ZlTm9kZShpbiBsb25n
IGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIG91dCBsb25nIG91dE5vZGVJZCk7Ci0gICAgICAgIFto
YW5kbGVyPURPTV0gdm9pZCBjaGFuZ2VUYWdOYW1lKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5v
ZGVJZCwgaW4gU3RyaW5nIG5ld1RhZ05hbWUsIG91dCBsb25nIG91dE5vZGVJZCk7Ci0gICAgICAg
IFtoYW5kbGVyPURPTV0gdm9pZCBnZXRPdXRlckhUTUwoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcg
bm9kZUlkLCBvdXQgU3RyaW5nIG91dGVySFRNTCk7Ci0gICAgICAgIFtoYW5kbGVyPURPTV0gdm9p
ZCBzZXRPdXRlckhUTUwoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBpbiBTdHJpbmcg
b3V0ZXJIVE1MLCBvdXQgbG9uZyBvdXROb2RlSWQpOworICAgICAgICBbaGFuZGxlcj1ET01dIHZv
aWQgcmVtb3ZlTm9kZShpbiBsb25nIG5vZGVJZCwgb3V0IGxvbmcgb3V0Tm9kZUlkKTsKKyAgICAg
ICAgW2hhbmRsZXI9RE9NXSB2b2lkIGNoYW5nZVRhZ05hbWUoaW4gbG9uZyBub2RlSWQsIGluIFN0
cmluZyBuZXdUYWdOYW1lLCBvdXQgbG9uZyBvdXROb2RlSWQpOworICAgICAgICBbaGFuZGxlcj1E
T01dIHZvaWQgZ2V0T3V0ZXJIVE1MKGluIGxvbmcgbm9kZUlkLCBvdXQgU3RyaW5nIG91dGVySFRN
TCk7CisgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBzZXRPdXRlckhUTUwoaW4gbG9uZyBub2Rl
SWQsIGluIFN0cmluZyBvdXRlckhUTUwsIG91dCBsb25nIG91dE5vZGVJZCk7CiAgICAgICAgIFto
YW5kbGVyPURPTV0gdm9pZCBhZGRJbnNwZWN0ZWROb2RlKGluIGxvbmcgbm9kZUlkKTsKICAgICAg
ICAgW2hhbmRsZXI9RE9NXSB2b2lkIHBlcmZvcm1TZWFyY2goaW4gU3RyaW5nIHF1ZXJ5LCBpbiBi
b29sZWFuIHJ1blN5bmNocm9ub3VzbHkpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgc2Vh
cmNoQ2FuY2VsZWQoKTsKLSAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIHB1c2hOb2RlQnlQYXRo
VG9Gcm9udGVuZChpbiBsb25nIGNhbGxJZCwgaW4gU3RyaW5nIHBhdGgsIG91dCBsb25nIG5vZGVJ
ZCk7CisgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQo
aW4gU3RyaW5nIHBhdGgsIG91dCBsb25nIG5vZGVJZCk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0g
dm9pZCBzZXRET01CcmVha3BvaW50KGluIGxvbmcgbm9kZUlkLCBpbiBsb25nIHR5cGUpOwogICAg
ICAgICBbaGFuZGxlcj1ET01dIHZvaWQgcmVtb3ZlRE9NQnJlYWtwb2ludChpbiBsb25nIG5vZGVJ
ZCwgaW4gbG9uZyB0eXBlKTsKIApAQCAtMTg1LDQxICsxODUsNDEgQEAgbW9kdWxlIGNvcmUgewog
ICAgICAgICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGhpZGVET01Ob2RlSGlnaGxpZ2h0KCk7
CiAgICAgICAgIFtoYW5kbGVyPUNvbnRyb2xsZXJdIHZvaWQgb3BlbkluSW5zcGVjdGVkV2luZG93
KGluIFN0cmluZyB1cmwpOwogCi0gICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRTdHlsZXMo
aW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgbm9kZUlkLCBpbiBib29sZWFuIGF1dGhPbmx5LCBvdXQg
VmFsdWUgc3R5bGVzKTsKLSAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldEFsbFN0eWxlcyhp
biBsb25nIGNhbGxJZCwgb3V0IEFycmF5IHN0eWxlcyk7Ci0gICAgICAgIFtoYW5kbGVyPURPTV0g
dm9pZCBnZXRJbmxpbmVTdHlsZShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBub2RlSWQsIG91dCBW
YWx1ZSBzdHlsZSk7Ci0gICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRDb21wdXRlZFN0eWxl
KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIG5vZGVJZCwgb3V0IFZhbHVlIHN0eWxlKTsKLSAgICAg
ICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBjYWxsSWQsIGluIGxv
bmcgc3R5bGVTaGVldElkLCBvdXQgT2JqZWN0IHN0eWxlU2hlZXQpOwotICAgICAgICBbaGFuZGxl
cj1ET01dIHZvaWQgZ2V0UnVsZVJhbmdlcyhpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZVNo
ZWV0SWQsIG91dCBWYWx1ZSByYW5nZXMpOwotICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgYXBw
bHlTdHlsZVRleHQoaW4gbG9uZyBjYWxsSWQsIGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHN0
eWxlVGV4dCwgaW4gU3RyaW5nIHByb3BlcnR5TmFtZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcywgb3V0
IFZhbHVlIHN0eWxlLCBvdXQgQXJyYXkgY2hhbmdlZFByb3BlcnRpZXMpOwotICAgICAgICBbaGFu
ZGxlcj1ET01dIHZvaWQgc2V0U3R5bGVUZXh0KGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHN0eWxl
SWQsIGluIFN0cmluZyBzdHlsZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwotICAgICAgICBb
aGFuZGxlcj1ET01dIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShpbiBsb25nIGNhbGxJZCwgaW4gbG9u
ZyBzdHlsZUlkLCBpbiBTdHJpbmcgbmFtZSwgaW4gU3RyaW5nIHZhbHVlLCBvdXQgYm9vbGVhbiBz
dWNjZXNzKTsKLSAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIHRvZ2dsZVN0eWxlRW5hYmxlZChp
biBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBp
biBib29sZWFuIGRpc2FibGVkLCBvdXQgVmFsdWUgc3R5bGUpOwotICAgICAgICBbaGFuZGxlcj1E
T01dIHZvaWQgc2V0UnVsZVNlbGVjdG9yKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIHJ1bGVJZCwg
aW4gU3RyaW5nIHNlbGVjdG9yLCBpbiBsb25nIHNlbGVjdGVkTm9kZUlkLCBvdXQgVmFsdWUgcnVs
ZSwgb3V0IGJvb2xlYW4gc2VsZWN0b3JBZmZlY3RzTm9kZSk7Ci0gICAgICAgIFtoYW5kbGVyPURP
TV0gdm9pZCBhZGRSdWxlKGluIGxvbmcgY2FsbElkLCBpbiBTdHJpbmcgc2VsZWN0b3IsIGluIGxv
bmcgc2VsZWN0ZWROb2RlSWQsIG91dCBWYWx1ZSBydWxlLCBvdXQgYm9vbGVhbiBzZWxlY3RvckFm
ZmVjdHNOb2RlKTsKLSAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldFN1cHBvcnRlZENTU1By
b3BlcnRpZXMoaW4gbG9uZyBjYWxsSWQsIG91dCBBcnJheSBjc3NQcm9wZXJ0aWVzKTsKLQotICAg
ICAgICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGdldENvb2tpZXMoaW4gbG9uZyBjYWxsSWQs
IG91dCBBcnJheSBjb29raWVzLCBvdXQgU3RyaW5nIGNvb2tpZXNTdHJpbmcpOworICAgICAgICBb
aGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5bGVzKGluIGxvbmcgbm9kZUlkLCBpbiBib29sZWFuIGF1
dGhPbmx5LCBvdXQgVmFsdWUgc3R5bGVzKTsKKyAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdl
dEFsbFN0eWxlcyhvdXQgQXJyYXkgc3R5bGVzKTsKKyAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lk
IGdldElubGluZVN0eWxlKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGUpOworICAgICAg
ICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZShpbiBsb25nIG5vZGVJZCwgb3V0
IFZhbHVlIHN0eWxlKTsKKyAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldFN0eWxlU2hlZXQo
aW4gbG9uZyBzdHlsZVNoZWV0SWQsIG91dCBPYmplY3Qgc3R5bGVTaGVldCk7CisgICAgICAgIFto
YW5kbGVyPURPTV0gdm9pZCBnZXRSdWxlUmFuZ2VzKGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQg
VmFsdWUgcmFuZ2VzKTsKKyAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGFwcGx5U3R5bGVUZXh0
KGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHN0eWxlVGV4dCwgaW4gU3RyaW5nIHByb3BlcnR5
TmFtZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcywgb3V0IFZhbHVlIHN0eWxlLCBvdXQgQXJyYXkgY2hh
bmdlZFByb3BlcnRpZXMpOworICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgc2V0U3R5bGVUZXh0
KGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHN0eWxlVGV4dCwgb3V0IGJvb2xlYW4gc3VjY2Vz
cyk7CisgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBzZXRTdHlsZVByb3BlcnR5KGluIGxvbmcg
c3R5bGVJZCwgaW4gU3RyaW5nIG5hbWUsIGluIFN0cmluZyB2YWx1ZSwgb3V0IGJvb2xlYW4gc3Vj
Y2Vzcyk7CisgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCB0b2dnbGVTdHlsZUVuYWJsZWQoaW4g
bG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBpbiBib29sZWFuIGRpc2FibGVk
LCBvdXQgVmFsdWUgc3R5bGUpOworICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgc2V0UnVsZVNl
bGVjdG9yKGluIGxvbmcgcnVsZUlkLCBpbiBTdHJpbmcgc2VsZWN0b3IsIGluIGxvbmcgc2VsZWN0
ZWROb2RlSWQsIG91dCBWYWx1ZSBydWxlLCBvdXQgYm9vbGVhbiBzZWxlY3RvckFmZmVjdHNOb2Rl
KTsKKyAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGFkZFJ1bGUoaW4gU3RyaW5nIHNlbGVjdG9y
LCBpbiBsb25nIHNlbGVjdGVkTm9kZUlkLCBvdXQgVmFsdWUgcnVsZSwgb3V0IGJvb2xlYW4gc2Vs
ZWN0b3JBZmZlY3RzTm9kZSk7CisgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRTdXBwb3J0
ZWRDU1NQcm9wZXJ0aWVzKG91dCBBcnJheSBjc3NQcm9wZXJ0aWVzKTsKKworICAgICAgICBbaGFu
ZGxlcj1Db250cm9sbGVyXSB2b2lkIGdldENvb2tpZXMob3V0IEFycmF5IGNvb2tpZXMsIG91dCBT
dHJpbmcgY29va2llc1N0cmluZyk7CiAgICAgICAgIFtoYW5kbGVyPUNvbnRyb2xsZXJdIHZvaWQg
ZGVsZXRlQ29va2llKGluIFN0cmluZyBjb29raWVOYW1lLCBpbiBTdHJpbmcgZG9tYWluKTsKIAog
I2lmIGRlZmluZWQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJiYgRU5BQkxFX09G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUwotICAgICAgICBbaGFuZGxlcj1BcHBsaWNhdGlvbkNhY2hl
XSB2b2lkIGdldEFwcGxpY2F0aW9uQ2FjaGVzKGluIGxvbmcgY2FsbElkLCBvdXQgVmFsdWUgYXBw
bGljYXRpb25DYWNoZXMpOworICAgICAgICBbaGFuZGxlcj1BcHBsaWNhdGlvbkNhY2hlXSB2b2lk
IGdldEFwcGxpY2F0aW9uQ2FjaGVzKG91dCBWYWx1ZSBhcHBsaWNhdGlvbkNhY2hlcyk7CiAjZW5k
aWYKIAogICAgICAgICBbaGFuZGxlcj1CYWNrZW5kXSB2b2lkIHJlbGVhc2VXcmFwcGVyT2JqZWN0
R3JvdXAoaW4gbG9uZyBpbmplY3RlZFNjcmlwdElkLCBpbiBTdHJpbmcgb2JqZWN0R3JvdXApOwog
ICAgICAgICBbaGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGRpZEV2YWx1YXRlRm9yVGVzdEluRnJv
bnRlbmQoaW4gbG9uZyB0ZXN0Q2FsbElkLCBpbiBTdHJpbmcganNvblJlc3VsdCk7CiAKICNpZiBk
ZWZpbmVkKEVOQUJMRV9EQVRBQkFTRSkgJiYgRU5BQkxFX0RBVEFCQVNFCi0gICAgICAgIFtoYW5k
bGVyPUJhY2tlbmRdIHZvaWQgZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKGluIGxvbmcgY2FsbElkLCBp
biBsb25nIGRhdGFiYXNlSWQsIG91dCBBcnJheSB0YWJsZU5hbWVzKTsKLSAgICAgICAgW2hhbmRs
ZXI9QmFja2VuZF0gdm9pZCBleGVjdXRlU1FMKGluIGxvbmcgY2FsbElkLCBpbiBsb25nIGRhdGFi
YXNlSWQsIGluIFN0cmluZyBxdWVyeSwgb3V0IGJvb2xlYW4gc3VjY2Vzcywgb3V0IGxvbmcgdHJh
bnNhY3Rpb25JZCk7CisgICAgICAgIFtoYW5kbGVyPUJhY2tlbmRdIHZvaWQgZ2V0RGF0YWJhc2VU
YWJsZU5hbWVzKGluIGxvbmcgZGF0YWJhc2VJZCwgb3V0IEFycmF5IHRhYmxlTmFtZXMpOworICAg
ICAgICBbaGFuZGxlcj1CYWNrZW5kXSB2b2lkIGV4ZWN1dGVTUUwoaW4gbG9uZyBkYXRhYmFzZUlk
LCBpbiBTdHJpbmcgcXVlcnksIG91dCBib29sZWFuIHN1Y2Nlc3MsIG91dCBsb25nIHRyYW5zYWN0
aW9uSWQpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIHNxbFRyYW5zYWN0aW9uU3VjY2VlZGVkKG91
dCBsb25nIHRyYW5zYWN0aW9uSWQsIG91dCBWYWx1ZSBjb2x1bW5OYW1lcywgb3V0IFZhbHVlIHZh
bHVlcyk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgc3FsVHJhbnNhY3Rpb25GYWlsZWQob3V0IGxv
bmcgdHJhbnNhY3Rpb25JZCwgb3V0IFZhbHVlIHNxbEVycm9yKTsKICNlbmRpZgogCiAjaWYgZGVm
aW5lZChFTkFCTEVfRE9NX1NUT1JBR0UpICYmIEVOQUJMRV9ET01fU1RPUkFHRQotICAgICAgICBb
aGFuZGxlcj1Db250cm9sbGVyXSB2b2lkIGdldERPTVN0b3JhZ2VFbnRyaWVzKGluIGxvbmcgY2Fs
bElkLCBpbiBsb25nIHN0b3JhZ2VJZCwgb3V0IEFycmF5IGVudHJpZXMpOwotICAgICAgICBbaGFu
ZGxlcj1Db250cm9sbGVyXSB2b2lkIHNldERPTVN0b3JhZ2VJdGVtKGluIGxvbmcgY2FsbElkLCBp
biBsb25nIHN0b3JhZ2VJZCwgaW4gU3RyaW5nIGtleSwgaW4gU3RyaW5nIHZhbHVlLCBvdXQgYm9v
bGVhbiBzdWNjZXNzKTsKLSAgICAgICAgW2hhbmRsZXI9Q29udHJvbGxlcl0gdm9pZCByZW1vdmVE
T01TdG9yYWdlSXRlbShpbiBsb25nIGNhbGxJZCwgaW4gbG9uZyBzdG9yYWdlSWQsIGluIFN0cmlu
ZyBrZXksIG91dCBib29sZWFuIHN1Y2Nlc3MpOworICAgICAgICBbaGFuZGxlcj1Db250cm9sbGVy
XSB2b2lkIGdldERPTVN0b3JhZ2VFbnRyaWVzKGluIGxvbmcgc3RvcmFnZUlkLCBvdXQgQXJyYXkg
ZW50cmllcyk7CisgICAgICAgIFtoYW5kbGVyPUNvbnRyb2xsZXJdIHZvaWQgc2V0RE9NU3RvcmFn
ZUl0ZW0oaW4gbG9uZyBzdG9yYWdlSWQsIGluIFN0cmluZyBrZXksIGluIFN0cmluZyB2YWx1ZSwg
b3V0IGJvb2xlYW4gc3VjY2Vzcyk7CisgICAgICAgIFtoYW5kbGVyPUNvbnRyb2xsZXJdIHZvaWQg
cmVtb3ZlRE9NU3RvcmFnZUl0ZW0oaW4gbG9uZyBzdG9yYWdlSWQsIGluIFN0cmluZyBrZXksIG91
dCBib29sZWFuIHN1Y2Nlc3MpOwogI2VuZGlmCiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKaW5kZXggZTI4YTM2NC4uYTcyZGU1NiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKQEAgLTM3MSw3ICszNzEsNyBAQCBX
ZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHJldHVybiByb3V0aW5lUmVzdWx0OwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVj
dG9yQmFja2VuZC5nZXRBbGxTdHlsZXMoV2ViSW5zcGVjdG9yLkNhbGxiYWNrLndyYXAoZXZhbENh
bGxiYWNrKSk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0QWxsU3R5bGVzKGV2YWxDYWxs
YmFjayk7CiAgICAgfQogfQogCkBAIC02OTMsNyArNjkzLDcgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0
UnVsZXMuSW1hZ2VEaW1lbnNpb25zUnVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKG51bGwpOwogICAgICAgICAgICAgdmFyIGNvbnRleHQgPSB7aW1hZ2Vz
TGVmdDogaW1hZ2VJZHMubGVuZ3RoLCB1cmxUb05vRGltZW5zaW9uQ291bnQ6IHt9fTsKICAgICAg
ICAgICAgIGZvciAodmFyIGkgPSBpbWFnZUlkcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlcyhXZWJJbnNwZWN0b3IuQ2Fs
bGJhY2sud3JhcChpbWFnZVN0eWxlc1JlYWR5LmJpbmQodGhpcywgaW1hZ2VJZHNbaV0sIGNvbnRl
eHQpKSwgaW1hZ2VJZHNbaV0sIHRydWUpOworICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tl
bmQuZ2V0U3R5bGVzKGltYWdlSWRzW2ldLCB0cnVlLCBpbWFnZVN0eWxlc1JlYWR5LmJpbmQodGhp
cywgaW1hZ2VJZHNbaV0sIGNvbnRleHQpKTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9u
IHB1c2hJbWFnZU5vZGVzKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9CcmVha3BvaW50TWFuYWdlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVh
a3BvaW50TWFuYWdlci5qcwppbmRleCA4MjRiYzMxLi44NTE4NjE4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCkBAIC0xMjMsOCArMTIz
LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICAgICAgdGhpcy5fc2V0QnJlYWtwb2ludChicmVha3BvaW50LnNvdXJjZUlELCBi
cmVha3BvaW50LnVybCwgbGluZSwgYnJlYWtwb2ludC5lbmFibGVkLCBicmVha3BvaW50LmNvbmRp
dGlvbik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgdmFyIGNhbGxiYWNrSWQg
PSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcykp
OwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldEJyZWFrcG9pbnQoY2FsbGJhY2tJZCwgYnJl
YWtwb2ludC5zb3VyY2VJRCwgYnJlYWtwb2ludC5saW5lLCBicmVha3BvaW50LmVuYWJsZWQsIGJy
ZWFrcG9pbnQuY29uZGl0aW9uKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRCcmVha3Bv
aW50KGJyZWFrcG9pbnQuc291cmNlSUQsIGJyZWFrcG9pbnQubGluZSwgYnJlYWtwb2ludC5lbmFi
bGVkLCBicmVha3BvaW50LmNvbmRpdGlvbiwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NT
dHlsZU1vZGVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwu
anMKaW5kZXggNjZhMjBjZS4uYmRhNDA2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTM1LDEyICszNSwxMiBAQCBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVNb2RlbCA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3Rv
dHlwZSA9IHsKICAgICBnZXRTdHlsZXNBc3luYzogZnVuY3Rpb24obm9kZUlkLCBhdXRoT25seSwg
dXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZXMo
V2ViSW5zcGVjdG9yLkNhbGxiYWNrLndyYXAodXNlckNhbGxiYWNrKSwgbm9kZUlkLCBhdXRoT25s
eSk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzKG5vZGVJZCwgYXV0aE9ubHks
IHVzZXJDYWxsYmFjayk7CiAgICAgfSwKIAogICAgIGdldENvbXB1dGVkU3R5bGVBc3luYzogZnVu
Y3Rpb24obm9kZUlkLCB1c2VyQ2FsbGJhY2spCiAgICAgewotICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLmdldENvbXB1dGVkU3R5bGUoV2ViSW5zcGVjdG9yLkNhbGxiYWNrLndyYXAodXNlckNhbGxi
YWNrKSwgbm9kZUlkKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRDb21wdXRlZFN0eWxl
KG5vZGVJZCwgdXNlckNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgc2V0UnVsZVNlbGVjdG9yOiBm
dW5jdGlvbihydWxlSWQsIG5ld0NvbnRlbnQsIG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBmYWls
dXJlQ2FsbGJhY2spCkBAIC01Myw3ICs1Myw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2soV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucGFyc2VSdWxlKG5ld1J1bGVQYXlsb2FkKSwgZG9lc0Fm
ZmVjdFNlbGVjdGVkTm9kZSk7CiAgICAgICAgIH0KIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LnNldFJ1bGVTZWxlY3RvcihXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChjYWxsYmFjayksIHJ1
bGVJZCwgbmV3Q29udGVudCwgbm9kZUlkKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRS
dWxlU2VsZWN0b3IocnVsZUlkLCBuZXdDb250ZW50LCBub2RlSWQsIGNhbGxiYWNrKTsKICAgICB9
LAogCiAgICAgYWRkUnVsZTogZnVuY3Rpb24obm9kZUlkLCBuZXdDb250ZW50LCBzdWNjZXNzQ2Fs
bGJhY2ssIGZhaWx1cmVDYWxsYmFjaykKQEAgLTcwLDcgKzcwLDcgQEAgV2ViSW5zcGVjdG9yLkNT
U1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5hZGRSdWxlKFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFw
KGNhbGxiYWNrKSwgbmV3Q29udGVudCwgbm9kZUlkKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5hZGRSdWxlKG5ld0NvbnRlbnQsIG5vZGVJZCwgY2FsbGJhY2spOwogICAgIH0sCiAKICAgICB0
b2dnbGVTdHlsZUVuYWJsZWQ6IGZ1bmN0aW9uKHN0eWxlSWQsIHByb3BlcnR5TmFtZSwgZGlzYWJs
ZWQsIHVzZXJDYWxsYmFjaykKQEAgLTg2LDEyICs4NiwxMiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobmV3U3R5bGUp
OwogICAgICAgICB9CiAKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC50b2dnbGVTdHlsZUVuYWJs
ZWQoV2ViSW5zcGVjdG9yLkNhbGxiYWNrLndyYXAoY2FsbGJhY2spLCBzdHlsZUlkLCBwcm9wZXJ0
eU5hbWUsIGRpc2FibGVkKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC50b2dnbGVTdHlsZUVu
YWJsZWQoc3R5bGVJZCwgcHJvcGVydHlOYW1lLCBkaXNhYmxlZCwgY2FsbGJhY2spOwogICAgIH0s
CiAKICAgICBzZXRDU1NUZXh0OiBmdW5jdGlvbihzdHlsZUlkLCBjc3NUZXh0KQogICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRTdHlsZVRleHQoV2ViSW5zcGVjdG9yLkNhbGxiYWNr
LndyYXAobnVsbCksIHN0eWxlSWQsIGNzc1RleHQpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LnNldFN0eWxlVGV4dChzdHlsZUlkLCBjc3NUZXh0KTsKICAgICB9LAogCiAgICAgYXBwbHlTdHls
ZVRleHQ6IGZ1bmN0aW9uKHN0eWxlSWQsIHN0eWxlVGV4dCwgcHJvcGVydHlOYW1lLCBzdWNjZXNz
Q2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjaykKQEAgLTEwNiw2ICsxMDYsNiBAQCBXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmFwcGx5U3R5bGVUZXh0KFdlYkluc3BlY3Rvci5D
YWxsYmFjay53cmFwKGNhbGxiYWNrKSwgc3R5bGVJZCwgc3R5bGVUZXh0LCBwcm9wZXJ0eU5hbWUp
OworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmFwcGx5U3R5bGVUZXh0KHN0eWxlSWQsIHN0eWxl
VGV4dCwgcHJvcGVydHlOYW1lLCBjYWxsYmFjayk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDBkNzlkNTEuLmJkNTIyMzUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKQEAgLTMwNiwyNiArMzA2LDI1IEBAIFdlYklu
c3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZ1bmN0aW9uIG15Y2FsbGJh
Y2soKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhwYXJlbnQuY2hpbGRyZW4pOwogICAgICAgICB9
Ci0gICAgICAgIHZhciBjYWxsSWQgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChteWNhbGxi
YWNrKTsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRDaGlsZE5vZGVzKGNhbGxJZCwgcGFy
ZW50LmlkKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRDaGlsZE5vZGVzKHBhcmVudC5p
ZCwgbXljYWxsYmFjayk7CiAgICAgfSwKIAogICAgIHNldEF0dHJpYnV0ZUFzeW5jOiBmdW5jdGlv
bihub2RlLCBuYW1lLCB2YWx1ZSwgY2FsbGJhY2spCiAgICAgewogICAgICAgICB2YXIgbXljYWxs
YmFjayA9IHRoaXMuX2RpZEFwcGx5RG9tQ2hhbmdlLmJpbmQodGhpcywgbm9kZSwgY2FsbGJhY2sp
OwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldEF0dHJpYnV0ZShXZWJJbnNwZWN0b3IuQ2Fs
bGJhY2sud3JhcChteWNhbGxiYWNrKSwgbm9kZS5pZCwgbmFtZSwgdmFsdWUpOworICAgICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnNldEF0dHJpYnV0ZShub2RlLmlkLCBuYW1lLCB2YWx1ZSwgbXljYWxs
YmFjayk7CiAgICAgfSwKIAogICAgIHJlbW92ZUF0dHJpYnV0ZUFzeW5jOiBmdW5jdGlvbihub2Rl
LCBuYW1lLCBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHZhciBteWNhbGxiYWNrID0gdGhpcy5f
ZGlkQXBwbHlEb21DaGFuZ2UuYmluZCh0aGlzLCBub2RlLCBjYWxsYmFjayk7Ci0gICAgICAgIElu
c3BlY3RvckJhY2tlbmQucmVtb3ZlQXR0cmlidXRlKFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFw
KG15Y2FsbGJhY2spLCBub2RlLmlkLCBuYW1lKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5y
ZW1vdmVBdHRyaWJ1dGUobm9kZS5pZCwgbmFtZSwgbXljYWxsYmFjayk7CiAgICAgfSwKIAogICAg
IHNldFRleHROb2RlVmFsdWVBc3luYzogZnVuY3Rpb24obm9kZSwgdGV4dCwgY2FsbGJhY2spCiAg
ICAgewogICAgICAgICB2YXIgbXljYWxsYmFjayA9IHRoaXMuX2RpZEFwcGx5RG9tQ2hhbmdlLmJp
bmQodGhpcywgbm9kZSwgY2FsbGJhY2spOwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFRl
eHROb2RlVmFsdWUoV2ViSW5zcGVjdG9yLkNhbGxiYWNrLndyYXAobXljYWxsYmFjayksIG5vZGUu
aWQsIHRleHQpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFRleHROb2RlVmFsdWUobm9k
ZS5pZCwgdGV4dCwgbXljYWxsYmFjayk7CiAgICAgfSwKIAogICAgIF9kaWRBcHBseURvbUNoYW5n
ZTogZnVuY3Rpb24obm9kZSwgY2FsbGJhY2ssIHN1Y2Nlc3MpCkBAIC00MjksOCArNDI4LDcgQEAg
V2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGUuZ2V0QXBwbGljYXRpb25DYWNoZXNBc3luYyA9
IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgICAgICAgICAgY2FsbGJhY2soYXBwbGljYXRpb25DYWNo
ZXMpOwogICAgIH0KIAotICAgIHZhciBjYWxsSWQgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3Jh
cChteWNhbGxiYWNrKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldEFwcGxpY2F0aW9uQ2FjaGVz
KGNhbGxJZCk7CisgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRBcHBsaWNhdGlvbkNhY2hlcyhteWNh
bGxiYWNrKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvb2tpZXMgPSB7fQpAQCAtNDQ1LDggKzQ0Myw3
IEBAIFdlYkluc3BlY3Rvci5Db29raWVzLmdldENvb2tpZXNBc3luYyA9IGZ1bmN0aW9uKGNhbGxi
YWNrKQogICAgICAgICAgICAgY2FsbGJhY2soY29va2llcywgdHJ1ZSk7CiAgICAgfQogCi0gICAg
dmFyIGNhbGxJZCA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKG15Y2FsbGJhY2spOwotICAg
IEluc3BlY3RvckJhY2tlbmQuZ2V0Q29va2llcyhjYWxsSWQpOworICAgIEluc3BlY3RvckJhY2tl
bmQuZ2V0Q29va2llcyhteWNhbGxiYWNrKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNvb2tpZXMuYnVp
bGRDb29raWVzRnJvbVN0cmluZyA9IGZ1bmN0aW9uKHJhd0Nvb2tpZVN0cmluZykKQEAgLTQ5Niw5
ICs0OTMsNyBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcnMuZ2V0RXZlbnRMaXN0ZW5lcnNG
b3JOb2RlQXN5bmMgPSBmdW5jdGlvbihub2RlLCBjYWxsYgogewogICAgIGlmICghbm9kZSkKICAg
ICAgICAgcmV0dXJuOwotCi0gICAgdmFyIGNhbGxJZCA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay53
cmFwKGNhbGxiYWNrKTsKLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldEV2ZW50TGlzdGVuZXJzRm9y
Tm9kZShjYWxsSWQsIG5vZGUuaWQpOworICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0RXZlbnRMaXN0
ZW5lcnNGb3JOb2RlKG5vZGUuaWQsIGNhbGxiYWNrKTsKIH0KIAogV2ViSW5zcGVjdG9yLkNTU1N0
eWxlRGVjbGFyYXRpb24gPSBmdW5jdGlvbihwYXlsb2FkKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRE9NU3RvcmFnZS5qcwppbmRleCA1YzI4ZTI5Li4zN2JlOGY2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcwpAQCAtNTYsMjAgKzU2LDE3IEBAIFdlYklu
c3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZSA9IHsKIAogICAgIGdldEVudHJpZXM6IGZ1bmN0
aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIGNhbGxJZCA9IFdlYkluc3BlY3Rvci5D
YWxsYmFjay53cmFwKGNhbGxiYWNrKTsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRET01T
dG9yYWdlRW50cmllcyhjYWxsSWQsIHRoaXMuX2lkKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2Vu
ZC5nZXRET01TdG9yYWdlRW50cmllcyh0aGlzLl9pZCwgY2FsbGJhY2spOwogICAgIH0sCiAgICAg
CiAgICAgc2V0SXRlbTogZnVuY3Rpb24oa2V5LCB2YWx1ZSwgY2FsbGJhY2spCiAgICAgewotICAg
ICAgICB2YXIgY2FsbElkID0gV2ViSW5zcGVjdG9yLkNhbGxiYWNrLndyYXAoY2FsbGJhY2spOwot
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldERPTVN0b3JhZ2VJdGVtKGNhbGxJZCwgdGhpcy5f
aWQsIGtleSwgdmFsdWUpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldERPTVN0b3JhZ2VJ
dGVtKHRoaXMuX2lkLCBrZXksIHZhbHVlLCBjYWxsYmFjayk7CiAgICAgfSwKICAgICAKICAgICBy
ZW1vdmVJdGVtOiBmdW5jdGlvbihrZXksIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIGNh
bGxJZCA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKGNhbGxiYWNrKTsKLSAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5yZW1vdmVET01TdG9yYWdlSXRlbShjYWxsSWQsIHRoaXMuX2lkLCBrZXkp
OworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMuX2lk
LCBrZXksIGNhbGxiYWNrKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EYXRhYmFzZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
YXRhYmFzZS5qcwppbmRleCA0NWI3YTBlLi5jYTNlOTY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2UuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RhdGFiYXNlLmpzCkBAIC04NCw4ICs4NCw3IEBAIFdlYkluc3BlY3Rvci5EYXRhYmFz
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIGNhbGxiYWNrKG5hbWVzLnNv
cnQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgdmFyIGNhbGxJZCA9IFdlYkluc3BlY3Rvci5DYWxs
YmFjay53cmFwKHNvcnRpbmdDYWxsYmFjayk7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0
RGF0YWJhc2VUYWJsZU5hbWVzKGNhbGxJZCwgdGhpcy5faWQpOworICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLmdldERhdGFiYXNlVGFibGVOYW1lcyh0aGlzLl9pZCwgc29ydGluZ0NhbGxiYWNrKTsK
ICAgICB9LAogICAgIAogICAgIGV4ZWN1dGVTcWw6IGZ1bmN0aW9uKHF1ZXJ5LCBvblN1Y2Nlc3Ms
IG9uRXJyb3IpCkBAIC05OSw3ICs5OCw3IEBAIFdlYkluc3BlY3Rvci5EYXRhYmFzZS5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuRGF0YWJhc2Uuc3VjY2Vzc0NhbGxiYWNr
c1t0cmFuc2FjdGlvbklkXSA9IG9uU3VjY2VzczsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5E
YXRhYmFzZS5lcnJvckNhbGxiYWNrc1t0cmFuc2FjdGlvbklkXSA9IG9uRXJyb3I7CiAgICAgICAg
IH0KLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5leGVjdXRlU1FMKFdlYkluc3BlY3Rvci5DYWxs
YmFjay53cmFwKGNhbGxiYWNrKSwgdGhpcy5faWQsIHF1ZXJ5KTsKKyAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5leGVjdXRlU1FMKHRoaXMuX2lkLCBxdWVyeSwgY2FsbGJhY2spOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRleCBm
MTgyOTlhLi5kODE5MzNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RWxlbWVudHNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVu
dHNQYW5lbC5qcwpAQCAtMjI0LDEwICsyMjQsOSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzZWxlY3ROb2RlLmNhbGwodGhpcywgbm9kZSk7
CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRQYXRoT25SZXNldCkgewot
ICAgICAgICAgICAgdmFyIGNhbGxJZCA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKHNlbGVj
dExhc3RTZWxlY3RlZE5vZGUuYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChjYWxsSWQsIHRoaXMuX3NlbGVjdGVkUGF0aE9u
UmVzZXQuam9pbigiLCIpKTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIGlmICh0aGlzLl9zZWxl
Y3RlZFBhdGhPblJlc2V0KQorICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5wdXNoTm9kZUJ5
UGF0aFRvRnJvbnRlbmQodGhpcy5fc2VsZWN0ZWRQYXRoT25SZXNldC5qb2luKCIsIiksIHNlbGVj
dExhc3RTZWxlY3RlZE5vZGUuYmluZCh0aGlzKSk7CisgICAgICAgIGVsc2UKICAgICAgICAgICAg
IHNlbGVjdE5vZGUuY2FsbCh0aGlzKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGVkUGF0
aE9uUmVzZXQ7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Vs
ZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggN2Y0ODE2MS4uYWU5ZTQwYSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTEx
MjUsOCArMTEyNSw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIG1vdmVUb05leHRBdHRyaWJ1dGVJZk5lZWRlZC5jYWxsKG5ld1Ry
ZWVJdGVtKTsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBjYWxsSWQgPSBXZWJJbnNwZWN0b3Iu
Q2FsbGJhY2sud3JhcChjaGFuZ2VUYWdOYW1lQ2FsbGJhY2spOwotICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLmNoYW5nZVRhZ05hbWUoY2FsbElkLCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlkLCBu
ZXdUZXh0KTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5jaGFuZ2VUYWdOYW1lKHRoaXMucmVw
cmVzZW50ZWRPYmplY3QuaWQsIG5ld1RleHQsIGNoYW5nZVRhZ05hbWVDYWxsYmFjayk7CiAgICAg
fSwKIAogICAgIF90ZXh0Tm9kZUVkaXRpbmdDb21taXR0ZWQ6IGZ1bmN0aW9uKGVsZW1lbnQsIG5l
d1RleHQpCkBAIC0xMzc0LDggKzEzNzMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxl
bWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBwYXJlbnRFbGVtZW50LmFkanVzdENvbGxh
cHNlZFJhbmdlKHRydWUpOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIGNhbGxJZCA9IFdlYklu
c3BlY3Rvci5DYWxsYmFjay53cmFwKHJlbW92ZU5vZGVDYWxsYmFjayk7Ci0gICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQucmVtb3ZlTm9kZShjYWxsSWQsIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaWQp
OworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbW92ZU5vZGUodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5pZCwgcmVtb3ZlTm9kZUNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgX2VkaXRBc0hUTUw6
IGZ1bmN0aW9uKCkKQEAgLTE0MDIsMTIgKzE0MDAsMTAgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAgIGZ1bmN0aW9uIGNvbW1pdENoYW5n
ZSh2YWx1ZSkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIHNldENhbGxJZCA9IFdlYkluc3Bl
Y3Rvci5DYWxsYmFjay53cmFwKHNlbGVjdE5vZGUpOwotICAgICAgICAgICAgSW5zcGVjdG9yQmFj
a2VuZC5zZXRPdXRlckhUTUwoc2V0Q2FsbElkLCBub2RlLmlkLCB2YWx1ZSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLnNldE91dGVySFRNTChub2RlLmlkLCB2YWx1ZSwgc2VsZWN0Tm9k
ZSk7CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgZ2V0Q2FsbElkID0gV2ViSW5zcGVjdG9yLkNh
bGxiYWNrLndyYXAodGhpcy5fc3RhcnRFZGl0aW5nQXNIVE1MLmJpbmQodGhpcywgY29tbWl0Q2hh
bmdlKSk7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0T3V0ZXJIVE1MKGdldENhbGxJZCwg
bm9kZS5pZCk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0T3V0ZXJIVE1MKG5vZGUuaWQs
IHRoaXMuX3N0YXJ0RWRpdGluZ0FzSFRNTC5iaW5kKHRoaXMsIGNvbW1pdENoYW5nZSkpOwogICAg
IH0sCiAKICAgICBfY29weUhUTUw6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdEFjY2Vzcy5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdEFjY2Vzcy5qcwppbmRleCBjZTI2NGRkLi5jYjNj
MmI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3Jp
cHRBY2Nlc3MuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2Ny
aXB0QWNjZXNzLmpzCkBAIC03Niw5ICs3Niw3IEBAIEluamVjdGVkU2NyaXB0QWNjZXNzLl9pbnN0
YWxsSGFuZGxlciA9IGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGFzeW5jKQogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZE1lc3NhZ2UoV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLmNyZWF0ZVRleHRNZXNzYWdlKCJFcnJvciBkaXNwYXRjaGlu
ZzogIiArIG1ldGhvZE5hbWUpKTsKICAgICAgICAgfQotICAgICAgICB2YXIgY2FsbElkID0gV2Vi
SW5zcGVjdG9yLkNhbGxiYWNrLndyYXAobXlDYWxsYmFjayk7Ci0KLSAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5kaXNwYXRjaE9uSW5qZWN0ZWRTY3JpcHQoY2FsbElkLCB0aGlzLl93b3JsZElkLCBt
ZXRob2ROYW1lLCBhcmdzU3RyaW5nKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5kaXNwYXRj
aE9uSW5qZWN0ZWRTY3JpcHQodGhpcy5fd29ybGRJZCwgbWV0aG9kTmFtZSwgYXJnc1N0cmluZywg
bXlDYWxsYmFjayk7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL01ldHJpY3NTaWRlYmFyUGFuZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9NZXRyaWNzU2lkZWJhclBhbmUuanMKaW5kZXggZWQ1YTdlYy4uMThiYzI0MCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01ldHJpY3NTaWRlYmFyUGFuZS5qcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWV0cmljc1NpZGViYXJQYW5lLmpzCkBA
IC01MiwxNCArNTIsMTQgQEAgV2ViSW5zcGVjdG9yLk1ldHJpY3NTaWRlYmFyUGFuZS5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICB2YXIgc3R5bGUgPSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wYXJzZVN0eWxlKHN0eWxlUGF5bG9hZCk7CiAgICAgICAgICAgICBzZWxmLl91cGRh
dGUoc3R5bGUpOwogICAgICAgICB9OwotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldENvbXB1
dGVkU3R5bGUoV2ViSW5zcGVjdG9yLkNhbGxiYWNrLndyYXAoY2FsbGJhY2spLCBub2RlLmlkKTsK
KyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRDb21wdXRlZFN0eWxlKG5vZGUuaWQsIGNhbGxi
YWNrKTsKIAogICAgICAgICB2YXIgaW5saW5lU3R5bGVDYWxsYmFjayA9IGZ1bmN0aW9uKHN0eWxl
UGF5bG9hZCkgewogICAgICAgICAgICAgaWYgKCFzdHlsZVBheWxvYWQpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgc2VsZi5faW5saW5lU3R5bGVJZCA9IHN0eWxlUGF5bG9h
ZC5pZDsKICAgICAgICAgfTsKLSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRJbmxpbmVTdHls
ZShXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChpbmxpbmVTdHlsZUNhbGxiYWNrKSwgbm9kZS5p
ZCk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0SW5saW5lU3R5bGUobm9kZS5pZCwgaW5s
aW5lU3R5bGVDYWxsYmFjayk7CiAgICAgfSwKIAogICAgIF91cGRhdGU6IGZ1bmN0aW9uKHN0eWxl
KQpAQCAtMjEwLDcgKzIxMCw3IEBAIFdlYkluc3BlY3Rvci5NZXRyaWNzU2lkZWJhclBhbmUucHJv
dG90eXBlID0gewogICAgICAgICAgICAgc2VsZi51cGRhdGUoKTsKICAgICAgICAgfTsKIAotICAg
ICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldFN0eWxlUHJvcGVydHkoV2ViSW5zcGVjdG9yLkNhbGxi
YWNrLndyYXAoY2FsbGJhY2spLCB0aGlzLl9pbmxpbmVTdHlsZUlkLCBjb250ZXh0LnN0eWxlUHJv
cGVydHksIHVzZXJJbnB1dCk7CisgICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0U3R5bGVQcm9w
ZXJ0eSh0aGlzLl9pbmxpbmVTdHlsZUlkLCBjb250ZXh0LnN0eWxlUHJvcGVydHksIHVzZXJJbnB1
dCwgY2FsbGJhY2spOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1By
b2ZpbGVWaWV3LmpzCmluZGV4IDgxN2YxZjUuLmNhMjcxZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMKQEAgLTk0LDggKzk0LDcgQEAgV2ViSW5zcGVjdG9y
LkNQVVByb2ZpbGVWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZSkKICAgICAgICAgc2VsZi5fdXBkYXRl
UGVyY2VudEJ1dHRvbigpOwogICAgIH0KIAotICAgIHZhciBjYWxsSWQgPSBXZWJJbnNwZWN0b3Iu
Q2FsbGJhY2sud3JhcChwcm9maWxlQ2FsbGJhY2spOwotICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0
UHJvZmlsZShjYWxsSWQsIHRoaXMucHJvZmlsZS51aWQpOworICAgIEluc3BlY3RvckJhY2tlbmQu
Z2V0UHJvZmlsZSh0aGlzLnByb2ZpbGUudWlkLCBwcm9maWxlQ2FsbGJhY2spOwogfQogCiBXZWJJ
bnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwppbmRleCBlMTgyNzRjLi4yMTc0Yjg3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwpAQCAtNTI0LDgg
KzUyNCw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuYWRkUHJvZmlsZUhlYWRlcihwcm9maWxlSGVhZGVyc1tp
XSk7CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgY2FsbElkID0gV2ViSW5zcGVjdG9yLkNhbGxi
YWNrLndyYXAocG9wdWxhdGVDYWxsYmFjayk7Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0
UHJvZmlsZUhlYWRlcnMoY2FsbElkKTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRQcm9m
aWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxiYWNrKTsKIAogICAgICAgICB0aGlzLl9wcm9maWxlc1dl
cmVSZXF1ZXN0ZWQgPSB0cnVlOwogICAgIH0sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VzUGFuZWwuanMKaW5kZXggZmYwZDFhYi4uMjdkZjVjZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtODgzLDcgKzg4Myw3
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLkFic3RyYWN0VGltZWxpbmVQCiAKIFdlYkluc3BlY3Rvci5nZXRSZXNvdXJjZUNv
bnRlbnQgPSBmdW5jdGlvbihpZGVudGlmaWVyLCBjYWxsYmFjaykKIHsKLSAgICBJbnNwZWN0b3JC
YWNrZW5kLmdldFJlc291cmNlQ29udGVudChXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChjYWxs
YmFjayksIGlkZW50aWZpZXIpOworICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0UmVzb3VyY2VDb250
ZW50KGlkZW50aWZpZXIsIGNhbGxiYWNrKTsKIH0KIAogV2ViSW5zcGVjdG9yLlJlc291cmNlVGlt
ZUNhbGN1bGF0b3IgPSBmdW5jdGlvbihzdGFydEF0WmVybykKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdFZpZXcuanMKaW5kZXggNzRkYzMwYS4uZDg3OGU5YiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKQEAgLTU2LDEwICs1Niw4IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAodGhpcy5zY3Jp
cHQuc291cmNlKQogICAgICAgICAgICAgdGhpcy5fc291cmNlRnJhbWVTZXR1cEZpbmlzaGVkKCk7
Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgdmFyIGNhbGxiYWNrSWQgPSBXZWJJbnNwZWN0
b3IuQ2FsbGJhY2sud3JhcCh0aGlzLl9kaWRHZXRTY3JpcHRTb3VyY2UuYmluZCh0aGlzKSkKLSAg
ICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U2NyaXB0U291cmNlKGNhbGxiYWNrSWQsIHRo
aXMuc2NyaXB0LnNvdXJjZUlEKTsKLSAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmdldFNjcmlwdFNvdXJjZSh0aGlzLnNjcmlwdC5zb3VyY2VJRCwg
dGhpcy5fZGlkR2V0U2NyaXB0U291cmNlLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBfZGlk
R2V0U2NyaXB0U291cmNlOiBmdW5jdGlvbihzb3VyY2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA3NTIxZWE5Li43NWZkNmY3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTM0Myw4ICszNDMsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChzb3VyY2VJRCwg
YnJlYWtwb2ludC51cmwsIG5ld0xpbmUsIGJyZWFrcG9pbnQuZW5hYmxlZCwgYnJlYWtwb2ludC5j
b25kaXRpb24pOwogICAgICAgICAgICAgfQogICAgICAgICB9OwotICAgICAgICB2YXIgY2FsbGJh
Y2tJZCA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKG15Y2FsbGJhY2suYmluZCh0aGlzKSkK
LSAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5lZGl0U2NyaXB0U291cmNlKGNhbGxiYWNrSWQsIHNv
dXJjZUlELCBuZXdDb250ZW50KTsKKyAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5lZGl0U2NyaXB0
U291cmNlKHNvdXJjZUlELCBuZXdDb250ZW50LCBteWNhbGxiYWNrLmJpbmQodGhpcykpOwogICAg
IH0sCiAKICAgICBzZWxlY3RlZENhbGxGcmFtZUlkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2V0dGluZ3MuanMKaW5kZXggMzNhMWI5MS4uNDFkODJmOSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpAQCAtODEsMTAgKzgxLDEwIEBAIFdlYklu
c3BlY3Rvci5TZXR0aW5ncy5pbml0aWFsaXplID0gZnVuY3Rpb24oKQogICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2Vzc2lvblNldHRpbmdzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygibG9hZGVkIik7
CiAgICAgfQogCi0gICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTZXR0aW5ncyhXZWJJbnNwZWN0b3Iu
Q2FsbGJhY2sud3JhcChmdW5jdGlvbihzZXR0aW5ncykgeworICAgIEluc3BlY3RvckJhY2tlbmQu
Z2V0U2V0dGluZ3MoZnVuY3Rpb24oc2V0dGluZ3MpIHsKICAgICAgICAgcG9wdWxhdGVBcHBsaWNh
dGlvblNldHRpbmdzKHNldHRpbmdzLmFwcGxpY2F0aW9uKTsKICAgICAgICAgcG9wdWxhdGVTZXNz
aW9uU2V0dGluZ3Moc2V0dGluZ3Muc2Vzc2lvbik7Ci0gICAgfSkpOworICAgIH0pOwogfQogCiBX
ZWJJbnNwZWN0b3IuU2V0dGluZ3MucHJvdG90eXBlID0gewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggZGI4OWUyMC4uYTliY2EzNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC01ODMsNyArNTgzLDcgQEAgV2ViSW5zcGVj
dG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKICAgICBJbnNwZWN0b3JCYWNrZW5kLnBvcHVs
YXRlU2NyaXB0T2JqZWN0cygpOwogCiAgICAgLy8gQXMgYSBET01BZ2VudCBtZXRob2QsIHRoaXMg
bmVlZHMgdG8gaGFwcGVuIGFmdGVyIHRoZSBmcm9udGVuZCBoYXMgbG9hZGVkIGFuZCB0aGUgYWdl
bnQgaXMgYXZhaWxhYmxlLgotICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3VwcG9ydGVkQ1NTUHJv
cGVydGllcyhXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChXZWJJbnNwZWN0b3IuQ1NTQ29tcGxl
dGlvbnMuX2xvYWQpKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN1cHBvcnRlZENTU1Byb3Bl
cnRpZXMoV2ViSW5zcGVjdG9yLkNTU0NvbXBsZXRpb25zLl9sb2FkKTsKIH0KIAogV2ViSW5zcGVj
dG9yLmFkZFBhbmVsVG9vbGJhckljb24gPSBmdW5jdGlvbih0b29sYmFyRWxlbWVudCwgcGFuZWws
IHByZXZpb3VzVG9vbGJhckl0ZW0pCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1ZDg2MGVkLi4wODM1YWJhIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOC0yNSAgSWx5YSBUaWtob25vdnNr
eSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBhcyBmYXIgYXMgd2UgaGF2ZSAnc2VxJyBw
cm9wZXJ0eSBpbiB0aGUgZWFjaCBpbnNwZWN0b3IgbWVzc2FnZQorICAgICAgICBpdCB3b3VsZCBi
ZSBiZXR0ZXIgdG8gcmVtb3ZlIGV4cGxpY2l0IGNhbGxJZCBhcmd1bWVudCBmcm9tIEluc3BlY3Rv
ci5pZGwgZnVuY3Rpb25zCisgICAgICAgIGRlY2xhcmF0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NjE3CisKKyAgICAgICAgKiBzcmMvanMv
UHJvZmlsZXJBZ2VudC5qczoKKyAgICAgICAgKGRldnRvb2xzLlByb2ZpbGVyQWdlbnQucHJvdG90
eXBlLl9nZXROZXh0TG9nTGluZXMuZWxzZS5kZWxheWVkUmVxdWVzdCk6CisgICAgICAgIChkZXZ0
b29scy5Qcm9maWxlckFnZW50LnByb3RvdHlwZS5fZ2V0TmV4dExvZ0xpbmVzKToKKwogMjAxMC0w
OC0yNSAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvUHJvZmlsZXJBZ2VudC5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvUHJvZmlsZXJBZ2Vu
dC5qcwppbmRleCA3Zjc0NTk1Li5jOTkzZTYyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL2pzL1Byb2ZpbGVyQWdlbnQuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9Qcm9m
aWxlckFnZW50LmpzCkBAIC05MSwxMyArOTEsMTIgQEAgZGV2dG9vbHMuUHJvZmlsZXJBZ2VudC5w
cm90b3R5cGUuX2dldE5leHRMb2dMaW5lcyA9IGZ1bmN0aW9uKGltbWVkaWF0ZWx5KQogICAgICAg
ICByZXR1cm47CiAgICAgdmFyIHBvcyA9IHRoaXMuX2xhc3RSZXF1ZXN0ZWRMb2dQb3NpdGlvbiA9
IHRoaXMuX2xvZ1Bvc2l0aW9uOwogCi0gICAgdmFyIGNhbGxJZCA9IFdlYkluc3BlY3Rvci5DYWxs
YmFjay53cmFwKHRoaXMuX2RpZEdldFByb2ZpbGVyTG9nTGluZXMuYmluZCh0aGlzKSk7CiAgICAg
aWYgKGltbWVkaWF0ZWx5KQotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFByb2ZpbGVyTG9n
TGluZXMoY2FsbElkLCBwb3MpOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFByb2ZpbGVy
TG9nTGluZXMocG9zLCB0aGlzLl9kaWRHZXRQcm9maWxlckxvZ0xpbmVzLmJpbmQodGhpcykpOwog
ICAgIGVsc2UgewogICAgICAgICBmdW5jdGlvbiBkZWxheWVkUmVxdWVzdCgpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0UHJvZmlsZXJMb2dMaW5lcyhjYWxsSWQs
IHBvcyk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFByb2ZpbGVyTG9nTGluZXMo
cG9zLCB0aGlzLl9kaWRHZXRQcm9maWxlckxvZ0xpbmVzLmJpbmQodGhpcykpOwogICAgICAgICB9
CiAgICAgICAgIHNldFRpbWVvdXQoZGVsYXllZFJlcXVlc3QsIDUwMCk7CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>