<?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>176135</bug_id>
          
          <creation_ts>2017-08-30 16:47:41 -0700</creation_ts>
          <short_desc>Update CacheStorage caches only if it is updated</short_desc>
          <delta_ts>2017-09-27 12:48:12 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343793</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-30 16:47:41 -0700</bug_when>
    <thetext>This will improve efficiency</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343796</commentid>
    <comment_count>1</comment_count>
      <attachid>319422</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-30 16:51:50 -0700</bug_when>
    <thetext>Created attachment 319422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343999</commentid>
    <comment_count>2</comment_count>
      <attachid>319422</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-31 11:03:16 -0700</bug_when>
    <thetext>Comment on attachment 319422
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        When sending the list of caches, CacheStorageEngineCaches will compare its counter with the one provided.

Will this work if multiple processes are using the same cache?

&gt; Source/WebCore/Modules/cache/DOMCache.h:80
&gt; +    template&lt;class Decoder&gt; static bool decode(Decoder&amp;, CacheInfos&amp;);

You could use the cool new decoder that returns a std::optional instead of taking a reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344002</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 11:05:40 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 319422 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=319422&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:9
&gt; &gt; +        When sending the list of caches, CacheStorageEngineCaches will compare its counter with the one provided.
&gt; 
&gt; Will this work if multiple processes are using the same cache?

That should work.
Each counter given to CacheStorageEngineCaches comes from a corresponding Document.
We should be able to test that kind of behavior with a single process containing several iframes.

&gt; &gt; Source/WebCore/Modules/cache/DOMCache.h:80
&gt; &gt; +    template&lt;class Decoder&gt; static bool decode(Decoder&amp;, CacheInfos&amp;);
&gt; 
&gt; You could use the cool new decoder that returns a std::optional instead of
&gt; taking a reference.

Ahah, will look at it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344146</commentid>
    <comment_count>4</comment_count>
      <attachid>319422</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-08-31 14:48:29 -0700</bug_when>
    <thetext>Comment on attachment 319422
Patch

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

&gt; Source/WebKit/NetworkProcess/cache/CacheStorageEngineCaches.cpp:236
&gt; +    ++m_updateCounter;

We need to make sure to never forget to increment the updateCounter.  Maybe we could wrap this in a function that indicates that we are marking the cache as dirty instead of incrementing a mysterious integer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344147</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 14:54:49 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 319422 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=319422&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cache/CacheStorageEngineCaches.cpp:236
&gt; &gt; +    ++m_updateCounter;
&gt; 
&gt; We need to make sure to never forget to increment the updateCounter.  Maybe
&gt; we could wrap this in a function that indicates that we are marking the
&gt; cache as dirty instead of incrementing a mysterious integer.

Sounds good, will do this.

I will try to update the decoders as a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344167</commentid>
    <comment_count>6</comment_count>
      <attachid>319534</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 15:50:14 -0700</bug_when>
    <thetext>Created attachment 319534
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344181</commentid>
    <comment_count>7</comment_count>
      <attachid>319534</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-31 16:20:07 -0700</bug_when>
    <thetext>Comment on attachment 319534
Patch for landing

Clearing flags on attachment: 319534

Committed r221454: &lt;http://trac.webkit.org/changeset/221454&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344182</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-31 16:20:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353660</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:48:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694049&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319422</attachid>
            <date>2017-08-30 16:51:50 -0700</date>
            <delta_ts>2017-08-31 15:50:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176135-20170830165149.patch</filename>
            <type>text/plain</type>
            <size>26845</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg4NjYzYjEyYjVjMzA5
