<?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>162553</bug_id>
          
          <creation_ts>2016-09-26 02:04:49 -0700</creation_ts>
          <short_desc>Fix -Wformat warnings in WebLoaderStrategy</short_desc>
          <delta_ts>2016-09-26 08:27:25 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>krollin</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1233347</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-26 02:04:49 -0700</bug_when>
    <thetext>Fix -Wformat warnings in WebLoaderStrategy:

[5257/6045] Building CXX object Source...rocess/Network/WebLoaderStrategy.cpp.o
In file included from ../../Source/WTF/wtf/StdLibExtras.h:33:0,
                 from ../../Source/WTF/wtf/FastMalloc.h:26,
                 from ../../Source/WebKit2/config.h:44,
                 from ../../Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp:26:
../../Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp: In member function ‘void WebKit::WebLoaderStrategy::scheduleLoad(WebCore::ResourceLoader&amp;, WebCore::CachedResource*, bool)’:
../../Source/WTF/wtf/Assertions.h:386:91: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 8 has type ‘uint64_t {aka long unsigned int}’ [-Wformat=]
 #define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                                           ^
../../Source/WTF/wtf/Assertions.h:409:49: note: in expansion of macro ‘LOG_ERROR’
 #define RELEASE_LOG_ERROR(channel, format, ...) LOG_ERROR(format, ##__VA_ARGS__)
                                                 ^~~~~~~~~
../../Source/WTF/wtf/Assertions.h:412:83: note: in expansion of macro ‘RELEASE_LOG_ERROR’
 #define RELEASE_LOG_ERROR_IF(isAllowed, channel, format, ...) do { if (isAllowed) RELEASE_LOG_ERROR(channel, format, ##__VA_ARGS__); } while (0)
                                                                                   ^~~~~~~~~~~~~~~~~
../../Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp:61:67: note: in expansion of macro ‘RELEASE_LOG_ERROR_IF’
 #define RELEASE_LOG_ERROR_IF_ALLOWED(permissionChecker, fmt, ...) RELEASE_LOG_ERROR_IF(permissionChecker.isAlwaysOnLoggingAllowed(), Network, &quot;%p - WebLoaderStrategy::&quot; fmt, this, ##__VA_ARGS__)
                                                                   ^~~~~~~~~~~~~~~~~~~~
../../Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp:217:9: note: in expansion of macro ‘RELEASE_LOG_ERROR_IF_ALLOWED’
         RELEASE_LOG_ERROR_IF_ALLOWED(resourceLoader, &quot;scheduleLoad: Unable to schedule resource with the NetworkProcess (frame = %p, priority = %d, pageID = %llu, frameID = %llu, resourceID = %llu)&quot;, resourceLoader.frame(), static_cast&lt;int&gt;(resourceLoader.request().priority()), loadParameters.webPageID, loadParameters.identifier, loadParameters.webFrameID);
         ^
../../Source/WTF/wtf/Assertions.h:386:91: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 9 has type ‘WebKit::ResourceLoadIdentifier {aka long unsigned int}’ [-Wformat=]
 #define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                                          ^
../../Source/WTF/wtf/Assertions.h:409:49: note: in expansion of macro ‘LOG_ERROR’
 #define RELEASE_LOG_ERROR(channel, format, ...) LOG_ERROR(format, ##__VA_ARGS__)
                                                 ^~~~~~~~~
../../Source/WTF/wtf/Assertions.h:412:83: note: in expansion of macro ‘RELEASE_LOG_ERROR’
 #define RELEASE_LOG_ERROR_IF(isAllowed, channel, format, ...) do { if (isAllowed) RELEASE_LOG_ERROR(channel, format, ##__VA_ARGS__); } while (0)
                                                                                   ^~~~~~~~~~~~~~~~~
../../Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp:61:67: note: in expansion of macro ‘RELEASE_LOG_ERROR_IF’
 #define RELEASE_LOG_ERROR_IF_ALLOWED(permissionChecker, fmt, ...) RELEASE_LOG_ERROR_IF(permissionChecker.isAlwaysOnLoggingAllowed(), Network, &quot;%p - WebLoaderStrategy::&quot; fmt, this, ##__VA_ARGS__)
                                                                   ^~~~~~~~~~~~~~~~~~~~
../../Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp:217:9: note: in expansion of macro ‘RELEASE_LOG_ERROR_IF_ALLOWED’
         RELEASE_LOG_ERROR_IF_ALLOWED(resourceLoader, &quot;scheduleLoad: Unable to schedule resource with the NetworkProcess (frame = %p, priority = %d, pageID = %llu, frameID = %llu, resourceID = %llu)&quot;, resourceLoader.frame(), static_cast&lt;int&gt;(resourceLoader.request().priority()), loadParameters.webPageID, loadParameters.identifier, loadParameters.webFrameID);
         ^
