<?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>48376</bug_id>
          
          <creation_ts>2010-10-26 14:37:49 -0700</creation_ts>
          <short_desc>Web Inspector: make debugger work against new resource manager.</short_desc>
          <delta_ts>2010-10-28 03:23: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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>299805</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-26 14:37:49 -0700</bug_when>
    <thetext>Currently &quot;resource - url&quot; binding is happening too late in resourceManager&apos;s case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300215</commentid>
    <comment_count>1</comment_count>
      <attachid>72034</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-27 07:46:21 -0700</bug_when>
    <thetext>Created attachment 72034
[PATCH] Proposed change.

This makes debugger happy + makes all tests pass in the resourceManager mode (by the resource tracking&apos;s full path modulus).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300216</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-27 07:49:21 -0700</bug_when>
    <thetext>Attachment 72034 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/inspector/front-end/networkPanel.css:423:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300398</commentid>
    <comment_count>3</comment_count>
      <attachid>72063</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-27 11:40:03 -0700</bug_when>
    <thetext>Created attachment 72063
[PATCH] Same with the style fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300406</commentid>
    <comment_count>4</comment_count>
      <attachid>72063</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-10-27 11:44:47 -0700</bug_when>
    <thetext>Comment on attachment 72063
[PATCH] Same with the style fixed.

View in context: https://bugs.webkit.org/attachment.cgi?id=72063&amp;action=review

&gt; WebCore/inspector/front-end/ResourceManager.js:398
&gt; +            this._resourcesByURL[resource.url] = [ resourceForURL ];

No spaces should be inside the brackets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300971</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-28 03:23:33 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/http/tests/inspector/inspector-test2.js
	M	LayoutTests/http/tests/inspector/resource-har-conversion.html
	M	LayoutTests/http/tests/inspector/resource-parameters.html
	M	LayoutTests/inspector/extensions-resources.html
	M	WebCore/ChangeLog
	M	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorResourceAgent.cpp
	M	WebCore/inspector/InspectorResourceAgent.h
	M	WebCore/inspector/front-end/ExtensionServer.js
	M	WebCore/inspector/front-end/Resource.js
	M	WebCore/inspector/front-end/ResourceManager.js
	M	WebCore/inspector/front-end/StoragePanel.js
	M	WebCore/inspector/front-end/networkPanel.css
Committed r70762</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72034</attachid>
            <date>2010-10-27 07:46:21 -0700</date>
            <delta_ts>2010-10-27 11:40:03 -0700</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>debugger</filename>
            <type>text/plain</type>
            <size>24473</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NmQzYTlhLi5hYjlkMTE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTAt
MjcgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSBk
ZWJ1Z2dlciB3b3JrIGFnYWluc3QgbmV3IHJlc291cmNlIG1hbmFnZXIuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODM3NgorCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzOgorICAgICAgICAoaW5pdGlhbGl6
ZV9JbnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QucmVsb2FkUGFnZUlmTmVlZGVkKToKKyAgICAg
ICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LnBhZ2VSZWxvYWRlZCk6
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24u
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJz
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWw6CisK
IDIwMTAtMTAtMjYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzCmluZGV4IDhkOTczNDAuLjc5
NWRjNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3Bl
Y3Rvci10ZXN0Mi5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNw
ZWN0b3ItdGVzdDIuanMKQEAgLTg0LDE1ICs4NCwxNSBAQCBJbnNwZWN0b3JUZXN0LnJlbG9hZFBh
Z2UgPSBmdW5jdGlvbihjYWxsYmFjaykKIAogSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlSWZOZWVk
ZWQgPSBmdW5jdGlvbihjYWxsYmFjaykKIHsKLSAgICBpZiAoIUluc3BlY3RvclRlc3QuX3BhZ2VX
YXNSZWxvYWRlZCkKKyAgICBpZiAoIUluc3BlY3RvclRlc3QuX3BhZ2VXYXNSZWxvYWRlZCkgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0Ll9wYWdlV2FzUmVsb2FkZWQgPSB0cnVlOwogICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2UoY2FsbGJhY2spOwotICAgIGVsc2UKKyAgICB9IGVsc2UK
ICAgICAgICAgY2FsbGJhY2soKTsKIH0KIAogSW5zcGVjdG9yVGVzdC5wYWdlUmVsb2FkZWQgPSBm
dW5jdGlvbigpCiB7Ci0gICAgSW5zcGVjdG9yVGVzdC5fcGFnZVdhc1JlbG9hZGVkID0gdHJ1ZTsK
ICAgICByZXN1bHRzU3luY2hyb25pemVkID0gZmFsc2U7CiAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlBhZ2UgcmVsb2FkZWQuIik7CiAgICAgaWYgKEluc3BlY3RvclRlc3QuX3JlbG9hZFBh
Z2VDYWxsYmFjaykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJzaW9uLmh0bWwKaW5kZXggMDU5MzgzNC4uMjIy
OWU1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2UtaGFyLWNvbnZlcnNpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi5odG1sCkBAIC05LDcgKzksNyBAQCB2YXIgdGVz
dCA9IGZ1bmN0aW9uKCkKIHsKICAgICBmdW5jdGlvbiBnZXRIQVIoaWQpCiAgICAgewotICAgICAg
ICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShXZWJJbnNwZWN0b3IucmVzb3VyY2Vz
W2lkXSkuYnVpbGQoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuSEFSRW50cnko
V2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNvdXJjZXNbaWRdKS5idWlsZCgpOwogICAgIH0KIAogICAg
IGZ1bmN0aW9uIGFkZENvb2tpZUhlYWRlcnNUb1Jlc291cmNlKHJlc291cmNlKQpAQCAtMjQsMTYg
KzI0LDE2IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogCiAgICAgZnVuY3Rpb24gZmluZFJlc291
cmNlQnlVUkwodXJsKQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgcmVzb3VyY2UgaW4gV2ViSW5z
cGVjdG9yLnJlc291cmNlcykgewotICAgICAgICAgICAgaWYgKHVybC50ZXN0KFdlYkluc3BlY3Rv
ci5yZXNvdXJjZXNbcmVzb3VyY2VdLnVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIFdlYklu
c3BlY3Rvci5yZXNvdXJjZXNbcmVzb3VyY2VdOworICAgICAgICBmb3IgKHZhciBpZCBpbiBXZWJJ
bnNwZWN0b3IubmV0d29ya1Jlc291cmNlcykgeworICAgICAgICAgICAgaWYgKHVybC50ZXN0KFdl
Ykluc3BlY3Rvci5uZXR3b3JrUmVzb3VyY2VzW2lkXS51cmwpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IubmV0d29ya1Jlc291cmNlc1tpZF07CiAgICAgICAgIH0KICAgICB9
CiAKICAgICBJbnNwZWN0b3JUZXN0LmVuYWJsZVJlc291cmNlVHJhY2tpbmcoZnVuY3Rpb24oKSB7
CiAgICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNzLmdldERlZmF1bHQoKS5ldmFsdWF0ZSgiZG9Y
SFIoKSIsICJjb25zb2xlIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBhZGRDb29raWVIZWFk
ZXJzVG9SZXNvdXJjZShmaW5kUmVzb3VyY2VCeVVSTCgvaW5zcGVjdG9yLXRlc3QyXC5qcyQvKSk7
Ci0gICAgICAgICAgICB2YXIgcmVzb3VyY2VzID0gT2JqZWN0LmtleXMoV2ViSW5zcGVjdG9yLnJl
c291cmNlcykubWFwKGdldEhBUikuc29ydChJbnNwZWN0b3JUZXN0LnJlc291cmNlVVJMQ29tcGFy
ZXIpOworICAgICAgICAgICAgdmFyIHJlc291cmNlcyA9IE9iamVjdC5rZXlzKFdlYkluc3BlY3Rv
ci5uZXR3b3JrUmVzb3VyY2VzKS5tYXAoZ2V0SEFSKS5zb3J0KEluc3BlY3RvclRlc3QucmVzb3Vy
Y2VVUkxDb21wYXJlcik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZE9iamVjdChyZXNv
dXJjZXMsIEluc3BlY3RvclRlc3QuSEFSTm9uZGV0ZXJtaW5pc3RpY1Byb3BlcnRpZXNXaXRoU2l6
ZSk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmRpc2FibGVSZXNvdXJjZVRyYWNraW5nKCk7
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5o
dG1sCmluZGV4IDE2ZmI0ZGMuLmQ2ZGMyMjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwKQEAgLTMyLDcg
KzMyLDE0IEBAIGZ1bmN0aW9uIG9uSWZyYW1lTG9hZCgpCiAKIGZ1bmN0aW9uIGZyb250ZW5kX2Vu
YWJsZVJlc291cmNlVHJhY2tpbmcodGVzdENvbnRyb2xsZXIpCiB7Ci0gICAgaWYgKCFXZWJJbnNw
ZWN0b3IucGFuZWxzLnJlc291cmNlcy5yZXNvdXJjZVRyYWNraW5nRW5hYmxlZCkgeworICAgIGlm
IChQcmVmZXJlbmNlcy5uZXR3b3JrUGFuZWxFbmFibGVkKSB7CisgICAgICAgIGlmICghV2ViSW5z
cGVjdG9yLnBhbmVscy5uZXR3b3JrLl9wYWdlV2FzUmVsb2FkZWQpIHsKKyAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5wYW5lbHMubmV0d29yay5fcGFnZVdhc1JlbG9hZGVkID0gdHJ1ZTsKKyAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5fcmVzZXQoKTsKKyAgICAgICAgICAg
IEluc3BlY3RvckJhY2tlbmQucmVsb2FkUGFnZSgpOworICAgICAgICAgICAgcmV0dXJuICJlbmFi
bGluZyI7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKCFXZWJJbnNwZWN0b3IucGFuZWxzLnJl
c291cmNlcy5yZXNvdXJjZVRyYWNraW5nRW5hYmxlZCkgewogICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLnJlc291cmNlcy5fdG9nZ2xlUmVzb3VyY2VUcmFja2luZygpOwogICAgICAgICByZXR1
cm4gImVuYWJsaW5nIjsKICAgICB9CkBAIC00Myw3ICs1MCw4IEBAIGZ1bmN0aW9uIGZyb250ZW5k
X2R1bXBGb3JtRGF0YSh0ZXN0Q29udHJvbGxlcikKIHsKICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaT9xdWVyeVBhcmFtMT1xdWVyeVZhbHVlMSZxdWVyeVBh
cmFtMj0iKTsKIAotICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLl90b2dnbGVSZXNv
dXJjZVRyYWNraW5nKCk7CisgICAgaWYgKCFQcmVmZXJlbmNlcy5uZXR3b3JrUGFuZWxFbmFibGVk
KQorICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5fdG9nZ2xlUmVzb3VyY2VU
cmFja2luZygpOwogCiAgICAgaWYgKCFyZXNvdXJjZSkgewogICAgICAgICB0ZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCJObyByZXNvdXJjZSBmb3VuZCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbAppbmRleCBiNzBmOTcxLi4wMmYzM2EyIDEw
MDc1NQotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbApA
QCAtNTUsNyArNTUsNyBAQCBmdW5jdGlvbiBleHRlbnNpb25fdGVzdEdldFBhZ2VUaW1pbmdzKG5l
eHRUZXN0KQogZnVuY3Rpb24gZG9YSFIoKQogewogICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJl
cXVlc3QoKTsKLSAgICB4aHIub3BlbignR0VUJywgbG9jYXRpb24uaHJlZiwgZmFsc2UpOworICAg
IHhoci5vcGVuKCJHRVQiLCBsb2NhdGlvbi5ocmVmLCBmYWxzZSk7CiAgICAgeGhyLnNlbmQobnVs
bCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZjU5MGQxNi4uMDk2YWMwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMC0xMC0yNyAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWtlIGRlYnVnZ2Vy
IHdvcmsgYWdhaW5zdCBuZXcgcmVzb3VyY2UgbWFuYWdlci4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Mzc2CisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjppZGVudGlmaWVyRm9y
SW5pdGlhbFJlcXVlc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmlkZW50
aWZpZXJGb3JJbml0aWFsUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBl
Ll9vbkdldFJlc291cmNlQ29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuc2V0
IGNvbnRlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VNYW5hZ2Vy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5pZGVudGlmaWVyRm9ySW5pdGlh
bFJlcXVlc3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5
cGUuX2NyZWF0ZVJlc291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFn
ZXIucHJvdG90eXBlLndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVz
b3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5fdXBkYXRlUmVzb3VyY2VXaXRoUmVxdWVzdCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5kaWRGaW5pc2hMb2Fk
aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJv
dG90eXBlLnNldE92ZXJyaWRlQ29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VNYW5hZ2VyLnByb3RvdHlwZS5fcHJvY2Vzc0NhY2hlZFJlc291cmNlcyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5fYWRkRnJhbWVzUmVjdXJzaXZl
bHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUucmVz
b3VyY2VGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90
b3R5cGUuYWRkQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNl
TWFuYWdlci5wcm90b3R5cGUuY2xlYXJDb25zb2xlTWVzc2FnZXMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuZm9yQWxsUmVzb3VyY2VzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLl9iaW5kUmVzb3VyY2VV
UkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuX3Vu
YmluZFJlc291cmNlVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIu
Z2V0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5kaWRDb21t
aXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVs
LnByb3RvdHlwZS5hZGRSZXNvdXJjZVRvRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5fY2xlYXJSZXNvdXJjZXMpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlN0b3JhZ2VQYW5lbC5wcm90b3R5cGUuYWRkT3JVcGRhdGVGcmFtZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9uZXR3b3JrUGFuZWwuY3NzOgorICAgICAgICAoLm5ldHdvcmsucGFu
ZWwgLnJlc291cmNlcy1kaXZpZGVycyk6CisKIDIwMTAtMTAtMjYgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBUb3VjaGluZyBp
bnNwZWN0b3IgY29udHJvbGxlciB0byBraWNrIGd0ayBidWlsZCwgcmVtb3ZpbmcgY29tbWVudHMu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCAxMDk2NWRhLi5jMmU0ZWY3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5pZGwKQEAgLTExNCw3ICsxMTQsNyBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAg
ICAgW2hhbmRsZXI9UmVzb3VyY2VdIHZvaWQgY2FjaGVkUmVzb3VyY2VzKG91dCBPYmplY3QgcmVz
b3VyY2VzKTsKICAgICAgICAgW2hhbmRsZXI9UmVzb3VyY2VdIHZvaWQgcmVzb3VyY2VDb250ZW50
KGluIHVuc2lnbmVkIGxvbmcgZnJhbWVJZCwgaW4gU3RyaW5nIHVybCwgaW4gYm9vbGVhbiBiYXNl
NjRFbmNvZGUsIG91dCBTdHJpbmcgY29udGVudCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgaWRl
bnRpZmllckZvckluaXRpYWxSZXF1ZXN0KG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBTdHJpbmcg
dXJsLCBvdXQgT2JqZWN0IGxvYWRlciwgb3V0IGJvb2xlYW4gaXNNYWluUmVzb3VyY2UpOworICAg
ICAgICBbbm90aWZ5XSB2b2lkIGlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdChvdXQgbG9uZyBp
ZGVudGlmaWVyLCBvdXQgU3RyaW5nIHVybCwgb3V0IE9iamVjdCBsb2FkZXIpOwogICAgICAgICBb
bm90aWZ5XSB2b2lkIHdpbGxTZW5kUmVxdWVzdChvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91
YmxlIHRpbWUsIG91dCBPYmplY3QgcmVxdWVzdCwgb3V0IE9iamVjdCByZWRpcmVjdFJlc3BvbnNl
KTsKICAgICAgICAgW25vdGlmeV0gdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZChvdXQgbG9uZyBp
ZGVudGlmaWVyKTsKICAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uob3V0
IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgU3RyaW5nIHJlc291cmNlVHlw
ZSwgb3V0IE9iamVjdCByZXNwb25zZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IDk3YWViNDguLjgyZTUwNjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC05NDEsMTAgKzk0MSwxMCBAQCB2b2lkIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobV9pbnNwZWN0ZWRQYWdlKTsK
IAotICAgIGJvb2wgaXNNYWluUmVzb3VyY2UgPSBpc01haW5SZXNvdXJjZUxvYWRlcihsb2FkZXIs
IHJlcXVlc3QudXJsKCkpOwotCiAgICAgaWYgKG1fcmVzb3VyY2VBZ2VudCkKLSAgICAgICAgbV9y
ZXNvdXJjZUFnZW50LT5pZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3QoaWRlbnRpZmllciwgcmVx
dWVzdC51cmwoKSwgbG9hZGVyLCBpc01haW5SZXNvdXJjZSk7CisgICAgICAgIG1fcmVzb3VyY2VB
Z2VudC0+aWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIHJlcXVlc3QudXJs
KCksIGxvYWRlcik7CisKKyAgICBib29sIGlzTWFpblJlc291cmNlID0gaXNNYWluUmVzb3VyY2VM
b2FkZXIobG9hZGVyLCByZXF1ZXN0LnVybCgpKTsKIAogICAgIGVuc3VyZVNldHRpbmdzTG9hZGVk
KCk7CiAgICAgaWYgKCFpc01haW5SZXNvdXJjZSAmJiAhcmVzb3VyY2VUcmFja2luZ0VuYWJsZWQo
KSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXgg
YzcxMTk3NC4uOWY4MDYyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5jcHAKQEAgLTI3NCwxMCArMjc0LDEwIEBAIEluc3BlY3RvclJlc291cmNlQWdlbnQ6
On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkKIHsKIH0KIAotdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjppZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBLVVJMJiB1cmwsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIGJvb2wgaXNNYWlu
UmVzb3VyY2UpCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmlkZW50aWZpZXJGb3JJbml0
aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEtVUkwmIHVybCwgRG9j
dW1lbnRMb2FkZXIqIGxvYWRlcikKIHsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBsb2Fk
ZXJPYmplY3QgPSBidWlsZE9iamVjdEZvckRvY3VtZW50TG9hZGVyKGxvYWRlcik7Ci0gICAgbV9m
cm9udGVuZC0+aWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIHVybC5zdHJp
bmcoKSwgbG9hZGVyT2JqZWN0LCBpc01haW5SZXNvdXJjZSk7CisgICAgbV9mcm9udGVuZC0+aWRl
bnRpZmllckZvckluaXRpYWxSZXF1ZXN0KGlkZW50aWZpZXIsIHVybC5zdHJpbmcoKSwgbG9hZGVy
T2JqZWN0KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFJlcXVl
c3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggOGE1NGM4OS4uMWNkZDI5MiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaApAQCAtNzcsNyArNzcsNyBA
QCBwdWJsaWM6CiAKICAgICB+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpOwogCi0gICAgdm9pZCBp
ZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBLVVJMJiwgRG9jdW1lbnRMb2FkZXIqLCBib29sIGlzTWFpblJlc291cmNlKTsKKyAgICB2b2lk
IGlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IEtVUkwmLCBEb2N1bWVudExvYWRlciopOwogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hl
ZCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxhb2RlciwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvblNlcnZlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRl
bnNpb25TZXJ2ZXIuanMKaW5kZXggZWE3M2MzOS4uNWU1OTNmNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC0yOTksNiArMjk5LDcgQEAg
V2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgaWQgPSBp
ZHNbaV07CiAgICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IubmV0d29ya1Jl
c291cmNlc1tpZF07CisgCiAgICAgICAgICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICAgICAg
ICAgIHJlc3BvbnNlLnB1c2godGhpcy5fc3RhdHVzLkVfTk9URk9VTkQoaWQpKTsKICAgICAgICAg
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwppbmRleCBjMTM4
NWE3Li4yZGY3YjczIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2UuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCkBA
IC02MDAsNiArNjAwLDExIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5hZGRNZXNzYWdlKG1zZyk7CiAgICAgfSwK
IAorICAgIHNldCBjb250ZW50KGNvbnRlbnQpCisgICAgeworICAgICAgICB0aGlzLl9jb250ZW50
ID0gY29udGVudDsKKyAgICB9LAorCiAgICAgZ2V0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2sp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5fY29udGVudCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdlci5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZU1hbmFnZXIuanMKaW5kZXggMGQ1YjQ4NS4uN2EyZjM4YSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdlci5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VNYW5hZ2VyLmpzCkBA
IC00OCw2ICs0OCw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIgPSBmdW5jdGlvbigp
CiAgICAgICAgICJkaWRDbG9zZVdlYlNvY2tldCIpOwogCiAgICAgdGhpcy5fcmVzb3VyY2VzQnlJ
ZCA9IHt9OworICAgIHRoaXMuX3Jlc291cmNlc0J5VVJMID0ge307CiAgICAgdGhpcy5fcmVzb3Vy
Y2VUcmVlTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsKCk7CiAgICAg
SW5zcGVjdG9yQmFja2VuZC5jYWNoZWRSZXNvdXJjZXModGhpcy5fcHJvY2Vzc0NhY2hlZFJlc291
cmNlcy5iaW5kKHRoaXMpKTsKIH0KQEAgLTU5LDE0ICs2MCwxNyBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvclthcmd1
bWVudHNbaV1dID0gdGhpc1thcmd1bWVudHNbaV1dLmJpbmQodGhpcyk7CiAgICAgfSwKIAotICAg
IGlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdDogZnVuY3Rpb24oaWRlbnRpZmllciwgdXJsLCBs
b2FkZXIsIGlzTWFpblJlc291cmNlKQorICAgIGlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdDog
ZnVuY3Rpb24oaWRlbnRpZmllciwgdXJsLCBsb2FkZXIpCiAgICAgewogICAgICAgICB2YXIgcmVz
b3VyY2UgPSB0aGlzLl9jcmVhdGVSZXNvdXJjZShpZGVudGlmaWVyLCB1cmwsIGxvYWRlcik7Ci0g
ICAgICAgIGlmIChpc01haW5SZXNvdXJjZSkgeworICAgICAgICBpZiAobG9hZGVyLnVybCA9PT0g
dXJsKSB7CiAgICAgICAgICAgICByZXNvdXJjZS5pc01haW5SZXNvdXJjZSA9IHRydWU7CiAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IubWFpblJlc291cmNlID0gcmVzb3VyY2U7CiAgICAgICAgIH0K
IAorICAgICAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdG8gYmluZCByZXNvdXJjZSB1cmwgZWFybHkg
KGJlZm9yZSBzY3JpcHRzIGNvbXBpbGUpLgorICAgICAgICB0aGlzLl9iaW5kUmVzb3VyY2VVUkwo
cmVzb3VyY2UpOworCiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5hZGRSZXNv
dXJjZShyZXNvdXJjZSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuYXVkaXRzLnJlc291
cmNlU3RhcnRlZChyZXNvdXJjZSk7CiAgICAgfSwKQEAgLTc1LDYgKzc5LDcgQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgcmVz
b3VyY2UgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlKGlkZW50aWZpZXIsIHVybCk7CiAgICAg
ICAgIHJlc291cmNlLmxvYWRlciA9IGxvYWRlcjsKKyAgICAgICAgcmVzb3VyY2UuZG9jdW1lbnRV
UkwgPSBsb2FkZXIudXJsOwogCiAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5SWRbaWRlbnRpZmll
cl0gPSByZXNvdXJjZTsKICAgICAgICAgcmV0dXJuIHJlc291cmNlOwpAQCAtOTUsOSArMTAwLDcg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICByZXNvdXJjZSA9IHRoaXMuX2FwcGVuZFJlZGlyZWN0KHJlc291cmNlLmlkZW50aWZpZXIsIHJl
cXVlc3QudXJsKTsKICAgICAgICAgfQogCi0gICAgICAgIHJlc291cmNlLnJlcXVlc3RNZXRob2Qg
PSByZXF1ZXN0Lmh0dHBNZXRob2Q7Ci0gICAgICAgIHJlc291cmNlLnJlcXVlc3RIZWFkZXJzID0g
cmVxdWVzdC5odHRwSGVhZGVyRmllbGRzOwotICAgICAgICByZXNvdXJjZS5yZXF1ZXN0Rm9ybURh
dGEgPSByZXF1ZXN0LnJlcXVlc3RGb3JtRGF0YTsKKyAgICAgICAgdGhpcy5fdXBkYXRlUmVzb3Vy
Y2VXaXRoUmVxdWVzdChyZXNvdXJjZSwgcmVxdWVzdCk7CiAgICAgICAgIHJlc291cmNlLnN0YXJ0
VGltZSA9IHRpbWU7CiAKICAgICAgICAgaWYgKGlzUmVkaXJlY3QpIHsKQEAgLTEwNyw2ICsxMTAs
MTMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNl
KTsKICAgICB9LAogCisgICAgX3VwZGF0ZVJlc291cmNlV2l0aFJlcXVlc3Q6IGZ1bmN0aW9uKHJl
c291cmNlLCByZXF1ZXN0KQorICAgIHsKKyAgICAgICAgcmVzb3VyY2UucmVxdWVzdE1ldGhvZCA9
IHJlcXVlc3QuaHR0cE1ldGhvZDsKKyAgICAgICAgcmVzb3VyY2UucmVxdWVzdEhlYWRlcnMgPSBy
ZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHM7CisgICAgICAgIHJlc291cmNlLnJlcXVlc3RGb3JtRGF0
YSA9IHJlcXVlc3QucmVxdWVzdEZvcm1EYXRhOworICAgIH0sCisKICAgICBfYXBwZW5kUmVkaXJl
Y3Q6IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHJlZGlyZWN0VVJMKQogICAgIHsKICAgICAgICAgdmFy
IG9yaWdpbmFsUmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNCeUlkW2lkZW50aWZpZXJdOwpAQCAt
MTg5LDYgKzE5OSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlID0g
ewogCiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5yZWZyZXNoUmVzb3VyY2Uo
cmVzb3VyY2UpOwogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0cy5yZXNvdXJjZUZp
bmlzaGVkKHJlc291cmNlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5u
b3RpZnlSZXNvdXJjZUZpbmlzaGVkKHJlc291cmNlKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX3Jl
c291cmNlc0J5SWRbaWRlbnRpZmllcl07CiAgICAgfSwKIApAQCAtMTk5LDEwICsyMTAsMTIgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgcmVzb3VyY2UuZmFpbGVkID0gdHJ1ZTsKKyAgICAgICAgcmVzb3Vy
Y2UuZmluaXNoZWQgPSB0cnVlOwogICAgICAgICByZXNvdXJjZS5lbmRUaW1lID0gdGltZTsKIAog
ICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291
cmNlKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5hdWRpdHMucmVzb3VyY2VGaW5pc2hl
ZChyZXNvdXJjZSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIubm90aWZ5
UmVzb3VyY2VGaW5pc2hlZChyZXNvdXJjZSk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9yZXNvdXJj
ZXNCeUlkW2lkZW50aWZpZXJdOwogICAgIH0sCiAKQEAgLTIyOCwxMyArMjQxLDEyIEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlID0gewogCiAgICAgc2V0T3ZlcnJpZGVD
b250ZW50OiBmdW5jdGlvbihpZGVudGlmaWVyLCBzb3VyY2VTdHJpbmcsIHR5cGUpCiAgICAgewot
ICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNCeUlkW2lkZW50aWZpZXJdOwor
ICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVzb3Vy
Y2VzW2lkZW50aWZpZXJdOwogICAgICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgIHJlc291cmNlLnR5cGUgPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlw
ZVt0eXBlXTsKLSAgICAgICAgcmVzb3VyY2Uub3ZlcnJpZGVuQ29udGVudCA9IHNvdXJjZVN0cmlu
ZzsKLQorICAgICAgICByZXNvdXJjZS5jb250ZW50ID0gc291cmNlU3RyaW5nOwogICAgICAgICBX
ZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNlKTsKICAg
ICB9LAogCkBAIC0yOTgsMTMgKzMxMCwyMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2Vy
LnByb3RvdHlwZSA9IHsKIAogICAgIF9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzOiBmdW5jdGlvbiht
YWluRnJhbWVQYXlsb2FkKQogICAgIHsKLSAgICAgICAgdGhpcy5fYWRkRnJhbWVzUmVjdXJzaXZl
bHkobnVsbCwgbWFpbkZyYW1lUGF5bG9hZCk7CisgICAgICAgIHZhciBtYWluUmVzb3VyY2UgPSB0
aGlzLl9hZGRGcmFtZXNSZWN1cnNpdmVseShudWxsLCBtYWluRnJhbWVQYXlsb2FkKTsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLm1haW5SZXNvdXJjZSA9IG1haW5SZXNvdXJjZTsKKyAgICAgICAgbWFp
blJlc291cmNlLmlzTWFpblJlc291cmNlID0gdHJ1ZTsKICAgICB9LAogCiAgICAgX2FkZEZyYW1l
c1JlY3Vyc2l2ZWx5OiBmdW5jdGlvbihwYXJlbnRGcmFtZUlkLCBmcmFtZVBheWxvYWQpCiAgICAg
ewogICAgICAgICB2YXIgZnJhbWVSZXNvdXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlKG51bGws
IGZyYW1lUGF5bG9hZC5yZXNvdXJjZS51cmwsIGZyYW1lUGF5bG9hZC5yZXNvdXJjZS5sb2FkZXIp
OworICAgICAgICB0aGlzLl91cGRhdGVSZXNvdXJjZVdpdGhSZXF1ZXN0KGZyYW1lUmVzb3VyY2Us
IGZyYW1lUGF5bG9hZC5yZXNvdXJjZS5yZXF1ZXN0KTsKKyAgICAgICAgdGhpcy5fdXBkYXRlUmVz
b3VyY2VXaXRoUmVzcG9uc2UoZnJhbWVSZXNvdXJjZSwgZnJhbWVQYXlsb2FkLnJlc291cmNlLnJl
c3BvbnNlKTsKICAgICAgICAgZnJhbWVSZXNvdXJjZS50eXBlID0gV2ViSW5zcGVjdG9yLlJlc291
cmNlLlR5cGVbIkRvY3VtZW50Il07CisgICAgICAgIGZyYW1lUmVzb3VyY2UuZmluaXNoZWQgPSB0
cnVlOworICAgICAgICB0aGlzLl9iaW5kUmVzb3VyY2VVUkwoZnJhbWVSZXNvdXJjZSk7CisKICAg
ICAgICAgdGhpcy5fcmVzb3VyY2VUcmVlTW9kZWwuYWRkT3JVcGRhdGVGcmFtZShwYXJlbnRGcmFt
ZUlkLCBmcmFtZVBheWxvYWQuaWQsIGZyYW1lUmVzb3VyY2UuZGlzcGxheU5hbWUpOwogICAgICAg
ICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5hZGRSZXNvdXJjZVRvRnJhbWUoZnJhbWVQYXlsb2Fk
LmlkLCBmcmFtZVJlc291cmNlKTsKIApAQCAtMzE5LDE4ICszMzgsMjQgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgcmVzb3VyY2Ug
PSB0aGlzLl9jcmVhdGVSZXNvdXJjZShudWxsLCBjYWNoZWRSZXNvdXJjZS51cmwsIGNhY2hlZFJl
c291cmNlLmxvYWRlcik7CiAgICAgICAgICAgICB0aGlzLl91cGRhdGVSZXNvdXJjZVdpdGhDYWNo
ZWRSZXNvdXJjZShyZXNvdXJjZSwgY2FjaGVkUmVzb3VyY2UpOwogICAgICAgICAgICAgcmVzb3Vy
Y2UuZmluaXNoZWQgPSB0cnVlOworICAgICAgICAgICAgdGhpcy5fYmluZFJlc291cmNlVVJMKHJl
c291cmNlKTsKICAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLmFkZFJlc291cmNl
VG9GcmFtZShmcmFtZVBheWxvYWQuaWQsIHJlc291cmNlKTsKICAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gZnJhbWVSZXNvdXJjZTsKICAgICB9LAogCiAgICAgcmVzb3VyY2VGb3JVUkw6IGZ1bmN0
aW9uKHVybCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5y
ZXNvdXJjZUZvclVSTCh1cmwpOworICAgICAgICAvLyBGSVhNRTogcmVjZWl2ZSBmcmFtZUlkIGhl
cmUuCisgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuX3Jlc291cmNlc0J5VVJMW3VybF07CisgICAg
ICAgIGlmIChlbnRyeSBpbnN0YW5jZW9mIEFycmF5KQorICAgICAgICAgICAgcmV0dXJuIGVudHJ5
WzBdOworICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgfSwKIAogICAgIGFkZENvbnNvbGVNZXNz
YWdlOiBmdW5jdGlvbihtc2cpCiAgICAgewotICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9y
ZXNvdXJjZVRyZWVNb2RlbC5yZXNvdXJjZUZvclVSTChtc2cudXJsKTsKKyAgICAgICAgdmFyIHJl
c291cmNlID0gdGhpcy5yZXNvdXJjZUZvclVSTChtc2cudXJsKTsKICAgICAgICAgaWYgKCFyZXNv
dXJjZSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMzU1LDYgKzM4MCwzOCBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJlc291cmNl
LmNsZWFyRXJyb3JzQW5kV2FybmluZ3MoKTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9yZXNv
dXJjZVRyZWVNb2RlbC5mb3JBbGxSZXNvdXJjZXMoY2FsbGJhY2spOworICAgIH0sCisKKyAgICBm
b3JBbGxSZXNvdXJjZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdGhpcy5f
cmVzb3VyY2VUcmVlTW9kZWwuZm9yQWxsUmVzb3VyY2VzKGNhbGxiYWNrKTsKKyAgICB9LAorCisg
ICAgX2JpbmRSZXNvdXJjZVVSTDogZnVuY3Rpb24ocmVzb3VyY2UpCisgICAgeworICAgICAgICB2
YXIgcmVzb3VyY2VGb3JVUkwgPSB0aGlzLl9yZXNvdXJjZXNCeVVSTFtyZXNvdXJjZS51cmxdOwor
ICAgICAgICBpZiAoIXJlc291cmNlRm9yVVJMKQorICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2Vz
QnlVUkxbcmVzb3VyY2UudXJsXSA9IHJlc291cmNlOworICAgICAgICBlbHNlIGlmIChyZXNvdXJj
ZUZvclVSTCBpbnN0YW5jZW9mIEFycmF5KQorICAgICAgICAgICAgcmVzb3VyY2VGb3JVUkwucHVz
aChyZXNvdXJjZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5
VVJMW3Jlc291cmNlLnVybF0gPSBbIHJlc291cmNlRm9yVVJMIF07CisgICAgfSwKKworICAgIF91
bmJpbmRSZXNvdXJjZVVSTDogZnVuY3Rpb24ocmVzb3VyY2UpCisgICAgeworICAgICAgICB2YXIg
cmVzb3VyY2VGb3JVUkwgPSB0aGlzLl9yZXNvdXJjZXNCeVVSTFtyZXNvdXJjZS51cmxdOworICAg
ICAgICBpZiAoIXJlc291cmNlRm9yVVJMKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGlmIChyZXNvdXJjZUZvclVSTCBpbnN0YW5jZW9mIEFycmF5KSB7CisgICAgICAgICAgICByZXNv
dXJjZUZvclVSTC5yZW1vdmUocmVzb3VyY2UsIHRydWUpOworICAgICAgICAgICAgaWYgKHJlc291
cmNlRm9yVVJMLmxlbmd0aCA9PT0gMSkKKyAgICAgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZXNC
eVVSTFtyZXNvdXJjZS51cmxdID0gcmVzb3VyY2VGb3JVUkxbMF07CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICBkZWxldGUgdGhpcy5fcmVzb3VyY2VzQnlVUkxbcmVz
b3VyY2UudXJsXTsKICAgICB9CiB9CiAKQEAgLTQxMCwxMSArNDY3LDYgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlTWFuYWdlci5leGlzdGluZ1Jlc291cmNlVmlld0ZvclJlc291cmNlID0gZnVuY3Rp
b24ocmVzb3VyY2UKIAogV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5nZXRDb250ZW50ID0g
ZnVuY3Rpb24ocmVzb3VyY2UsIGJhc2U2NEVuY29kZSwgY2FsbGJhY2spCiB7Ci0gICAgaWYgKCJv
dmVycmlkZW5Db250ZW50IiBpbiByZXNvdXJjZSkgewotICAgICAgICBjYWxsYmFjayhyZXNvdXJj
ZS5vdmVycmlkZW5Db250ZW50KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIC8vIEZJ
WE1FOiBldmVudHVhbGx5LCBjYWNoZWQgcmVzb3VyY2VzIHdpbGwgaGF2ZSBubyBpZGVudGlmaWVy
cy4KICAgICBpZiAocmVzb3VyY2UubG9hZGVyKQogICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJl
c291cmNlQ29udGVudChyZXNvdXJjZS5sb2FkZXIuZnJhbWVJZCwgcmVzb3VyY2UudXJsLCBiYXNl
NjRFbmNvZGUsIGNhbGxiYWNrKTsKQEAgLTQyNiw3ICs0NzgsNiBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmVlTW9kZWwgPSBmdW5jdGlvbigpCiB7CiAgICAgdGhpcy5fcmVzb3VyY2VzQnlGcmFt
ZUlkID0ge307CiAgICAgdGhpcy5fc3ViZnJhbWVzID0ge307Ci0gICAgdGhpcy5fcmVzb3VyY2Vz
QnlVUkwgPSB7fTsKIH0KIAogV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlw
ZSA9IHsKQEAgLTQ0OSw4ICs1MDAsMTAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5hZGRPclVwZGF0ZUZyYW1lKHBhcmVudEZyYW1l
SWQsIGxvYWRlci5mcmFtZUlkLCB0bXBSZXNvdXJjZS5kaXNwbGF5TmFtZSk7CiAKICAgICAgICAg
dmFyIHJlc291cmNlc0ZvckZyYW1lID0gdGhpcy5fcmVzb3VyY2VzQnlGcmFtZUlkW2xvYWRlci5m
cmFtZUlkXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IHJlc291cmNlc0ZvckZyYW1lICYmIGkg
PCByZXNvdXJjZXNGb3JGcmFtZS5sZW5ndGg7ICsraSkKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IHJlc291cmNlc0ZvckZyYW1lICYmIGkgPCByZXNvdXJjZXNGb3JGcmFtZS5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlTWFuYWdlci5fYmluZFJlc291cmNl
VVJMKHJlc291cmNlc0ZvckZyYW1lW2ldKTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMuc3RvcmFnZS5hZGRSZXNvdXJjZVRvRnJhbWUobG9hZGVyLmZyYW1lSWQsIHJlc291cmNlc0Zv
ckZyYW1lW2ldKTsKKyAgICAgICAgfQogICAgIH0sCiAKICAgICBmcmFtZURldGFjaGVkRnJvbVBh
cmVudDogZnVuY3Rpb24oZnJhbWVJZCkKQEAgLTQ4Myw3ICs1MzYsNiBAQCBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fcmVzb3Vy
Y2VzQnlGcmFtZUlkW2ZyYW1lSWRdID0gcmVzb3VyY2VzRm9yRnJhbWU7CiAgICAgICAgIH0KICAg
ICAgICAgcmVzb3VyY2VzRm9yRnJhbWUucHVzaChyZXNvdXJjZSk7Ci0gICAgICAgIHRoaXMuX2Jp
bmRSZXNvdXJjZVVSTChyZXNvdXJjZSk7CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5z
dG9yYWdlLmFkZFJlc291cmNlVG9GcmFtZShmcmFtZUlkLCByZXNvdXJjZSk7CiAgICAgfSwKQEAg
LTUwMSw3ICs1NTMsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgIHByZXNlcnZlZFJlc291cmNlc0ZvckZyYW1lLnB1c2gocmVz
b3VyY2UpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgdGhpcy5fdW5iaW5kUmVzb3VyY2VVUkwocmVzb3VyY2UpOworICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLnJlc291cmNlTWFuYWdlci5fdW5iaW5kUmVzb3VyY2VVUkwocmVzb3VyY2UpOwog
ICAgICAgICB9CiAKICAgICAgICAgZGVsZXRlIHRoaXMuX3Jlc291cmNlc0J5RnJhbWVJZFtmcmFt
ZUlkXTsKQEAgLTUwOSw0MiArNTYxLDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5RnJhbWVJZFtmcmFt
ZUlkXSA9IHByZXNlcnZlZFJlc291cmNlc0ZvckZyYW1lOwogICAgIH0sCiAKLSAgICBfYmluZFJl
c291cmNlVVJMOiBmdW5jdGlvbihyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHZhciByZXNvdXJj
ZUZvclVSTCA9IHRoaXMuX3Jlc291cmNlc0J5VVJMW3Jlc291cmNlLnVybF07Ci0gICAgICAgIGlm
ICghcmVzb3VyY2VGb3JVUkwpCi0gICAgICAgICAgICB0aGlzLl9yZXNvdXJjZXNCeVVSTFtyZXNv
dXJjZS51cmxdID0gcmVzb3VyY2U7Ci0gICAgICAgIGVsc2UgaWYgKHJlc291cmNlRm9yVVJMIGlu
c3RhbmNlb2YgQXJyYXkpCi0gICAgICAgICAgICByZXNvdXJjZUZvclVSTC5wdXNoKHJlc291cmNl
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VzQnlVUkxbcmVzb3Vy
Y2UudXJsXSA9IFsgcmVzb3VyY2VGb3JVUkwgXTsKLSAgICB9LAotCi0gICAgX3VuYmluZFJlc291
cmNlVVJMOiBmdW5jdGlvbihyZXNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZUZv
clVSTCA9IHRoaXMuX3Jlc291cmNlc0J5VVJMW3Jlc291cmNlLnVybF07Ci0gICAgICAgIGlmICgh
cmVzb3VyY2VGb3JVUkwpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHJlc291
cmNlRm9yVVJMIGluc3RhbmNlb2YgQXJyYXkpIHsKLSAgICAgICAgICAgIHJlc291cmNlRm9yVVJM
LnJlbW92ZShyZXNvdXJjZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2VGb3JVUkwu
bGVuZ3RoID09PSAxKQotICAgICAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5VVJMW3Jlc291
cmNlLnVybF0gPSByZXNvdXJjZUZvclVSTFswXTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotCi0gICAgICAgIGRlbGV0ZSB0aGlzLl9yZXNvdXJjZXNCeVVSTFtyZXNvdXJjZS51cmxd
OwotICAgIH0sCi0KLSAgICByZXNvdXJjZUZvclVSTDogZnVuY3Rpb24odXJsKQotICAgIHsKLSAg
ICAgICAgLy8gRklYTUU6IHJlY2VpdmUgZnJhbWVJZCBoZXJlLgotICAgICAgICB2YXIgZW50cnkg
PSB0aGlzLl9yZXNvdXJjZXNCeVVSTFt1cmxdOwotICAgICAgICBpZiAoZW50cnkgaW5zdGFuY2Vv
ZiBBcnJheSkKLSAgICAgICAgICAgIHJldHVybiBlbnRyeVswXTsKLSAgICAgICAgcmV0dXJuIGVu
dHJ5OwotICAgIH0sCi0KICAgICBmb3JBbGxSZXNvdXJjZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQog
ICAgIHsKICAgICAgICAgdGhpcy5fY2FsbEZvckZyYW1lUmVzb3VyY2VzKDAsIGNhbGxiYWNrKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwuanMg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzCmluZGV4IGFiYjU3
ODUuLmY5MGY0MGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9y
YWdlUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0b3JhZ2VQYW5l
bC5qcwpAQCAtMTMwLDcgKzEzMCw3IEBAIFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgICAgIHZhciBwYXJlbnRUcmVlRWxlbWVudCA9IHBhcmVudEZyYW1lSWQg
PyB0aGlzLl90cmVlRWxlbWVudEZvckZyYW1lSWRbcGFyZW50RnJhbWVJZF0gOiB0aGlzLnJlc291
cmNlc0xpc3RUcmVlRWxlbWVudDsKICAgICAgICAgaWYgKCFwYXJlbnRUcmVlRWxlbWVudCkgewot
ICAgICAgICAgICAgY29uc29sZS5lcnJvcigiTm8gZnJhbWUgd2l0aCBpZDoiICsgcGFyZW50RnJh
bWVJZCArICIgdG8gcm91dGUgIiArIGRpc3BsYXlOYW1lICsgIiB0by4iKQorICAgICAgICAgICAg
Y29uc29sZS53YXJuaW5nKCJObyBmcmFtZSB3aXRoIGlkOiIgKyBwYXJlbnRGcmFtZUlkICsgIiB0
byByb3V0ZSAiICsgZGlzcGxheU5hbWUgKyAiIHRvLiIpCiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL25ldHdv
cmtQYW5lbC5jc3MgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmV0d29ya1BhbmVsLmNz
cwppbmRleCA0YmJhZDI0Li5lMmFmMjEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvbmV0d29ya1BhbmVsLmNzcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvbmV0d29ya1BhbmVsLmNzcwpAQCAtNDE5LDYgKzQxOSw5IEBACiAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmdiYSgwLCAwLCAyNTUsIDAuNSk7CiB9CiAKKy5uZXR3b3JrLnBhbmVsIC5yZXNvdXJj
ZXMtZGl2aWRlcnMgeworCXotaW5kZXg6IDA7Cit9CiAubmV0d29yay5wYW5lbCAucmVzb3VyY2Vz
LWRpdmlkZXJzLWxhYmVsLWJhciB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7
CiAgICAgYm9yZGVyOiBub25lOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72063</attachid>
            <date>2010-10-27 11:40:03 -0700</date>
            <delta_ts>2010-10-27 11:44:47 -0700</delta_ts>
            <desc>[PATCH] Same with the style fixed.</desc>
            <filename>fixed_style</filename>
            <type>text/plain</type>
            <size>24451</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZTRiODM2Li4yZDFjNTgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTAt
MjcgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSBk
ZWJ1Z2dlciB3b3JrIGFnYWluc3QgbmV3IHJlc291cmNlIG1hbmFnZXIuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODM3NgorCisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QyLmpzOgorICAgICAgICAoaW5pdGlhbGl6
ZV9JbnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QucmVsb2FkUGFnZUlmTmVlZGVkKToKKyAgICAg
ICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LnBhZ2VSZWxvYWRlZCk6
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24u
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJz
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMtcmVzb3VyY2VzLmh0bWw6CisK
IDIwMTAtMTAtMjcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIENo
ZWNrIGluIG5ldyBXaW5kb3dzIHJlc3VsdHMgZm9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdDIuanMKaW5kZXggOGQ5NzM0MC4uNzk1ZGM0
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0Mi5qcwpAQCAtODQsMTUgKzg0LDE1IEBAIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSA9
IGZ1bmN0aW9uKGNhbGxiYWNrKQogCiBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2VJZk5lZWRlZCA9
IGZ1bmN0aW9uKGNhbGxiYWNrKQogewotICAgIGlmICghSW5zcGVjdG9yVGVzdC5fcGFnZVdhc1Jl
bG9hZGVkKQorICAgIGlmICghSW5zcGVjdG9yVGVzdC5fcGFnZVdhc1JlbG9hZGVkKSB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuX3BhZ2VXYXNSZWxvYWRlZCA9IHRydWU7CiAgICAgICAgIEluc3Bl
Y3RvclRlc3QucmVsb2FkUGFnZShjYWxsYmFjayk7Ci0gICAgZWxzZQorICAgIH0gZWxzZQogICAg
ICAgICBjYWxsYmFjaygpOwogfQogCiBJbnNwZWN0b3JUZXN0LnBhZ2VSZWxvYWRlZCA9IGZ1bmN0
aW9uKCkKIHsKLSAgICBJbnNwZWN0b3JUZXN0Ll9wYWdlV2FzUmVsb2FkZWQgPSB0cnVlOwogICAg
IHJlc3VsdHNTeW5jaHJvbml6ZWQgPSBmYWxzZTsKICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiUGFnZSByZWxvYWRlZC4iKTsKICAgICBpZiAoSW5zcGVjdG9yVGVzdC5fcmVsb2FkUGFnZUNh
bGxiYWNrKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZS1oYXItY29udmVyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbAppbmRleCAwNTkzODM0Li4yMjI5ZTU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1o
YXItY29udmVyc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLWhhci1jb252ZXJzaW9uLmh0bWwKQEAgLTksNyArOSw3IEBAIHZhciB0ZXN0ID0g
ZnVuY3Rpb24oKQogewogICAgIGZ1bmN0aW9uIGdldEhBUihpZCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBuZXcgV2ViSW5zcGVjdG9yLkhBUkVudHJ5KFdlYkluc3BlY3Rvci5yZXNvdXJjZXNbaWRd
KS5idWlsZCgpOworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IQVJFbnRyeShXZWJJ
bnNwZWN0b3IubmV0d29ya1Jlc291cmNlc1tpZF0pLmJ1aWxkKCk7CiAgICAgfQogCiAgICAgZnVu
Y3Rpb24gYWRkQ29va2llSGVhZGVyc1RvUmVzb3VyY2UocmVzb3VyY2UpCkBAIC0yNCwxNiArMjQs
MTYgQEAgdmFyIHRlc3QgPSBmdW5jdGlvbigpCiAKICAgICBmdW5jdGlvbiBmaW5kUmVzb3VyY2VC
eVVSTCh1cmwpCiAgICAgewotICAgICAgICBmb3IgKHZhciByZXNvdXJjZSBpbiBXZWJJbnNwZWN0
b3IucmVzb3VyY2VzKSB7Ci0gICAgICAgICAgICBpZiAodXJsLnRlc3QoV2ViSW5zcGVjdG9yLnJl
c291cmNlc1tyZXNvdXJjZV0udXJsKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLnJlc291cmNlc1tyZXNvdXJjZV07CisgICAgICAgIGZvciAodmFyIGlkIGluIFdlYkluc3Bl
Y3Rvci5uZXR3b3JrUmVzb3VyY2VzKSB7CisgICAgICAgICAgICBpZiAodXJsLnRlc3QoV2ViSW5z
cGVjdG9yLm5ldHdvcmtSZXNvdXJjZXNbaWRdLnVybCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IFdlYkluc3BlY3Rvci5uZXR3b3JrUmVzb3VyY2VzW2lkXTsKICAgICAgICAgfQogICAgIH0KIAog
ICAgIEluc3BlY3RvclRlc3QuZW5hYmxlUmVzb3VyY2VUcmFja2luZyhmdW5jdGlvbigpIHsKICAg
ICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0RGVmYXVsdCgpLmV2YWx1YXRlKCJkb1hIUigp
IiwgImNvbnNvbGUiLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGFkZENvb2tpZUhlYWRlcnNU
b1Jlc291cmNlKGZpbmRSZXNvdXJjZUJ5VVJMKC9pbnNwZWN0b3ItdGVzdDJcLmpzJC8pKTsKLSAg
ICAgICAgICAgIHZhciByZXNvdXJjZXMgPSBPYmplY3Qua2V5cyhXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VzKS5tYXAoZ2V0SEFSKS5zb3J0KEluc3BlY3RvclRlc3QucmVzb3VyY2VVUkxDb21wYXJlcik7
CisgICAgICAgICAgICB2YXIgcmVzb3VyY2VzID0gT2JqZWN0LmtleXMoV2ViSW5zcGVjdG9yLm5l
dHdvcmtSZXNvdXJjZXMpLm1hcChnZXRIQVIpLnNvcnQoSW5zcGVjdG9yVGVzdC5yZXNvdXJjZVVS
TENvbXBhcmVyKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KHJlc291cmNl
cywgSW5zcGVjdG9yVGVzdC5IQVJOb25kZXRlcm1pbmlzdGljUHJvcGVydGllc1dpdGhTaXplKTsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZGlzYWJsZVJlc291cmNlVHJhY2tpbmcoKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwK
aW5kZXggMTZmYjRkYy4uZDZkYzIyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbApAQCAtMzIsNyArMzIs
MTQgQEAgZnVuY3Rpb24gb25JZnJhbWVMb2FkKCkKIAogZnVuY3Rpb24gZnJvbnRlbmRfZW5hYmxl
UmVzb3VyY2VUcmFja2luZyh0ZXN0Q29udHJvbGxlcikKIHsKLSAgICBpZiAoIVdlYkluc3BlY3Rv
ci5wYW5lbHMucmVzb3VyY2VzLnJlc291cmNlVHJhY2tpbmdFbmFibGVkKSB7CisgICAgaWYgKFBy
ZWZlcmVuY2VzLm5ldHdvcmtQYW5lbEVuYWJsZWQpIHsKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0
b3IucGFuZWxzLm5ldHdvcmsuX3BhZ2VXYXNSZWxvYWRlZCkgeworICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5uZXR3b3JrLl9wYWdlV2FzUmVsb2FkZWQgPSB0cnVlOworICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLl9yZXNldCgpOworICAgICAgICAgICAgSW5z
cGVjdG9yQmFja2VuZC5yZWxvYWRQYWdlKCk7CisgICAgICAgICAgICByZXR1cm4gImVuYWJsaW5n
IjsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoIVdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3Vy
Y2VzLnJlc291cmNlVHJhY2tpbmdFbmFibGVkKSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMucmVzb3VyY2VzLl90b2dnbGVSZXNvdXJjZVRyYWNraW5nKCk7CiAgICAgICAgIHJldHVybiAi
ZW5hYmxpbmciOwogICAgIH0KQEAgLTQzLDcgKzUwLDggQEAgZnVuY3Rpb24gZnJvbnRlbmRfZHVt
cEZvcm1EYXRhKHRlc3RDb250cm9sbGVyKQogewogICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZUZvclVSTCgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9yZXNv
dXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5UGFyYW0xPXF1ZXJ5VmFsdWUxJnF1ZXJ5UGFyYW0y
PSIpOwogCi0gICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuX3RvZ2dsZVJlc291cmNl
VHJhY2tpbmcoKTsKKyAgICBpZiAoIVByZWZlcmVuY2VzLm5ldHdvcmtQYW5lbEVuYWJsZWQpCisg
ICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLl90b2dnbGVSZXNvdXJjZVRyYWNr
aW5nKCk7CiAKICAgICBpZiAoIXJlc291cmNlKSB7CiAgICAgICAgIHRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoIk5vIHJlc291cmNlIGZvdW5kIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZXh0ZW5zaW9ucy1yZXNvdXJjZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zLXJlc291cmNlcy5odG1sCmluZGV4IGI3MGY5NzEuLjAyZjMzYTIgMTAwNzU1
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXJlc291cmNlcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXJlc291cmNlcy5odG1sCkBAIC01
NSw3ICs1NSw3IEBAIGZ1bmN0aW9uIGV4dGVuc2lvbl90ZXN0R2V0UGFnZVRpbWluZ3MobmV4dFRl
c3QpCiBmdW5jdGlvbiBkb1hIUigpCiB7CiAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOwotICAgIHhoci5vcGVuKCdHRVQnLCBsb2NhdGlvbi5ocmVmLCBmYWxzZSk7CisgICAgeGhy
Lm9wZW4oIkdFVCIsIGxvY2F0aW9uLmhyZWYsIGZhbHNlKTsKICAgICB4aHIuc2VuZChudWxsKTsK
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBmNjVkZTc0Li4yODQ4YWE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEwLTEwLTI3ICBQYXZlbCBG
ZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2UgZGVidWdnZXIgd29y
ayBhZ2FpbnN0IG5ldyByZXNvdXJjZSBtYW5hZ2VyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgzNzYKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmlkZW50aWZpZXJGb3JJbml0
aWFsUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6aWRlbnRpZmll
ckZvckluaXRpYWxSZXF1ZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX29u
R2V0UmVzb3VyY2VDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZS5zZXQgY29u
dGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZU1hbmFnZXIuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLmlkZW50aWZpZXJGb3JJbml0aWFsUmVx
dWVzdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5f
Y3JlYXRlUmVzb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5w
cm90b3R5cGUud2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZU1hbmFnZXIucHJvdG90eXBlLl91cGRhdGVSZXNvdXJjZVdpdGhSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLmRpZEZpbmlzaExvYWRpbmcp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuZGlkRmFp
bExvYWRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5
cGUuc2V0T3ZlcnJpZGVDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1h
bmFnZXIucHJvdG90eXBlLl9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLl9hZGRGcmFtZXNSZWN1cnNpdmVseSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5yZXNvdXJj
ZUZvclVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlw
ZS5hZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5h
Z2VyLnByb3RvdHlwZS5jbGVhckNvbnNvbGVNZXNzYWdlcyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5mb3JBbGxSZXNvdXJjZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuX2JpbmRSZXNvdXJjZVVSTCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5fdW5iaW5k
UmVzb3VyY2VVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5nZXRD
b250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLmRpZENvbW1pdExv
YWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJv
dG90eXBlLmFkZFJlc291cmNlVG9GcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUcmVlTW9kZWwucHJvdG90eXBlLl9jbGVhclJlc291cmNlcyk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3Rv
cmFnZVBhbmVsLnByb3RvdHlwZS5hZGRPclVwZGF0ZUZyYW1lKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL25ldHdvcmtQYW5lbC5jc3M6CisgICAgICAgICgubmV0d29yay5wYW5lbCAu
cmVzb3VyY2VzLWRpdmlkZXJzKToKKwogMjAxMC0xMC0yNyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBh
cHBsZS5jb20+CiAKICAgICAgICAgT25seSBkZWNvbXByZXNzIHBpeGVsIGJ1ZmZlcnMgd2hlbiBu
ZWVkZWQgKGFuZCBmaXggYSBjcmFzaCBpbiB0aGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5pZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4
IDJkYTBhOTIuLmM5YjljNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtMTEwLDcgKzEx
MCw3IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICBbaGFuZGxlcj1SZXNvdXJjZV0gdm9pZCBj
YWNoZWRSZXNvdXJjZXMob3V0IE9iamVjdCByZXNvdXJjZXMpOwogICAgICAgICBbaGFuZGxlcj1S
ZXNvdXJjZV0gdm9pZCByZXNvdXJjZUNvbnRlbnQoaW4gdW5zaWduZWQgbG9uZyBmcmFtZUlkLCBp
biBTdHJpbmcgdXJsLCBpbiBib29sZWFuIGJhc2U2NEVuY29kZSwgb3V0IFN0cmluZyBjb250ZW50
KTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBpZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3Qob3V0
IGxvbmcgaWRlbnRpZmllciwgb3V0IFN0cmluZyB1cmwsIG91dCBPYmplY3QgbG9hZGVyLCBvdXQg
Ym9vbGVhbiBpc01haW5SZXNvdXJjZSk7CisgICAgICAgIFtub3RpZnldIHZvaWQgaWRlbnRpZmll
ckZvckluaXRpYWxSZXF1ZXN0KG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBTdHJpbmcgdXJsLCBv
dXQgT2JqZWN0IGxvYWRlcik7CiAgICAgICAgIFtub3RpZnldIHZvaWQgd2lsbFNlbmRSZXF1ZXN0
KG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgdGltZSwgb3V0IE9iamVjdCByZXF1ZXN0
LCBvdXQgT2JqZWN0IHJlZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIG1h
cmtSZXNvdXJjZUFzQ2FjaGVkKG91dCBsb25nIGlkZW50aWZpZXIpOwogICAgICAgICBbbm90aWZ5
XSB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91Ymxl
IHRpbWUsIG91dCBTdHJpbmcgcmVzb3VyY2VUeXBlLCBvdXQgT2JqZWN0IHJlc3BvbnNlKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZDYyZWJiNi4uMzFm
NDUwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTky
MCwxMCArOTIwLDEwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aWRlbnRpZmllckZvcklu
aXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwKICAgICAgICAgcmV0dXJuOwog
ICAgIEFTU0VSVChtX2luc3BlY3RlZFBhZ2UpOwogCi0gICAgYm9vbCBpc01haW5SZXNvdXJjZSA9
IGlzTWFpblJlc291cmNlTG9hZGVyKGxvYWRlciwgcmVxdWVzdC51cmwoKSk7Ci0KICAgICBpZiAo
bV9yZXNvdXJjZUFnZW50KQotICAgICAgICBtX3Jlc291cmNlQWdlbnQtPmlkZW50aWZpZXJGb3JJ
bml0aWFsUmVxdWVzdChpZGVudGlmaWVyLCByZXF1ZXN0LnVybCgpLCBsb2FkZXIsIGlzTWFpblJl
c291cmNlKTsKKyAgICAgICAgbV9yZXNvdXJjZUFnZW50LT5pZGVudGlmaWVyRm9ySW5pdGlhbFJl
cXVlc3QoaWRlbnRpZmllciwgcmVxdWVzdC51cmwoKSwgbG9hZGVyKTsKKworICAgIGJvb2wgaXNN
YWluUmVzb3VyY2UgPSBpc01haW5SZXNvdXJjZUxvYWRlcihsb2FkZXIsIHJlcXVlc3QudXJsKCkp
OwogCiAgICAgZW5zdXJlU2V0dGluZ3NMb2FkZWQoKTsKICAgICBpZiAoIWlzTWFpblJlc291cmNl
ICYmICFyZXNvdXJjZVRyYWNraW5nRW5hYmxlZCgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCBjNzExOTc0Li45ZjgwNjJmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtMjc0LDEwICsyNzQs
MTAgQEAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKQog
ewogfQogCi12b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmlkZW50aWZpZXJGb3JJbml0aWFs
UmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEtVUkwmIHVybCwgRG9jdW1l
bnRMb2FkZXIqIGxvYWRlciwgYm9vbCBpc01haW5SZXNvdXJjZSkKK3ZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6aWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgS1VSTCYgdXJsLCBEb2N1bWVudExvYWRlciogbG9hZGVyKQogewogICAg
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGxvYWRlck9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yRG9j
dW1lbnRMb2FkZXIobG9hZGVyKTsKLSAgICBtX2Zyb250ZW5kLT5pZGVudGlmaWVyRm9ySW5pdGlh
bFJlcXVlc3QoaWRlbnRpZmllciwgdXJsLnN0cmluZygpLCBsb2FkZXJPYmplY3QsIGlzTWFpblJl
c291cmNlKTsKKyAgICBtX2Zyb250ZW5kLT5pZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3QoaWRl
bnRpZmllciwgdXJsLnN0cmluZygpLCBsb2FkZXJPYmplY3QpOwogfQogCiB2b2lkIEluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJl
Y3RSZXNwb25zZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaApp
bmRleCA4YTU0Yzg5Li4xY2RkMjkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIH5JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50KCk7CiAKLSAgICB2b2lkIGlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEtVUkwmLCBEb2N1bWVudExvYWRlciosIGJv
b2wgaXNNYWluUmVzb3VyY2UpOworICAgIHZvaWQgaWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgS1VSTCYsIERvY3VtZW50TG9hZGVyKik7
CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsK
ICAgICB2b2lkIG1hcmtSZXNvdXJjZUFzQ2FjaGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7
CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBE
b2N1bWVudExvYWRlciogbGFvZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwppbmRleCBlYTczYzM5
Li41ZTU5M2Y3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5z
aW9uU2VydmVyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25T
ZXJ2ZXIuanMKQEAgLTI5OSw2ICsyOTksNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpZHMubGVuZ3RoOyAr
K2kpIHsKICAgICAgICAgICAgIHZhciBpZCA9IGlkc1tpXTsKICAgICAgICAgICAgIHZhciByZXNv
dXJjZSA9IFdlYkluc3BlY3Rvci5uZXR3b3JrUmVzb3VyY2VzW2lkXTsKKyAKICAgICAgICAgICAg
IGlmICghcmVzb3VyY2UpCiAgICAgICAgICAgICAgICAgcmVzcG9uc2UucHVzaCh0aGlzLl9zdGF0
dXMuRV9OT1RGT1VORChpZCkpOwogICAgICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlLmpzCmluZGV4IGMxMzg1YTcuLjJkZjdiNzMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcworKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKQEAgLTYwMCw2ICs2MDAsMTEgQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jb25z
b2xlLmFkZE1lc3NhZ2UobXNnKTsKICAgICB9LAogCisgICAgc2V0IGNvbnRlbnQoY29udGVudCkK
KyAgICB7CisgICAgICAgIHRoaXMuX2NvbnRlbnQgPSBjb250ZW50OworICAgIH0sCisKICAgICBn
ZXRDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9j
b250ZW50KSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VNYW5hZ2VyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdl
ci5qcwppbmRleCAwZDViNDg1Li43YTJmMzhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VNYW5hZ2VyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZU1hbmFnZXIuanMKQEAgLTQ4LDYgKzQ4LDcgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlTWFuYWdlciA9IGZ1bmN0aW9uKCkKICAgICAgICAgImRpZENsb3NlV2ViU29ja2V0
Iik7CiAKICAgICB0aGlzLl9yZXNvdXJjZXNCeUlkID0ge307CisgICAgdGhpcy5fcmVzb3VyY2Vz
QnlVUkwgPSB7fTsKICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbCA9IG5ldyBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlTW9kZWwoKTsKICAgICBJbnNwZWN0b3JCYWNrZW5kLmNhY2hlZFJlc291
cmNlcyh0aGlzLl9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzLmJpbmQodGhpcykpOwogfQpAQCAtNTks
MTQgKzYwLDE3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yW2FyZ3VtZW50c1tpXV0gPSB0aGlzW2FyZ3VtZW50c1tp
XV0uYmluZCh0aGlzKTsKICAgICB9LAogCi0gICAgaWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0
OiBmdW5jdGlvbihpZGVudGlmaWVyLCB1cmwsIGxvYWRlciwgaXNNYWluUmVzb3VyY2UpCisgICAg
aWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0OiBmdW5jdGlvbihpZGVudGlmaWVyLCB1cmwsIGxv
YWRlcikKICAgICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNl
KGlkZW50aWZpZXIsIHVybCwgbG9hZGVyKTsKLSAgICAgICAgaWYgKGlzTWFpblJlc291cmNlKSB7
CisgICAgICAgIGlmIChsb2FkZXIudXJsID09PSB1cmwpIHsKICAgICAgICAgICAgIHJlc291cmNl
LmlzTWFpblJlc291cmNlID0gdHJ1ZTsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5tYWluUmVz
b3VyY2UgPSByZXNvdXJjZTsKICAgICAgICAgfQogCisgICAgICAgIC8vIEl0IGlzIGltcG9ydGFu
dCB0byBiaW5kIHJlc291cmNlIHVybCBlYXJseSAoYmVmb3JlIHNjcmlwdHMgY29tcGlsZSkuCisg
ICAgICAgIHRoaXMuX2JpbmRSZXNvdXJjZVVSTChyZXNvdXJjZSk7CisKICAgICAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5uZXR3b3JrLmFkZFJlc291cmNlKHJlc291cmNlKTsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLnBhbmVscy5hdWRpdHMucmVzb3VyY2VTdGFydGVkKHJlc291cmNlKTsKICAgICB9
LApAQCAtNzUsNiArNzksNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlw
ZSA9IHsKICAgICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmVz
b3VyY2UoaWRlbnRpZmllciwgdXJsKTsKICAgICAgICAgcmVzb3VyY2UubG9hZGVyID0gbG9hZGVy
OworICAgICAgICByZXNvdXJjZS5kb2N1bWVudFVSTCA9IGxvYWRlci51cmw7CiAKICAgICAgICAg
dGhpcy5fcmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXSA9IHJlc291cmNlOwogICAgICAgICByZXR1
cm4gcmVzb3VyY2U7CkBAIC05NSw5ICsxMDAsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5h
Z2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJlc291cmNlID0gdGhpcy5fYXBwZW5kUmVk
aXJlY3QocmVzb3VyY2UuaWRlbnRpZmllciwgcmVxdWVzdC51cmwpOwogICAgICAgICB9CiAKLSAg
ICAgICAgcmVzb3VyY2UucmVxdWVzdE1ldGhvZCA9IHJlcXVlc3QuaHR0cE1ldGhvZDsKLSAgICAg
ICAgcmVzb3VyY2UucmVxdWVzdEhlYWRlcnMgPSByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHM7Ci0g
ICAgICAgIHJlc291cmNlLnJlcXVlc3RGb3JtRGF0YSA9IHJlcXVlc3QucmVxdWVzdEZvcm1EYXRh
OworICAgICAgICB0aGlzLl91cGRhdGVSZXNvdXJjZVdpdGhSZXF1ZXN0KHJlc291cmNlLCByZXF1
ZXN0KTsKICAgICAgICAgcmVzb3VyY2Uuc3RhcnRUaW1lID0gdGltZTsKIAogICAgICAgICBpZiAo
aXNSZWRpcmVjdCkgewpAQCAtMTA3LDYgKzExMCwxMyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VN
YW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0
d29yay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOwogICAgIH0sCiAKKyAgICBfdXBkYXRlUmVz
b3VyY2VXaXRoUmVxdWVzdDogZnVuY3Rpb24ocmVzb3VyY2UsIHJlcXVlc3QpCisgICAgeworICAg
ICAgICByZXNvdXJjZS5yZXF1ZXN0TWV0aG9kID0gcmVxdWVzdC5odHRwTWV0aG9kOworICAgICAg
ICByZXNvdXJjZS5yZXF1ZXN0SGVhZGVycyA9IHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkczsKKyAg
ICAgICAgcmVzb3VyY2UucmVxdWVzdEZvcm1EYXRhID0gcmVxdWVzdC5yZXF1ZXN0Rm9ybURhdGE7
CisgICAgfSwKKwogICAgIF9hcHBlbmRSZWRpcmVjdDogZnVuY3Rpb24oaWRlbnRpZmllciwgcmVk
aXJlY3RVUkwpCiAgICAgewogICAgICAgICB2YXIgb3JpZ2luYWxSZXNvdXJjZSA9IHRoaXMuX3Jl
c291cmNlc0J5SWRbaWRlbnRpZmllcl07CkBAIC0xODksNiArMTk5LDcgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5uZXR3b3JrLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5wYW5lbHMuYXVkaXRzLnJlc291cmNlRmluaXNoZWQocmVzb3VyY2UpOworICAgICAgICBX
ZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2VydmVyLm5vdGlmeVJlc291cmNlRmluaXNoZWQocmVzb3Vy
Y2UpOwogICAgICAgICBkZWxldGUgdGhpcy5fcmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKICAg
ICB9LAogCkBAIC0xOTksMTAgKzIxMCwxMiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2Vy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICByZXNvdXJjZS5m
YWlsZWQgPSB0cnVlOworICAgICAgICByZXNvdXJjZS5maW5pc2hlZCA9IHRydWU7CiAgICAgICAg
IHJlc291cmNlLmVuZFRpbWUgPSB0aW1lOwogCiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMu
bmV0d29yay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOwogICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLmF1ZGl0cy5yZXNvdXJjZUZpbmlzaGVkKHJlc291cmNlKTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlSZXNvdXJjZUZpbmlzaGVkKHJlc291cmNlKTsK
ICAgICAgICAgZGVsZXRlIHRoaXMuX3Jlc291cmNlc0J5SWRbaWRlbnRpZmllcl07CiAgICAgfSwK
IApAQCAtMjI4LDEzICsyNDEsMTIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90
b3R5cGUgPSB7CiAKICAgICBzZXRPdmVycmlkZUNvbnRlbnQ6IGZ1bmN0aW9uKGlkZW50aWZpZXIs
IHNvdXJjZVN0cmluZywgdHlwZSkKICAgICB7Ci0gICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMu
X3Jlc291cmNlc0J5SWRbaWRlbnRpZmllcl07CisgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYklu
c3BlY3Rvci5wYW5lbHMubmV0d29yay5yZXNvdXJjZXNbaWRlbnRpZmllcl07CiAgICAgICAgIGlm
ICghcmVzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgcmVzb3VyY2UudHlw
ZSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlW3R5cGVdOwotICAgICAgICByZXNvdXJjZS5v
dmVycmlkZW5Db250ZW50ID0gc291cmNlU3RyaW5nOwotCisgICAgICAgIHJlc291cmNlLmNvbnRl
bnQgPSBzb3VyY2VTdHJpbmc7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5y
ZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOwogICAgIH0sCiAKQEAgLTI5OCwxMyArMzEwLDIwIEBA
IFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlID0gewogCiAgICAgX3Byb2Nl
c3NDYWNoZWRSZXNvdXJjZXM6IGZ1bmN0aW9uKG1haW5GcmFtZVBheWxvYWQpCiAgICAgewotICAg
ICAgICB0aGlzLl9hZGRGcmFtZXNSZWN1cnNpdmVseShudWxsLCBtYWluRnJhbWVQYXlsb2FkKTsK
KyAgICAgICAgdmFyIG1haW5SZXNvdXJjZSA9IHRoaXMuX2FkZEZyYW1lc1JlY3Vyc2l2ZWx5KG51
bGwsIG1haW5GcmFtZVBheWxvYWQpOworICAgICAgICBXZWJJbnNwZWN0b3IubWFpblJlc291cmNl
ID0gbWFpblJlc291cmNlOworICAgICAgICBtYWluUmVzb3VyY2UuaXNNYWluUmVzb3VyY2UgPSB0
cnVlOwogICAgIH0sCiAKICAgICBfYWRkRnJhbWVzUmVjdXJzaXZlbHk6IGZ1bmN0aW9uKHBhcmVu
dEZyYW1lSWQsIGZyYW1lUGF5bG9hZCkKICAgICB7CiAgICAgICAgIHZhciBmcmFtZVJlc291cmNl
ID0gdGhpcy5fY3JlYXRlUmVzb3VyY2UobnVsbCwgZnJhbWVQYXlsb2FkLnJlc291cmNlLnVybCwg
ZnJhbWVQYXlsb2FkLnJlc291cmNlLmxvYWRlcik7CisgICAgICAgIHRoaXMuX3VwZGF0ZVJlc291
cmNlV2l0aFJlcXVlc3QoZnJhbWVSZXNvdXJjZSwgZnJhbWVQYXlsb2FkLnJlc291cmNlLnJlcXVl
c3QpOworICAgICAgICB0aGlzLl91cGRhdGVSZXNvdXJjZVdpdGhSZXNwb25zZShmcmFtZVJlc291
cmNlLCBmcmFtZVBheWxvYWQucmVzb3VyY2UucmVzcG9uc2UpOwogICAgICAgICBmcmFtZVJlc291
cmNlLnR5cGUgPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZVsiRG9jdW1lbnQiXTsKKyAgICAg
ICAgZnJhbWVSZXNvdXJjZS5maW5pc2hlZCA9IHRydWU7CisgICAgICAgIHRoaXMuX2JpbmRSZXNv
dXJjZVVSTChmcmFtZVJlc291cmNlKTsKKwogICAgICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2Rl
bC5hZGRPclVwZGF0ZUZyYW1lKHBhcmVudEZyYW1lSWQsIGZyYW1lUGF5bG9hZC5pZCwgZnJhbWVS
ZXNvdXJjZS5kaXNwbGF5TmFtZSk7CiAgICAgICAgIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLmFk
ZFJlc291cmNlVG9GcmFtZShmcmFtZVBheWxvYWQuaWQsIGZyYW1lUmVzb3VyY2UpOwogCkBAIC0z
MTksMTggKzMzOCwyNCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2NyZWF0ZVJlc291cmNlKG51bGws
IGNhY2hlZFJlc291cmNlLnVybCwgY2FjaGVkUmVzb3VyY2UubG9hZGVyKTsKICAgICAgICAgICAg
IHRoaXMuX3VwZGF0ZVJlc291cmNlV2l0aENhY2hlZFJlc291cmNlKHJlc291cmNlLCBjYWNoZWRS
ZXNvdXJjZSk7CiAgICAgICAgICAgICByZXNvdXJjZS5maW5pc2hlZCA9IHRydWU7CisgICAgICAg
ICAgICB0aGlzLl9iaW5kUmVzb3VyY2VVUkwocmVzb3VyY2UpOwogICAgICAgICAgICAgdGhpcy5f
cmVzb3VyY2VUcmVlTW9kZWwuYWRkUmVzb3VyY2VUb0ZyYW1lKGZyYW1lUGF5bG9hZC5pZCwgcmVz
b3VyY2UpOwogICAgICAgICB9CisgICAgICAgIHJldHVybiBmcmFtZVJlc291cmNlOwogICAgIH0s
CiAKICAgICByZXNvdXJjZUZvclVSTDogZnVuY3Rpb24odXJsKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLnJlc291cmNlRm9yVVJMKHVybCk7CisgICAgICAg
IC8vIEZJWE1FOiByZWNlaXZlIGZyYW1lSWQgaGVyZS4KKyAgICAgICAgdmFyIGVudHJ5ID0gdGhp
cy5fcmVzb3VyY2VzQnlVUkxbdXJsXTsKKyAgICAgICAgaWYgKGVudHJ5IGluc3RhbmNlb2YgQXJy
YXkpCisgICAgICAgICAgICByZXR1cm4gZW50cnlbMF07CisgICAgICAgIHJldHVybiBlbnRyeTsK
ICAgICB9LAogCiAgICAgYWRkQ29uc29sZU1lc3NhZ2U6IGZ1bmN0aW9uKG1zZykKICAgICB7Ci0g
ICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLnJlc291cmNlRm9y
VVJMKG1zZy51cmwpOworICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLnJlc291cmNlRm9yVVJM
KG1zZy51cmwpOwogICAgICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICAgICAgcmV0dXJuOwog
CkBAIC0zNTUsNiArMzgwLDM4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90
eXBlID0gewogICAgICAgICAgICAgcmVzb3VyY2UuY2xlYXJFcnJvcnNBbmRXYXJuaW5ncygpOwog
ICAgICAgICB9CiAgICAgICAgIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLmZvckFsbFJlc291cmNl
cyhjYWxsYmFjayk7CisgICAgfSwKKworICAgIGZvckFsbFJlc291cmNlczogZnVuY3Rpb24oY2Fs
bGJhY2spCisgICAgeworICAgICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5mb3JBbGxSZXNv
dXJjZXMoY2FsbGJhY2spOworICAgIH0sCisKKyAgICBfYmluZFJlc291cmNlVVJMOiBmdW5jdGlv
bihyZXNvdXJjZSkKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJjZUZvclVSTCA9IHRoaXMuX3Jl
c291cmNlc0J5VVJMW3Jlc291cmNlLnVybF07CisgICAgICAgIGlmICghcmVzb3VyY2VGb3JVUkwp
CisgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZXNCeVVSTFtyZXNvdXJjZS51cmxdID0gcmVzb3Vy
Y2U7CisgICAgICAgIGVsc2UgaWYgKHJlc291cmNlRm9yVVJMIGluc3RhbmNlb2YgQXJyYXkpCisg
ICAgICAgICAgICByZXNvdXJjZUZvclVSTC5wdXNoKHJlc291cmNlKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VzQnlVUkxbcmVzb3VyY2UudXJsXSA9IFsgcmVzb3Vy
Y2VGb3JVUkwgXTsKKyAgICB9LAorCisgICAgX3VuYmluZFJlc291cmNlVVJMOiBmdW5jdGlvbihy
ZXNvdXJjZSkKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJjZUZvclVSTCA9IHRoaXMuX3Jlc291
cmNlc0J5VVJMW3Jlc291cmNlLnVybF07CisgICAgICAgIGlmICghcmVzb3VyY2VGb3JVUkwpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHJlc291cmNlRm9yVVJMIGluc3RhbmNl
b2YgQXJyYXkpIHsKKyAgICAgICAgICAgIHJlc291cmNlRm9yVVJMLnJlbW92ZShyZXNvdXJjZSwg
dHJ1ZSk7CisgICAgICAgICAgICBpZiAocmVzb3VyY2VGb3JVUkwubGVuZ3RoID09PSAxKQorICAg
ICAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5VVJMW3Jlc291cmNlLnVybF0gPSByZXNvdXJj
ZUZvclVSTFswXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGRl
bGV0ZSB0aGlzLl9yZXNvdXJjZXNCeVVSTFtyZXNvdXJjZS51cmxdOwogICAgIH0KIH0KIApAQCAt
NDEwLDExICs0NjcsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLmV4aXN0aW5nUmVz
b3VyY2VWaWV3Rm9yUmVzb3VyY2UgPSBmdW5jdGlvbihyZXNvdXJjZQogCiBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VNYW5hZ2VyLmdldENvbnRlbnQgPSBmdW5jdGlvbihyZXNvdXJjZSwgYmFzZTY0RW5j
b2RlLCBjYWxsYmFjaykKIHsKLSAgICBpZiAoIm92ZXJyaWRlbkNvbnRlbnQiIGluIHJlc291cmNl
KSB7Ci0gICAgICAgIGNhbGxiYWNrKHJlc291cmNlLm92ZXJyaWRlbkNvbnRlbnQpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gRklYTUU6IGV2ZW50dWFsbHksIGNhY2hlZCByZXNv
dXJjZXMgd2lsbCBoYXZlIG5vIGlkZW50aWZpZXJzLgogICAgIGlmIChyZXNvdXJjZS5sb2FkZXIp
CiAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucmVzb3VyY2VDb250ZW50KHJlc291cmNlLmxvYWRl
ci5mcmFtZUlkLCByZXNvdXJjZS51cmwsIGJhc2U2NEVuY29kZSwgY2FsbGJhY2spOwpAQCAtNDI2
LDcgKzQ3OCw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbCA9IGZ1bmN0aW9uKCkK
IHsKICAgICB0aGlzLl9yZXNvdXJjZXNCeUZyYW1lSWQgPSB7fTsKICAgICB0aGlzLl9zdWJmcmFt
ZXMgPSB7fTsKLSAgICB0aGlzLl9yZXNvdXJjZXNCeVVSTCA9IHt9OwogfQogCiBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewpAQCAtNDQ5LDggKzUwMCwxMCBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
LmFkZE9yVXBkYXRlRnJhbWUocGFyZW50RnJhbWVJZCwgbG9hZGVyLmZyYW1lSWQsIHRtcFJlc291
cmNlLmRpc3BsYXlOYW1lKTsKIAogICAgICAgICB2YXIgcmVzb3VyY2VzRm9yRnJhbWUgPSB0aGlz
Ll9yZXNvdXJjZXNCeUZyYW1lSWRbbG9hZGVyLmZyYW1lSWRdOwotICAgICAgICBmb3IgKHZhciBp
ID0gMDsgcmVzb3VyY2VzRm9yRnJhbWUgJiYgaSA8IHJlc291cmNlc0ZvckZyYW1lLmxlbmd0aDsg
KytpKQorICAgICAgICBmb3IgKHZhciBpID0gMDsgcmVzb3VyY2VzRm9yRnJhbWUgJiYgaSA8IHJl
c291cmNlc0ZvckZyYW1lLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VNYW5hZ2VyLl9iaW5kUmVzb3VyY2VVUkwocmVzb3VyY2VzRm9yRnJhbWVbaV0pOwog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zdG9yYWdlLmFkZFJlc291cmNlVG9GcmFt
ZShsb2FkZXIuZnJhbWVJZCwgcmVzb3VyY2VzRm9yRnJhbWVbaV0pOworICAgICAgICB9CiAgICAg
fSwKIAogICAgIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50OiBmdW5jdGlvbihmcmFtZUlkKQpAQCAt
NDgzLDcgKzUzNiw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZXNCeUZyYW1lSWRbZnJhbWVJZF0gPSByZXNv
dXJjZXNGb3JGcmFtZTsKICAgICAgICAgfQogICAgICAgICByZXNvdXJjZXNGb3JGcmFtZS5wdXNo
KHJlc291cmNlKTsKLSAgICAgICAgdGhpcy5fYmluZFJlc291cmNlVVJMKHJlc291cmNlKTsKIAog
ICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnN0b3JhZ2UuYWRkUmVzb3VyY2VUb0ZyYW1lKGZy
YW1lSWQsIHJlc291cmNlKTsKICAgICB9LApAQCAtNTAxLDcgKzU1Myw3IEBAIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcHJlc2Vy
dmVkUmVzb3VyY2VzRm9yRnJhbWUucHVzaChyZXNvdXJjZSk7CiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzLl91bmJpbmRSZXNvdXJjZVVS
TChyZXNvdXJjZSk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VNYW5hZ2VyLl91
bmJpbmRSZXNvdXJjZVVSTChyZXNvdXJjZSk7CiAgICAgICAgIH0KIAogICAgICAgICBkZWxldGUg
dGhpcy5fcmVzb3VyY2VzQnlGcmFtZUlkW2ZyYW1lSWRdOwpAQCAtNTA5LDQyICs1NjEsNiBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAg
dGhpcy5fcmVzb3VyY2VzQnlGcmFtZUlkW2ZyYW1lSWRdID0gcHJlc2VydmVkUmVzb3VyY2VzRm9y
RnJhbWU7CiAgICAgfSwKIAotICAgIF9iaW5kUmVzb3VyY2VVUkw6IGZ1bmN0aW9uKHJlc291cmNl
KQotICAgIHsKLSAgICAgICAgdmFyIHJlc291cmNlRm9yVVJMID0gdGhpcy5fcmVzb3VyY2VzQnlV
UkxbcmVzb3VyY2UudXJsXTsKLSAgICAgICAgaWYgKCFyZXNvdXJjZUZvclVSTCkKLSAgICAgICAg
ICAgIHRoaXMuX3Jlc291cmNlc0J5VVJMW3Jlc291cmNlLnVybF0gPSByZXNvdXJjZTsKLSAgICAg
ICAgZWxzZSBpZiAocmVzb3VyY2VGb3JVUkwgaW5zdGFuY2VvZiBBcnJheSkKLSAgICAgICAgICAg
IHJlc291cmNlRm9yVVJMLnB1c2gocmVzb3VyY2UpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0aGlzLl9yZXNvdXJjZXNCeVVSTFtyZXNvdXJjZS51cmxdID0gWyByZXNvdXJjZUZvclVSTCBd
OwotICAgIH0sCi0KLSAgICBfdW5iaW5kUmVzb3VyY2VVUkw6IGZ1bmN0aW9uKHJlc291cmNlKQot
ICAgIHsKLSAgICAgICAgdmFyIHJlc291cmNlRm9yVVJMID0gdGhpcy5fcmVzb3VyY2VzQnlVUkxb
cmVzb3VyY2UudXJsXTsKLSAgICAgICAgaWYgKCFyZXNvdXJjZUZvclVSTCkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBpZiAocmVzb3VyY2VGb3JVUkwgaW5zdGFuY2VvZiBBcnJheSkg
ewotICAgICAgICAgICAgcmVzb3VyY2VGb3JVUkwucmVtb3ZlKHJlc291cmNlLCB0cnVlKTsKLSAg
ICAgICAgICAgIGlmIChyZXNvdXJjZUZvclVSTC5sZW5ndGggPT09IDEpCi0gICAgICAgICAgICAg
ICAgdGhpcy5fcmVzb3VyY2VzQnlVUkxbcmVzb3VyY2UudXJsXSA9IHJlc291cmNlRm9yVVJMWzBd
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgZGVsZXRlIHRoaXMu
X3Jlc291cmNlc0J5VVJMW3Jlc291cmNlLnVybF07Ci0gICAgfSwKLQotICAgIHJlc291cmNlRm9y
VVJMOiBmdW5jdGlvbih1cmwpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogcmVjZWl2ZSBmcmFt
ZUlkIGhlcmUuCi0gICAgICAgIHZhciBlbnRyeSA9IHRoaXMuX3Jlc291cmNlc0J5VVJMW3VybF07
Ci0gICAgICAgIGlmIChlbnRyeSBpbnN0YW5jZW9mIEFycmF5KQotICAgICAgICAgICAgcmV0dXJu
IGVudHJ5WzBdOwotICAgICAgICByZXR1cm4gZW50cnk7Ci0gICAgfSwKLQogICAgIGZvckFsbFJl
c291cmNlczogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewogICAgICAgICB0aGlzLl9jYWxsRm9y
RnJhbWVSZXNvdXJjZXMoMCwgY2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1N0b3JhZ2VQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TdG9yYWdlUGFuZWwuanMKaW5kZXggYWJiNTc4NS4uZjkwZjQwZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0b3JhZ2VQYW5lbC5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzCkBAIC0xMzAsNyArMTMwLDcgQEAgV2Vi
SW5zcGVjdG9yLlN0b3JhZ2VQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIHBhcmVu
dFRyZWVFbGVtZW50ID0gcGFyZW50RnJhbWVJZCA/IHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJ
ZFtwYXJlbnRGcmFtZUlkXSA6IHRoaXMucmVzb3VyY2VzTGlzdFRyZWVFbGVtZW50OwogICAgICAg
ICBpZiAoIXBhcmVudFRyZWVFbGVtZW50KSB7Ci0gICAgICAgICAgICBjb25zb2xlLmVycm9yKCJO
byBmcmFtZSB3aXRoIGlkOiIgKyBwYXJlbnRGcmFtZUlkICsgIiB0byByb3V0ZSAiICsgZGlzcGxh
eU5hbWUgKyAiIHRvLiIpCisgICAgICAgICAgICBjb25zb2xlLndhcm5pbmcoIk5vIGZyYW1lIHdp
dGggaWQ6IiArIHBhcmVudEZyYW1lSWQgKyAiIHRvIHJvdXRlICIgKyBkaXNwbGF5TmFtZSArICIg
dG8uIikKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmV0d29ya1BhbmVsLmNzcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9uZXR3b3JrUGFuZWwuY3NzCmluZGV4IDRiYmFkMjQuLjBiYjYxN2YgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9uZXR3b3JrUGFuZWwuY3NzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9uZXR3b3JrUGFuZWwuY3NzCkBAIC00MTks
NiArNDE5LDEwIEBACiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAyNTUsIDAuNSk7
CiB9CiAKKy5uZXR3b3JrLnBhbmVsIC5yZXNvdXJjZXMtZGl2aWRlcnMgeworICAgIHotaW5kZXg6
IDA7Cit9CisKIC5uZXR3b3JrLnBhbmVsIC5yZXNvdXJjZXMtZGl2aWRlcnMtbGFiZWwtYmFyIHsK
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgICBib3JkZXI6IG5vbmU7Cg==
</data>
<flag name="review"
          id="62241"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>