NWEzZDRhOTRmY2NkMjBhYTBjZDA3YzM1Mi4uZWZlNmEwOTk3YWRhZTI2M2ZiNDljNmFhNzNjZGFk
YzhjZTNlNmM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE3LTA4LTMwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBVcGRhdGUgQ2FjaGVTdG9y
YWdlIGNhY2hlcyBvbmx5IGlmIGl0IGlzIHVwZGF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAg
ICAgICAgV2hlbiByZXRyaWV2aW5nIGNhY2hlcyBmcm9tIHRoZSBlbmdpbmUsIENhY2hlU3RvcmFn
ZSBnZXRzIGFuIHVwZGF0ZSBjb3VudGVyLgorICAgICAgICBXaGVuIHRoaXMgY291bnRlciBpcyBk
aWZmZXJlbnQgZnJvbSB0aGUgcHJldmlvdXMgcmVjZWl2ZWQgb25lLCBDYWNoZVN0b3JhZ2Ugd2ls
bCB1cGRhdGUgaXRzIGNhY2hlIGxpc3QuCisgICAgICAgIE90aGVyd2lzZSBpdCB3aWxsIHNraXAg
dGhpcyB1cGRhdGUgc3RlcC4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlU3RvcmFnZTo6cmV0cmlldmVDYWNoZXMpOgor
ICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmg6CisgICAgICAgICogTW9kdWxl
cy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlQ2FjaGVzKToKKyAgICAgICAgKiBNb2R1bGVz
L2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVDYWNoZXMpOgorICAgICAgICAqIE1vZHVsZXMv
Y2FjaGUvRE9NQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OkNhY2hlSW5m
b3M6Omlzb2xhdGVkQ29weSk6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OkNhY2hlSW5mb3M6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6Q2FjaGVJbmZvczo6ZGVjb2RlKToKKyAgICAgICAg
KiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZUNhY2hl
cyk6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Lmg6CisKKzIwMTctMDgtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCiAg
ICAgICAgIFtDYWNoZSBBUEldIFN1cHBvcnQgY2FjaGUgbmFtZXMgcGVyc2lzdGVuY3kKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTk5NQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDJhOTA3ZDQzODA1ZmRiZjRiNGYxZGYwOGRjMjkyMTM0MGZiZDAyOTYuLjVjZWY5YmMy
NzAxOGU5OTllOTkwYzg3ZjMzMWIwOTI1M2ExMDUyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzYg
QEAKIDIwMTctMDgtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCisgICAg
ICAgIFVwZGF0ZSBDYWNoZVN0b3JhZ2UgY2FjaGVzIG9ubHkgaWYgaXQgaXMgdXBkYXRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MTM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIGVhY2ggY2hh
bmdlIHRvIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcyBsaXN0IG9mIGNhY2hlLCBDYWNoZVN0b3Jh
Z2VFbmdpbmVDYWNoZXMgaW5jcmVtZW50cyBhIGNvdW50ZXIuCisgICAgICAgIFdoZW4gc2VuZGlu
ZyB0aGUgbGlzdCBvZiBjYWNoZXMsIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcyB3aWxsIGNvbXBh
cmUgaXRzIGNvdW50ZXIgd2l0aCB0aGUgb25lIHByb3ZpZGVkLgorICAgICAgICBJZiB0aGV5IHNh
cmUgdGhlIHNhbWUsIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcyB3aWxsIHJldHVybiBub3RoaW5n
LgorICAgICAgICBPdGhlcndpc2UgaXQgcmV0dXJucyB0aGUgd2hvbGUgbGlzdCBvZiBjYWNoZXMu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6cmV0cmlldmVDYWNoZXMp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGVzOjppbml0aWFsaXplKToK
KyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpDYWNoZXM6Om9wZW4pOgorICAgICAgICAo
V2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlczo6cmVtb3ZlKToKKyAgICAgICAgKFdlYktpdDo6
Q2FjaGVTdG9yYWdlOjpDYWNoZXM6OmNsZWFyTWVtb3J5UmVwcmVzZW50YXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlczo6Y2FjaGVJbmZvcyBjb25zdCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGVzOjp1cGRhdGVDb3VudGVyIGNvbnN0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlv
bjo6Y2FjaGVzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2FjaGVzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKworMjAxNy0wOC0z
MCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgW0NhY2hlIEFQ
SV0gU3VwcG9ydCBjYWNoZSBuYW1lcyBwZXJzaXN0ZW5jeQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1OTk1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcAppbmRleCA0MDBhMDkyZTI5N2FhMjY1MTllYTFi
NjBiMGJlMTM3ZDI4YmUxZmQ4Li4zNDQ3YWM5ZjdhNTkzOGQzMzQwZWFhNmJkYmExN2IyMzk2ZTgw
NzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3Bw
CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBDYWNoZVN0b3JhZ2U6OnJldHJpZXZlQ2FjaGVzKFdU
Rjo6RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKICAgICBz
ZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7Ci0gICAgbV9jb25uZWN0aW9uLT5yZXRyaWV2ZUNhY2hl
cyhvcmlnaW4sIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShDYWNoZUluZm9z
T3JFcnJvciYmIHJlc3VsdCkgeworICAgIG1fY29ubmVjdGlvbi0+cmV0cmlldmVDYWNoZXMob3Jp
Z2luLCBtX3VwZGF0ZUNvdW50ZXIsIFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShDYWNoZUluZm9zT3JFcnJvciYmIHJlc3VsdCkgewogICAgICAgICBpZiAoIW1faXNTdG9wcGVk
KSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHByb3BhZ2F0ZSB0
aGF0IGVycm9yIHVwIHRvIHRoZSBwcm9taXNlIGJhc2VkIG9wZXJhdGlvbi4KICAgICAgICAgICAg
IEFTU0VSVChyZXN1bHQuaGFzVmFsdWUoKSk7CkBAIC0xMjcsMTcgKzEyNywyMyBAQCB2b2lkIENh
Y2hlU3RvcmFnZTo6cmV0cmlldmVDYWNoZXMoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJh
Y2spCiAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGF1dG8mIGNhY2hlc0luZm8gPSByZXN1bHQu
dmFsdWUoKTsKIAotICAgICAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
Ci0gICAgICAgICAgICBtX2NhY2hlcy5yZW1vdmVBbGxNYXRjaGluZyhbJl0oYXV0byYgY2FjaGUp
IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVzSW5mby5maW5kTWF0Y2hpbmcoWyZdKGNv
bnN0IGF1dG8mIGluZm8pIHsgcmV0dXJuIGluZm8uaWRlbnRpZmllciA9PSBjYWNoZS0+aWRlbnRp
ZmllcigpOyB9KSA9PSBub3RGb3VuZDsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgZm9y
IChhdXRvJiBpbmZvIDogY2FjaGVzSW5mbykgewotICAgICAgICAgICAgICAgIGlmIChtX2NhY2hl
cy5maW5kTWF0Y2hpbmcoWyZdKGNvbnN0IGF1dG8mIGNhY2hlKSB7IHJldHVybiBpbmZvLmlkZW50
aWZpZXIgPT0gY2FjaGUtPmlkZW50aWZpZXIoKTsgfSkgPT0gbm90Rm91bmQpCi0gICAgICAgICAg
ICAgICAgICAgIG1fY2FjaGVzLmFwcGVuZChDYWNoZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIFdURk1vdmUoaW5mby5uYW1lKSwgaW5mby5pZGVudGlmaWVyLCBtX2Nvbm5lY3Rp
b24uY29weVJlZigpKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobV91cGRhdGVD
b3VudGVyICE9IGNhY2hlc0luZm8udXBkYXRlQ291bnRlcikgeworICAgICAgICAgICAgICAgIG1f
dXBkYXRlQ291bnRlciA9IGNhY2hlc0luZm8udXBkYXRlQ291bnRlcjsKKworICAgICAgICAgICAg
ICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogCisgICAgICAgICAgICAgICAg
VmVjdG9yPFJlZjxDYWNoZT4+IGNhY2hlczsKKyAgICAgICAgICAgICAgICBjYWNoZXMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShjYWNoZXNJbmZvLmluZm9zLnNpemUoKSk7CisgICAgICAgICAgICAg
ICAgZm9yIChhdXRvJiBpbmZvIDogY2FjaGVzSW5mby5pbmZvcykgeworICAgICAgICAgICAgICAg
ICAgICBhdXRvIHBvc2l0aW9uID0gbV9jYWNoZXMuZmluZE1hdGNoaW5nKFsmXShjb25zdCBhdXRv
JiBjYWNoZSkgeyByZXR1cm4gaW5mby5pZGVudGlmaWVyID09IGNhY2hlLT5pZGVudGlmaWVyKCk7
IH0pOworICAgICAgICAgICAgICAgICAgICBjYWNoZXMudW5jaGVja2VkQXBwZW5kKHBvc2l0aW9u
ICE9IG5vdEZvdW5kID8gbV9jYWNoZXNbcG9zaXRpb25dLmNvcHlSZWYoKSA6IENhY2hlOjpjcmVh
dGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGTW92ZShpbmZvLm5hbWUpLCBpbmZvLmlk
ZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgbV9jYWNoZXMgPSBXVEZNb3ZlKGNhY2hlcyk7CisKKyAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIH0KICAgICAgICAgdW5zZXRQZW5k
aW5nQWN0aXZpdHkodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0NhY2hlU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0
b3JhZ2UuaAppbmRleCA5Y2JlM2RiZDIxMGVkMGRmYTRkMGQ5MzRmYTE4MTMzZTQ1YjAzYzI3Li4z
NzAzZTU2Nzk2YWE1NjVhYWMxN2M3ZTNhMTVjNGYxNWI4NjViYTNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0
ZToKICAgICBTdHJpbmcgb3JpZ2luKCkgY29uc3Q7CiAKICAgICBWZWN0b3I8UmVmPENhY2hlPj4g
bV9jYWNoZXM7CisgICAgdWludDY0X3QgbV91cGRhdGVDb3VudGVyIHsgMCB9OwogICAgIFJlZjxD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgYm9vbCBtX2lzU3RvcHBl
ZCB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggOGE4OTJkZjJhZGM2YjkzYjdjMmYz
YzU2ODI2Y2Q0NGZiZGNhOWRjYi4uZjZlYWQ2ZTNkMmRiZjRjN2NmNzMwYjJkZjVhNDA3Mjk4NGM2
ODdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC00NywxMiArNDcsMTIgQEAgdm9pZCBDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjpyZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBDYWNoZUlkZW50
aWZpZXJDYWwKICAgICBkb1JlbW92ZShyZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVy
KTsKIH0KIAotdm9pZCBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZUNhY2hlcyhjb25z
dCBTdHJpbmcmIG9yaWdpbiwgQ2FjaGVJbmZvc0NhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIENh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlQ2FjaGVzKGNvbnN0IFN0cmluZyYgb3JpZ2lu
LCB1aW50NjRfdCB1cGRhdGVDb3VudGVyLCBDYWNoZUluZm9zQ2FsbGJhY2smJiBjYWxsYmFjaykK
IHsKICAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50
aWZpZXI7CiAgICAgbV9yZXRyaWV2ZUNhY2hlc1BlbmRpbmdSZXF1ZXN0cy5hZGQocmVxdWVzdElk
ZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAgIGRvUmV0cmlldmVDYWNoZXMocmVx
dWVzdElkZW50aWZpZXIsIG9yaWdpbik7CisgICAgZG9SZXRyaWV2ZUNhY2hlcyhyZXF1ZXN0SWRl
bnRpZmllciwgb3JpZ2luLCB1cGRhdGVDb3VudGVyKTsKIH0KIAogdm9pZCBDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBSZWNv
cmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggNGM0MjI3MTA1ZGQzNTU3YTNi
ZTZmODNhOTQ5MTdkYjBmNDQ3Y2QxZC4uMGQ0NGM5NWYyMGY5OWY3Njc2NmJkNzY5ZjlmMWUxNDQw
ZTEyNDNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0
b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBvcGVuKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSwgRE9N
Q2FjaGU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpOwogICAgIHZvaWQgcmVtb3ZlKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgRE9NQ2FjaGU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYp
OwotICAgIHZvaWQgcmV0cmlldmVDYWNoZXMoY29uc3QgU3RyaW5nJiBvcmlnaW4sIERPTUNhY2hl
OjpDYWNoZUluZm9zQ2FsbGJhY2smJik7CisgICAgdm9pZCByZXRyaWV2ZUNhY2hlcyhjb25zdCBT
dHJpbmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRlQ291bnRlciwgRE9NQ2FjaGU6OkNhY2hlSW5m
b3NDYWxsYmFjayYmKTsKIAogICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgRE9NQ2FjaGU6OlJlY29yZHNDYWxsYmFjayYmKTsKICAgICB2b2lkIGJhdGNo
RGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgQ2FjaGVRdWVyeU9wdGlvbnMmJiwgRE9NQ2FjaGU6OlJlY29yZElkZW50aWZpZXJz
Q2FsbGJhY2smJik7CkBAIC02Miw3ICs2Miw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRvT3Blbih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiAvKiBvcmlnaW4gKi8sIGNvbnN0IFN0cmluZyYgLyogY2FjaGVOYW1lICovKSB7IG9wZW5D
b21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIsIG1ha2VVbmV4cGVjdGVkKERPTUNhY2hlOjpFcnJv
cjo6Tm90SW1wbGVtZW50ZWQpKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkb1JlbW92ZSh1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgLyogY2FjaGVJZGVudGlmaWVyICovKSB7IHJl
bW92ZUNvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmllciwgbWFrZVVuZXhwZWN0ZWQoRE9NQ2FjaGU6
OkVycm9yOjpOb3RJbXBsZW1lbnRlZCkpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRvUmV0cmlldmVD
YWNoZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgLyogb3JpZ2lu
ICovKSB7IHVwZGF0ZUNhY2hlcyhyZXF1ZXN0SWRlbnRpZmllciwgeyB9KTsgfQorICAgIHZpcnR1
YWwgdm9pZCBkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIC8qIG9yaWdpbiAqLywgdWludDY0X3QgLyogdXBkYXRlQ291bnRlciAqLykgeyB1
cGRhdGVDYWNoZXMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBkb1JldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qg
LyogY2FjaGVJZGVudGlmaWVyICovKSB7IHVwZGF0ZVJlY29yZHMocmVxdWVzdElkZW50aWZpZXIs
IHsgfSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZG9CYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgLyogY2FjaGVJZGVudGlmaWVyICovLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmKSB7IGRlbGV0ZVJlY29yZHND
b21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIsIG1ha2VVbmV4cGVjdGVkKERPTUNhY2hlOjpFcnJv
cjo6Tm90SW1wbGVtZW50ZWQpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNh
Y2hlLmNwcAppbmRleCAzM2YyNzRkZGI1YmY2MzIzMGRkYTRiZGNiN2EwZTcxMTYxZjlmOWI3Li4w
ODM4ODE5OGMzNGUwZTYwZjJjZTE4MjI4MGY5M2IwMGJmZWM0NTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtMTA5LDYgKzEwOSwxNSBAQCBSZWNvcmQg
UmVjb3JkOjpjb3B5KCkgY29uc3QKICAgICByZXR1cm4gUmVjb3JkIHsgaWRlbnRpZmllciwgdXBk
YXRlUmVzcG9uc2VDb3VudGVyLCByZXF1ZXN0SGVhZGVyc0d1YXJkLCByZXF1ZXN0LCBvcHRpb25z
LCByZWZlcnJlciwgcmVzcG9uc2VIZWFkZXJzR3VhcmQsIHJlc3BvbnNlLCBjb3B5UmVzcG9uc2VC
b2R5KHJlc3BvbnNlQm9keSkgfTsKIH0KIAorQ2FjaGVJbmZvcyBDYWNoZUluZm9zOjppc29sYXRl
ZENvcHkoKQoreworICAgIFZlY3RvcjxDYWNoZUluZm8+IGlzb2xhdGVkQ2FjaGVzOworICAgIGlz
b2xhdGVkQ2FjaGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoaW5mb3Muc2l6ZSgpKTsKKyAgICBm
b3IgKGNvbnN0IGF1dG8mIGluZm8gOiBpbmZvcykKKyAgICAgICAgaXNvbGF0ZWRDYWNoZXMudW5j
aGVja2VkQXBwZW5kKENhY2hlSW5mbyB7IGluZm8uaWRlbnRpZmllciwgaW5mby5uYW1lLmlzb2xh
dGVkQ29weSgpIH0pOworICAgIHJldHVybiB7IFdURk1vdmUoaXNvbGF0ZWRDYWNoZXMpLCB1cGRh
dGVDb3VudGVyIH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIERPTUNhY2hlCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaAppbmRleCBl
ZWJlNjY3ODI3NDA5MWFjMGI3NTRiMmM1YzM0ZDA4Yjk4MTNmNzAzLi4xYzM3NzhkOTA5NzQ0MjRk
MTQ0MGVjMTBmYzUwOGNjMWVkYWYzMTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL0RPTUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9E
T01DYWNoZS5oCkBAIC03MywxMyArNzMsMjQgQEAgc3RydWN0IENhY2hlSW5mbyB7CiAgICAgU3Ry
aW5nIG5hbWU7CiB9OwogCitzdHJ1Y3QgQ2FjaGVJbmZvcyB7CisgICAgQ2FjaGVJbmZvcyBpc29s
YXRlZENvcHkoKTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIENhY2hlSW5mb3MmKTsKKworICAgIFZlY3RvcjxDYWNoZUluZm8+IGlu
Zm9zOworICAgIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXI7Cit9OworCiB1c2luZyBDYWNoZUlkZW50
aWZpZXJPckVycm9yID0gRXhwZWN0ZWQ8dWludDY0X3QsIEVycm9yPjsKIHVzaW5nIENhY2hlSWRl
bnRpZmllckNhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IENhY2hlSWRlbnRpZmll
ck9yRXJyb3ImKT47CiAKIHVzaW5nIFJlY29yZElkZW50aWZpZXJzT3JFcnJvciA9IEV4cGVjdGVk
PFZlY3Rvcjx1aW50NjRfdD4sIEVycm9yPjsKIHVzaW5nIFJlY29yZElkZW50aWZpZXJzQ2FsbGJh
Y2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVjb3JkSWRlbnRpZmllcnNPckVycm9yJiYpPjsKIAot
dXNpbmcgQ2FjaGVJbmZvc09yRXJyb3IgPSBFeHBlY3RlZDxWZWN0b3I8V2ViQ29yZTo6RE9NQ2Fj
aGU6OkNhY2hlSW5mbz4sIEVycm9yPjsKKwordXNpbmcgQ2FjaGVJbmZvc09yRXJyb3IgPSBFeHBl
Y3RlZDxDYWNoZUluZm9zLCBFcnJvcj47CiB1c2luZyBDYWNoZUluZm9zQ2FsbGJhY2sgPSBXVEY6
OkZ1bmN0aW9uPHZvaWQoQ2FjaGVJbmZvc09yRXJyb3ImJik+OwogCiB1c2luZyBSZWNvcmRzT3JF
cnJvciA9IEV4cGVjdGVkPFZlY3RvcjxSZWNvcmQ+LCBFcnJvcj47CkBAIC04Nyw2ICs5OCwxOSBA
QCB1c2luZyBSZWNvcmRzQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoUmVjb3Jkc09yRXJy
b3ImJik+OwogCiB1c2luZyBDb21wbGV0aW9uQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQo
c3RkOjpvcHRpb25hbDxFcnJvcj4mJik+OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBpbmxp
bmUgdm9pZCBDYWNoZUluZm9zOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IGluZm9zOworICAgIGVuY29kZXIgPDwgdXBkYXRlQ291bnRlcjsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIGJvb2wgQ2FjaGVJbmZvczo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIsIENhY2hlSW5mb3MmIGNhY2hlSW5mb3MpCit7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShjYWNoZUluZm9zLmluZm9zKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBkZWNvZGVyLmRlY29kZShjYWNoZUluZm9zLnVwZGF0ZUNvdW50ZXIpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBET01DYWNoZQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAppbmRleCA4MjA5OTRiMTExOGYyZDM1MGZjY2U2M2YzYjc5Yzk1OTU5
ZDI3YjM2Li45OTI0Y2FkNzM2OTI5NDk4YTEyZDU5YjQwYWE0ODg5NTlhYjY2NDRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTE0MiwyMyArMTQyLDE5IEBAIHZvaWQgV29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZW1vdmUodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIs
IHVpbnQ2NF90CiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6ZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBvcmlnaW4pCit2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmll
dmVDYWNoZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
LCB1aW50NjRfdCB1cGRhdGVDb3VudGVyKQogewotICAgIG1fcHJveHkucG9zdFRhc2tUb0xvYWRl
cihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmll
ciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JikgbXV0YWJsZSB7CisgICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4gPSBvcmln
aW4uaXNvbGF0ZWRDb3B5KCksIHVwZGF0ZUNvdW50ZXJdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAgQVNT
RVJUKG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwogCi0gICAgICAgIG1fbWFpblRocmVhZENvbm5l
Y3Rpb24tPnJldHJpZXZlQ2FjaGVzKG9yaWdpbiwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZN
b3ZlKHByb3RlY3RlZFRoaXMpLCByZXF1ZXN0SWRlbnRpZmllcl0oQ2FjaGVJbmZvc09yRXJyb3Im
JiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBtX21haW5UaHJlYWRDb25uZWN0aW9uLT5yZXRy
aWV2ZUNhY2hlcyhvcmlnaW4sIHVwZGF0ZUNvdW50ZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlSW5mb3NPckVy
cm9yJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIENhY2hlSW5mb3NPckVycm9yIGlz
b2xhdGVkUmVzdWx0OwogICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFzVmFsdWUoKSkKICAgICAg
ICAgICAgICAgICBpc29sYXRlZFJlc3VsdCA9IFdURk1vdmUocmVzdWx0KTsKLSAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgIFZlY3RvcjxDYWNoZUluZm8+IGlzb2xhdGVkQ2FjaGVz
OwotICAgICAgICAgICAgICAgIGlzb2xhdGVkQ2FjaGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
cmVzdWx0LnZhbHVlKCkuc2l6ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGNhY2hlIDogcmVzdWx0LnZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgIGlzb2xhdGVkQ2Fj
aGVzLnVuY2hlY2tlZEFwcGVuZChDYWNoZUluZm8geyBjYWNoZS5pZGVudGlmaWVyLCBjYWNoZS5u
YW1lLmlzb2xhdGVkQ29weSgpIH0pOwotICAgICAgICAgICAgICAgIGlzb2xhdGVkUmVzdWx0ID0g
V1RGTW92ZShpc29sYXRlZENhY2hlcyk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgaXNvbGF0ZWRSZXN1bHQgPSByZXN1bHQudmFsdWUoKS5pc29sYXRl
ZENvcHkoKTsKKwogICAgICAgICAgICAgbV9wcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckds
b2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwg
cmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IFdURk1vdmUoaXNvbGF0ZWRSZXN1bHQpXShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBB
U1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKICAg
ICAgICAgICAgICAgICB1cGRhdGVDYWNoZXMocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUocmVz
dWx0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDFhZGRjNTI0ZWRiOWM1ZDc3ZWU2OGE1
NGIxZWVmMThiMjg4ZDFkNzcuLjMyNjE3MWU2NjFhZDI2N2YzMzA5Y2ZkNWQ5YjQzN2Q4NTE1NTJk
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gV2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbgogICAgIHZvaWQgZG9PcGVuKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBjYWNoZU5hbWUpIGZpbmFsOwogICAgIHZvaWQgZG9SZW1vdmUodWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBk
b1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG9yaWdpbikgZmluYWw7CisgICAgdm9pZCBkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRlQ291bnRl
cikgZmluYWw7CiAKICAgICB2b2lkIGRvUmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZG9C
YXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpDYWNoZVF1ZXJ5T3B0aW9ucyYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCBhNDVm
NzNmMDA5YzliMWMwYjc4MDVlZDk5NWIzMjZiZDc2MDAwOTZiLi5mZTc2ZDhmYzBkNmNjYWRmODQ4
Yzc2OWRhMWEyNDZhNGViNDQ2MDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCkBAIC0xMjYsMTUgKzEy
NiwxNSBAQCB2b2lkIEVuZ2luZTo6cmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgQ2Fj
aGVJZGVudGlmaWVyQ2FsbGJhY2smJiBjYWxsYmFjawogICAgIH0pOwogfQogCi12b2lkIEVuZ2lu
ZTo6cmV0cmlldmVDYWNoZXMoY29uc3QgU3RyaW5nJiBvcmlnaW4sIENhY2hlSW5mb3NDYWxsYmFj
ayYmIGNhbGxiYWNrKQordm9pZCBFbmdpbmU6OnJldHJpZXZlQ2FjaGVzKGNvbnN0IFN0cmluZyYg
b3JpZ2luLCB1aW50NjRfdCB1cGRhdGVDb3VudGVyLCBDYWNoZUluZm9zQ2FsbGJhY2smJiBjYWxs
YmFjaykKIHsKLSAgICByZWFkQ2FjaGVzRnJvbURpc2sob3JpZ2luLCBbY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oQ2FjaGVzT3JFcnJvciYmIGNhY2hlc09yRXJyb3IpIG11dGFibGUgewor
ICAgIHJlYWRDYWNoZXNGcm9tRGlzayhvcmlnaW4sIFt1cGRhdGVDb3VudGVyLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXShDYWNoZXNPckVycm9yJiYgY2FjaGVzT3JFcnJvcikgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghY2FjaGVzT3JFcnJvci5oYXNWYWx1ZSgpKSB7CiAgICAgICAgICAg
ICBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChjYWNoZXNPckVycm9yLmVycm9yKCkpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGNhbGxiYWNrKGNhY2hlc09yRXJy
b3IudmFsdWUoKS5nZXQoKS5jYWNoZUluZm9zKCkpOworICAgICAgICBjYWxsYmFjayhjYWNoZXNP
ckVycm9yLnZhbHVlKCkuZ2V0KCkuY2FjaGVJbmZvcyh1cGRhdGVDb3VudGVyKSk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZS5oCmluZGV4IDkzYTc0YzFiMWE1NmJjNGQ5MjNmZDVhMjhlYTVjNTUy
OWRhNDc3ODEuLjUxMjE1ZTI5ZmExYTA3MmNlNjM1OWQxMmRjZjFhOWFmMzY4M2M4NTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3Jh
Z2VFbmdpbmUuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG9wZW4oY29u
c3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lLCBXZWJDb3JlOjpET01D
YWNoZTo6Q2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJik7CiAgICAgdm9pZCByZW1vdmUodWludDY0
X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpET01DYWNoZTo6Q2FjaGVJZGVudGlmaWVyQ2Fs
bGJhY2smJik7Ci0gICAgdm9pZCByZXRyaWV2ZUNhY2hlcyhjb25zdCBTdHJpbmcmIG9yaWdpbiwg
V2ViQ29yZTo6RE9NQ2FjaGU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKTsKKyAgICB2b2lkIHJldHJp
ZXZlQ2FjaGVzKGNvbnN0IFN0cmluZyYgb3JpZ2luLCB1aW50NjRfdCB1cGRhdGVDb3VudGVyLCBX
ZWJDb3JlOjpET01DYWNoZTo6Q2FjaGVJbmZvc0NhbGxiYWNrJiYpOwogCiAgICAgdm9pZCByZXRy
aWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpET01DYWNoZTo6
UmVjb3Jkc0NhbGxiYWNrJiYpOwogICAgIHZvaWQgcHV0UmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlk
ZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZTo6UmVjb3JkPiYmLCBXZWJDb3JlOjpE
T01DYWNoZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5l
Q2FjaGVzLmNwcAppbmRleCA5MGQ2YTEwNzlkODliZjgzMmFkYzJmN2QxZjU1OGFhZWY0Yjg4NDU3
Li41ZjI0NGQ1OTNiNmMxYTU2NzhjMTE3NGRhN2ZkNjFiOWQ0ZjY3Y2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hl
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3Jh
Z2VFbmdpbmVDYWNoZXMuY3BwCkBAIC04MSw2ICs4MSw3IEBAIHZvaWQgQ2FjaGVzOjppbml0aWFs
aXplKFdlYkNvcmU6OkRPTUNhY2hlOjpDb21wbGV0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBtX2NhY2hlcyA9IFdURk1vdmUo
cmVzdWx0LnZhbHVlKCkpOworICAgICAgICArK21fdXBkYXRlQ291bnRlcjsKICAgICAgICAgbV9p
c0luaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsKIApA
QCAtMTEyLDYgKzExMyw3IEBAIHZvaWQgQ2FjaGVzOjpvcGVuKFN0cmluZyYmIG5hbWUsIENhY2hl
SWRlbnRpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCiAKICAgICB1aW50NjRfdCBjYWNoZUlkZW50
aWZpZXIgPSBtX2VuZ2luZS0+bmV4dENhY2hlSWRlbnRpZmllcigpOwogICAgIG1fY2FjaGVzLmFw
cGVuZChDYWNoZSB7IGNhY2hlSWRlbnRpZmllciwgV1RGTW92ZShuYW1lKSwgeyB9LCAwIH0pOwor
ICAgICsrbV91cGRhdGVDb3VudGVyOwogICAgIHdyaXRlQ2FjaGVzVG9EaXNrKFtjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spLCBjYWNoZUlkZW50aWZpZXJdKHN0ZDo6b3B0aW9uYWw8RXJyb3I+
JiYgZXJyb3IpIG11dGFibGUgewogICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgIGNh
bGxiYWNrKG1ha2VVbmV4cGVjdGVkKGVycm9yLnZhbHVlKCkpKTsKQEAgLTEzMiw2ICsxMzQsNyBA
QCB2b2lkIENhY2hlczo6cmVtb3ZlKHVpbnQ2NF90IGlkZW50aWZpZXIsIENvbXBsZXRpb25DYWxs
YmFjayYmIGNhbGxiYWNrKQogICAgIGF1dG8gY2FjaGUgPSBXVEZNb3ZlKG1fY2FjaGVzW3Bvc2l0
aW9uXSk7CiAgICAgbV9jYWNoZXMucmVtb3ZlKHBvc2l0aW9uKTsKICAgICBtX3JlbW92ZWRDYWNo
ZXMuYXBwZW5kKFdURk1vdmUoY2FjaGUpKTsKKyAgICArK21fdXBkYXRlQ291bnRlcjsKIAogICAg
IHdyaXRlQ2FjaGVzVG9EaXNrKFdURk1vdmUoY2FsbGJhY2spKTsKIH0KQEAgLTIzMCwxNyArMjMz
LDIyIEBAIHZvaWQgQ2FjaGVzOjp3cml0ZUNhY2hlc1RvRGlzayhDb21wbGV0aW9uQ2FsbGJhY2sm
JiBjYWxsYmFjaykKIHZvaWQgQ2FjaGVzOjpjbGVhck1lbW9yeVJlcHJlc2VudGF0aW9uKCkKIHsK
ICAgICBtX2NhY2hlcy5jbGVhcigpOworICAgICsrbV91cGRhdGVDb3VudGVyOwogICAgIG1faXNJ
bml0aWFsaXplZCA9IGZhbHNlOwogICAgIG1fc3RvcmFnZSA9IG51bGxwdHI7CiB9CiAKLVZlY3Rv
cjxDYWNoZUluZm8+IENhY2hlczo6Y2FjaGVJbmZvcygpIGNvbnN0CitDYWNoZUluZm9zIENhY2hl
czo6Y2FjaGVJbmZvcyh1aW50NjRfdCB1cGRhdGVDb3VudGVyKSBjb25zdAogewogICAgIFZlY3Rv
cjxDYWNoZUluZm8+IGNhY2hlSW5mb3M7Ci0gICAgY2FjaGVJbmZvcy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KG1fY2FjaGVzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiBjYWNoZSA6IG1fY2FjaGVz
KQotICAgICAgICBjYWNoZUluZm9zLnVuY2hlY2tlZEFwcGVuZChDYWNoZUluZm8geyBjYWNoZS5p
ZGVudGlmaWVyLCBjYWNoZS5uYW1lIH0pOwotICAgIHJldHVybiBjYWNoZUluZm9zOworCisgICAg
aWYgKHVwZGF0ZUNvdW50ZXIgIT0gbV91cGRhdGVDb3VudGVyKSB7CisgICAgICAgIGNhY2hlSW5m
b3MucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX2NhY2hlcy5zaXplKCkpOworICAgICAgICBmb3Ig
KGF1dG8mIGNhY2hlIDogbV9jYWNoZXMpCisgICAgICAgICAgICBjYWNoZUluZm9zLnVuY2hlY2tl
ZEFwcGVuZChDYWNoZUluZm8geyBjYWNoZS5pZGVudGlmaWVyLCBjYWNoZS5uYW1lIH0pOworICAg
IH0KKworICAgIHJldHVybiB7IFdURk1vdmUoY2FjaGVJbmZvcyksIG1fdXBkYXRlQ291bnRlciB9
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hl
cy5oCmluZGV4IGE1NWM1MWQzMDUwMGQyZTUzNDVjMDUxYWMwNDFhOGY0N2Q5YWRjN2UuLjg4NjZk
NjA0ZDUxNjRhMGMxZTVjODQyMDc2ZTk4OTViNTJiMDgxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVD
YWNoZXMuaApAQCAtNDgsNyArNDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBvcGVuKFN0cmluZyYm
IG5hbWUsIFdlYkNvcmU6OkRPTUNhY2hlOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKTsKICAg
ICB2b2lkIHJlbW92ZSh1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpET01DYWNoZTo6Q29t
cGxldGlvbkNhbGxiYWNrJiYpOwogCi0gICAgVmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlOjpDYWNo
ZUluZm8+IGNhY2hlSW5mb3MoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpET01DYWNoZTo6Q2FjaGVJ
bmZvcyBjYWNoZUluZm9zKHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpIGNvbnN0OworICAgIHVpbnQ2
NF90IHVwZGF0ZUNvdW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZUNvdW50ZXI7IH0KIAog
ICAgIHZvaWQgY2xlYXJNZW1vcnlSZXByZXNlbnRhdGlvbigpOwogICAgIHZvaWQgZGV0YWNoKCkg
eyBtX2VuZ2luZSA9IG51bGxwdHI7IH0KQEAgLTYxLDYgKzYyLDcgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgbV9pc0luaXRpYWxpemVkIHsgZmFsc2UgfTsKICAgICBFbmdpbmUqIG1fZW5naW5lIHsg
bnVsbHB0ciB9OworICAgIHVpbnQ2NF90IG1fdXBkYXRlQ291bnRlciB7IDAgfTsKICAgICBTdHJp
bmcgbV9yb290UGF0aDsKICAgICBWZWN0b3I8Q2FjaGU+IG1fY2FjaGVzOwogICAgIFZlY3RvcjxD
YWNoZT4gbV9yZW1vdmVkQ2FjaGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5j
cHAKaW5kZXggYzAyY2FmZDcwMDkwM2Q3YmMzNTZiNDBkNzliZThhYzlmOTljMTY4ZS4uZWU5M2I4
ODRmMWYxMDRhZjhmYTQxYjZiNzFkN2FmOGJiZGRmN2UwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb24uY3BwCkBAIC01Niw5ICs1Niw5IEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbjo6cmVtb3ZlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qg
cmVxCiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Y2Fj
aGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgb3JpZ2luKQordm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9u
OjpjYWNoZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCByZXF1ZXN0SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpCiB7Ci0g
ICAgRW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmV0cmlldmVDYWNoZXMob3JpZ2luLCBbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzZXNzaW9uSUQsIG9yaWdpbiwgcmVxdWVz
dElkZW50aWZpZXJdKENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0KSB7CisgICAgRW5naW5lOjpm
cm9tKHNlc3Npb25JRCkucmV0cmlldmVDYWNoZXMob3JpZ2luLCB1cGRhdGVDb3VudGVyLCBbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzZXNzaW9uSUQsIG9yaWdpbiwgcmVx
dWVzdElkZW50aWZpZXJdKENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0KSB7CiAgICAgICAgIG1f
Y29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6VXBkYXRlQ2FjaGVzKHJlcXVlc3RJZGVudGlmaWVyLCByZXN1bHQpLCBzZXNzaW9u
SUQuc2Vzc2lvbklEKCkpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b24uaAppbmRleCAwODJkMWU0NzAzMDU3ZjNkN2IwY2RjMjNlMzQxYTc3MjcwOGU3NGY3Li40ZTQ4
YThlOTRmNGU1Nzg0YTAxMjg4YmUwNmM3OGZmNTliNDgxMzIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb24uaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBv
cGVuKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBvcGVuUmVxdWVzdElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSk7CiAgICAgdm9pZCByZW1v
dmUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHJlbW92ZVJlcXVlc3RJZGVudGlmaWVyLCB1aW50
NjRfdCBjYWNoZUlkZW50aWZpZXIpOwotICAgIHZvaWQgY2FjaGVzKFBBTDo6U2Vzc2lvbklELCB1
aW50NjRfdCByZXRyaWV2ZUNhY2hlc0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luKTsK
KyAgICB2b2lkIGNhY2hlcyhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcmV0cmlldmVDYWNoZXNJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRlQ291bnRlcik7
CiAKICAgICB2b2lkIGNsZWFyTWVtb3J5UmVwcmVzZW50YXRpb24oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDRlYWM3NDg1N2UyM2Q2NWUyMTk4ZjRkZTE5YmJmZjJh
ZDljNzdlZDIuLjk1MGZhZTI0Nzc1MDRlMzdiYTZmYjAxN2YxMmRkNTNmNDYwZjkyMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTIz
LDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24gewog
ICAgIE9wZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCByZXF1ZXN0SWRlbnRp
ZmllciwgU3RyaW5nIG9yaWdpbiwgU3RyaW5nIGNhY2hlTmFtZSk7CiAgICAgUmVtb3ZlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllcik7Ci0gICAgQ2FjaGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
dWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFN0cmluZyBvcmlnaW4pOworICAgIENhY2hlcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBTdHJp
bmcgb3JpZ2luLCB1aW50NjRfdCB1cGRhdGVDb3VudGVyKTsKIAogICAgIENsZWFyTWVtb3J5UmVw
cmVzZW50YXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgb3JpZ2luKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGJmZDBiYTNhYzJlYzlhOTM5Mzc4ZGI1NzU3MjU5
NWUyMGY4MzQ5OTMuLjFmMTgyMDg3OTVlNmI1ZTk2MWY2MzA5ZmQzMzVjZjVkNGRlNzg1MzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTY2LDkgKzY2LDkgQEAgdm9pZCBXZWJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjpkb1JlbW92ZSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWlu
dDY0X3QgY2EKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6Q2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbjo6UmVtb3ZlKG1fc2Vzc2lvbklELCByZXF1ZXN0SWRlbnRpZmllciwgY2Fj
aGVJZGVudGlmaWVyKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
ZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBvcmlnaW4pCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVDYWNo
ZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCB1aW50
NjRfdCB1cGRhdGVDb3VudGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpD
YWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpDYWNoZXMobV9zZXNzaW9uSUQsIHJlcXVlc3RJ
ZGVudGlmaWVyLCBvcmlnaW4pLCAwKTsKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Q2FjaGVzKG1fc2Vzc2lvbklELCByZXF1ZXN0
SWRlbnRpZmllciwgb3JpZ2luLCB1cGRhdGVDb3VudGVyKSwgMCk7CiB9CiAKIHZvaWQgV2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZVJlY29yZHModWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmlu
ZGV4IGY1OWUyY2YzMTY1N2ZjZjQ0OTllOWUzYmIxZjUzZTU4ZmRiZWVkNjYuLjQ1OThhNjJmYzBk
YWYzY2JhZDAwNDc2NjgwMGY5NWY1MzMyNmRiZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAt
NTQsNyArNTQsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24KICAgICB2b2lkIGRvT3Blbih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lKSBmaW5hbDsKICAgICB2b2lk
IGRvUmVtb3ZlKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50
aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW4pIGZpbmFsOworICAgIHZvaWQgZG9SZXRy
aWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmln
aW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpIGZpbmFsOwogCiAgICAgdm9pZCBkb1JldHJpZXZl
UmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlm
aWVyKSBmaW5hbDsKICAgICB2b2lkIGRvQmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319534</attachid>
            <date>2017-08-31 15:50:14 -0700</date>
            <delta_ts>2017-08-31 16:20:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-176135-20170831155013.patch</filename>
            <type>text/plain</type>
            <size>28051</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjlmZmZhZThlNzljZDgy
NzU4M2I1ZWE0ZDI4MTY0ZDFjZjJlNWM4My4uYmQ3NDk3NDFjYTllMWUyOTBlZWVkZWYwZDZmNWNj
NmJjNWRiNWE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA4LTMxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgQ2FjaGVTdG9y
YWdlIGNhY2hlcyBvbmx5IGlmIGl0IGlzIHVwZGF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IEFs
ZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICBXaGVuIHJldHJpZXZpbmcgY2FjaGVzIGZyb20gdGhlIGVuZ2luZSwgQ2FjaGVTdG9y
YWdlIGdldHMgYW4gdXBkYXRlIGNvdW50ZXIuCisgICAgICAgIFdoZW4gdGhpcyBjb3VudGVyIGlz
IGRpZmZlcmVudCBmcm9tIHRoZSBwcmV2aW91cyByZWNlaXZlZCBvbmUsIENhY2hlU3RvcmFnZSB3
aWxsIHVwZGF0ZSBpdHMgY2FjaGUgbGlzdC4KKyAgICAgICAgT3RoZXJ3aXNlIGl0IHdpbGwgc2tp
cCB0aGlzIHVwZGF0ZSBzdGVwLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3Jh
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVTdG9yYWdlOjpyZXRyaWV2ZUNhY2hlcyk6
CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVDYWNoZXMpOgorICAgICAgICAqIE1vZHVs
ZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZUNhY2hlcyk6CisgICAgICAgICogTW9kdWxl
cy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6Q2FjaGVJ
bmZvczo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmg6
CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6Q2FjaGVJbmZvczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpDYWNoZUluZm9zOjpkZWNvZGUpOgorICAgICAg
ICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2Fj
aGVzKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaDoKKwogMjAxNy0wOC0zMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxp
YS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjIxMjI2KTogW1NPVVBdIGxpYnNvdXAtQ1JJ
VElDQUwgKio6IHNvdXBfY29va2llc190b19jb29raWVfaGVhZGVyOiBhc3NlcnRpb24gJ2Nvb2tp
ZXMgIT0gTlVMTCcgZmFpbGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYyNGNlNDVkOGM1NDFjYTQ3MWEzYWI4YzMz
ZDY0MGFjMDExNzIzYTkuLjU4MjNmOTEzNjVkNmQ5OWQ2NGUzZDkxMjY3ZmE3ODkxYTY4OTU1YTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMzYgQEAKIDIwMTctMDgtMzEgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCisgICAgICAgIFVwZGF0ZSBDYWNoZVN0b3JhZ2UgY2FjaGVzIG9u
bHkgaWYgaXQgaXMgdXBkYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc2MTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICBGb3IgZWFjaCBjaGFuZ2UgdG8gQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVz
IGxpc3Qgb2YgY2FjaGUsIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcyBpbmNyZW1lbnRzIGEgY291
bnRlci4KKyAgICAgICAgV2hlbiBzZW5kaW5nIHRoZSBsaXN0IG9mIGNhY2hlcywgQ2FjaGVTdG9y
YWdlRW5naW5lQ2FjaGVzIHdpbGwgY29tcGFyZSBpdHMgY291bnRlciB3aXRoIHRoZSBvbmUgcHJv
dmlkZWQuCisgICAgICAgIElmIHRoZXkgc2FyZSB0aGUgc2FtZSwgQ2FjaGVTdG9yYWdlRW5naW5l
Q2FjaGVzIHdpbGwgcmV0dXJuIG5vdGhpbmcuCisgICAgICAgIE90aGVyd2lzZSBpdCByZXR1cm5z
IHRoZSB3aG9sZSBsaXN0IG9mIGNhY2hlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFn
ZTo6RW5naW5lOjpyZXRyaWV2ZUNhY2hlcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9y
YWdlOjpDYWNoZXM6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6
OkNhY2hlczo6b3Blbik6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGVzOjpy
ZW1vdmUpOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNhY2hlczo6Y2xlYXJNZW1v
cnlSZXByZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6Q2FjaGVz
OjpjYWNoZUluZm9zIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmVDYWNoZXMuaDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpD
YWNoZXM6OnVwZGF0ZUNvdW50ZXIgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpD
YWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpjYWNoZXMpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0
cmlldmVDYWNoZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oOgorCisyMDE3LTA4LTMxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKwogICAgICAgICBJbnRyb2R1Y2UgQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUgdG8gaGFu
ZGxlIGNhY2hlIHJlY29yZHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NjEzNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0NhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
U3RvcmFnZS5jcHAKaW5kZXggNDAwYTA5MmUyOTdhYTI2NTE5ZWExYjYwYjBiZTEzN2QyOGJlMWZk
OC4uMzQ0N2FjOWY3YTU5MzhkMzM0MGVhYTZiZGJhMTdiMjM5NmU4MDcxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmNwcApAQCAtMTE5LDcgKzExOSw3
IEBAIHZvaWQgQ2FjaGVTdG9yYWdlOjpyZXRyaWV2ZUNhY2hlcyhXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0UGVuZGluZ0FjdGl2aXR5
KHRoaXMpOwotICAgIG1fY29ubmVjdGlvbi0+cmV0cmlldmVDYWNoZXMob3JpZ2luLCBbdGhpcywg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ2FjaGVJbmZvc09yRXJyb3ImJiByZXN1bHQp
IHsKKyAgICBtX2Nvbm5lY3Rpb24tPnJldHJpZXZlQ2FjaGVzKG9yaWdpbiwgbV91cGRhdGVDb3Vu
dGVyLCBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ2FjaGVJbmZvc09yRXJy
b3ImJiByZXN1bHQpIHsKICAgICAgICAgaWYgKCFtX2lzU3RvcHBlZCkgewogICAgICAgICAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBwcm9wYWdhdGUgdGhhdCBlcnJvciB1cCB0byB0
aGUgcHJvbWlzZSBiYXNlZCBvcGVyYXRpb24uCiAgICAgICAgICAgICBBU1NFUlQocmVzdWx0Lmhh
c1ZhbHVlKCkpOwpAQCAtMTI3LDE3ICsxMjcsMjMgQEAgdm9pZCBDYWNoZVN0b3JhZ2U6OnJldHJp
ZXZlQ2FjaGVzKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQor
CiAgICAgICAgICAgICBhdXRvJiBjYWNoZXNJbmZvID0gcmVzdWx0LnZhbHVlKCk7CiAKLSAgICAg
ICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICAgICAgbV9j
YWNoZXMucmVtb3ZlQWxsTWF0Y2hpbmcoWyZdKGF1dG8mIGNhY2hlKSB7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGNhY2hlc0luZm8uZmluZE1hdGNoaW5nKFsmXShjb25zdCBhdXRvJiBpbmZvKSB7
IHJldHVybiBpbmZvLmlkZW50aWZpZXIgPT0gY2FjaGUtPmlkZW50aWZpZXIoKTsgfSkgPT0gbm90
Rm91bmQ7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGZvciAoYXV0byYgaW5mbyA6IGNh
Y2hlc0luZm8pIHsKLSAgICAgICAgICAgICAgICBpZiAobV9jYWNoZXMuZmluZE1hdGNoaW5nKFsm
XShjb25zdCBhdXRvJiBjYWNoZSkgeyByZXR1cm4gaW5mby5pZGVudGlmaWVyID09IGNhY2hlLT5p
ZGVudGlmaWVyKCk7IH0pID09IG5vdEZvdW5kKQotICAgICAgICAgICAgICAgICAgICBtX2NhY2hl
cy5hcHBlbmQoQ2FjaGU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBXVEZNb3Zl
KGluZm8ubmFtZSksIGluZm8uaWRlbnRpZmllciwgbV9jb25uZWN0aW9uLmNvcHlSZWYoKSkpOwot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fdXBkYXRlQ291bnRlciAhPSBjYWNoZXNJ
bmZvLnVwZGF0ZUNvdW50ZXIpIHsKKyAgICAgICAgICAgICAgICBtX3VwZGF0ZUNvdW50ZXIgPSBj
YWNoZXNJbmZvLnVwZGF0ZUNvdW50ZXI7CisKKyAgICAgICAgICAgICAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKIAorICAgICAgICAgICAgICAgIFZlY3RvcjxSZWY8Q2FjaGU+
PiBjYWNoZXM7CisgICAgICAgICAgICAgICAgY2FjaGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
Y2FjaGVzSW5mby5pbmZvcy5zaXplKCkpOworICAgICAgICAgICAgICAgIGZvciAoYXV0byYgaW5m
byA6IGNhY2hlc0luZm8uaW5mb3MpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBwb3NpdGlv
biA9IG1fY2FjaGVzLmZpbmRNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgY2FjaGUpIHsgcmV0dXJu
IGluZm8uaWRlbnRpZmllciA9PSBjYWNoZS0+aWRlbnRpZmllcigpOyB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgY2FjaGVzLnVuY2hlY2tlZEFwcGVuZChwb3NpdGlvbiAhPSBub3RGb3VuZCA/IG1f
Y2FjaGVzW3Bvc2l0aW9uXS5jb3B5UmVmKCkgOiBDYWNoZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIFdURk1vdmUoaW5mby5uYW1lKSwgaW5mby5pZGVudGlmaWVyLCBtX2Nvbm5l
Y3Rpb24uY29weVJlZigpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1f
Y2FjaGVzID0gV1RGTW92ZShjYWNoZXMpOworCisgICAgICAgICAgICB9CiAgICAgICAgICAgICBj
YWxsYmFjaygpOwogICAgICAgICB9CiAgICAgICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlLmgKaW5kZXggOWNi
ZTNkYmQyMTBlZDBkZmE0ZDBkOTM0ZmExODEzM2U0NWIwM2MyNy4uMzcwM2U1Njc5NmFhNTY1YWFj
MTdjN2UzYTE1YzRmMTViODY1YmEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9DYWNoZVN0b3JhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0NhY2hlU3RvcmFnZS5oCkBAIC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG9y
aWdpbigpIGNvbnN0OwogCiAgICAgVmVjdG9yPFJlZjxDYWNoZT4+IG1fY2FjaGVzOworICAgIHVp
bnQ2NF90IG1fdXBkYXRlQ291bnRlciB7IDAgfTsKICAgICBSZWY8Q2FjaGVTdG9yYWdlQ29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOwogICAgIGJvb2wgbV9pc1N0b3BwZWQgeyBmYWxzZSB9OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNv
bm5lY3Rpb24uY3BwCmluZGV4IDhhODkyZGYyYWRjNmI5M2I3YzJmM2M1NjgyNmNkNDRmYmRjYTlk
Y2IuLmY2ZWFkNmUzZDJkYmY0YzdjZjczMGIyZGY1YTQwNzI5ODRjNjg3ZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmNwcApAQCAtNDcsMTIgKzQ3LDEyIEBAIHZvaWQgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmVt
b3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVJZGVudGlmaWVyQ2FsCiAgICAgZG9S
ZW1vdmUocmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVDYWNoZXMoY29uc3QgU3RyaW5nJiBvcmlnaW4s
IENhY2hlSW5mb3NDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpyZXRyaWV2ZUNhY2hlcyhjb25zdCBTdHJpbmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRl
Q291bnRlciwgQ2FjaGVJbmZvc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgdWludDY0X3Qg
cmVxdWVzdElkZW50aWZpZXIgPSArK21fbGFzdFJlcXVlc3RJZGVudGlmaWVyOwogICAgIG1fcmV0
cmlldmVDYWNoZXNQZW5kaW5nUmVxdWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CiAKLSAgICBkb1JldHJpZXZlQ2FjaGVzKHJlcXVlc3RJZGVudGlmaWVyLCBv
cmlnaW4pOworICAgIGRvUmV0cmlldmVDYWNoZXMocmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbiwg
dXBkYXRlQ291bnRlcik7CiB9CiAKIHZvaWQgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmll
dmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgUmVjb3Jkc0NhbGxiYWNrJiYgY2Fs
bGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbi5oCmluZGV4IDRjNDIyNzEwNWRkMzU1N2EzYmU2ZjgzYTk0OTE3ZGIwZjQ0
N2NkMWQuLjBkNDRjOTVmMjBmOTlmNzY3NjZiZDc2OWY5ZjFlMTQ0MGUxMjQzY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bi5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgb3Blbihjb25zdCBTdHJp
bmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBjYWNoZU5hbWUsIERPTUNhY2hlOjpDYWNoZUlkZW50
aWZpZXJDYWxsYmFjayYmKTsKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIERPTUNhY2hlOjpDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmKTsKLSAgICB2b2lkIHJldHJp
ZXZlQ2FjaGVzKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBET01DYWNoZTo6Q2FjaGVJbmZvc0NhbGxi
YWNrJiYpOworICAgIHZvaWQgcmV0cmlldmVDYWNoZXMoY29uc3QgU3RyaW5nJiBvcmlnaW4sIHVp
bnQ2NF90IHVwZGF0ZUNvdW50ZXIsIERPTUNhY2hlOjpDYWNoZUluZm9zQ2FsbGJhY2smJik7CiAK
ICAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIERPTUNh
Y2hlOjpSZWNvcmRzQ2FsbGJhY2smJik7CiAgICAgdm9pZCBiYXRjaERlbGV0ZU9wZXJhdGlvbih1
aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVl
cnlPcHRpb25zJiYsIERPTUNhY2hlOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpOwpAQCAt
NjIsNyArNjIsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkb09w
ZW4odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgLyogb3JpZ2luICov
LCBjb25zdCBTdHJpbmcmIC8qIGNhY2hlTmFtZSAqLykgeyBvcGVuQ29tcGxldGVkKHJlcXVlc3RJ
ZGVudGlmaWVyLCBtYWtlVW5leHBlY3RlZChET01DYWNoZTo6RXJyb3I6Ok5vdEltcGxlbWVudGVk
KSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZG9SZW1vdmUodWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIsIHVpbnQ2NF90IC8qIGNhY2hlSWRlbnRpZmllciAqLykgeyByZW1vdmVDb21wbGV0ZWQocmVx
dWVzdElkZW50aWZpZXIsIG1ha2VVbmV4cGVjdGVkKERPTUNhY2hlOjpFcnJvcjo6Tm90SW1wbGVt
ZW50ZWQpKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIC8qIG9yaWdpbiAqLykgeyB1cGRhdGVDYWNo
ZXMocmVxdWVzdElkZW50aWZpZXIsIHsgfSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZG9SZXRyaWV2
ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiAvKiBvcmln
aW4gKi8sIHVpbnQ2NF90IC8qIHVwZGF0ZUNvdW50ZXIgKi8pIHsgdXBkYXRlQ2FjaGVzKHJlcXVl
c3RJZGVudGlmaWVyLCB7IH0pOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9SZXRyaWV2ZVJlY29y
ZHModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IC8qIGNhY2hlSWRlbnRpZmll
ciAqLykgeyB1cGRhdGVSZWNvcmRzKHJlcXVlc3RJZGVudGlmaWVyLCB7IH0pOyB9CiAgICAgdmly
dHVhbCB2b2lkIGRvQmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIsIHVpbnQ2NF90IC8qIGNhY2hlSWRlbnRpZmllciAqLywgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgQ2FjaGVRdWVyeU9wdGlvbnMmJikgeyBkZWxldGVSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJ
ZGVudGlmaWVyLCBtYWtlVW5leHBlY3RlZChET01DYWNoZTo6RXJyb3I6Ok5vdEltcGxlbWVudGVk
KSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKaW5kZXggMzNm
Mjc0ZGRiNWJmNjMyMzBkZGE0YmRjYjdhMGU3MTE2MWY5ZjliNy4uMDgzODgxOThjMzRlMGU2MGYy
Y2UxODIyODBmOTNiMDBiZmVjNDU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9ET01DYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9E
T01DYWNoZS5jcHAKQEAgLTEwOSw2ICsxMDksMTUgQEAgUmVjb3JkIFJlY29yZDo6Y29weSgpIGNv
bnN0CiAgICAgcmV0dXJuIFJlY29yZCB7IGlkZW50aWZpZXIsIHVwZGF0ZVJlc3BvbnNlQ291bnRl
ciwgcmVxdWVzdEhlYWRlcnNHdWFyZCwgcmVxdWVzdCwgb3B0aW9ucywgcmVmZXJyZXIsIHJlc3Bv
bnNlSGVhZGVyc0d1YXJkLCByZXNwb25zZSwgY29weVJlc3BvbnNlQm9keShyZXNwb25zZUJvZHkp
IH07CiB9CiAKK0NhY2hlSW5mb3MgQ2FjaGVJbmZvczo6aXNvbGF0ZWRDb3B5KCkKK3sKKyAgICBW
ZWN0b3I8Q2FjaGVJbmZvPiBpc29sYXRlZENhY2hlczsKKyAgICBpc29sYXRlZENhY2hlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KGluZm9zLnNpemUoKSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBp
bmZvIDogaW5mb3MpCisgICAgICAgIGlzb2xhdGVkQ2FjaGVzLnVuY2hlY2tlZEFwcGVuZChDYWNo
ZUluZm8geyBpbmZvLmlkZW50aWZpZXIsIGluZm8ubmFtZS5pc29sYXRlZENvcHkoKSB9KTsKKyAg
ICByZXR1cm4geyBXVEZNb3ZlKGlzb2xhdGVkQ2FjaGVzKSwgdXBkYXRlQ291bnRlciB9OworfQor
CiB9IC8vIG5hbWVzcGFjZSBET01DYWNoZQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgKaW5kZXggZWViZTY2NzgyNzQwOTFhYzBi
NzU0YjJjNWMzNGQwOGI5ODEzZjcwMy4uMWMzNzc4ZDkwOTc0NDI0ZDE0NDBlYzEwZmM1MDhjYzFl
ZGFmMzEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaApAQCAtNzMs
MTMgKzczLDI0IEBAIHN0cnVjdCBDYWNoZUluZm8gewogICAgIFN0cmluZyBuYW1lOwogfTsKIAor
c3RydWN0IENhY2hlSW5mb3MgeworICAgIENhY2hlSW5mb3MgaXNvbGF0ZWRDb3B5KCk7CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Cisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBD
YWNoZUluZm9zJik7CisKKyAgICBWZWN0b3I8Q2FjaGVJbmZvPiBpbmZvczsKKyAgICB1aW50NjRf
dCB1cGRhdGVDb3VudGVyOworfTsKKwogdXNpbmcgQ2FjaGVJZGVudGlmaWVyT3JFcnJvciA9IEV4
cGVjdGVkPHVpbnQ2NF90LCBFcnJvcj47CiB1c2luZyBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayA9
IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBDYWNoZUlkZW50aWZpZXJPckVycm9yJik+OwogCiB1
c2luZyBSZWNvcmRJZGVudGlmaWVyc09yRXJyb3IgPSBFeHBlY3RlZDxWZWN0b3I8dWludDY0X3Q+
LCBFcnJvcj47CiB1c2luZyBSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrID0gV1RGOjpGdW5jdGlv
bjx2b2lkKFJlY29yZElkZW50aWZpZXJzT3JFcnJvciYmKT47CiAKLXVzaW5nIENhY2hlSW5mb3NP
ckVycm9yID0gRXhwZWN0ZWQ8VmVjdG9yPFdlYkNvcmU6OkRPTUNhY2hlOjpDYWNoZUluZm8+LCBF
cnJvcj47CisKK3VzaW5nIENhY2hlSW5mb3NPckVycm9yID0gRXhwZWN0ZWQ8Q2FjaGVJbmZvcywg
RXJyb3I+OwogdXNpbmcgQ2FjaGVJbmZvc0NhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKENh
Y2hlSW5mb3NPckVycm9yJiYpPjsKIAogdXNpbmcgUmVjb3Jkc09yRXJyb3IgPSBFeHBlY3RlZDxW
ZWN0b3I8UmVjb3JkPiwgRXJyb3I+OwpAQCAtODcsNiArOTgsMTkgQEAgdXNpbmcgUmVjb3Jkc0Nh
bGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKFJlY29yZHNPckVycm9yJiYpPjsKIAogdXNpbmcg
Q29tcGxldGlvbkNhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXJy
b3I+JiYpPjsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZvaWQgQ2FjaGVJbmZv
czo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBpbmZv
czsKKyAgICBlbmNvZGVyIDw8IHVwZGF0ZUNvdW50ZXI7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IGlubGluZSBib29sIENhY2hlSW5mb3M6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBD
YWNoZUluZm9zJiBjYWNoZUluZm9zKQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY2FjaGVJ
bmZvcy5pbmZvcykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZGVjb2Rlci5k
ZWNvZGUoY2FjaGVJbmZvcy51cGRhdGVDb3VudGVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgRE9N
Q2FjaGUKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAK
aW5kZXggODIwOTk0YjExMThmMmQzNTBmY2NlNjNmM2I3OWM5NTk1OWQyN2IzNi4uOTkyNGNhZDcz
NjkyOTQ5OGExMmQ1OWI0MGFhNDg4OTU5YWI2NjQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCkBAIC0xNDIsMjMgKzE0MiwxOSBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rp
b246OmRvUmVtb3ZlKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdAogICAgIH0p
OwogfQogCi12b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVDYWNo
ZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luKQordm9p
ZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90
IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRl
Q291bnRlcikKIHsKLSAgICBtX3Byb3h5LnBvc3RUYXNrVG9Mb2FkZXIoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbiA9IG9yaWdp
bi5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAg
IG1fcHJveHkucG9zdFRhc2tUb0xvYWRlcihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgp
LCB1cGRhdGVDb3VudGVyXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CiAgICAg
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRD
b25uZWN0aW9uKTsKIAotICAgICAgICBtX21haW5UaHJlYWRDb25uZWN0aW9uLT5yZXRyaWV2ZUNh
Y2hlcyhvcmlnaW4sIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KSwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0KSBtdXRhYmxl
IHsKKyAgICAgICAgbV9tYWluVGhyZWFkQ29ubmVjdGlvbi0+cmV0cmlldmVDYWNoZXMob3JpZ2lu
LCB1cGRhdGVDb3VudGVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVk
VGhpcyksIHJlcXVlc3RJZGVudGlmaWVyXShDYWNoZUluZm9zT3JFcnJvciYmIHJlc3VsdCkgbXV0
YWJsZSB7CiAgICAgICAgICAgICBDYWNoZUluZm9zT3JFcnJvciBpc29sYXRlZFJlc3VsdDsKICAg
ICAgICAgICAgIGlmICghcmVzdWx0Lmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICAgICAgaXNvbGF0
ZWRSZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBWZWN0b3I8Q2FjaGVJbmZvPiBpc29sYXRlZENhY2hlczsKLSAgICAgICAgICAgICAg
ICBpc29sYXRlZENhY2hlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJlc3VsdC52YWx1ZSgpLnNp
emUoKSk7Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjYWNoZSA6IHJlc3VsdC52
YWx1ZSgpKQotICAgICAgICAgICAgICAgICAgICBpc29sYXRlZENhY2hlcy51bmNoZWNrZWRBcHBl
bmQoQ2FjaGVJbmZvIHsgY2FjaGUuaWRlbnRpZmllciwgY2FjaGUubmFtZS5pc29sYXRlZENvcHko
KSB9KTsKLSAgICAgICAgICAgICAgICBpc29sYXRlZFJlc3VsdCA9IFdURk1vdmUoaXNvbGF0ZWRD
YWNoZXMpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGlzb2xhdGVkUmVzdWx0ID0gcmVzdWx0LnZhbHVlKCkuaXNvbGF0ZWRDb3B5KCk7CisKICAgICAg
ICAgICAgIG1fcHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJZGVudGlmaWVy
LCByZXN1bHQgPSBXVEZNb3ZlKGlzb2xhdGVkUmVzdWx0KV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChjb250
ZXh0LCBjb250ZXh0LmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CiAgICAgICAgICAgICAgICAgdXBk
YXRlQ2FjaGVzKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24uaAppbmRleCAxYWRkYzUyNGVkYjljNWQ3N2VlNjhhNTRiMWVlZjE4YjI4OGQxZDc3
Li4zMjYxNzFlNjYxYWQyNjdmMzMwOWNmZDVkOWI0MzdkODUxNTUyZDZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24uaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24KICAgICB2b2lkIGRvT3Blbih1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lKSBm
aW5hbDsKICAgICB2b2lkIGRvUmVtb3ZlKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50
NjRfdCBjYWNoZUlkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgZG9SZXRyaWV2ZUNhY2hlcyh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW4pIGZpbmFsOwor
ICAgIHZvaWQgZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBvcmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpIGZpbmFsOwogCiAgICAg
dm9pZCBkb1JldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0
X3QgY2FjaGVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGRvQmF0Y2hEZWxldGVPcGVyYXRp
b24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlv
bnMmJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKaW5kZXggMzAwODFhMWQ3MDJhMTcwNDY2YjQ0
OTMxMmJjNmIzNTFmZDIwNGExYS4uOWU5ZjM0NDExMDVmMTJkNWQ4YmFmNDRkYzM1ZmRjM2NkNzNj
NWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcApAQCAtMTI3LDE1ICsxMjcsMTUgQEAgdm9pZCBFbmdp
bmU6OnJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIENhY2hlSWRlbnRpZmllckNhbGxi
YWNrJiYgY2FsbGJhY2sKICAgICB9KTsKIH0KIAotdm9pZCBFbmdpbmU6OnJldHJpZXZlQ2FjaGVz
KGNvbnN0IFN0cmluZyYgb3JpZ2luLCBDYWNoZUluZm9zQ2FsbGJhY2smJiBjYWxsYmFjaykKK3Zv
aWQgRW5naW5lOjpyZXRyaWV2ZUNhY2hlcyhjb25zdCBTdHJpbmcmIG9yaWdpbiwgdWludDY0X3Qg
dXBkYXRlQ291bnRlciwgQ2FjaGVJbmZvc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgcmVh
ZENhY2hlc0Zyb21EaXNrKG9yaWdpbiwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKENh
Y2hlc09yRXJyb3ImJiBjYWNoZXNPckVycm9yKSBtdXRhYmxlIHsKKyAgICByZWFkQ2FjaGVzRnJv
bURpc2sob3JpZ2luLCBbdXBkYXRlQ291bnRlciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oQ2FjaGVzT3JFcnJvciYmIGNhY2hlc09yRXJyb3IpIG11dGFibGUgewogICAgICAgICBpZiAo
IWNhY2hlc09yRXJyb3IuaGFzVmFsdWUoKSkgewogICAgICAgICAgICAgY2FsbGJhY2sobWFrZVVu
ZXhwZWN0ZWQoY2FjaGVzT3JFcnJvci5lcnJvcigpKSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIAotICAgICAgICBjYWxsYmFjayhjYWNoZXNPckVycm9yLnZhbHVlKCkuZ2V0KCku
Y2FjaGVJbmZvcygpKTsKKyAgICAgICAgY2FsbGJhY2soY2FjaGVzT3JFcnJvci52YWx1ZSgpLmdl
dCgpLmNhY2hlSW5mb3ModXBkYXRlQ291bnRlcikpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUu
aAppbmRleCBlNmU1YTBiYTlhYTIyNmM1NjUxMDIxZDM0MmM3NTcxMDNkZjBmNzA4Li5iNjFmNTI4
OTljOGUwNjg1NGI0YmY4Y2RlN2FmNTY2NDhlYWNkYmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgKQEAgLTU1
LDcgKzU1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgb3JpZ2lu
LCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSwgV2ViQ29yZTo6RE9NQ2FjaGU6OkNhY2hlSWRlbnRp
ZmllckNhbGxiYWNrJiYpOwogICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RE9NQ2FjaGU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpOwotICAgIHZv
aWQgcmV0cmlldmVDYWNoZXMoY29uc3QgU3RyaW5nJiBvcmlnaW4sIFdlYkNvcmU6OkRPTUNhY2hl
OjpDYWNoZUluZm9zQ2FsbGJhY2smJik7CisgICAgdm9pZCByZXRyaWV2ZUNhY2hlcyhjb25zdCBT
dHJpbmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRlQ291bnRlciwgV2ViQ29yZTo6RE9NQ2FjaGU6
OkNhY2hlSW5mb3NDYWxsYmFjayYmKTsKIAogICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZTo6RE9NQ2FjaGU6OlJlY29yZHNDYWxsYmFjayYm
KTsKICAgICB2b2lkIHB1dFJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8
V2ViQ29yZTo6RE9NQ2FjaGU6OlJlY29yZD4mJiwgV2ViQ29yZTo6RE9NQ2FjaGU6OlJlY29yZElk
ZW50aWZpZXJzQ2FsbGJhY2smJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAKaW5kZXgg
MDU1MWI4YzUxNzU5YTQ0ZGJjNjRkNjY4NjMzNTkwZTZhYmM2NTZiOS4uZjU2ZWYyMzQ2MDA5ZDFl
YzhjY2VlMDExYWExZjgyY2Q4ZTAwMTg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNw
cApAQCAtNzUsNiArNzUsOCBAQCB2b2lkIENhY2hlczo6aW5pdGlhbGl6ZShXZWJDb3JlOjpET01D
YWNoZTo6Q29tcGxldGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiAgICAgfQogICAgIG1fc3RvcmFn
ZSA9IHN0b3JhZ2UucmVsZWFzZU5vbk51bGwoKTsKICAgICByZWFkQ2FjaGVzRnJvbURpc2soW3Ro
aXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKEV4cGVjdGVkPFZlY3RvcjxDYWNoZT4s
IEVycm9yPiYmIHJlc3VsdCkgeworICAgICAgICBtYWtlRGlydHkoKTsKKwogICAgICAgICBpZiAo
IXJlc3VsdC5oYXNWYWx1ZSgpKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQuZXJyb3Io
KSk7CiAKQEAgLTk5LDcgKzEwMSw3IEBAIHZvaWQgQ2FjaGVzOjpkZXRhY2goKQogICAgIG1fcm9v
dFBhdGggPSB7IH07CiB9CiAKLUNhY2hlKiBDYWNoZXM6OmZpbmQoY29uc3QgU3RyaW5nJiBuYW1l
KQorY29uc3QgQ2FjaGUqIENhY2hlczo6ZmluZChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CiB7
CiAgICAgYXV0byBwb3NpdGlvbiA9IG1fY2FjaGVzLmZpbmRNYXRjaGluZyhbJl0oY29uc3QgYXV0
byYgaXRlbSkgeyByZXR1cm4gaXRlbS5uYW1lKCkgPT0gbmFtZTsgfSk7CiAgICAgcmV0dXJuIChw
b3NpdGlvbiAhPSBub3RGb3VuZCkgPyAmbV9jYWNoZXNbcG9zaXRpb25dIDogbnVsbHB0cjsKQEAg
LTExOSw2ICsxMjEsOCBAQCB2b2lkIENhY2hlczo6b3BlbihTdHJpbmcmJiBuYW1lLCBDYWNoZUlk
ZW50aWZpZXJDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChtX2VuZ2luZSk7CiAK
KyAgICBtYWtlRGlydHkoKTsKKwogICAgIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciA9IG1fZW5n
aW5lLT5uZXh0Q2FjaGVJZGVudGlmaWVyKCk7CiAgICAgbV9jYWNoZXMuYXBwZW5kKENhY2hlIHsg
Y2FjaGVJZGVudGlmaWVyLCBXVEZNb3ZlKG5hbWUpIH0pOwogICAgIHdyaXRlQ2FjaGVzVG9EaXNr
KFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBjYWNoZUlkZW50aWZpZXJdKHN0ZDo6b3B0
aW9uYWw8RXJyb3I+JiYgZXJyb3IpIG11dGFibGUgewpAQCAtMTQyLDkgKzE0NiwxMiBAQCB2b2lk
IENhY2hlczo6cmVtb3ZlKHVpbnQ2NF90IGlkZW50aWZpZXIsIENvbXBsZXRpb25DYWxsYmFjayYm
IGNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbWFrZURpcnR5KCk7CisK
ICAgICBhdXRvIGNhY2hlID0gV1RGTW92ZShtX2NhY2hlc1twb3NpdGlvbl0pOwogICAgIG1fY2Fj
aGVzLnJlbW92ZShwb3NpdGlvbik7CiAgICAgbV9yZW1vdmVkQ2FjaGVzLmFwcGVuZChXVEZNb3Zl
KGNhY2hlKSk7CisgICAgKyttX3VwZGF0ZUNvdW50ZXI7CiAKICAgICB3cml0ZUNhY2hlc1RvRGlz
ayhXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CkBAIC0yNDIsMTggKzI0OSwyNyBAQCB2b2lkIENhY2hl
czo6d3JpdGVDYWNoZXNUb0Rpc2soQ29tcGxldGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiAKIHZv
aWQgQ2FjaGVzOjpjbGVhck1lbW9yeVJlcHJlc2VudGF0aW9uKCkKIHsKKyAgICBtYWtlRGlydHko
KTsKICAgICBtX2NhY2hlcy5jbGVhcigpOwogICAgIG1faXNJbml0aWFsaXplZCA9IGZhbHNlOwog
ICAgIG1fc3RvcmFnZSA9IG51bGxwdHI7CiB9CiAKLVZlY3RvcjxDYWNoZUluZm8+IENhY2hlczo6
Y2FjaGVJbmZvcygpIGNvbnN0Citib29sIENhY2hlczo6aXNEaXJ0eSh1aW50NjRfdCB1cGRhdGVD
b3VudGVyKSBjb25zdAoreworICAgIEFTU0VSVChtX3VwZGF0ZUNvdW50ZXIgPj0gdXBkYXRlQ291
bnRlcik7CisgICAgcmV0dXJuIG1fdXBkYXRlQ291bnRlciAhPSB1cGRhdGVDb3VudGVyOworfQor
CitDYWNoZUluZm9zIENhY2hlczo6Y2FjaGVJbmZvcyh1aW50NjRfdCB1cGRhdGVDb3VudGVyKSBj
b25zdAogewogICAgIFZlY3RvcjxDYWNoZUluZm8+IGNhY2hlSW5mb3M7Ci0gICAgY2FjaGVJbmZv
cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fY2FjaGVzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRv
JiBjYWNoZSA6IG1fY2FjaGVzKQotICAgICAgICBjYWNoZUluZm9zLnVuY2hlY2tlZEFwcGVuZChD
YWNoZUluZm8geyBjYWNoZS5pZGVudGlmaWVyKCksIGNhY2hlLm5hbWUoKSB9KTsKLSAgICByZXR1
cm4gY2FjaGVJbmZvczsKKyAgICBpZiAoaXNEaXJ0eSh1cGRhdGVDb3VudGVyKSkgeworICAgICAg
ICBjYWNoZUluZm9zLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9jYWNoZXMuc2l6ZSgpKTsKKyAg
ICAgICAgZm9yIChhdXRvJiBjYWNoZSA6IG1fY2FjaGVzKQorICAgICAgICAgICAgY2FjaGVJbmZv
cy51bmNoZWNrZWRBcHBlbmQoQ2FjaGVJbmZvIHsgY2FjaGUuaWRlbnRpZmllcigpLCBjYWNoZS5u
YW1lKCkgfSk7CisgICAgfQorICAgIHJldHVybiB7IFdURk1vdmUoY2FjaGVJbmZvcyksIG1fdXBk
YXRlQ291bnRlciB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5l
Q2FjaGVzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFn
ZUVuZ2luZUNhY2hlcy5oCmluZGV4IGQ0MjBjZWFkZDE2MDNhZDIwYWNkY2M4MjEzNTk1MTVlZmM5
MzEyZjkuLmM0OGE2Zjk0Mjg1Y2ZlZDZmOTY4NjQ0ODdiZWQ4MTc3N2ViYWJjYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5l
Q2FjaGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmVDYWNoZXMuaApAQCAtMzksMjAgKzM5LDE4IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPENhY2hlcz4gY3JlYXRlKEVuZ2luZSYgZW5naW5lLCBjb25zdCBTdHJpbmcmIG9yaWdp
bikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBDYWNoZXMgeyBlbmdpbmUsIG9yaWdpbiB9KTsgfQog
CiAgICAgdm9pZCBpbml0aWFsaXplKFdlYkNvcmU6OkRPTUNhY2hlOjpDb21wbGV0aW9uQ2FsbGJh
Y2smJik7Ci0KLSAgICBib29sIGlzSW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5p
dGlhbGl6ZWQ7IH0KLQotICAgIENhY2hlKiBmaW5kKGNvbnN0IFN0cmluZyYgbmFtZSk7Ci0gICAg
Q2FjaGUqIGZpbmQodWludDY0X3QgaWRlbnRpZmllcik7Ci0KICAgICB2b2lkIG9wZW4oU3RyaW5n
JiYgbmFtZSwgV2ViQ29yZTo6RE9NQ2FjaGU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpOwog
ICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OkRPTUNhY2hlOjpD
b21wbGV0aW9uQ2FsbGJhY2smJik7Ci0KLSAgICBWZWN0b3I8V2ViQ29yZTo6RE9NQ2FjaGU6OkNh
Y2hlSW5mbz4gY2FjaGVJbmZvcygpIGNvbnN0OwotCiAgICAgdm9pZCBjbGVhck1lbW9yeVJlcHJl
c2VudGF0aW9uKCk7CisKICAgICB2b2lkIGRldGFjaCgpOwogCisgICAgYm9vbCBpc0luaXRpYWxp
emVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0luaXRpYWxpemVkOyB9CisgICAgV2ViQ29yZTo6RE9N
Q2FjaGU6OkNhY2hlSW5mb3MgY2FjaGVJbmZvcyh1aW50NjRfdCB1cGRhdGVDb3VudGVyKSBjb25z
dDsKKworICAgIGNvbnN0IENhY2hlKiBmaW5kKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7Cisg
ICAgQ2FjaGUqIGZpbmQodWludDY0X3QgaWRlbnRpZmllcik7CisKIHByaXZhdGU6CiAgICAgQ2Fj
aGVzKEVuZ2luZSYsIGNvbnN0IFN0cmluZyYgcm9vdFBhdGgpOwogCkBAIC02MSw4ICs1OSwxMiBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRQZXJzaXN0KCkgY29uc3QgeyByZXR1cm4gIW1f
cm9vdFBhdGguaXNOdWxsKCk7IH0KIAorICAgIHZvaWQgbWFrZURpcnR5KCkgeyArK21fdXBkYXRl
Q291bnRlcjsgfQorICAgIGJvb2wgaXNEaXJ0eSh1aW50NjRfdCB1cGRhdGVDb3VudGVyKSBjb25z
dDsKKwogICAgIGJvb2wgbV9pc0luaXRpYWxpemVkIHsgZmFsc2UgfTsKICAgICBFbmdpbmUqIG1f
ZW5naW5lIHsgbnVsbHB0ciB9OworICAgIHVpbnQ2NF90IG1fdXBkYXRlQ291bnRlciB7IDAgfTsK
ICAgICBTdHJpbmcgbV9yb290UGF0aDsKICAgICBWZWN0b3I8Q2FjaGU+IG1fY2FjaGVzOwogICAg
IFZlY3RvcjxDYWNoZT4gbV9yZW1vdmVkQ2FjaGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ29u
bmVjdGlvbi5jcHAKaW5kZXggYzAyY2FmZDcwMDkwM2Q3YmMzNTZiNDBkNzliZThhYzlmOTljMTY4
ZS4uZWU5M2I4ODRmMWYxMDRhZjhmYTQxYjZiNzFkN2FmOGJiZGRmN2UwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwCkBAIC01Niw5ICs1Niw5IEBAIHZvaWQgQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmVtb3ZlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
dWludDY0X3QgcmVxCiAgICAgfSk7CiB9CiAKLXZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbjo6Y2FjaGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luKQordm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVD
b25uZWN0aW9uOjpjYWNoZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCByZXF1
ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50
ZXIpCiB7Ci0gICAgRW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmV0cmlldmVDYWNoZXMob3JpZ2lu
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzZXNzaW9uSUQsIG9yaWdp
biwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0KSB7CisgICAg
RW5naW5lOjpmcm9tKHNlc3Npb25JRCkucmV0cmlldmVDYWNoZXMob3JpZ2luLCB1cGRhdGVDb3Vu
dGVyLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzLCBzZXNzaW9uSUQsIG9y
aWdpbiwgcmVxdWVzdElkZW50aWZpZXJdKENhY2hlSW5mb3NPckVycm9yJiYgcmVzdWx0KSB7CiAg
ICAgICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6VXBkYXRlQ2FjaGVzKHJlcXVlc3RJZGVudGlmaWVyLCByZXN1bHQp
LCBzZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb24uaAppbmRleCAwODJkMWU0NzAzMDU3ZjNkN2IwY2RjMjNlMzQxYTc3MjcwOGU3
NGY3Li40ZTQ4YThlOTRmNGU1Nzg0YTAxMjg4YmUwNmM3OGZmNTliNDgxMzIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBvcGVuKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBvcGVuUmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSk7CiAgICAg
dm9pZCByZW1vdmUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHJlbW92ZVJlcXVlc3RJZGVudGlm
aWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpOwotICAgIHZvaWQgY2FjaGVzKFBBTDo6U2Vz
c2lvbklELCB1aW50NjRfdCByZXRyaWV2ZUNhY2hlc0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
b3JpZ2luKTsKKyAgICB2b2lkIGNhY2hlcyhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcmV0cmll
dmVDYWNoZXNJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRl
Q291bnRlcik7CiAKICAgICB2b2lkIGNsZWFyTWVtb3J5UmVwcmVzZW50YXRpb24oUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDRlYWM3NDg1N2UyM2Q2NWUyMTk4ZjRk
ZTE5YmJmZjJhZDljNzdlZDIuLjk1MGZhZTI0Nzc1MDRlMzdiYTZmYjAxN2YxMmRkNTNmNDYwZjky
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5l
Y3Rpb24gewogICAgIE9wZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCByZXF1
ZXN0SWRlbnRpZmllciwgU3RyaW5nIG9yaWdpbiwgU3RyaW5nIGNhY2hlTmFtZSk7CiAgICAgUmVt
b3ZlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIs
IHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcik7Ci0gICAgQ2FjaGVzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFN0cmluZyBvcmlnaW4pOworICAg
IENhY2hlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBTdHJpbmcgb3JpZ2luLCB1aW50NjRfdCB1cGRhdGVDb3VudGVyKTsKIAogICAgIENsZWFy
TWVtb3J5UmVwcmVzZW50YXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgb3Jp
Z2luKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hl
L1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGJmZDBiYTNhYzJlYzlhOTM5Mzc4
ZGI1NzU3MjU5NWUyMGY4MzQ5OTMuLjFmMTgyMDg3OTVlNmI1ZTk2MWY2MzA5ZmQzMzVjZjVkNGRl
Nzg1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2Fj
aGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTY2LDkgKzY2LDkgQEAgdm9pZCBX
ZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JlbW92ZSh1aW50NjRfdCByZXF1ZXN0SWRlbnRp
ZmllciwgdWludDY0X3QgY2EKICAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6UmVtb3ZlKG1fc2Vzc2lvbklELCByZXF1ZXN0SWRlbnRp
ZmllciwgY2FjaGVJZGVudGlmaWVyKSwgMCk7CiB9CiAKLXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6ZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBvcmlnaW4pCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0
cmlldmVDYWNoZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luLCB1aW50NjRfdCB1cGRhdGVDb3VudGVyKQogewotICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpDYWNoZXMobV9zZXNzaW9uSUQs
IHJlcXVlc3RJZGVudGlmaWVyLCBvcmlnaW4pLCAwKTsKKyAgICBjb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Q2FjaGVzKG1fc2Vzc2lvbklE
LCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luLCB1cGRhdGVDb3VudGVyKSwgMCk7CiB9CiAKIHZv
aWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZVJlY29yZHModWludDY0X3Qg
cmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oCmluZGV4IGY1OWUyY2YzMTY1N2ZjZjQ0OTllOWUzYmIxZjUzZTU4ZmRiZWVkNjYuLjQ1
OThhNjJmYzBkYWYzY2JhZDAwNDc2NjgwMGY5NWY1MzMyNmRiZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24KICAgICB2b2lkIGRvT3Blbih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lKSBmaW5hbDsK
ICAgICB2b2lkIGRvUmVtb3ZlKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBj
YWNoZUlkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW4pIGZpbmFsOworICAgIHZv
aWQgZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBvcmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpIGZpbmFsOwogCiAgICAgdm9pZCBk
b1JldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2Fj
aGVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGRvQmF0Y2hEZWxldGVPcGVyYXRpb24odWlu
dDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJikg
ZmluYWw7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>