../../Source/WTF/wtf/Assertions.h:386:91: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 10 has type ‘uint64_t {aka long unsigned int}’ [-Wformat=]
 #define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
                                                                                           ^
../../Source/WTF/wtf/Assertions.h:409:49: note: in expansion of macro ‘LOG_ERROR’
 #define RELEASE_LOG_ERROR(channel, format, ...) LOG_ERROR(format, ##__VA_ARGS__)
                                                 ^~~~~~~~~
../../Source/WTF/wtf/Assertions.h:412:83: note: in expansion of macro ‘RELEASE_LOG_ERROR’
 #define RELEASE_LOG_ERROR_IF(isAllowed, channel, format, ...) do { if (isAllowed) RELEASE_LOG_ERROR(channel, format, ##__VA_ARGS__); } while (0)
                                                                                   ^~~~~~~~~~~~~~~~~
../../Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp:61:67: note: in expansion of macro ‘RELEASE_LOG_ERROR_IF’
 #define RELEASE_LOG_ERROR_IF_ALLOWED(permissionChecker, fmt, ...) RELEASE_LOG_ERROR_IF(permissionChecker.isAlwaysOnLoggingAllowed(), Network, &quot;%p - WebLoaderStrategy::&quot; fmt, this, ##__VA_ARGS__)
                                                                   ^~~~~~~~~~~~~~~~~~~~
../../Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp:217:9: note: in expansion of macro ‘RELEASE_LOG_ERROR_IF_ALLOWED’
         RELEASE_LOG_ERROR_IF_ALLOWED(resourceLoader, &quot;scheduleLoad: Unable to schedule resource with the NetworkProcess (frame = %p, priority = %d, pageID = %llu, frameID = %llu, resourceID = %llu)&quot;, resourceLoader.frame(), static_cast&lt;int&gt;(resourceLoader.request().priority()), loadParameters.webPageID, loadParameters.identifier, loadParameters.webFrameID);
         ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233350</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-26 02:30:59 -0700</bug_when>
    <thetext>Two problems here:

 * Need to use the PRIu64 macro rather to print a uint64_t, not %lld
 * The loadParameters.webFrameID argument is in the wrong place, swapped with loadParameters.identifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233351</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-26 02:31:38 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Two problems here:
&gt; 
&gt;  * Need to use the PRIu64 macro rather to print a uint64_t, not %lld

(I meant: not %llu)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233365</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-26 04:45:37 -0700</bug_when>
    <thetext>I&apos;m going to split this into two commits. First, an unreviewed commit to fix the order of the parameters. Next, a patch here to fix use of %llu. I&apos;ll audit each use of RELEASE_LOG_IF_ALLOWED in WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233369</commentid>
    <comment_count>4</comment_count>
      <attachid>289819</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-26 04:52:23 -0700</bug_when>
    <thetext>Created attachment 289819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233370</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-26 04:56:47 -0700</bug_when>
    <thetext>Committed r206371: &lt;http://trac.webkit.org/changeset/206371&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233371</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-26 04:57:36 -0700</bug_when>
    <thetext>Reopening for part two</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233382</commentid>
    <comment_count>7</comment_count>
      <attachid>289822</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-26 05:49:27 -0700</bug_when>
    <thetext>Created attachment 289822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233416</commentid>
    <comment_count>8</comment_count>
      <attachid>289822</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-26 08:27:20 -0700</bug_when>
    <thetext>Comment on attachment 289822
Patch

Clearing flags on attachment: 289822

Committed r206376: &lt;http://trac.webkit.org/changeset/206376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1233417</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-26 08:27:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289819</attachid>
            <date>2016-09-26 04:52:23 -0700</date>
            <delta_ts>2016-09-26 04:57:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162553-20160926134926.patch</filename>
            <type>text/plain</type>
            <size>2506</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjM3NTU3MzU5ZmI5ZDFh
ZDZlODQ1ZWVmNzViYWNmZjI0ODdiNGRkZi4uZmRjYTFmMmY3MzY5ZDg1YTAwYzg1YjcyOWQxYjBl
OGM1MzI2NTFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA5LTI2ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBGaXggLVdm
b3JtYXQgd2FybmluZ3MgaW4gV2ViTG9hZGVyU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFR3byBvZiB0aGUgZm9ybWF0IGFyZ3VtZW50cyBh
cmUgc3dhcHBlZC4gRml4IHRoZW0uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6
c2NoZWR1bGVMb2FkKToKKwogMjAxNi0wOS0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXSzJdIEVuYWJsZSBzdXBwb3J0IGZvciAnZG93bmxvYWQnIGF0dHJp
YnV0ZSBvbiBhbmNob3IgZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGY4Y2I5M2QyZGQ2MDBl
OTQ5ZTQxNTVhOWE4ZTE2YjNjM2MxOWEzZDEuLjg1YTQ2YjNlYzI0NjUwOTQ3YTFkYmY2ZjQ5MWIw
OTk4MGYyNjUyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2Fk
ZXIsIENhY2hlZFJlc291CiAgICAgQVNTRVJUKChsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgJiYg
bG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCkgfHwgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVu
dGlhbFBvbGljeSA9PSBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JD
cmVkZW50aWFscyk7CiAKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtD
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJlc291cmNlTG9hZChsb2FkUGFyYW1ldGVycyksIDApKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJz
Y2hlZHVsZUxvYWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3b3Jr
UHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJWxsdSwgZnJhbWVJ
RCA9ICVsbHUsIHJlc291cmNlSUQgPSAlbGx1KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0
YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2Fk
UGFyYW1ldGVycy53ZWJQYWdlSUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGxvYWRQYXJh
bWV0ZXJzLndlYkZyYW1lSUQpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8gc2NoZWR1bGUgcmVzb3Vy
Y2Ugd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBh
Z2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCByZXNvdXJjZUlEID0gJWxsdSkiLCByZXNvdXJj
ZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3Qo
KS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELCBsb2FkUGFyYW1ldGVycy53
ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAgICAgLy8gV2UgcHJv
YmFibHkgZmFpbGVkIHRvIHNjaGVkdWxlIHRoaXMgbG9hZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2Vz
cyBiZWNhdXNlIGl0IGhhZCBjcmFzaGVkLgogICAgICAgICAvLyBUaGlzIGxvYWQgd2lsbCBuZXZl
ciBzdWNjZWVkIHNvIHdlIHdpbGwgc2NoZWR1bGUgaXQgdG8gZmFpbCBhc3luY2hyb25vdXNseS4K
ICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9hZChyZXNvdXJjZUxvYWRlcik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289822</attachid>
            <date>2016-09-26 05:49:27 -0700</date>
            <delta_ts>2016-09-26 08:27:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162553-20160926144629.patch</filename>
            <type>text/plain</type>
            <size>27935</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmUwNWFkYTQzMmZhMzE3
YWE3NzZhNGJhZmJmZmY5MWMxZjIwMTBhYy4uMDcxYjliM2ZiZTM3MzJlOGYwNzViNTI1MjcxZjkx
MTU5ODA5Nzc5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMyw2ICszLDQwIEBACiAgICAgICAgIEZpeCAtV2Zv
cm1hdCB3YXJuaW5ncyBpbiBXZWJMb2FkZXJTdHJhdGVneQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTUzCiAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29uc2lzdGVudGx5IHVzZSBQUkl1NjQgdG8gcHJp
bnQgdWludDY0X3QKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2Vi
S2l0OjpEb3dubG9hZDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmRp
ZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkQ2FuY2VsKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UpOgorCisyMDE2LTA5LTI2ICBN
aWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBGaXgg
LVdmb3JtYXQgd2FybmluZ3MgaW4gV2ViTG9hZGVyU3RyYXRlZ3kKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjU1MworCiAgICAgICAgIFVucmV2aWV3
ZWQKIAogICAgICAgICBUd28gb2YgdGhlIGZvcm1hdCBhcmd1bWVudHMgYXJlIHN3YXBwZWQuIEZp
eCB0aGVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZC5jcHAKaW5kZXggNmEyMGYwNTJiZGRiYTIzYTMxZTY3MDExYjE3YWQ4NzM1OTRj
MDVkOC4uNzJjZjA3M2U2MDZkYWJmNjI1N2MwZTk5OGFmMmVmMzUwY2E3YWQwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3Bw
CkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJgogCiB2b2lkIERvd25s
b2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBDcmVh
dGVkIChpZCA9ICVsbHUpIiwgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBDcmVhdGVkIChpZCA9ICUiIFBS
SXU2NCAiKSIsIGRvd25sb2FkSUQoKS5kb3dubG9hZElEKCkpOwogCiAgICAgc2VuZChNZXNzYWdl
czo6RG93bmxvYWRQcm94eTo6RGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKSk7CiB9CkBAIC0x
MzAsNyArMTMwLDcgQEAgdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEo
dWludDY0X3QgbGVuZ3RoKQogewogICAgIGlmICghbV9oYXNSZWNlaXZlZERhdGEpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2
aW5nIGRhdGEgKGlkID0gJWxsdSkiLCBkb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2
aW5nIGRhdGEgKGlkID0gJSIgUFJJdTY0ICIpIiwgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7
CiAgICAgICAgIG1faGFzUmVjZWl2ZWREYXRhID0gdHJ1ZTsKICAgICB9CiAKQEAgLTE2Nyw3ICsx
NjcsNyBAQCB2b2lkIERvd25sb2FkOjpkaWRDcmVhdGVEZXN0aW5hdGlvbihjb25zdCBTdHJpbmcm
IHBhdGgpCiAKIHZvaWQgRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiB7Ci0gICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkRmluaXNoOiAoaWQgPSAlbGx1KSIsIGRvd25sb2FkSUQoKS5kb3dubG9h
ZElEKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaDogKGlkID0gJSIg
UFJJdTY0ICIpIiwgZG93bmxvYWRJRCgpLmRvd25sb2FkSUQoKSk7CiAKICAgICBwbGF0Zm9ybURp
ZEZpbmlzaCgpOwogCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBEb3dubG9hZDo6ZGlkRmluaXNo
KCkKIAogdm9pZCBEb3dubG9hZDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhKQogewotICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImRpZEZhaWw6IChpZCA9ICVsbHUsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNl
bGxhdGlvbiA9ICVkLCBlcnJDb2RlID0gJWQpIiwKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJkaWRGYWlsOiAoaWQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0
aW9uID0gJWQsIGVyckNvZGUgPSAlZCkiLAogICAgICAgICBkb3dubG9hZElEKCkuZG93bmxvYWRJ
RCgpLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuZXJy
b3JDb2RlKCkpOwogCiAgICAgc2VuZChNZXNzYWdlczo6RG93bmxvYWRQcm94eTo6RGlkRmFpbChl
cnJvciwgcmVzdW1lRGF0YSkpOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIHZvaWQgRG93bmxvYWQ6OmRp
ZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYgcmVzCiAKIHZvaWQgRG93bmxvYWQ6OmRpZENhbmNlbChjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIHJlc3VtZURhdGEpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkQ2FuY2Vs
OiAoaWQgPSAlbGx1KSIsIGRvd25sb2FkSUQoKS5kb3dubG9hZElEKCkpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImRpZENhbmNlbDogKGlkID0gJSIgUFJJdTY0ICIpIiwgZG93bmxvYWRJ
RCgpLmRvd25sb2FkSUQoKSk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5OjpE
aWRDYW5jZWwocmVzdW1lRGF0YSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBkYzlkYmVmOGU2ZTNi
ZDU0MjA2NTBkMWFhMmM5NDQ1MzEyYThkMjkzLi42YTY2MmMzOTBmMDMwNDcyMTQyMTUzMWI3ODJl
MTQzYjBiZmMwZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE0OSwxMyArMTQ5LDEzIEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKIAogICAgIGlmIChtX2RlZmVyc0xvYWRpbmcpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IExvYWRpbmcgaXMgZGVmZXJyZWQgKHBhZ2VJRCA9ICVsbHUsIGZy
YW1lSUQgPSAlbGx1LCByZXNvdXJjZUlEID0gJWxsdSwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNT
eW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53
ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IExv
YWRpbmcgaXMgZGVmZXJyZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNT
eW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53
ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogI2lmIEVOQUJMRShORVRX
T1JLX0NBQ0hFKQogICAgIGlmIChjYW5Vc2VDYWNoZShvcmlnaW5hbFJlcXVlc3QoKSkpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IFJldHJpZXZpbmcgcmVzb3VyY2Ug
ZnJvbSBjYWNoZSAocGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHJlc291cmNlSUQgPSAl
bGx1LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogUmV0cmlldmluZyByZXNvdXJjZSBmcm9tIGNhY2hl
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAg
ICAgICAgIHJldHJpZXZlQ2FjaGVFbnRyeShvcmlnaW5hbFJlcXVlc3QoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0xOTgsNyArMTk4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAK
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFy
dE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHJlc291cmNlSUQg
PSAlbGx1LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFp
blJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAKICAgICBjb25zdW1lU2FuZGJveEV4
dGVuc2lvbnMoKTsKIApAQCAtMjE4LDcgKzIxOCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzdGFydE5ldHdvcmtMb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAg
ICBhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IFNlc3Npb25UcmFja2VyOjpuZXR3b3JrU2Vzc2lvbihw
YXJhbWV0ZXJzLnNlc3Npb25JRCk7CiAgICAgaWYgKCFuZXR3b3JrU2Vzc2lvbikgewogICAgICAg
ICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEg
c2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgcGFyYW1ldGVy
cy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0
aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAocGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9
ICVsbHUsIHJlc291cmNlSUQgPSAlbGx1LCBzZXNzaW9uSUQ9JWxsdSkiLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5l
dHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
Iiwgc2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5z
ZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwogICAgICAgICBkaWRGYWlsTG9hZGluZyhpbnRlcm5hbEVy
cm9yKHJlcXVlc3QudXJsKCkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIyOCw3ICsy
MjgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAjZW5kaWYKIAogICAgIGlmIChtX2RlZmVyc0xv
YWRpbmcpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9h
ZDogQ3JlYXRlZCwgYnV0IGRlZmVycmVkIChwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwg
cmVzb3VyY2VJRCA9ICVsbHUpIiwKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3Rh
cnROZXR3b3JrTG9hZDogQ3JlYXRlZCwgYnV0IGRlZmVycmVkIChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwKICAg
ICAgICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgfQogfQpAQCAtMjQwLDkgKzI0MCw5IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJz
KQogICAgIG1fZGVmZXJzTG9hZGluZyA9IGRlZmVyczsKIAogICAgIGlmIChkZWZlcnMpCi0gICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInNldERlZmVyc0xvYWRpbmc6IERlZmVycmluZyBy
ZXNvdXJjZSBsb2FkIChwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgcmVzb3VyY2VJRCA9
ICVsbHUpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgic2V0RGVmZXJzTG9hZGluZzogRGVmZXJyaW5nIHJlc291cmNlIGxvYWQgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgic2V0RGVmZXJzTG9hZGluZzogUmVzdW1pbmcgZGVmZXJyZWQgcmVzb3VyY2UgbG9h
ZCAocGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHJlc291cmNlSUQgPSAlbGx1KSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRl
cnMuaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInNldERlZmVy
c0xvYWRpbmc6IFJlc3VtaW5nIGRlZmVycmVkIHJlc291cmNlIGxvYWQgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAgaWYgKG1fbmV0d29ya0xvYWQpIHsKICAgICAgICAg
bV9uZXR3b3JrTG9hZC0+c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOwpAQCAtMjUyLDcgKzI1Miw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVm
ZXJzKQogICAgIGlmICghbV9kZWZlcnNMb2FkaW5nKQogICAgICAgICBzdGFydCgpOwogICAgIGVs
c2UKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic2V0RGVmZXJzTG9hZGluZzogZGVm
ZXJzID0gVFJVRSwgYnV0IG5vdGhpbmcgdG8gc3RvcCAocGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9
ICVsbHUsIHJlc291cmNlSUQgPSAlbGx1KSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoInNldERlZmVyc0xvYWRpbmc6IGRlZmVycyA9IFRSVUUsIGJ1
dCBub3RoaW5nIHRvIHN0b3AgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlE
LCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogfQog
CiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cCgpCkBAIC0yODksNyArMjg5LDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0KCkKIHsKICAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiYWJvcnQ6IENh
bmNlbGluZyByZXNvdXJjZSBsb2FkIChwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgcmVz
b3VyY2VJRCA9ICVsbHUpIiwKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJhYm9ydDogQ2Fu
Y2VsaW5nIHJlc291cmNlIGxvYWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLAogICAgICAgICBtX3BhcmFtZXRl
cnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIpOwogCiAgICAgaWYgKG1fbmV0d29ya0xvYWQgJiYgIW1fZGlkQ29udmVydFRvRG93bmxv
YWQpIHsKQEAgLTMwOCw3ICszMDgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJv
cnQoKQogCiBhdXRvIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3BvbnNlKSAtPiBTaG91bGRDb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZXNwb25zZTogKHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCByZXNvdXJjZUlEID0gJWxs
dSwgaHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJWxsZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIs
IHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5leHBl
Y3RlZENvbnRlbnRMZW5ndGgoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVj
ZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBodHRwU3RhdHVzQ29kZSA9ICVkLCBsZW5ndGgg
PSAlIiBQUklkNjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0
YXR1c0NvZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CiAK
ICAgICBtX3Jlc3BvbnNlID0gV1RGTW92ZShyZWNlaXZlZFJlc3BvbnNlKTsKIApAQCAtMzUwLDE4
ICszNTAsMTggQEAgYXV0byBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICNlbmRpZgogCiAgICAgaWYgKHNo
b3VsZENvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogU2hvdWxkIHdhaXQgZm9yIG1lc3NhZ2UgZnJv
bSBXZWJDb250ZW50IHByb2Nlc3MgYmVmb3JlIGNvbnRpbnVpbmcgcmVzb3VyY2UgbG9hZCAocGFn
ZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHJlc291cmNlSUQgPSAlbGx1KSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNw
b25zZTogU2hvdWxkIHdhaXQgZm9yIG1lc3NhZ2UgZnJvbSBXZWJDb250ZW50IHByb2Nlc3MgYmVm
b3JlIGNvbnRpbnVpbmcgcmVzb3VyY2UgbG9hZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRp
Zmllcik7CiAgICAgICAgIHJldHVybiBTaG91bGRDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZTo6
WWVzOwogICAgIH0KIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNw
b25zZTogU2hvdWxkIG5vdCB3YWl0IGZvciBtZXNzYWdlIGZyb20gV2ViQ29udGVudCBwcm9jZXNz
IGJlZm9yZSBjb250aW51aW5nIHJlc291cmNlIGxvYWQgKHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQg
PSAlbGx1LCByZXNvdXJjZUlEID0gJWxsdSkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogU2hvdWxkIG5vdCB3YWl0IGZv
ciBtZXNzYWdlIGZyb20gV2ViQ29udGVudCBwcm9jZXNzIGJlZm9yZSBjb250aW51aW5nIHJlc291
cmNlIGxvYWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIHJldHVybiBT
aG91bGRDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZTo6Tm87CiB9CiAKIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVy
LCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBpZiAoIW1faGFzUmVjZWl2
ZWREYXRhKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVCdWZm
ZXI6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRhdGEgKHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1
LCByZXNvdXJjZUlEID0gJWxsdSkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRl
cnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFydGVkIHJlY2VpdmluZyBkYXRh
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAgICAgbV9oYXNSZWNlaXZl
ZERhdGEgPSB0cnVlOwogICAgIH0KIApAQCAtMzkyLDcgKzM5Miw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVy
LCBpbnQgcmVwCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5n
KGRvdWJsZSBmaW5pc2hUaW1lKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZp
bmlzaExvYWRpbmc6IChwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgcmVzb3VyY2VJRCA9
ICVsbHUpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRGaW5pc2hMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQs
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICNp
ZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKICAgICBpZiAobV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlv
bikgewpAQCAtNDIzLDcgKzQyMyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRG
aW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQgPSAlbGx1LCBm
cmFtZUlEID0gJWxsdSwgcmVzb3VyY2VJRCA9ICVsbHUsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNl
bGxhdGlvbiA9ICVkLCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJvci5pc1Rp
bWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgZXJyQ29kZSA9ICVkKSIsIG1fcGFy
YW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCksIGVy
cm9yLmVycm9yQ29kZSgpKTsKIAogICAgIEFTU0VSVCghZXJyb3IuaXNOdWxsKCkpOwogCkBAIC00
NjksNyArNDY5LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVkaXJl
Y3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKIAogdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5l
d1JlcXVlc3QpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2Vu
ZFJlcXVlc3Q6IChwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgcmVzb3VyY2VJRCA9ICVs
bHUpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250
aW51ZVdpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwog
CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCiAgICAgaWYgKG1faXNXYWl0aW5nQ29udGludWVX
aWxsU2VuZFJlcXVlc3RGb3JDYWNoZWRSZWRpcmVjdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggODVh
NDZiM2VjMjQ2NTA5NDdhMWRiZjZmNDkxYjA5OTgwZjI2NTJjMy4uYTlhODQzZGUxMmIyYmQ5OTU4
NTQwMzhmNzg2MWU4MzhiMWE1YTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0xNTEsNyArMTUxLDcg
QEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiBy
ZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAgICAvLyB0aGVuIHdlIHNob3VsZCByZW1lbWJl
ciB0aGUgUmVzb3VyY2VMb2FkZXIgaW4gb3VyIHJlY29yZHMgYnV0IG5vdCBzY2hlZHVsZSBpdCBp
biB0aGUgTmV0d29ya1Byb2Nlc3MuCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLmRvY3VtZW50TG9h
ZGVyKCktPnNjaGVkdWxlQXJjaGl2ZUxvYWQocmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVy
LnJlcXVlc3QoKSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nl
c3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFu
ZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291
cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hp
dmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHJlc291cmNlSUQgPSAlbGx1KSIsIHJlc291cmNlTG9h
ZGVyLmZyYW1lKCksIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGFu
IGFyY2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgbV93ZWJSZXNv
dXJjZUxvYWRlcnMuc2V0KGlkZW50aWZpZXIsIFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVz
b3VyY2VMb2FkZXIsIHRyYWNraW5nUGFyYW1ldGVycykpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMTU5LDE0ICsxNTksMTQgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVM
b2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKIAogICAgIGlm
IChyZXNvdXJjZUxvYWRlci5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgp
LT5tYXliZUxvYWRSZXNvdXJjZShyZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2FkZXIucmVxdWVz
dCgpLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkpKSB7CiAgICAgICAgIExPRyhOZXR3
b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVM
b2FkLCB1cmwgJyVzJyB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLiIsIHJl
c291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2ls
bCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZSAoZnJhbWUgPSAlcCwgcmVzb3VyY2VJ
RCA9ICVsbHUpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgaWRlbnRpZmllcik7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVS
TCB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlIChmcmFtZSA9ICVwLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgaWRlbnRpZmll
cik7CiAgICAgICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBXZWJSZXNv
dXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChyZXNvdXJjZUxvYWRlci5yZXF1ZXN0
KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxp
bmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICcl
cycgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGFzIGRhdGEgKGZyYW1l
ID0gJXAsIHJlc291cmNlSUQgPSAlbGx1KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIGlkZW50
aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAi
c2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJhbWUgPSAlcCwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIGlkZW50aWZp
ZXIpOwogICAgICAgICBzdGFydExvY2FsTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UK
ICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBpZiAocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVy
bCgpLnByb3RvY29sSXMoUUxQcmV2aWV3UHJvdG9jb2woKSkpIHsKICAgICAgICAgTE9HKE5ldHdv
cmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZS4iLCBy
ZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdp
bGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcmVzb3Vy
Y2VJRCA9ICVsbHUpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgaWRlbnRpZmllcik7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6
IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2UgKGZyYW1lID0gJXAs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBpZGVu
dGlmaWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRl
Z3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJl
c291CiAgICAgLy8gaHR0cHM6Ly9ibG9ncy5nbm9tZS5vcmcvYWxleGwvMjAxMi8wMS8yNi9yZXNv
dXJjZXMtaW4tZ2xpYi8KICAgICBpZiAocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnBy
b3RvY29sSXMoInJlc291cmNlIikpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAi
KFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdp
bGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNv
dXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNv
dXJjZSAoZnJhbWUgPSAlcCwgcmVzb3VyY2VJRCA9ICVsbHUpIiwgcmVzb3VyY2VMb2FkZXIuZnJh
bWUoKSwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBHUmVzb3Vy
Y2UgKGZyYW1lID0gJXAsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci5mcmFtZSgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VM
b2FkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VM
b2FkZXIsIENhY2hlZFJlc291CiAgICAgQVNTRVJUKChsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQg
JiYgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCkgfHwgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3Jl
ZGVudGlhbFBvbGljeSA9PSBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRG
b3JDcmVkZW50aWFscyk7CiAKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdv
cmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJlc291cmNlTG9hZChsb2FkUGFyYW1ldGVycyksIDAp
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIs
ICJzY2hlZHVsZUxvYWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3
b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJWxsdSwgZnJh
bWVJRCA9ICVsbHUsIHJlc291cmNlSUQgPSAlbGx1KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCks
IHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBs
b2FkUGFyYW1ldGVycy53ZWJQYWdlSUQsIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQ
YXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8gc2NoZWR1bGUgcmVz
b3VyY2Ugd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQs
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+
KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2Vi
UGFnZUlELCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlm
aWVyKTsKICAgICAgICAgLy8gV2UgcHJvYmFibHkgZmFpbGVkIHRvIHNjaGVkdWxlIHRoaXMgbG9h
ZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyBiZWNhdXNlIGl0IGhhZCBjcmFzaGVkLgogICAgICAg
ICAvLyBUaGlzIGxvYWQgd2lsbCBuZXZlciBzdWNjZWVkIHNvIHdlIHdpbGwgc2NoZWR1bGUgaXQg
dG8gZmFpbCBhc3luY2hyb25vdXNseS4KICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVk
TG9hZChyZXNvdXJjZUxvYWRlcik7CkBAIC0yMjIsNyArMjIyLDcgQEAgdm9pZCBXZWJMb2FkZXJT
dHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2Fj
aGVkUmVzb3UKICAgICB9CiAKICAgICBhdXRvIHdlYlJlc291cmNlTG9hZGVyID0gV2ViUmVzb3Vy
Y2VMb2FkZXI6OmNyZWF0ZShyZXNvdXJjZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJzKTsKLSAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBS
ZXNvdXJjZSBoYXMgYmVlbiBxdWV1ZWQgZm9yIHNjaGVkdWxpbmcgd2l0aCB0aGUgTmV0d29ya1By
b2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQg
PSAlbGx1LCByZXNvdXJjZUlEID0gJWxsdSwgV2ViUmVzb3VyY2VMb2FkZXIgPSAlcCkiLCByZXNv
dXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVl
c3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELCBsb2FkUGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyLCB3ZWJSZXNvdXJjZUxvYWRl
ci5wdHIoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNj
aGVkdWxlTG9hZDogUmVzb3VyY2UgaGFzIGJlZW4gcXVldWVkIGZvciBzY2hlZHVsaW5nIHdpdGgg
dGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIsIFdlYlJlc291cmNlTG9hZGVyID0gJXApIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3Rh
dGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQ
YXJhbWV0ZXJzLndlYlBhZ2VJRCwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFt
ZXRlcnMuaWRlbnRpZmllciwgd2ViUmVzb3VyY2VMb2FkZXIucHRyKCkpOwogICAgIG1fd2ViUmVz
b3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBXVEZNb3ZlKHdlYlJlc291cmNlTG9hZGVyKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGQ3MTk3MWM5NmU0ZmU1OTA1ZjI2ZWI4MWNkZjg4OWNi
NDVmM2M5ODkuLmFlN2ExMGRmMWU0MjMzMTE4YjA3MmYwYmFkYTZiMjczY2FhY2VhMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmNwcApAQCAtNzksNyArNzksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkZXRh
Y2hGcm9tQ29yZUxvYWRlcigpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiYgcHJvcG9zZWRSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlJiYg
cmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJS
ZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0IHRvICclcyciLCBwcm9wb3NlZFJlcXVlc3Qu
dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgcmVz
b3VyY2VJRCA9ICVsbHUpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELCBtX3RyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIFJlZlB0cjxXZWJS
ZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKIApAQCAtMTAyLDcgKzEwMiw3IEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwg
dWludDY0X3QgdG90YWxCeXRlc1RvQmVTCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgbmVlZHND
b250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiB7CiAgICAgTE9HKE5ldHdvcmssICIo
V2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSBmb3IgJyVz
Jy4gU3RhdHVzICVkLiIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0
YSgpLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwg
cmVzb3VyY2VJRCA9ICVsbHUsIHN0YXR1cyA9ICVkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzdGF0dXMgPSAl
ZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJlc3BvbnNlLmh0dHBTdGF0
dXNDb2RlKCkpOwogCiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlzKTsK
IApAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlCiAgICAgTE9HKE5l
dHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhIG9m
IHNpemUgJWx1IGZvciAnJXMnIiwgZGF0YS5zaXplKCksIG1fY29yZUxvYWRlci0+dXJsKCkuc3Ry
aW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKIAogICAgIGlmICghbV9oYXNSZWNlaXZlZERhdGEpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQg
cmVjZWl2aW5nIGRhdGEgKHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCByZXNvdXJjZUlE
ID0gJWxsdSkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcg
ZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRCwgbV90cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7
CiAgICAgICAgIG1faGFzUmVjZWl2ZWREYXRhID0gdHJ1ZTsKICAgICB9CiAKQEAgLTE1Miw3ICsx
NTIsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hUaW1lKQogewogICAgIExPRyhOZXR3
b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxv
YWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEo
KSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoUmVzb3VyY2VMb2FkOiAo
cGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHJlc291cmNlSUQgPSAlbGx1KSIsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90
cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiZGlkRmluaXNoUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBpZiAoUXVp
Y2tMb29rSGFuZGxlKiBxdWlja0xvb2tIYW5kbGUgPSBtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9h
ZGVyKCktPnF1aWNrTG9va0hhbmRsZSgpKSB7CkBAIC0xNjYsNyArMTY2LDcgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hUaW1lKQog
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNv
dXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+
dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJkaWRGYWlsUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUs
IHJlc291cmNlSUQgPSAlbGx1KSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRCwgbV90cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7
CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAjaWYgVVNF
KFFVSUNLX0xPT0spCiAgICAgaWYgKFF1aWNrTG9va0hhbmRsZSogcXVpY2tMb29rSGFuZGxlID0g
bV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5xdWlja0xvb2tIYW5kbGUoKSkKQEAgLTE4
MSw3ICsxODEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2Fk
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZVJlc291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSwg
ZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2Vi
UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSBmb3IgJyVzJyIsIG1fY29yZUxvYWRl
ci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IChwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxs
dSwgcmVzb3VyY2VJRCA9ICVsbHUpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlE
KTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELCBtX3RyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGhhbmRsZS50cnlXcmFwSW5TaGFyZWRCdWZmZXIo
KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>