<?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>200671</bug_id>
          
          <creation_ts>2019-08-13 08:13:05 -0700</creation_ts>
          <short_desc>ThreadableBlobRegistry::blobSize should take a SessionID as parameter</short_desc>
          <delta_ts>2019-08-14 06:42:45 -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>Page Loading</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>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1560782</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-13 08:13:05 -0700</bug_when>
    <thetext>ThreadableBlobRegistry::blobSize should take a SessionID as parameter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560784</commentid>
    <comment_count>1</comment_count>
      <attachid>376163</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-13 08:18:58 -0700</bug_when>
    <thetext>Created attachment 376163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560787</commentid>
    <comment_count>2</comment_count>
      <attachid>376164</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-13 08:37:24 -0700</bug_when>
    <thetext>Created attachment 376164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560789</commentid>
    <comment_count>3</comment_count>
      <attachid>376165</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-13 08:39:55 -0700</bug_when>
    <thetext>Created attachment 376165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560793</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-13 08:43:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/54259012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560852</commentid>
    <comment_count>5</comment_count>
      <attachid>376165</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-13 10:57:33 -0700</bug_when>
    <thetext>Comment on attachment 376165
Patch

Don&apos;t break windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561107</commentid>
    <comment_count>6</comment_count>
      <attachid>376251</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-14 02:31:10 -0700</bug_when>
    <thetext>Created attachment 376251
Win fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561127</commentid>
    <comment_count>7</comment_count>
      <attachid>376256</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-14 03:32:49 -0700</bug_when>
    <thetext>Created attachment 376256
WinCairo fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561143</commentid>
    <comment_count>8</comment_count>
      <attachid>376256</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-14 06:42:44 -0700</bug_when>
    <thetext>Comment on attachment 376256
WinCairo fix

Clearing flags on attachment: 376256

Committed r248670: &lt;https://trac.webkit.org/changeset/248670&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561144</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-14 06:42:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376163</attachid>
            <date>2019-08-13 08:18:58 -0700</date>
            <delta_ts>2019-08-13 08:37:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200671-20190813171856.patch</filename>
            <type>text/plain</type>
            <size>29874</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ0OTVlNDc2OTE2MGI4
MjYwMTE4N2UxNGE4ZDBkNWQzMjg0YTRkYS4uM2MyOGY1OTFkYWQ4NzU4ZjJhMGE2YzI0YzRlZTA5
YjJiMjYxNjM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA4LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5OjpibG9iU2l6ZSBzaG91bGQgdGFrZSBhIFNlc3Npb25JRCBhcyBwYXJhbWV0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDY3MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBGb3Jt
RGF0YSB0byBjb21wdXRlIGl0cyBieXRlIHNpemUgYmFzZWQgb24gYSBTZXNzaW9uSUQuCisgICAg
ICAgIFdlIGtlZXAgYSBXSzEgYnl0ZSBsZW5ndGggY29tcHV0YXRpb24gZm9yIEZvcm1EYXRhRWxl
bWVudC4KKyAgICAgICAgVXBkYXRlIEZvcm1EYXRhIGNhbGwgc2l0ZXMgYWNjb3JkaW5nbHkuCisg
ICAgICAgIFVwZGF0ZSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIHRvIGltcGxlbWVudCBhIFNlc3Np
b25JRCBnZXR0ZXIuCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICAq
IE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wdXRlUmVhbEJvZHlTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbXB1dGVSZWFsQm9keVNpemUpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIGZpbGVhcGkvQmxvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjpzaXplIGNvbnN0
KToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUpOgorICAgICAgICAq
IGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9LZWVwYWxpdmVSZXF1ZXN0VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZWVwYWxp
dmVSZXF1ZXN0VHJhY2tlcjo6dHJ5UmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OktlZXBhbGl2ZVJlcXVlc3RUcmFja2VyOjpyZWdpc3RlclJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6S2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnVucmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAg
ICAgKiBwYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVMZW5ndGhJbkJ5
dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YTo6bGVuZ3RoSW5CeXRlcyBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVIVFRQQm9keUNGUmVhZFN0cmVhbSk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0
KToKKwogMjAxOS0wOC0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIFNlc3Npb25JRCBkZWZhdWx0IGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI3
NzQzZDc4ZGVlODM3NjE3MjcyMGE0ZWVjNGFhNTAzN2NkY2Q4ZjUuLmIzZjg0ZTQzNDRlZDNlYjRh
YjNkNWU5YzZiYjQ0N2YzZDgyMmQ5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTkt
MDgtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFRocmVh
ZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplIHNob3VsZCB0YWtlIGEgU2Vzc2lvbklEIGFzIHBh
cmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAwNjcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24gdG8gaW1wbGVtZW50IHNlc3Npb25JRCBn
ZXR0ZXIuCisgICAgICAgIFVwZGF0ZSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB0byBn
ZXQgYSBzZXNzaW9uSUQgYXMgcGFyYW1ldGVyIHRvIGJsb2JTaXplIGNvbXB1dGF0aW9uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YmxvYlNp
emUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6d3Jp
dGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lz
dHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oOgorCiAyMDE5LTA4LTEz
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgQVBJ
OjpQYWdlQ29uZmlndXJhdGlvbjo6bV9zZXNzaW9uSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCAzZmM4ZmRlYzNhNGQwZGE2ZjhiZmIyYmY0YjkwMjIwMjAwMGZkMTQ4Li45MmZjMWUx
YjQyMWNhNzRiMjIzNWE5NzM5YzFmNGFmZGY5OTc3MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMDgtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXpl
IHNob3VsZCB0YWtlIGEgU2Vzc2lvbklEIGFzIHBhcmFtZXRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNjcxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW06CisKIDIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEJsb2IgcmVnaXN0cmllcyBzaG91bGQgYmUga2V5ZWQgYnkgc2Vz
c2lvbiBJRHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDRhY2I4YWFiZDg2N2Q4ZGUyMjA5Mzc5YjI2MGM2
MWZmZmZlYjQ5MDAuLjkxYTVjN2UxMjI4MDI2MDE0YjcxMjFmOWJhNmNlMDNmMWEyNGMwYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VD
b25uZWN0aW9uLmNwcApAQCAtMjgsMTYgKzI4LDE3IEBACiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIgogCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgorI2luY2x1ZGUgPHBh
bC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvUmFuZG9tTnVtYmVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTsKIAot
c3RhdGljIGlubGluZSB1aW50NjRfdCBjb21wdXRlUmVhbEJvZHlTaXplKGNvbnN0IERPTUNhY2hl
RW5naW5lOjpSZXNwb25zZUJvZHkmIGJvZHkpCit1aW50NjRfdCBDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpjb21wdXRlUmVhbEJvZHlTaXplKGNvbnN0IERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJv
ZHkmIGJvZHkpCiB7CiAgICAgdWludDY0X3QgcmVzdWx0ID0gMDsKICAgICBXVEY6OnN3aXRjaE9u
KGJvZHksIFsmXSAoY29uc3QgUmVmPFdlYkNvcmU6OkZvcm1EYXRhPiYgZm9ybURhdGEpIHsKLSAg
ICAgICAgcmVzdWx0ID0gZm9ybURhdGEtPmxlbmd0aEluQnl0ZXMoKTsKKyAgICAgICAgcmVzdWx0
ID0gZm9ybURhdGEtPmxlbmd0aEluQnl0ZXMoc2Vzc2lvbklEKCkpOwogICAgIH0sIFsmXSAoY29u
c3QgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcikgewogICAgICAgICByZXN1bHQg
PSBidWZmZXItPnNpemUoKTsKICAgICB9LCBbXSAoY29uc3Qgc3RkOjpudWxscHRyX3QmKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oCmluZGV4IDg3ZWFiNzE4NjI2YzYwMjc0MTQ4OWRiYzJiZmE3N2U4NjU2NWFjN2MuLmQx
ZGFmYTg5YWZlZThmMDQ0Y2VjODhkNTM0NGQ5NWZhMWU1ODY3YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01
Nyw2ICs1NywxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGVuZ2luZVJlcHJlc2VudGF0
aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgY2FsbGJhY2spIHsg
Y2FsbGJhY2soU3RyaW5nIHsgfSk7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUXVvdGFCYXNl
ZE9uU3BhY2VVc2FnZShjb25zdCBDbGllbnRPcmlnaW4mKSB7IH0KIAorICAgIHZpcnR1YWwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgPSAwOworCitwcml2YXRlOgorICAgIHVpbnQ2
NF90IGNvbXB1dGVSZWFsQm9keVNpemUoY29uc3QgRE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9k
eSYpOworCiBwcm90ZWN0ZWQ6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgdWludDY0X3Q+IG1fb3Bh
cXVlUmVzcG9uc2VUb1NpemVXaXRoUGFkZGluZ01hcDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmNwcAppbmRleCAyMDZjMjQxOGU5ODdmZWRmZGEyMTAxZTZlYmE1ZjVhNWJhMGFmM2VmLi5mZjA2
YTZiOGViOGVmYmIzM2VkM2ZmMzdjODc3MGZjZjE4OGVlYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKQEAgLTEzNCw2ICsxMzQsMTEgQEAgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6fldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKQogICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFttYWluVGhyZWFkQ29ubmVjdGlvbiA9IFdURk1vdmUobV9tYWluVGhyZWFkQ29ubmVjdGlv
bildKCkgbXV0YWJsZSB7IH0pOwogfQogCitQQUw6OlNlc3Npb25JRCBXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjpzZXNzaW9uSUQoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njb3BlLnNl
c3Npb25JRCgpOworfQorCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246Om9wZW4o
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lLCBDYWNo
ZUlkZW50aWZpZXJDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyID0gKyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmgKaW5kZXggMTE5ZDRjYzYxMjA4M2RhNzI4NWY0Zjc5YzIyZGU1OWM5YjBjNGJmYi4uMmYzYWZh
ZDI5NDRlYjE0MjY3N2YyYjljNTBkZDVmMjhkM2I5MmM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmgKQEAgLTU1LDYgKzU1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZmVyZW5jZSh1aW50NjRf
dCBjYWNoZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZGVyZWZlcmVuY2UodWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyKSBmaW5hbDsKIAorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgp
IGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBkb09wZW4odWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IENsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lKTsKICAgICB2
b2lkIGRvUmVtb3ZlKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllciwgY29uc3QgQ2xpZW50T3JpZ2luJiwgdWludDY0X3QgdXBkYXRlQ291bnRlcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9CbG9iLmNwcAppbmRleCBkODkxYzcwODY4YjhjNzZhOTI5MTExN2M1M2MzMmNm
NmYxN2E2NDljLi41MmE1MzY3ODU3YTFmYTQ3M2Q0NzExMDJkODM0ZmM3OTRiYTQ4MWJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYi5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCB1bnNpZ25lZCBsb25nIGxv
bmcgQmxvYjo6c2l6ZSgpIGNvbnN0CiAgICAgaWYgKCFtX3NpemUpIHsKICAgICAgICAgLy8gRklY
TUU6IEphdmFTY3JpcHQgY2Fubm90IHJlcHJlc2VudCBzaXplcyBhcyBsYXJnZSBhcyB1bnNpZ25l
ZCBsb25nIGxvbmcsIHdlIG5lZWQgdG8KICAgICAgICAgLy8gY29tZSB1cCB3aXRoIGFuIGV4Y2Vw
dGlvbiB0byB0aHJvdyBpZiBmaWxlIHNpemUgaXMgbm90IHJlcHJlc2VudGFibGUuCi0gICAgICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBhY3R1YWxTaXplID0gVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6
YmxvYlNpemUobV9pbnRlcm5hbFVSTCk7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhY3R1
YWxTaXplID0gVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUobV9zZXNzaW9uSUQsIG1f
aW50ZXJuYWxVUkwpOwogICAgICAgICBtX3NpemUgPSBXVEY6OmlzSW5Cb3VuZHM8bG9uZyBsb25n
PihhY3R1YWxTaXplKSA/IGFjdHVhbFNpemUgOiAwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAKaW5kZXggYTk1YjI0OWY4
Yzg0MjNmZDc0NWJjMmFjOTdiMjdiYzA0YWEzYTczOS4uNzYxMDY2NGY1ZGEwOWExY2Y4YTVlMTk3
NjRjYTc3NWY3YTFkZjZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVh
ZGFibGVCbG9iUmVnaXN0cnkuY3BwCkBAIC0xMjgsMTUgKzEyOCwxNSBAQCB2b2lkIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYwogICAgIH0pOwogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeTo6YmxvYlNpemUoY29uc3QgVVJMJiB1cmwpCit1bnNpZ25lZCBsb25nIGxvbmcg
VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBVUkwmIHVybCkKIHsKICAgICBpZiAoaXNNYWluVGhyZWFkKCkpCi0gICAgICAgIHJl
dHVybiBibG9iUmVnaXN0cnkoKS5ibG9iU2l6ZSh1cmwpOworICAgICAgICByZXR1cm4gYmxvYlJl
Z2lzdHJ5KCkuYmxvYlNpemUoc2Vzc2lvbklELCB1cmwpOwogCiAgICAgdW5zaWduZWQgbG9uZyBs
b25nIHJlc3VsdFNpemU7CiAgICAgQmluYXJ5U2VtYXBob3JlIHNlbWFwaG9yZTsKLSAgICBjYWxs
T25NYWluVGhyZWFkKFt1cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCksICZzZW1hcGhvcmUsICZyZXN1
bHRTaXplXSB7Ci0gICAgICAgIHJlc3VsdFNpemUgPSBibG9iUmVnaXN0cnkoKS5ibG9iU2l6ZSh1
cmwpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Nlc3Npb25JRCwgdXJsID0gdXJsLmlzb2xhdGVk
Q29weSgpLCAmc2VtYXBob3JlLCAmcmVzdWx0U2l6ZV0geworICAgICAgICByZXN1bHRTaXplID0g
YmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUoc2Vzc2lvbklELCB1cmwpOwogICAgICAgICBzZW1hcGhv
cmUuc2lnbmFsKCk7CiAgICAgfSk7CiAgICAgc2VtYXBob3JlLndhaXQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKaW5kZXggMzE1ZjVjYWRi
NDY2Mzg5ODBiNGMxZmQ4ZWM1YjY3ZGJlM2U0MTI3NC4uYzU3NmIyZDRiY2QwNWE4YjU2YWEzMzg0
YTkwYmM5ZTcyZWEzYzliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIG5l
d1VSTCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCk7
CiAgICAgc3RhdGljIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFVSTCYpOwogCi0gICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBV
UkwmKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBVUkwmKTsKIAogICAgIC8vIFJldHVybnMgdGhlIG9yaWdpbiBmb3IgdGhlIGdp
dmVuIGJsb2IgVVJMLiBUaGlzIGlzIGJlY2F1c2Ugd2UgYXJlIG5vdCBhYmxlIHRvIGVtYmVkIHRo
ZSB1bmlxdWUgc2VjdXJpdHkgb3JpZ2luIG9yIHRoZSBvcmlnaW4gb2YgZmlsZSBVUkwKICAgICAv
LyBpbiB0aGUgYmxvYiBVUkwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0tlZXBhbGl2ZVJlcXVlc3RUcmFja2VyLmNwcAppbmRleCAwMGM1NTA1ZTdlYzE3NTA1ODI1
ZjE0YTM1ODcwYzAzMzg3Zjk0MDE5Li40N2EzYzdiNmUwNzY1ODViOTY4NWYxMzQwN2YwM2MyYzBl
NmVhMmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvS2VlcGFsaXZl
UmVxdWVzdFRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9LZWVw
YWxpdmVSZXF1ZXN0VHJhY2tlci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgYm9vbCBLZWVwYWxpdmVS
ZXF1ZXN0VHJhY2tlcjo6dHJ5UmVnaXN0ZXJSZXF1ZXN0KENhY2hlZFJlc291cmNlJiByZXNvdXJj
ZSkKICAgICBpZiAoIWJvZHkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgdWludDY0X3Qg
Ym9keVNpemUgPSBib2R5LT5sZW5ndGhJbkJ5dGVzKCk7CisgICAgdWludDY0X3QgYm9keVNpemUg
PSBib2R5LT5sZW5ndGhJbkJ5dGVzKHJlc291cmNlLnNlc3Npb25JRCgpKTsKICAgICBpZiAobV9p
bmZsaWdodEtlZXBhbGl2ZUJ5dGVzICsgYm9keVNpemUgPiBtYXhJbmZsaWdodEtlZXBhbGl2ZUJ5
dGVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBLZWVw
YWxpdmVSZXF1ZXN0VHJhY2tlcjo6cmVnaXN0ZXJSZXF1ZXN0KENhY2hlZFJlc291cmNlJiByZXNv
dXJjZSkKICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCghbV9pbmZsaWdodEtlZXBhbGl2ZVJl
cXVlc3RzLmNvbnRhaW5zKCZyZXNvdXJjZSkpOwogICAgIG1faW5mbGlnaHRLZWVwYWxpdmVSZXF1
ZXN0cy5hcHBlbmQoJnJlc291cmNlKTsKLSAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgKz0g
Ym9keS0+bGVuZ3RoSW5CeXRlcygpOworICAgIG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyArPSBi
b2R5LT5sZW5ndGhJbkJ5dGVzKHJlc291cmNlLnNlc3Npb25JRCgpKTsKICAgICBBU1NFUlQobV9p
bmZsaWdodEtlZXBhbGl2ZUJ5dGVzIDw9IG1heEluZmxpZ2h0S2VlcGFsaXZlQnl0ZXMpOwogCiAg
ICAgcmVzb3VyY2UuYWRkQ2xpZW50KCp0aGlzKTsKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBLZWVw
YWxpdmVSZXF1ZXN0VHJhY2tlcjo6dW5yZWdpc3RlclJlcXVlc3QoQ2FjaGVkUmVzb3VyY2UmIHJl
c291cmNlKQogICAgIHJlc291cmNlLnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgYm9vbCB3YXNS
ZW1vdmVkID0gbV9pbmZsaWdodEtlZXBhbGl2ZVJlcXVlc3RzLnJlbW92ZUZpcnN0KCZyZXNvdXJj
ZSk7CiAgICAgQVNTRVJUX1VOVVNFRCh3YXNSZW1vdmVkLCB3YXNSZW1vdmVkKTsKLSAgICBtX2lu
ZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgLT0gcmVzb3VyY2UucmVzb3VyY2VSZXF1ZXN0KCkuaHR0cEJv
ZHkoKS0+bGVuZ3RoSW5CeXRlcygpOworICAgIG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyAtPSBy
ZXNvdXJjZS5yZXNvdXJjZVJlcXVlc3QoKS5odHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKHJlc291
cmNlLnNlc3Npb25JRCgpKTsKICAgICBBU1NFUlQobV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVzIDw9
IG1heEluZmxpZ2h0S2VlcGFsaXZlQnl0ZXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
Y2hlU3RvcmFnZVByb3ZpZGVyLmgKaW5kZXggNjM2ZjNkMGExMTliN2M2N2ZiYmRlN2Y2MWYxZjdk
MGYwYzU5YmYxYi4uZDlmM2YzYzdhMGY0NmJkZmNlMmFlYTRjOGIwODY1NTQ0YjY1ODEzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaApAQCAtMzUsOSArMzUs
MTQgQEAgY2xhc3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4gewogcHVibGljOgogICAgIGNsYXNzIER1bW15Q2FjaGVTdG9yYWdl
Q29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8RHVtbXlDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IER1bW15Q2FjaGVTdG9yYWdl
Q29ubmVjdGlvbik7IH0KKyAgICAgICAgc3RhdGljIFJlZjxEdW1teUNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKHNlc3Npb25JRCkpOyB9CiAKICAgICBw
cml2YXRlOgorICAgICAgICBleHBsaWNpdCBEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgICAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9u
SUQpCisgICAgICAgIHsKKyAgICAgICAgfQorCiAgICAgICAgIHZvaWQgb3Blbihjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmLCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVy
Q2FsbGJhY2smJikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90LCBET01D
YWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWwgeyB9CiAgICAgICAg
IHZvaWQgcmV0cmlldmVDYWNoZXMoY29uc3QgQ2xpZW50T3JpZ2luJiwgdWludDY0X3QsIERPTUNh
Y2hlRW5naW5lOjpDYWNoZUluZm9zQ2FsbGJhY2smJikgZmluYWwgeyB9CkBAIC00NiwxMCArNTEs
MTMgQEAgcHVibGljOgogICAgICAgICB2b2lkIGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90LCBW
ZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElk
ZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgcmVmZXJlbmNlKHVp
bnQ2NF90KSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBkZXJlZmVyZW5jZSh1aW50NjRfdCkgZmlu
YWwgeyB9CisgICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fc2Vzc2lvbklEOyB9CisKKyAgICAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9u
SUQ7CiAgICAgfTsKIAogICAgIHN0YXRpYyBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+IGNyZWF0
ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2FjaGVTdG9yYWdlUHJvdmlkZXIpOyB9Ci0gICAg
dmlydHVhbCBSZWY8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbihQQUw6OlNlc3Npb25JRCkgeyByZXR1cm4gRHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpjcmVhdGUoKTsgfQorICAgIHZpcnR1YWwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+
IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSB7
IHJldHVybiBEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZShzZXNzaW9uSUQpOyB9
CiAgICAgdmlydHVhbCB+Q2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IH07CiAKIHByb3RlY3RlZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCmluZGV4
IDY2MGE3OTZkMGIyZDg5ODYyNTFiODA2ZDM5MTNiZjkxNDU0ZTllNzcuLjhjZDM5MWQxZmUzNDli
MGNlOGE4ZjI3NDU5MzI5MWI3MWU0YTU0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVS
TCYpID0gMDsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0
IFVSTCYpID0gMDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShQQUw6
OlNlc3Npb25JRCwgY29uc3QgVVJMJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlQmxv
YnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
YmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0
aHMpPiYmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0
YS5jcHAKaW5kZXggZDcxYjFlZGNjZmNhZDE4YzVlZWM3MDJlMmYxZWVkZjdmOTZiNjNjNS4uMjE2
Y2IzMzdhNDBjNjBhNTA5Yzk2MzYxZDU5ZmYzM2Y2NzZlNDQ3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAKQEAgLTEyNCw5ICsxMjQsOSBAQCBSZWY8
Rm9ybURhdGE+IEZvcm1EYXRhOjppc29sYXRlZENvcHkoKSBjb25zdAogICAgIHJldHVybiBmb3Jt
RGF0YTsKIH0KIAotdWludDY0X3QgRm9ybURhdGFFbGVtZW50OjpsZW5ndGhJbkJ5dGVzKCkgY29u
c3QKK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgY29tcHV0ZUxlbmd0aEluQnl0ZXMoY29uc3QgRm9y
bURhdGFFbGVtZW50JiBlbGVtZW50LCBjb25zdCBGdW5jdGlvbjx1aW50NjRfdChjb25zdCBVUkwm
KT4mIGJsb2JTaXplKQogewotICAgIHJldHVybiBzd2l0Y2hPbihkYXRhLAorICAgIHJldHVybiBz
d2l0Y2hPbihlbGVtZW50LmRhdGEsCiAgICAgICAgIFtdIChjb25zdCBWZWN0b3I8Y2hhcj4mIGJ5
dGVzKSB7CiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJ5dGVzLnNp
emUoKSk7CiAgICAgICAgIH0sIFtdIChjb25zdCBGb3JtRGF0YUVsZW1lbnQ6OkVuY29kZWRGaWxl
RGF0YSYgZmlsZURhdGEpIHsKQEAgLTEzNiwxMiArMTM2LDI2IEBAIHVpbnQ2NF90IEZvcm1EYXRh
RWxlbWVudDo6bGVuZ3RoSW5CeXRlcygpIGNvbnN0CiAgICAgICAgICAgICBpZiAoRmlsZVN5c3Rl
bTo6Z2V0RmlsZVNpemUoZmlsZURhdGEuZmlsZW5hbWUsIGZpbGVTaXplKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGZpbGVTaXplKTsKICAgICAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRfdD4oMCk7Ci0gICAgICAgIH0sIFtdIChjb25zdCBG
b3JtRGF0YUVsZW1lbnQ6OkVuY29kZWRCbG9iRGF0YSYgYmxvYkRhdGEpIHsKLSAgICAgICAgICAg
IHJldHVybiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpibG9iU2l6ZShibG9iRGF0YS51cmwpOwor
ICAgICAgICB9LCBbJmJsb2JTaXplXSAoY29uc3QgRm9ybURhdGFFbGVtZW50OjpFbmNvZGVkQmxv
YkRhdGEmIGJsb2JEYXRhKSB7CisgICAgICAgICAgICByZXR1cm4gYmxvYlNpemUoYmxvYkRhdGEu
dXJsKTsKICAgICAgICAgfQogICAgICk7CiB9CiAKK3VpbnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6
bGVuZ3RoSW5CeXRlcyhCbG9iUmVnaXN0cnlJbXBsKiBibG9iUmVnaXN0cnkpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGNvbXB1dGVMZW5ndGhJbkJ5dGVzKCp0aGlzLCBbJl0oYXV0byYgdXJsKSB7Cisg
ICAgICAgIHJldHVybiBibG9iUmVnaXN0cnkgPyBibG9iUmVnaXN0cnktPmJsb2JTaXplKHVybCkg
OiAwOworICAgIH0pOworfQorCit1aW50NjRfdCBGb3JtRGF0YUVsZW1lbnQ6Omxlbmd0aEluQnl0
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdAoreworICAgIHJldHVybiBjb21wdXRl
TGVuZ3RoSW5CeXRlcygqdGhpcywgWyZdKGF1dG8mIHVybCkgeworICAgICAgICByZXR1cm4gYmxv
YlJlZ2lzdHJ5KCkuYmxvYlNpemUoc2Vzc2lvbklELCB1cmwpOworICAgIH0pOworfQorCiBGb3Jt
RGF0YUVsZW1lbnQgRm9ybURhdGFFbGVtZW50Ojppc29sYXRlZENvcHkoKSBjb25zdAogewogICAg
IHJldHVybiBzd2l0Y2hPbihkYXRhLApAQCAtMzgwLDEyICszOTQsMTIgQEAgRm9ybURhdGFGb3JV
cGxvYWQ6On5Gb3JtRGF0YUZvclVwbG9hZCgpCiAgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZp
bGUoZmlsZSk7CiB9CiAKLXVpbnQ2NF90IEZvcm1EYXRhOjpsZW5ndGhJbkJ5dGVzKCkgY29uc3QK
K3VpbnQ2NF90IEZvcm1EYXRhOjpsZW5ndGhJbkJ5dGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkgY29uc3QKIHsKICAgICBpZiAoIW1fbGVuZ3RoSW5CeXRlcykgewogICAgICAgICB1aW50NjRf
dCBsZW5ndGggPSAwOwogICAgICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBtX2VsZW1lbnRzKQot
ICAgICAgICAgICAgbGVuZ3RoICs9IGVsZW1lbnQubGVuZ3RoSW5CeXRlcygpOworICAgICAgICAg
ICAgbGVuZ3RoICs9IGVsZW1lbnQubGVuZ3RoSW5CeXRlcyhzZXNzaW9uSUQpOwogICAgICAgICBt
X2xlbmd0aEluQnl0ZXMgPSBsZW5ndGg7CiAgICAgfQogICAgIHJldHVybiAqbV9sZW5ndGhJbkJ5
dGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCmluZGV4IDdj
Njg2ZThiNDIzYjM2ZGU4YjEyZjEwYjU3ZGYxOGRlM2U0MDk1YjYuLmI4ZWMwM2RjMWY4MTQ0Yjc2
NGI4NDc2OGNhMzUxN2FkY2JjOTJmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvRm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Zvcm1EYXRhLmgKQEAgLTIwLDYgKzIwLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiQmxvYkRhdGEuaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9V
UkwuaD4KQEAgLTUwLDcgKzUxLDggQEAgc3RydWN0IEZvcm1EYXRhRWxlbWVudCB7CiAgICAgZXhw
bGljaXQgRm9ybURhdGFFbGVtZW50KGNvbnN0IFVSTCYgYmxvYlVSTCkKICAgICAgICAgOiBkYXRh
KEVuY29kZWRCbG9iRGF0YSB7IGJsb2JVUkwgfSkgeyB9CiAKLSAgICB1aW50NjRfdCBsZW5ndGhJ
bkJ5dGVzKCkgY29uc3Q7CisgICAgdWludDY0X3QgbGVuZ3RoSW5CeXRlcyhCbG9iUmVnaXN0cnlJ
bXBsKikgY29uc3Q7CisgICAgdWludDY0X3QgbGVuZ3RoSW5CeXRlcyhQQUw6OlNlc3Npb25JRCkg
Y29uc3Q7CiAKICAgICBGb3JtRGF0YUVsZW1lbnQgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAKQEAg
LTI0OSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBGb3JtVVJMRW5jb2RlZDsK
ICAgICB9CiAKLSAgICB1aW50NjRfdCBsZW5ndGhJbkJ5dGVzKCkgY29uc3Q7CisgICAgdWludDY0
X3QgbGVuZ3RoSW5CeXRlcyhQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBVUkwgYXNCbG9iVVJMKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCmluZGV4IDUz
ZmVhMDU2MzU5OGFjMTg5NWU5Njc2NDM3MmExN2U3ZDlkMmViZTYuLjlhM2E1NGZiNjU0NDAwMTc0
MDExMDNiNWFhM2U1MzI2YjY3NTZmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcApAQCAtMzc4LDcg
KzM3OCw3IEBAIFJldGFpblB0cjxDRlJlYWRTdHJlYW1SZWY+IGNyZWF0ZUhUVFBCb2R5Q0ZSZWFk
U3RyZWFtKEZvcm1EYXRhJiBmb3JtRGF0YSkKICAgICAvLyBQcmVjb21wdXRlIHRoZSBjb250ZW50
IGxlbmd0aCBzbyBDRk5ldHdvcmsgZG9lc24ndCB1c2UgY2h1bmtlZCBtb2RlLgogICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBsZW5ndGggPSAwOwogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGRhdGFG
b3JVcGxvYWQuZGF0YSgpLmVsZW1lbnRzKCkpCi0gICAgICAgIGxlbmd0aCArPSBlbGVtZW50Lmxl
bmd0aEluQnl0ZXMoKTsKKyAgICAgICAgbGVuZ3RoICs9IGVsZW1lbnQubGVuZ3RoSW5CeXRlcyhi
bG9iUmVnaXN0cnkoKS5ibG9iUmVnaXN0cnlJbXBsKCkpOwogCiAgICAgRm9ybUNyZWF0aW9uQ29u
dGV4dCogZm9ybUNvbnRleHQgPSBuZXcgRm9ybUNyZWF0aW9uQ29udGV4dCB7IFdURk1vdmUoZGF0
YUZvclVwbG9hZCksIGxlbmd0aCB9OwogICAgIENGUmVhZFN0cmVhbUNhbGxCYWNrc1YxIGNhbGxC
YWNrcyA9IHsgMSwgZm9ybUNyZWF0ZSwgZm9ybUZpbmFsaXplLCBudWxscHRyLCBmb3JtT3Blbiwg
bnVsbHB0ciwgZm9ybVJlYWQsIG51bGxwdHIsIGZvcm1DYW5SZWFkLCBmb3JtQ2xvc2UsIGZvcm1D
b3B5UHJvcGVydHksIG51bGxwdHIsIG51bGxwdHIsIGZvcm1TY2hlZHVsZSwgZm9ybVVuc2NoZWR1
bGUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGYwMTkzZDhjOTZl
MzVjOWZmNzVlNmE2M2EzNTBjNjU1ZGNhODYwZWYuLjhlNDQyNGVmMjQ2YTM2YTRkYjgxM2MzMDZj
YjMyMWZhNGZlYTI1MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAt
NjIxLDcgKzYyMSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVS
ZXF1ZXN0KCkKICAgICBpZiAobV9hc3luYykgewogICAgICAgICBtX3Byb2dyZXNzRXZlbnRUaHJv
dHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRzdGFydEV2ZW50KTsK
ICAgICAgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlICYmIG1fdXBsb2FkTGlzdGVuZXJGbGFnKQot
ICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCku
bG9hZHN0YXJ0RXZlbnQsIDAsIHJlcXVlc3QuaHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcygpKTsK
KyAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygp
LmxvYWRzdGFydEV2ZW50LCAwLCByZXF1ZXN0Lmh0dHBCb2R5KCktPmxlbmd0aEluQnl0ZXMoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXNzaW9uSUQoKSkpOwogCiAgICAgICAgIGlmIChyZWFk
eVN0YXRlKCkgIT0gT1BFTkVEIHx8ICFtX3NlbmRGbGFnIHx8IG1fbG9hZGVyKQogICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMmU0ZjUzZDJh
ZGMwZTg1MjAyNmIwMzcxYjUxNTRkNGIzYzg5OTZjMS4uMWYxMDA0ZTFiNWJjZDM5ZDhiMTIyZGY4
YzZkYTQ4ZDEzN2M0YmU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTYyNywy
MCArNjI3LDE3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVucmVnaXN0
ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwKICAgICBzZXNzaW9uLT5ibG9iUmVn
aXN0cnkoKS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpibG9iU2l6ZShjb25zdCBVUkwmIHVybCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpibG9iU2l6ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvKiBibG9iUmVnaXN0cnkgPSBuZXR3b3JrUHJvY2Vzcygp
LmJsb2JSZWdpc3RyeSgqdGhpcyk7Ci0gICAgaWYgKCFibG9iUmVnaXN0cnkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKGJsb2JSZWdpc3RyeS0+YmxvYlNpemUodXJs
KSk7CisgICAgYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vzc2lvbi0+Ymxv
YlJlZ2lzdHJ5KCkuYmxvYlNpemUodXJsKSA6IDApOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpOwogICAgIGlmICghc2Vzc2lvbikKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoeyB9KTsKIAogICAgIFZlY3RvcjxSZWZQdHI8QmxvYkRhdGFGaWxl
UmVmZXJlbmNlPj4gZmlsZVJlZmVyZW5jZXM7CiAgICAgZm9yIChhdXRvJiB1cmwgOiBibG9iVVJM
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA4ZmU5ZjMyYzllZmM2MmZkM2M1M2UwYjEy
YzJkZDVkMmM0NWRlMTA4Li45Mjg2NzMzYzRiN2M3NTEyYzI5YzUzMjQzODIxZDBlZTFlYzcxMzA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xODYsNyArMTg2LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZyb21VUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYgc3JjVVJMKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFs
bHlGaWxlQmFja2VkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VS
TCwgY29uc3QgU3RyaW5nJiBmaWxlQmFja2VkUGF0aCwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCwgY29u
c3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGludDY0X3Qgc3RhcnQsIGludDY0X3QgZW5kKTsK
LSAgICB2b2lkIGJsb2JTaXplKGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWlu
dDY0X3QpPiYmKTsKKyAgICB2b2lkIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAgICAgdm9pZCB1bnJlZ2lz
dGVyQmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJik7CiAgICAgdm9pZCB3cml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYpPiYmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMWU3N2M4
YWI5ODQ0OWZmMDRlZmFiNzkzMDVkNTEzOGRlYmQ4NWRkYS4uNGIxMTg5YjM5Y2NlYmM4ZmIyMjZm
OGZlZTAzNDI4YzZjODVhZDdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC00Nyw3ICs0Nyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZWdpc3RlckJsb2JVUkxPcHRpb25h
bGx5RmlsZUJhY2tlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwsIFVSTCBzcmNV
UkwsIFN0cmluZyBmaWxlQmFja2VkUGF0aCwgU3RyaW5nIGNvbnRlbnRUeXBlKQogICAgIFJlZ2lz
dGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCwgVVJM
IHNyY1VSTCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQpCiAgICAgVW5yZWdpc3RlckJsb2JV
UkwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsKQotICAgIEJsb2JTaXplKFVSTCB1
cmwpIC0+ICh1aW50NjRfdCByZXN1bHRTaXplKSBTeW5jaHJvbm91cworICAgIEJsb2JTaXplKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNpemUp
IFN5bmNocm9ub3VzCiAgICAgV3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBibG9iVVJMcykgLT4gKFZlY3RvcjxTdHJpbmc+
IGZpbGVOYW1lcykgQXN5bmMKIAogICAgIFNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmlj
c0VuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApp
bmRleCAwYzg0NmRiMDI0MmYzYTc1MTNlNmMzYjExMWVhYWMxZDg4NjBlYzk1Li40NjcyYjNlOWRh
MDYwZWNmZWNkYmNlODU1ZmE1NDZmZDdmZjZiMWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcApAQCAtNTgsNyArNTgsNyBAQCBCbG9iUmVnaXN0cnkqIE5ldHdvcmtQcm9jZXNz
UGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVCbG9iUmVnaXN0cnkoKQogICAgICAgICB2b2lkIHJl
Z2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBV
UkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwg
Y29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQogICAgICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcg
ZW5kKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgdW5yZWdp
c3RlckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpIGZpbmFsIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KLSAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0
IFVSTCYpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CisgICAgICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJikg
ZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KICAgICAgICAgdm9pZCB3
cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYg
ZmlsZVBhdGhzKT4mJikgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIH07CiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEVtcHR5QmxvYlJlZ2lzdHJ5PiBibG9iUmVnaXN0cnk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA0ZTU4YWZjMTgzMTljNTUzOGI4YzU0YjE5YmQ4ZDRm
MTdkODdjZTU2Li4zZTRkNDM5YWI3MGEwMjAwNjBjNjEzNGMzNjNlYjJmNDc3NjgxNWM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTY3LDYgKzY3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGVu
Z2luZVJlcHJlc2VudGF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+
JiYpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZShjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mKSBmaW5hbDsKIAorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisKICAgICBXZWJDYWNo
ZVN0b3JhZ2VQcm92aWRlciYgbV9wcm92aWRlcjsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Np
b25JRDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9C
bG9iUmVnaXN0cnlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9C
bG9iUmVnaXN0cnlQcm94eS5jcHAKaW5kZXggMmYzYjZiYTgzMTQ3ODQ1ZTY4NjJjNGY5MDM5N2Qy
NTFjNjViMTdmMy4uNzgxMTIwNzc4NGFmNjBhMmFkZWM1NmNhYTU4NjRhNzFiM2FkMTIzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3Ry
eVByb3h5LmNwcApAQCAtNzMsMTAgKzczLDEwIEBAIHZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnJl
Z2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QKICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKHNlc3Npb25JRCwgdXJsLCBzcmNVUkwsIHN0YXJ0
LCBlbmQpLCAwKTsKIH0KIAotdW5zaWduZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeVByb3h5Ojpi
bG9iU2l6ZShjb25zdCBVUkwmIHVybCkKK3Vuc2lnbmVkIGxvbmcgbG9uZyBCbG9iUmVnaXN0cnlQ
cm94eTo6YmxvYlNpemUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCkK
IHsKICAgICB1aW50NjRfdCByZXN1bHRTaXplOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRT
eW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QmxvYlNpemUodXJs
KSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpCbG9iU2l6ZTo6UmVw
bHkocmVzdWx0U2l6ZSksIDApKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QmxvYlNpemUoc2Vzc2lvbklELCB1
cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkJsb2JTaXplOjpS
ZXBseShyZXN1bHRTaXplKSwgMCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiByZXN1
bHRTaXplOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkv
QmxvYlJlZ2lzdHJ5UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Js
b2JSZWdpc3RyeVByb3h5LmgKaW5kZXggZDc2NjE1ODdlM2U3NDM4MzJlMjMyNWM2Nzk2Y2ZhMzQ1
YmI5NTZjMC4uODA5MjRjMGY5NDllZDdhMDgyYmFlMDI1ZGJhZjRiMzRiZjUxMDZjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94
eS5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwm
IHNyY1VSTCwgUmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiwgY29uc3Qg
U3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWw7CiAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJikgZmluYWw7CiAgICAgdm9pZCByZWdpc3RlckJsb2JV
UkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkws
IGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWw7Ci0gICAgdW5zaWduZWQgbG9u
ZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYpIGZpbmFsOworICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJikgZmluYWw7CiAgICAgdm9pZCB3
cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYg
ZmlsZVBhdGhzKT4mJikgZmluYWw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0K
aW5kZXggZGVmOThkYWUyZmViNDQ4MDdlZmIzMjE3YWNkY2NlY2JiNjU5OWRjMC4uMDg5ZTZhN2Fl
YzExNzkyNmMzYjk1OGY1YmMzMDAxNzUwYTFkMWYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5tbQpAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBVUkwmIHNyY1VSTCwgUmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4mJiByZWZlcmVu
Y2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVn
aXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQodXJsLCBzcmNVUkwsIFdURk1vdmUocmVm
ZXJlbmNlKSwgY29udGVudFR5cGUpOyB9CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxGb3JTbGlj
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25n
IGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkucmVnaXN0
ZXJCbG9iVVJMRm9yU2xpY2UodXJsLCBzcmNVUkwsIHN0YXJ0LCBlbmQpOyB9CiAgICAgdm9pZCB1
bnJlZ2lzdGVyQmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwpIGZpbmFsIHsg
bV9ibG9iUmVnaXN0cnkudW5yZWdpc3RlckJsb2JVUkwodXJsKTsgfQotICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmIHVybCkgZmluYWwgeyByZXR1cm4gbV9ibG9iUmVn
aXN0cnkuYmxvYlNpemUodXJsKTsgfQorICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwpIGZpbmFsIHsgcmV0dXJuIG1fYmxvYlJlZ2lz
dHJ5LmJsb2JTaXplKHVybCk7IH0KICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KGJsb2JVUkxzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KIAogICAgIEJsb2JSZWdp
c3RyeUltcGwqIGJsb2JSZWdpc3RyeUltcGwoKSBmaW5hbCB7IHJldHVybiAmbV9ibG9iUmVnaXN0
cnk7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376164</attachid>
            <date>2019-08-13 08:37:24 -0700</date>
            <delta_ts>2019-08-13 08:39:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200671-20190813173720.patch</filename>
            <type>text/plain</type>
            <size>30830</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ0OTVlNDc2OTE2MGI4
MjYwMTE4N2UxNGE4ZDBkNWQzMjg0YTRkYS4uM2MyOGY1OTFkYWQ4NzU4ZjJhMGE2YzI0YzRlZTA5
YjJiMjYxNjM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA4LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5OjpibG9iU2l6ZSBzaG91bGQgdGFrZSBhIFNlc3Npb25JRCBhcyBwYXJhbWV0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDY3MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBGb3Jt
RGF0YSB0byBjb21wdXRlIGl0cyBieXRlIHNpemUgYmFzZWQgb24gYSBTZXNzaW9uSUQuCisgICAg
ICAgIFdlIGtlZXAgYSBXSzEgYnl0ZSBsZW5ndGggY29tcHV0YXRpb24gZm9yIEZvcm1EYXRhRWxl
bWVudC4KKyAgICAgICAgVXBkYXRlIEZvcm1EYXRhIGNhbGwgc2l0ZXMgYWNjb3JkaW5nbHkuCisg
ICAgICAgIFVwZGF0ZSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIHRvIGltcGxlbWVudCBhIFNlc3Np
b25JRCBnZXR0ZXIuCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICAq
IE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wdXRlUmVhbEJvZHlTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbXB1dGVSZWFsQm9keVNpemUpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIGZpbGVhcGkvQmxvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjpzaXplIGNvbnN0
KToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUpOgorICAgICAgICAq
IGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9LZWVwYWxpdmVSZXF1ZXN0VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZWVwYWxp
dmVSZXF1ZXN0VHJhY2tlcjo6dHJ5UmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OktlZXBhbGl2ZVJlcXVlc3RUcmFja2VyOjpyZWdpc3RlclJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6S2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnVucmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAg
ICAgKiBwYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVMZW5ndGhJbkJ5
dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YTo6bGVuZ3RoSW5CeXRlcyBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVIVFRQQm9keUNGUmVhZFN0cmVhbSk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0
KToKKwogMjAxOS0wOC0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIFNlc3Npb25JRCBkZWZhdWx0IGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI3
NzQzZDc4ZGVlODM3NjE3MjcyMGE0ZWVjNGFhNTAzN2NkY2Q4ZjUuLmIzZjg0ZTQzNDRlZDNlYjRh
YjNkNWU5YzZiYjQ0N2YzZDgyMmQ5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTkt
MDgtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFRocmVh
ZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplIHNob3VsZCB0YWtlIGEgU2Vzc2lvbklEIGFzIHBh
cmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAwNjcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24gdG8gaW1wbGVtZW50IHNlc3Npb25JRCBn
ZXR0ZXIuCisgICAgICAgIFVwZGF0ZSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB0byBn
ZXQgYSBzZXNzaW9uSUQgYXMgcGFyYW1ldGVyIHRvIGJsb2JTaXplIGNvbXB1dGF0aW9uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YmxvYlNp
emUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6d3Jp
dGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lz
dHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oOgorCiAyMDE5LTA4LTEz
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgQVBJ
OjpQYWdlQ29uZmlndXJhdGlvbjo6bV9zZXNzaW9uSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCAzZmM4ZmRlYzNhNGQwZGE2ZjhiZmIyYmY0YjkwMjIwMjAwMGZkMTQ4Li45MmZjMWUx
YjQyMWNhNzRiMjIzNWE5NzM5YzFmNGFmZGY5OTc3MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMDgtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXpl
IHNob3VsZCB0YWtlIGEgU2Vzc2lvbklEIGFzIHBhcmFtZXRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNjcxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW06CisKIDIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEJsb2IgcmVnaXN0cmllcyBzaG91bGQgYmUga2V5ZWQgYnkgc2Vz
c2lvbiBJRHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDRhY2I4YWFiZDg2N2Q4ZGUyMjA5Mzc5YjI2MGM2
MWZmZmZlYjQ5MDAuLjRjMDRkMjRmNzQ1YmY3YTQyMzdjMzhlNTdhZGVhOGU4ZGRhMWI0ODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VD
b25uZWN0aW9uLmNwcApAQCAtMzMsMTEgKzMzLDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU7CiAKLXN0YXRpYyBpbmxpbmUg
dWludDY0X3QgY29tcHV0ZVJlYWxCb2R5U2l6ZShjb25zdCBET01DYWNoZUVuZ2luZTo6UmVzcG9u
c2VCb2R5JiBib2R5KQordWludDY0X3QgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y29tcHV0ZVJl
YWxCb2R5U2l6ZShjb25zdCBET01DYWNoZUVuZ2luZTo6UmVzcG9uc2VCb2R5JiBib2R5KQogewog
ICAgIHVpbnQ2NF90IHJlc3VsdCA9IDA7CiAgICAgV1RGOjpzd2l0Y2hPbihib2R5LCBbJl0gKGNv
bnN0IFJlZjxXZWJDb3JlOjpGb3JtRGF0YT4mIGZvcm1EYXRhKSB7Ci0gICAgICAgIHJlc3VsdCA9
IGZvcm1EYXRhLT5sZW5ndGhJbkJ5dGVzKCk7CisgICAgICAgIHJlc3VsdCA9IGZvcm1EYXRhLT5s
ZW5ndGhJbkJ5dGVzKHNlc3Npb25JRCgpKTsKICAgICB9LCBbJl0gKGNvbnN0IFJlZjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+JiBidWZmZXIpIHsKICAgICAgICAgcmVzdWx0ID0gYnVmZmVyLT5zaXpl
KCk7CiAgICAgfSwgW10gKGNvbnN0IHN0ZDo6bnVsbHB0cl90JikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA4
N2VhYjcxODYyNmM2MDI3NDE0ODlkYmMyYmZhNzdlODY1NjVhYzdjLi5kMWRhZmE4OWFmZWU4ZjA0
NGNlYzg4ZDUzNDRkOTVmYTFlNTg2N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTcsNiArNTcsMTEgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlbmdpbmVSZXByZXNlbnRhdGlvbihDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKFN0cmlu
ZyB7IH0pOyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVF1b3RhQmFzZWRPblNwYWNlVXNhZ2Uo
Y29uc3QgQ2xpZW50T3JpZ2luJikgeyB9CiAKKyAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCgpIGNvbnN0ID0gMDsKKworcHJpdmF0ZToKKyAgICB1aW50NjRfdCBjb21wdXRlUmVh
bEJvZHlTaXplKGNvbnN0IERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkmKTsKKwogcHJvdGVj
dGVkOgogICAgIEhhc2hNYXA8dWludDY0X3QsIHVpbnQ2NF90PiBtX29wYXF1ZVJlc3BvbnNlVG9T
aXplV2l0aFBhZGRpbmdNYXA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMjA2
YzI0MThlOTg3ZmVkZmRhMjEwMWU2ZWJhNWY1YTViYTBhZjNlZi4uZmYwNmE2YjhlYjhlZmJiMzNl
ZDNmZjM3Yzg3NzBmY2YxODhlZWI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0x
MzQsNiArMTM0LDExIEBAIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246On5Xb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uKCkKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbbWFpblRocmVh
ZENvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fbWFpblRocmVhZENvbm5lY3Rpb24pXSgpIG11dGFibGUg
eyB9KTsKIH0KIAorUEFMOjpTZXNzaW9uSUQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY29wZS5zZXNzaW9uSUQoKTsKK30K
Kwogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpvcGVuKGNvbnN0IENsaWVudE9y
aWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSwgQ2FjaGVJZGVudGlmaWVyQ2Fs
bGJhY2smJiBjYWxsYmFjaykKIHsKICAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsr
bV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDExOWQ0
Y2M2MTIwODNkYTcyODVmNGY3OWMyMmRlNTljOWIwYzRiZmIuLjJmM2FmYWQyOTQ0ZWIxNDI2Nzdm
MmI5YzUwZGQ1ZjI4ZDNiOTJjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01NSw2ICs1
NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWZlcmVuY2UodWludDY0X3QgY2FjaGVJZGVudGlm
aWVyKSBmaW5hbDsKICAgICB2b2lkIGRlcmVmZXJlbmNlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
cikgZmluYWw7CiAKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbDsK
KwogICAgIHZvaWQgZG9PcGVuKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSk7CiAgICAgdm9pZCBkb1JlbW92ZSh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGRvUmV0cmlldmVDYWNoZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0
IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxv
Yi5jcHAKaW5kZXggZDg5MWM3MDg2OGI4Yzc2YTkyOTExMTdjNTNjMzJjZjZmMTdhNjQ5Yy4uNTJh
NTM2Nzg1N2ExZmE0NzNkNDcxMTAyZDgzNGZjNzk0YmE0ODFiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Js
b2IuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIEJsb2I6OnNpemUo
KSBjb25zdAogICAgIGlmICghbV9zaXplKSB7CiAgICAgICAgIC8vIEZJWE1FOiBKYXZhU2NyaXB0
IGNhbm5vdCByZXByZXNlbnQgc2l6ZXMgYXMgbGFyZ2UgYXMgdW5zaWduZWQgbG9uZyBsb25nLCB3
ZSBuZWVkIHRvCiAgICAgICAgIC8vIGNvbWUgdXAgd2l0aCBhbiBleGNlcHRpb24gdG8gdGhyb3cg
aWYgZmlsZSBzaXplIGlzIG5vdCByZXByZXNlbnRhYmxlLgotICAgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgYWN0dWFsU2l6ZSA9IFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplKG1faW50
ZXJuYWxVUkwpOworICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYWN0dWFsU2l6ZSA9IFRocmVh
ZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplKG1fc2Vzc2lvbklELCBtX2ludGVybmFsVVJMKTsK
ICAgICAgICAgbV9zaXplID0gV1RGOjppc0luQm91bmRzPGxvbmcgbG9uZz4oYWN0dWFsU2l6ZSkg
PyBhY3R1YWxTaXplIDogMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCmluZGV4IGE5NWIyNDlmOGM4NDIzZmQ3NDViYzJh
Yzk3YjI3YmMwNGFhM2E3MzkuLjc2MTA2NjRmNWRhMDlhMWNmOGE1ZTE5NzY0Y2E3NzVmN2ExZGY2
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lz
dHJ5LmNwcApAQCAtMTI4LDE1ICsxMjgsMTUgQEAgdm9pZCBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5
OjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGMKICAg
ICB9KTsKIH0KIAotdW5zaWduZWQgbG9uZyBsb25nIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJs
b2JTaXplKGNvbnN0IFVSTCYgdXJsKQordW5zaWduZWQgbG9uZyBsb25nIFRocmVhZGFibGVCbG9i
UmVnaXN0cnk6OmJsb2JTaXplKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1
cmwpCiB7CiAgICAgaWYgKGlzTWFpblRocmVhZCgpKQotICAgICAgICByZXR1cm4gYmxvYlJlZ2lz
dHJ5KCkuYmxvYlNpemUodXJsKTsKKyAgICAgICAgcmV0dXJuIGJsb2JSZWdpc3RyeSgpLmJsb2JT
aXplKHNlc3Npb25JRCwgdXJsKTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHRTaXpl
OwogICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7Ci0gICAgY2FsbE9uTWFpblRocmVhZChb
dXJsID0gdXJsLmlzb2xhdGVkQ29weSgpLCAmc2VtYXBob3JlLCAmcmVzdWx0U2l6ZV0gewotICAg
ICAgICByZXN1bHRTaXplID0gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUodXJsKTsKKyAgICBjYWxs
T25NYWluVGhyZWFkKFtzZXNzaW9uSUQsIHVybCA9IHVybC5pc29sYXRlZENvcHkoKSwgJnNlbWFw
aG9yZSwgJnJlc3VsdFNpemVdIHsKKyAgICAgICAgcmVzdWx0U2l6ZSA9IGJsb2JSZWdpc3RyeSgp
LmJsb2JTaXplKHNlc3Npb25JRCwgdXJsKTsKICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwog
ICAgIH0pOwogICAgIHNlbWFwaG9yZS53YWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oCmluZGV4IDMxNWY1Y2FkYjQ2NjM4OTgwYjRjMWZk
OGVjNWI2N2RiZTNlNDEyNzQuLmM1NzZiMmQ0YmNkMDVhOGI1NmFhMzM4NGE5MGJjOWU3MmVhM2M5
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJs
b2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBuZXdVUkwsIGNvbnN0IFVS
TCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpOwogICAgIHN0YXRpYyB2
b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKTsKIAotICAg
IHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJik7CisgICAgc3Rh
dGljIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJM
Jik7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBvcmlnaW4gZm9yIHRoZSBnaXZlbiBibG9iIFVSTC4g
VGhpcyBpcyBiZWNhdXNlIHdlIGFyZSBub3QgYWJsZSB0byBlbWJlZCB0aGUgdW5pcXVlIHNlY3Vy
aXR5IG9yaWdpbiBvciB0aGUgb3JpZ2luIG9mIGZpbGUgVVJMCiAgICAgLy8gaW4gdGhlIGJsb2Ig
VVJMLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0tlZXBhbGl2ZVJl
cXVlc3RUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9LZWVwYWxpdmVS
ZXF1ZXN0VHJhY2tlci5jcHAKaW5kZXggMDBjNTUwNWU3ZWMxNzUwNTgyNWYxNGEzNTg3MGMwMzM4
N2Y5NDAxOS4uNDdhM2M3YjZlMDc2NTg1Yjk2ODVmMTM0MDdmMDNjMmMwZTZlYTJjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0tlZXBhbGl2ZVJlcXVlc3RUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvS2VlcGFsaXZlUmVxdWVzdFRy
YWNrZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIGJvb2wgS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6
OnRyeVJlZ2lzdGVyUmVxdWVzdChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiAgICAgaWYgKCFi
b2R5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHVpbnQ2NF90IGJvZHlTaXplID0gYm9k
eS0+bGVuZ3RoSW5CeXRlcygpOworICAgIHVpbnQ2NF90IGJvZHlTaXplID0gYm9keS0+bGVuZ3Ro
SW5CeXRlcyhyZXNvdXJjZS5zZXNzaW9uSUQoKSk7CiAgICAgaWYgKG1faW5mbGlnaHRLZWVwYWxp
dmVCeXRlcyArIGJvZHlTaXplID4gbWF4SW5mbGlnaHRLZWVwYWxpdmVCeXRlcykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgS2VlcGFsaXZlUmVxdWVzdFRy
YWNrZXI6OnJlZ2lzdGVyUmVxdWVzdChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiAgICAgICAg
IHJldHVybjsKICAgICBBU1NFUlQoIW1faW5mbGlnaHRLZWVwYWxpdmVSZXF1ZXN0cy5jb250YWlu
cygmcmVzb3VyY2UpKTsKICAgICBtX2luZmxpZ2h0S2VlcGFsaXZlUmVxdWVzdHMuYXBwZW5kKCZy
ZXNvdXJjZSk7Ci0gICAgbV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVzICs9IGJvZHktPmxlbmd0aElu
Qnl0ZXMoKTsKKyAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgKz0gYm9keS0+bGVuZ3RoSW5C
eXRlcyhyZXNvdXJjZS5zZXNzaW9uSUQoKSk7CiAgICAgQVNTRVJUKG1faW5mbGlnaHRLZWVwYWxp
dmVCeXRlcyA8PSBtYXhJbmZsaWdodEtlZXBhbGl2ZUJ5dGVzKTsKIAogICAgIHJlc291cmNlLmFk
ZENsaWVudCgqdGhpcyk7CkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgS2VlcGFsaXZlUmVxdWVzdFRy
YWNrZXI6OnVucmVnaXN0ZXJSZXF1ZXN0KENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKICAgICBy
ZXNvdXJjZS5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIGJvb2wgd2FzUmVtb3ZlZCA9IG1faW5m
bGlnaHRLZWVwYWxpdmVSZXF1ZXN0cy5yZW1vdmVGaXJzdCgmcmVzb3VyY2UpOwogICAgIEFTU0VS
VF9VTlVTRUQod2FzUmVtb3ZlZCwgd2FzUmVtb3ZlZCk7Ci0gICAgbV9pbmZsaWdodEtlZXBhbGl2
ZUJ5dGVzIC09IHJlc291cmNlLnJlc291cmNlUmVxdWVzdCgpLmh0dHBCb2R5KCktPmxlbmd0aElu
Qnl0ZXMoKTsKKyAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgLT0gcmVzb3VyY2UucmVzb3Vy
Y2VSZXF1ZXN0KCkuaHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcyhyZXNvdXJjZS5zZXNzaW9uSUQo
KSk7CiAgICAgQVNTRVJUKG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyA8PSBtYXhJbmZsaWdodEtl
ZXBhbGl2ZUJ5dGVzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNo
ZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92
aWRlci5oCmluZGV4IDYzNmYzZDBhMTE5YjdjNjdmYmJkZTdmNjFmMWY3ZDBmMGM1OWJmMWIuLmQ5
ZjNmM2M3YTBmNDZiZGZjZTJhZWE0YzhiMDg2NTU0NGI2NTgxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTM1LDkgKzM1LDE0IEBAIGNsYXNzIENh
Y2hlU3RvcmFnZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGVTdG9yYWdlUHJvdmlk
ZXI+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24gZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbiB7CiAgICAgcHVibGlj
OgotICAgICAgICBzdGF0aWMgUmVmPER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24pOyB9
CisgICAgICAgIHN0YXRpYyBSZWY8RHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IER1bW15Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbihzZXNzaW9uSUQpKTsgfQogCiAgICAgcHJpdmF0ZToKKyAgICAg
ICAgZXhwbGljaXQgRHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICAgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgICAgICB7
CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIG9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiwgY29u
c3QgU3RyaW5nJiwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZp
bmFsIHsgfQogICAgICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCwgRE9NQ2FjaGVFbmdpbmU6OkNh
Y2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJldHJpZXZl
Q2FjaGVzKGNvbnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2Fj
aGVJbmZvc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQpAQCAtNDYsMTAgKzUxLDEzIEBAIHB1YmxpYzoK
ICAgICAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCwgVmVjdG9yPERPTUNhY2hl
RW5naW5lOjpSZWNvcmQ+JiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxi
YWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJlZmVyZW5jZSh1aW50NjRfdCkgZmluYWwg
eyB9CiAgICAgICAgIHZvaWQgZGVyZWZlcmVuY2UodWludDY0X3QpIGZpbmFsIHsgfQorICAgICAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Np
b25JRDsgfQorCisgICAgICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIH07CiAK
ICAgICBzdGF0aWMgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IENhY2hlU3RvcmFnZVByb3ZpZGVyKTsgfQotICAgIHZpcnR1YWwgUmVmPENh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oUEFMOjpT
ZXNzaW9uSUQpIHsgcmV0dXJuIER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKCk7
IH0KKyAgICB2aXJ0dWFsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgeyByZXR1cm4gRHVtbXlD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoc2Vzc2lvbklEKTsgfQogICAgIHZpcnR1YWwg
fkNhY2hlU3RvcmFnZVByb3ZpZGVyKCkgeyB9OwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAppbmRleCA2NjBhNzk2ZDBiMmQ4
OTg2MjUxYjgwNmQzOTEzYmY5MTQ1NGU5ZTc3Li44Y2QzOTFkMWZlMzQ5YjBjZThhOGYyNzQ1OTMy
OTFiNzFlNGE1NGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxv
YlJlZ2lzdHJ5LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKSA9IDA7Cisg
ICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlG
aWxlcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYgZmlsZVBhdGhzKT4mJikgPSAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCmluZGV4IGQ3
MWIxZWRjY2ZjYWQxOGM1ZWVjNzAyZTJmMWVlZGY3Zjk2YjYzYzUuLjIxNmNiMzM3YTQwYzYwYTUw
OWM5NjM2MWQ1OWZmMzNmNjc2ZTQ0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvRm9ybURhdGEuY3BwCkBAIC0xMjQsOSArMTI0LDkgQEAgUmVmPEZvcm1EYXRhPiBGb3Jt
RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICByZXR1cm4gZm9ybURhdGE7CiB9CiAKLXVp
bnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcygpIGNvbnN0CitzdGF0aWMgaW5s
aW5lIHVpbnQ2NF90IGNvbXB1dGVMZW5ndGhJbkJ5dGVzKGNvbnN0IEZvcm1EYXRhRWxlbWVudCYg
ZWxlbWVudCwgY29uc3QgRnVuY3Rpb248dWludDY0X3QoY29uc3QgVVJMJik+JiBibG9iU2l6ZSkK
IHsKLSAgICByZXR1cm4gc3dpdGNoT24oZGF0YSwKKyAgICByZXR1cm4gc3dpdGNoT24oZWxlbWVu
dC5kYXRhLAogICAgICAgICBbXSAoY29uc3QgVmVjdG9yPGNoYXI+JiBieXRlcykgewogICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PihieXRlcy5zaXplKCkpOwogICAgICAg
ICB9LCBbXSAoY29uc3QgRm9ybURhdGFFbGVtZW50OjpFbmNvZGVkRmlsZURhdGEmIGZpbGVEYXRh
KSB7CkBAIC0xMzYsMTIgKzEzNiwyNiBAQCB1aW50NjRfdCBGb3JtRGF0YUVsZW1lbnQ6Omxlbmd0
aEluQnl0ZXMoKSBjb25zdAogICAgICAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmdldEZpbGVTaXpl
KGZpbGVEYXRhLmZpbGVuYW1lLCBmaWxlU2l6ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVpbnQ2NF90PihmaWxlU2l6ZSk7CiAgICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KDApOwotICAgICAgICB9LCBbXSAoY29uc3QgRm9ybURhdGFFbGVtZW50
OjpFbmNvZGVkQmxvYkRhdGEmIGJsb2JEYXRhKSB7Ci0gICAgICAgICAgICByZXR1cm4gVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUoYmxvYkRhdGEudXJsKTsKKyAgICAgICAgfSwgWyZi
bG9iU2l6ZV0gKGNvbnN0IEZvcm1EYXRhRWxlbWVudDo6RW5jb2RlZEJsb2JEYXRhJiBibG9iRGF0
YSkgeworICAgICAgICAgICAgcmV0dXJuIGJsb2JTaXplKGJsb2JEYXRhLnVybCk7CiAgICAgICAg
IH0KICAgICApOwogfQogCit1aW50NjRfdCBGb3JtRGF0YUVsZW1lbnQ6Omxlbmd0aEluQnl0ZXMo
QmxvYlJlZ2lzdHJ5SW1wbCogYmxvYlJlZ2lzdHJ5KSBjb25zdAoreworICAgIHJldHVybiBjb21w
dXRlTGVuZ3RoSW5CeXRlcygqdGhpcywgWyZdKGF1dG8mIHVybCkgeworICAgICAgICByZXR1cm4g
YmxvYlJlZ2lzdHJ5ID8gYmxvYlJlZ2lzdHJ5LT5ibG9iU2l6ZSh1cmwpIDogMDsKKyAgICB9KTsK
K30KKwordWludDY0X3QgRm9ybURhdGFFbGVtZW50OjpsZW5ndGhJbkJ5dGVzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29tcHV0ZUxlbmd0aEluQnl0ZXMo
KnRoaXMsIFsmXShhdXRvJiB1cmwpIHsKKyAgICAgICAgcmV0dXJuIGJsb2JSZWdpc3RyeSgpLmJs
b2JTaXplKHNlc3Npb25JRCwgdXJsKTsKKyAgICB9KTsKK30KKwogRm9ybURhdGFFbGVtZW50IEZv
cm1EYXRhRWxlbWVudDo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIHsKICAgICByZXR1cm4gc3dpdGNo
T24oZGF0YSwKQEAgLTM4MCwxMiArMzk0LDEyIEBAIEZvcm1EYXRhRm9yVXBsb2FkOjp+Rm9ybURh
dGFGb3JVcGxvYWQoKQogICAgICAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKGZpbGUpOwogfQog
Ci11aW50NjRfdCBGb3JtRGF0YTo6bGVuZ3RoSW5CeXRlcygpIGNvbnN0Cit1aW50NjRfdCBGb3Jt
RGF0YTo6bGVuZ3RoSW5CeXRlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2xlbmd0aEluQnl0ZXMpIHsKICAgICAgICAgdWludDY0X3QgbGVuZ3RoID0gMDsK
ICAgICAgICAgZm9yIChhdXRvJiBlbGVtZW50IDogbV9lbGVtZW50cykKLSAgICAgICAgICAgIGxl
bmd0aCArPSBlbGVtZW50Lmxlbmd0aEluQnl0ZXMoKTsKKyAgICAgICAgICAgIGxlbmd0aCArPSBl
bGVtZW50Lmxlbmd0aEluQnl0ZXMoc2Vzc2lvbklEKTsKICAgICAgICAgbV9sZW5ndGhJbkJ5dGVz
ID0gbGVuZ3RoOwogICAgIH0KICAgICByZXR1cm4gKm1fbGVuZ3RoSW5CeXRlczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAppbmRleCA3YzY4NmU4YjQyM2IzNmRl
OGIxMmYxMGI1N2RmMThkZTNlNDA5NWI2Li5iOGVjMDNkYzFmODE0NGI3NjRiODQ3NjhjYTM1MTdh
ZGNiYzkyZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zv
cm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5o
CkBAIC0yMCw2ICsyMCw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkJsb2JEYXRhLmgi
CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC01MCw3
ICs1MSw4IEBAIHN0cnVjdCBGb3JtRGF0YUVsZW1lbnQgewogICAgIGV4cGxpY2l0IEZvcm1EYXRh
RWxlbWVudChjb25zdCBVUkwmIGJsb2JVUkwpCiAgICAgICAgIDogZGF0YShFbmNvZGVkQmxvYkRh
dGEgeyBibG9iVVJMIH0pIHsgfQogCi0gICAgdWludDY0X3QgbGVuZ3RoSW5CeXRlcygpIGNvbnN0
OworICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0ZXMoQmxvYlJlZ2lzdHJ5SW1wbCopIGNvbnN0Owor
ICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0ZXMoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCiAgICAg
Rm9ybURhdGFFbGVtZW50IGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCkBAIC0yNDksNyArMjUxLDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gRm9ybVVSTEVuY29kZWQ7CiAgICAgfQogCi0gICAg
dWludDY0X3QgbGVuZ3RoSW5CeXRlcygpIGNvbnN0OworICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0
ZXMoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgVVJMIGFzQmxv
YlVSTCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcAppbmRleCA1M2ZlYTA1NjM1OThhYzE4
OTVlOTY3NjQzNzJhMTdlN2Q5ZDJlYmU2Li45YTNhNTRmYjY1NDQwMDE3NDAxMTAzYjVhYTNlNTMy
NmI2NzU2ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKQEAgLTM3OCw3ICszNzgsNyBAQCBSZXRh
aW5QdHI8Q0ZSZWFkU3RyZWFtUmVmPiBjcmVhdGVIVFRQQm9keUNGUmVhZFN0cmVhbShGb3JtRGF0
YSYgZm9ybURhdGEpCiAgICAgLy8gUHJlY29tcHV0ZSB0aGUgY29udGVudCBsZW5ndGggc28gQ0ZO
ZXR3b3JrIGRvZXNuJ3QgdXNlIGNodW5rZWQgbW9kZS4KICAgICB1bnNpZ25lZCBsb25nIGxvbmcg
bGVuZ3RoID0gMDsKICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBkYXRhRm9yVXBsb2FkLmRhdGEo
KS5lbGVtZW50cygpKQotICAgICAgICBsZW5ndGggKz0gZWxlbWVudC5sZW5ndGhJbkJ5dGVzKCk7
CisgICAgICAgIGxlbmd0aCArPSBlbGVtZW50Lmxlbmd0aEluQnl0ZXMoYmxvYlJlZ2lzdHJ5KCku
YmxvYlJlZ2lzdHJ5SW1wbCgpKTsKIAogICAgIEZvcm1DcmVhdGlvbkNvbnRleHQqIGZvcm1Db250
ZXh0ID0gbmV3IEZvcm1DcmVhdGlvbkNvbnRleHQgeyBXVEZNb3ZlKGRhdGFGb3JVcGxvYWQpLCBs
ZW5ndGggfTsKICAgICBDRlJlYWRTdHJlYW1DYWxsQmFja3NWMSBjYWxsQmFja3MgPSB7IDEsIGZv
cm1DcmVhdGUsIGZvcm1GaW5hbGl6ZSwgbnVsbHB0ciwgZm9ybU9wZW4sIG51bGxwdHIsIGZvcm1S
ZWFkLCBudWxscHRyLCBmb3JtQ2FuUmVhZCwgZm9ybUNsb3NlLCBmb3JtQ29weVByb3BlcnR5LCBu
dWxscHRyLCBudWxscHRyLCBmb3JtU2NoZWR1bGUsIGZvcm1VbnNjaGVkdWxlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBmMDE5M2Q4Yzk2ZTM1YzlmZjc1ZTZhNjNh
MzUwYzY1NWRjYTg2MGVmLi44ZTQ0MjRlZjI0NmEzNmE0ZGI4MTNjMzA2Y2IzMjFmYTRmZWEyNTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTYyMSw3ICs2MjEsNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAg
aWYgKG1fYXN5bmMpIHsKICAgICAgICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQ
cm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCk7CiAgICAgICAgIGlmICgh
bV91cGxvYWRDb21wbGV0ZSAmJiBtX3VwbG9hZExpc3RlbmVyRmxhZykKLSAgICAgICAgICAgIG1f
dXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRzdGFydEV2ZW50
LCAwLCByZXF1ZXN0Lmh0dHBCb2R5KCktPmxlbmd0aEluQnl0ZXMoKSk7CisgICAgICAgICAgICBt
X3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVu
dCwgMCwgcmVxdWVzdC5odHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2Vzc2lvbklEKCkpKTsKIAogICAgICAgICBpZiAocmVhZHlTdGF0ZSgpICE9IE9Q
RU5FRCB8fCAhbV9zZW5kRmxhZyB8fCBtX2xvYWRlcikKICAgICAgICAgICAgIHJldHVybiB7IH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDJlNGY1M2QyYWRjMGU4NTIwMjZiMDM3
MWI1MTU0ZDRiM2M4OTk2YzEuLjFmMTAwNGUxYjViY2QzOWQ4YjEyMmRmOGM2ZGE0OGQxMzdjNGJl
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC02MjcsMjAgKzYyNywxNyBAQCB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1bnJlZ2lzdGVyQmxvYlVSTChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkudW5yZWdp
c3RlckJsb2JVUkwodXJsKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6YmxvYlNpemUoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0
X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6YmxvYlNpemUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgYXV0byogYmxvYlJlZ2lzdHJ5ID0gbmV0d29ya1Byb2Nlc3MoKS5ibG9iUmVnaXN0cnko
KnRoaXMpOwotICAgIGlmICghYmxvYlJlZ2lzdHJ5KQotICAgICAgICByZXR1cm47Ci0KLSAgICBj
b21wbGV0aW9uSGFuZGxlcihibG9iUmVnaXN0cnktPmJsb2JTaXplKHVybCkpOworICAgIGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoc2Vzc2lvbiA/IHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLmJs
b2JTaXplKHVybCkgOiAwKTsKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFN0cmluZz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byogc2Vzc2lv
biA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKICAgICBpZiAo
IXNlc3Npb24pCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKHsgfSk7CiAKICAgICBWZWN0b3I8UmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IGZp
bGVSZWZlcmVuY2VzOwogICAgIGZvciAoYXV0byYgdXJsIDogYmxvYlVSTHMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKaW5kZXggOGZlOWYzMmM5ZWZjNjJmZDNjNTNlMGIxMmMyZGQ1ZDJjNDVkZTEw
OC4uOTI4NjczM2M0YjdjNzUxMmMyOWM1MzI0MzgyMWQwZWUxZWM3MTMwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaApAQCAtMTg2LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdp
c3RlckJsb2JVUkxGcm9tVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwm
IHNyY1VSTCk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmlu
ZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQg
cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0
IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCk7Ci0gICAgdm9pZCBibG9i
U2l6ZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7Cisg
ICAgdm9pZCBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogICAgIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpOwogICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVtcG9yYXJ5
RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDFlNzdjOGFiOTg0NDlmZjA0ZWZh
Yjc5MzA1ZDUxMzhkZWJkODVkZGEuLjRiMTE4OWIzOWNjZWJjOGZiMjI2ZjhmZWUwMzQyOGM2Yzg1
YWQ3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
NDcsNyArNDcsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgUmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsLCBVUkwgc3JjVVJMLCBTdHJpbmcgZmls
ZUJhY2tlZFBhdGgsIFN0cmluZyBjb250ZW50VHlwZSkKICAgICBSZWdpc3RlckJsb2JVUkxGb3JT
bGljZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwsIFVSTCBzcmNVUkwsIGludDY0
X3Qgc3RhcnQsIGludDY0X3QgZW5kKQogICAgIFVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgVVJMIHVybCkKLSAgICBCbG9iU2l6ZShVUkwgdXJsKSAtPiAodWludDY0
X3QgcmVzdWx0U2l6ZSkgU3luY2hyb25vdXMKKyAgICBCbG9iU2l6ZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICh1aW50NjRfdCByZXN1bHRTaXplKSBTeW5jaHJvbm91cwog
ICAgIFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VmVjdG9yPFN0cmluZz4gYmxvYlVSTHMpIC0+IChWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXMpIEFz
eW5jCiAKICAgICBTZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMGM4NDZkYjAy
NDJmM2E3NTEzZTZjM2IxMTFlYWFjMWQ4ODYwZWM5NS4uNDY3MmIzZTlkYTA2MGVjZmVjZGJjZTg1
NWZhNTQ2ZmQ3ZmY2YjFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAg
LTU4LDcgKzU4LDcgQEAgQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxP
cHRpb25hbGx5RmlsZUJhY2tlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29u
c3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWwgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKSBmaW5hbCB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorICAgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgYmxvYlNpemUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpIGZpbmFsIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CiAgICAgICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVt
cG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJM
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYp
IGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB9OwogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxFbXB0eUJsb2JSZWdpc3RyeT4gYmxvYlJlZ2lzdHJ5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMmJiOWFmMWQ0YzU4NjVkYTFmZWYzNmJm
MDY5N2E3ZGUzMThiMDhjMy4uMTQ4MTI4Mjg0ODRlZTEyMWJiNzA1Yjk3ZmRiMGEyM2JmMjYzODkw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC01NjEsNyAr
NTYxLDcgQEAgV2ViUlRDVW5pZmllZFBsYW5FbmFibGVkOgogICBjb25kaXRpb246IEVOQUJMRShX
RUJfUlRDKQogICBodW1hblJlYWRhYmxlTmFtZTogIldlYlJUQyBVbmlmaWVkIFBsYW4iCiAgIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlVzZSBXZWJSVEMgVW5pZmllZCBQbGFuIgotICBjYXRl
Z29yeTogZXhwZXJpbWVudGFsCisgIGNhdGVnb3J5OiBpbnRlcm5hbAogCiBXZWJSVENWUDhDb2Rl
Y0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKQEAgLTU3MCw3ICs1NzAsNyBAQCBXZWJSVENWUDhDb2Rl
Y0VuYWJsZWQ6CiAgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCiAgIGh1bWFuUmVhZGFibGVO
YW1lOiAiV2ViUlRDIFZQOCBjb2RlYyIKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5h
YmxlIFdlYlJUQyBWUDggY29kZWMiCi0gIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKyAgY2F0ZWdv
cnk6IGludGVybmFsCiAKIFdlYlJUQ0RUTUZFbmFibGVkOgogICB0eXBlOiBib29sCkBAIC01ODgs
NyArNTg4LDcgQEAgV2ViUlRDSDI2NFNpbXVsY2FzdEVuYWJsZWQ6CiAgIGNvbmRpdGlvbjogRU5B
QkxFKFdFQl9SVEMpCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViUlRDIEgyNjQgU2ltdWxjYXN0
IgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgV2ViUlRDIEgyNjQgU2ltdWxj
YXN0IgotICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisgIGNhdGVnb3J5OiBpbnRlcm5hbAogCiBX
ZWJSVENNRE5TSUNFQ2FuZGlkYXRlc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oCmluZGV4IDRlNThhZmMxODMxOWM1NTM4YjhjNTRiMTliZDhkNGYxN2Q4N2NlNTYuLjNl
NGQ0MzlhYjcwYTAyMDA2MGM2MTM0YzM2M2ViMmY0Nzc2ODE1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaApAQCAtNjcsNiArNjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5naW5lUmVwcmVzZW50
YXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJikgZmluYWw7CiAg
ICAgdm9pZCB1cGRhdGVRdW90YUJhc2VkT25TcGFjZVVzYWdlKGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYpIGZpbmFsOwogCisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKwogICAgIFdlYkNhY2hlU3RvcmFnZVByb3Zp
ZGVyJiBtX3Byb3ZpZGVyOwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVBy
b3h5LmNwcAppbmRleCAyZjNiNmJhODMxNDc4NDVlNjg2MmM0ZjkwMzk3ZDI1MWM2NWIxN2YzLi43
ODExMjA3Nzg0YWY2MGEyYWRlYzU2Y2FhNTg2NGE3MWIzYWQxMjNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCkBA
IC03MywxMCArNzMsMTAgQEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJM
Rm9yU2xpY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdAogICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJC
bG9iVVJMRm9yU2xpY2Uoc2Vzc2lvbklELCB1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCksIDApOwog
fQogCi11bnNpZ25lZCBsb25nIGxvbmcgQmxvYlJlZ2lzdHJ5UHJveHk6OmJsb2JTaXplKGNvbnN0
IFVSTCYgdXJsKQordW5zaWduZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeVByb3h5OjpibG9iU2l6
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsKQogewogICAgIHVpbnQ2
NF90IHJlc3VsdFNpemU7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpCbG9iU2l6ZSh1cmwpLCBNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkJsb2JTaXplOjpSZXBseShyZXN1bHRTaXpl
KSwgMCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpCbG9iU2l6ZShzZXNzaW9uSUQsIHVybCksIE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QmxvYlNpemU6OlJlcGx5KHJlc3VsdFNp
emUpLCAwKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHJlc3VsdFNpemU7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJv
eHkuaAppbmRleCBkNzY2MTU4N2UzZTc0MzgzMmUyMzI1YzY3OTZjZmEzNDViYjk1NmMwLi44MDky
NGMwZjk0OWVkN2EwODJiYWUwMjVkYmFmNGIzNGJmNTEwNmNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKQEAgLTM3LDcg
KzM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVC
YWNrZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQ
dHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRUeXBlKSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0
YXJ0LCBsb25nIGxvbmcgZW5kKSBmaW5hbDsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNp
emUoY29uc3QgVVJMJikgZmluYWw7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKSBmaW5hbDsKICAgICB2b2lkIHdyaXRlQmxvYnNUb1Rl
bXBvcmFyeUZpbGVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVS
THMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYm
KSBmaW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCBkZWY5OGRh
ZTJmZWI0NDgwN2VmYjMyMTdhY2RjY2VjYmI2NTk5ZGMwLi4wODllNmE3YWVjMTE3OTI2YzNiOTU4
ZjViYzMwMDE3NTBhMWQxZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC03
MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5
RmlsZUJhY2tlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3Jj
VVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxP
cHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250
ZW50VHlwZSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwg
bG9uZyBsb25nIGVuZCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxGb3JT
bGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJCbG9i
VVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCkgZmluYWwgeyBtX2Jsb2JSZWdpc3Ry
eS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOyB9Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JT
aXplKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJldHVybiBtX2Jsb2JSZWdpc3RyeS5ibG9iU2l6
ZSh1cmwpOyB9CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmIHVybCkgZmluYWwgeyByZXR1cm4gbV9ibG9iUmVnaXN0cnkuYmxvYlNpemUo
dXJsKTsgfQogICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFs
IHsgbV9ibG9iUmVnaXN0cnkud3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQogCiAgICAgQmxvYlJlZ2lzdHJ5SW1wbCogYmxv
YlJlZ2lzdHJ5SW1wbCgpIGZpbmFsIHsgcmV0dXJuICZtX2Jsb2JSZWdpc3RyeTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376165</attachid>
            <date>2019-08-13 08:39:55 -0700</date>
            <delta_ts>2019-08-14 02:31:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200671-20190813173952.patch</filename>
            <type>text/plain</type>
            <size>29746</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ0OTVlNDc2OTE2MGI4
MjYwMTE4N2UxNGE4ZDBkNWQzMjg0YTRkYS4uM2MyOGY1OTFkYWQ4NzU4ZjJhMGE2YzI0YzRlZTA5
YjJiMjYxNjM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA4LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5OjpibG9iU2l6ZSBzaG91bGQgdGFrZSBhIFNlc3Npb25JRCBhcyBwYXJhbWV0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDY3MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBGb3Jt
RGF0YSB0byBjb21wdXRlIGl0cyBieXRlIHNpemUgYmFzZWQgb24gYSBTZXNzaW9uSUQuCisgICAg
ICAgIFdlIGtlZXAgYSBXSzEgYnl0ZSBsZW5ndGggY29tcHV0YXRpb24gZm9yIEZvcm1EYXRhRWxl
bWVudC4KKyAgICAgICAgVXBkYXRlIEZvcm1EYXRhIGNhbGwgc2l0ZXMgYWNjb3JkaW5nbHkuCisg
ICAgICAgIFVwZGF0ZSBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIHRvIGltcGxlbWVudCBhIFNlc3Np
b25JRCBnZXR0ZXIuCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAgICAq
IE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wdXRlUmVhbEJvZHlTaXplKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbXB1dGVSZWFsQm9keVNpemUpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpzZXNzaW9uSUQgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIGZpbGVhcGkvQmxvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjpzaXplIGNvbnN0
KToKKyAgICAgICAgKiBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUpOgorICAgICAgICAq
IGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9LZWVwYWxpdmVSZXF1ZXN0VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZWVwYWxp
dmVSZXF1ZXN0VHJhY2tlcjo6dHJ5UmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OktlZXBhbGl2ZVJlcXVlc3RUcmFja2VyOjpyZWdpc3RlclJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6S2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnVucmVnaXN0ZXJSZXF1ZXN0KToKKyAgICAg
ICAgKiBwYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVMZW5ndGhJbkJ5
dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YTo6bGVuZ3RoSW5CeXRlcyBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVIVFRQQm9keUNGUmVhZFN0cmVhbSk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0
KToKKwogMjAxOS0wOC0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIFNlc3Npb25JRCBkZWZhdWx0IGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI3
NzQzZDc4ZGVlODM3NjE3MjcyMGE0ZWVjNGFhNTAzN2NkY2Q4ZjUuLmIzZjg0ZTQzNDRlZDNlYjRh
YjNkNWU5YzZiYjQ0N2YzZDgyMmQ5NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTkt
MDgtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFRocmVh
ZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplIHNob3VsZCB0YWtlIGEgU2Vzc2lvbklEIGFzIHBh
cmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAwNjcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24gdG8gaW1wbGVtZW50IHNlc3Npb25JRCBn
ZXR0ZXIuCisgICAgICAgIFVwZGF0ZSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB0byBn
ZXQgYSBzZXNzaW9uSUQgYXMgcGFyYW1ldGVyIHRvIGJsb2JTaXplIGNvbXB1dGF0aW9uLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YmxvYlNp
emUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6d3Jp
dGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxvYlJlZ2lz
dHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oOgorCiAyMDE5LTA4LTEz
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgQVBJ
OjpQYWdlQ29uZmlndXJhdGlvbjo6bV9zZXNzaW9uSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCAzZmM4ZmRlYzNhNGQwZGE2ZjhiZmIyYmY0YjkwMjIwMjAwMGZkMTQ4Li45MmZjMWUx
YjQyMWNhNzRiMjIzNWE5NzM5YzFmNGFmZGY5OTc3MWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMDgtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXpl
IHNob3VsZCB0YWtlIGEgU2Vzc2lvbklEIGFzIHBhcmFtZXRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNjcxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW06CisKIDIwMTktMDgtMTIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEJsb2IgcmVnaXN0cmllcyBzaG91bGQgYmUga2V5ZWQgYnkgc2Vz
c2lvbiBJRHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDRhY2I4YWFiZDg2N2Q4ZGUyMjA5Mzc5YjI2MGM2
MWZmZmZlYjQ5MDAuLjRjMDRkMjRmNzQ1YmY3YTQyMzdjMzhlNTdhZGVhOGU4ZGRhMWI0ODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VD
b25uZWN0aW9uLmNwcApAQCAtMzMsMTEgKzMzLDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU7CiAKLXN0YXRpYyBpbmxpbmUg
dWludDY0X3QgY29tcHV0ZVJlYWxCb2R5U2l6ZShjb25zdCBET01DYWNoZUVuZ2luZTo6UmVzcG9u
c2VCb2R5JiBib2R5KQordWludDY0X3QgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y29tcHV0ZVJl
YWxCb2R5U2l6ZShjb25zdCBET01DYWNoZUVuZ2luZTo6UmVzcG9uc2VCb2R5JiBib2R5KQogewog
ICAgIHVpbnQ2NF90IHJlc3VsdCA9IDA7CiAgICAgV1RGOjpzd2l0Y2hPbihib2R5LCBbJl0gKGNv
bnN0IFJlZjxXZWJDb3JlOjpGb3JtRGF0YT4mIGZvcm1EYXRhKSB7Ci0gICAgICAgIHJlc3VsdCA9
IGZvcm1EYXRhLT5sZW5ndGhJbkJ5dGVzKCk7CisgICAgICAgIHJlc3VsdCA9IGZvcm1EYXRhLT5s
ZW5ndGhJbkJ5dGVzKHNlc3Npb25JRCgpKTsKICAgICB9LCBbJl0gKGNvbnN0IFJlZjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+JiBidWZmZXIpIHsKICAgICAgICAgcmVzdWx0ID0gYnVmZmVyLT5zaXpl
KCk7CiAgICAgfSwgW10gKGNvbnN0IHN0ZDo6bnVsbHB0cl90JikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA4
N2VhYjcxODYyNmM2MDI3NDE0ODlkYmMyYmZhNzdlODY1NjVhYzdjLi5kMWRhZmE4OWFmZWU4ZjA0
NGNlYzg4ZDUzNDRkOTVmYTFlNTg2N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTcsNiArNTcsMTEgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlbmdpbmVSZXByZXNlbnRhdGlvbihDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKFN0cmlu
ZyB7IH0pOyB9CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVF1b3RhQmFzZWRPblNwYWNlVXNhZ2Uo
Y29uc3QgQ2xpZW50T3JpZ2luJikgeyB9CiAKKyAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCgpIGNvbnN0ID0gMDsKKworcHJpdmF0ZToKKyAgICB1aW50NjRfdCBjb21wdXRlUmVh
bEJvZHlTaXplKGNvbnN0IERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkmKTsKKwogcHJvdGVj
dGVkOgogICAgIEhhc2hNYXA8dWludDY0X3QsIHVpbnQ2NF90PiBtX29wYXF1ZVJlc3BvbnNlVG9T
aXplV2l0aFBhZGRpbmdNYXA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggMjA2
YzI0MThlOTg3ZmVkZmRhMjEwMWU2ZWJhNWY1YTViYTBhZjNlZi4uZmYwNmE2YjhlYjhlZmJiMzNl
ZDNmZjM3Yzg3NzBmY2YxODhlZWI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0x
MzQsNiArMTM0LDExIEBAIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246On5Xb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uKCkKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbbWFpblRocmVh
ZENvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fbWFpblRocmVhZENvbm5lY3Rpb24pXSgpIG11dGFibGUg
eyB9KTsKIH0KIAorUEFMOjpTZXNzaW9uSUQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
c2Vzc2lvbklEKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY29wZS5zZXNzaW9uSUQoKTsKK30K
Kwogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpvcGVuKGNvbnN0IENsaWVudE9y
aWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSwgQ2FjaGVJZGVudGlmaWVyQ2Fs
bGJhY2smJiBjYWxsYmFjaykKIHsKICAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsr
bV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDExOWQ0
Y2M2MTIwODNkYTcyODVmNGY3OWMyMmRlNTljOWIwYzRiZmIuLjJmM2FmYWQyOTQ0ZWIxNDI2Nzdm
MmI5YzUwZGQ1ZjI4ZDNiOTJjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01NSw2ICs1
NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWZlcmVuY2UodWludDY0X3QgY2FjaGVJZGVudGlm
aWVyKSBmaW5hbDsKICAgICB2b2lkIGRlcmVmZXJlbmNlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
cikgZmluYWw7CiAKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbDsK
KwogICAgIHZvaWQgZG9PcGVuKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSk7CiAgICAgdm9pZCBkb1JlbW92ZSh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgY2FjaGVJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGRvUmV0cmlldmVDYWNoZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0
IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxv
Yi5jcHAKaW5kZXggZDg5MWM3MDg2OGI4Yzc2YTkyOTExMTdjNTNjMzJjZjZmMTdhNjQ5Yy4uNTJh
NTM2Nzg1N2ExZmE0NzNkNDcxMTAyZDgzNGZjNzk0YmE0ODFiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Js
b2IuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAgdW5zaWduZWQgbG9uZyBsb25nIEJsb2I6OnNpemUo
KSBjb25zdAogICAgIGlmICghbV9zaXplKSB7CiAgICAgICAgIC8vIEZJWE1FOiBKYXZhU2NyaXB0
IGNhbm5vdCByZXByZXNlbnQgc2l6ZXMgYXMgbGFyZ2UgYXMgdW5zaWduZWQgbG9uZyBsb25nLCB3
ZSBuZWVkIHRvCiAgICAgICAgIC8vIGNvbWUgdXAgd2l0aCBhbiBleGNlcHRpb24gdG8gdGhyb3cg
aWYgZmlsZSBzaXplIGlzIG5vdCByZXByZXNlbnRhYmxlLgotICAgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgYWN0dWFsU2l6ZSA9IFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplKG1faW50
ZXJuYWxVUkwpOworICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgYWN0dWFsU2l6ZSA9IFRocmVh
ZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplKG1fc2Vzc2lvbklELCBtX2ludGVybmFsVVJMKTsK
ICAgICAgICAgbV9zaXplID0gV1RGOjppc0luQm91bmRzPGxvbmcgbG9uZz4oYWN0dWFsU2l6ZSkg
PyBhY3R1YWxTaXplIDogMDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCmluZGV4IGE5NWIyNDlmOGM4NDIzZmQ3NDViYzJh
Yzk3YjI3YmMwNGFhM2E3MzkuLjc2MTA2NjRmNWRhMDlhMWNmOGE1ZTE5NzY0Y2E3NzVmN2ExZGY2
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lz
dHJ5LmNwcApAQCAtMTI4LDE1ICsxMjgsMTUgQEAgdm9pZCBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5
OjpyZWdpc3RlckJsb2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGMKICAg
ICB9KTsKIH0KIAotdW5zaWduZWQgbG9uZyBsb25nIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJs
b2JTaXplKGNvbnN0IFVSTCYgdXJsKQordW5zaWduZWQgbG9uZyBsb25nIFRocmVhZGFibGVCbG9i
UmVnaXN0cnk6OmJsb2JTaXplKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1
cmwpCiB7CiAgICAgaWYgKGlzTWFpblRocmVhZCgpKQotICAgICAgICByZXR1cm4gYmxvYlJlZ2lz
dHJ5KCkuYmxvYlNpemUodXJsKTsKKyAgICAgICAgcmV0dXJuIGJsb2JSZWdpc3RyeSgpLmJsb2JT
aXplKHNlc3Npb25JRCwgdXJsKTsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHRTaXpl
OwogICAgIEJpbmFyeVNlbWFwaG9yZSBzZW1hcGhvcmU7Ci0gICAgY2FsbE9uTWFpblRocmVhZChb
dXJsID0gdXJsLmlzb2xhdGVkQ29weSgpLCAmc2VtYXBob3JlLCAmcmVzdWx0U2l6ZV0gewotICAg
ICAgICByZXN1bHRTaXplID0gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUodXJsKTsKKyAgICBjYWxs
T25NYWluVGhyZWFkKFtzZXNzaW9uSUQsIHVybCA9IHVybC5pc29sYXRlZENvcHkoKSwgJnNlbWFw
aG9yZSwgJnJlc3VsdFNpemVdIHsKKyAgICAgICAgcmVzdWx0U2l6ZSA9IGJsb2JSZWdpc3RyeSgp
LmJsb2JTaXplKHNlc3Npb25JRCwgdXJsKTsKICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOwog
ICAgIH0pOwogICAgIHNlbWFwaG9yZS53YWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oCmluZGV4IDMxNWY1Y2FkYjQ2NjM4OTgwYjRjMWZk
OGVjNWI2N2RiZTNlNDEyNzQuLmM1NzZiMmQ0YmNkMDVhOGI1NmFhMzM4NGE5MGJjOWU3MmVhM2M5
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJs
b2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBuZXdVUkwsIGNvbnN0IFVS
TCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpOwogICAgIHN0YXRpYyB2
b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKTsKIAotICAg
IHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJik7CisgICAgc3Rh
dGljIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJM
Jik7CiAKICAgICAvLyBSZXR1cm5zIHRoZSBvcmlnaW4gZm9yIHRoZSBnaXZlbiBibG9iIFVSTC4g
VGhpcyBpcyBiZWNhdXNlIHdlIGFyZSBub3QgYWJsZSB0byBlbWJlZCB0aGUgdW5pcXVlIHNlY3Vy
aXR5IG9yaWdpbiBvciB0aGUgb3JpZ2luIG9mIGZpbGUgVVJMCiAgICAgLy8gaW4gdGhlIGJsb2Ig
VVJMLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0tlZXBhbGl2ZVJl
cXVlc3RUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9LZWVwYWxpdmVS
ZXF1ZXN0VHJhY2tlci5jcHAKaW5kZXggMDBjNTUwNWU3ZWMxNzUwNTgyNWYxNGEzNTg3MGMwMzM4
N2Y5NDAxOS4uNDdhM2M3YjZlMDc2NTg1Yjk2ODVmMTM0MDdmMDNjMmMwZTZlYTJjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0tlZXBhbGl2ZVJlcXVlc3RUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvS2VlcGFsaXZlUmVxdWVzdFRy
YWNrZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIGJvb2wgS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6
OnRyeVJlZ2lzdGVyUmVxdWVzdChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiAgICAgaWYgKCFi
b2R5KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHVpbnQ2NF90IGJvZHlTaXplID0gYm9k
eS0+bGVuZ3RoSW5CeXRlcygpOworICAgIHVpbnQ2NF90IGJvZHlTaXplID0gYm9keS0+bGVuZ3Ro
SW5CeXRlcyhyZXNvdXJjZS5zZXNzaW9uSUQoKSk7CiAgICAgaWYgKG1faW5mbGlnaHRLZWVwYWxp
dmVCeXRlcyArIGJvZHlTaXplID4gbWF4SW5mbGlnaHRLZWVwYWxpdmVCeXRlcykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgS2VlcGFsaXZlUmVxdWVzdFRy
YWNrZXI6OnJlZ2lzdGVyUmVxdWVzdChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCiAgICAgICAg
IHJldHVybjsKICAgICBBU1NFUlQoIW1faW5mbGlnaHRLZWVwYWxpdmVSZXF1ZXN0cy5jb250YWlu
cygmcmVzb3VyY2UpKTsKICAgICBtX2luZmxpZ2h0S2VlcGFsaXZlUmVxdWVzdHMuYXBwZW5kKCZy
ZXNvdXJjZSk7Ci0gICAgbV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVzICs9IGJvZHktPmxlbmd0aElu
Qnl0ZXMoKTsKKyAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgKz0gYm9keS0+bGVuZ3RoSW5C
eXRlcyhyZXNvdXJjZS5zZXNzaW9uSUQoKSk7CiAgICAgQVNTRVJUKG1faW5mbGlnaHRLZWVwYWxp
dmVCeXRlcyA8PSBtYXhJbmZsaWdodEtlZXBhbGl2ZUJ5dGVzKTsKIAogICAgIHJlc291cmNlLmFk
ZENsaWVudCgqdGhpcyk7CkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgS2VlcGFsaXZlUmVxdWVzdFRy
YWNrZXI6OnVucmVnaXN0ZXJSZXF1ZXN0KENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKICAgICBy
ZXNvdXJjZS5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgIGJvb2wgd2FzUmVtb3ZlZCA9IG1faW5m
bGlnaHRLZWVwYWxpdmVSZXF1ZXN0cy5yZW1vdmVGaXJzdCgmcmVzb3VyY2UpOwogICAgIEFTU0VS
VF9VTlVTRUQod2FzUmVtb3ZlZCwgd2FzUmVtb3ZlZCk7Ci0gICAgbV9pbmZsaWdodEtlZXBhbGl2
ZUJ5dGVzIC09IHJlc291cmNlLnJlc291cmNlUmVxdWVzdCgpLmh0dHBCb2R5KCktPmxlbmd0aElu
Qnl0ZXMoKTsKKyAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgLT0gcmVzb3VyY2UucmVzb3Vy
Y2VSZXF1ZXN0KCkuaHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcyhyZXNvdXJjZS5zZXNzaW9uSUQo
KSk7CiAgICAgQVNTRVJUKG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyA8PSBtYXhJbmZsaWdodEtl
ZXBhbGl2ZUJ5dGVzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNo
ZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92
aWRlci5oCmluZGV4IDYzNmYzZDBhMTE5YjdjNjdmYmJkZTdmNjFmMWY3ZDBmMGM1OWJmMWIuLmQ5
ZjNmM2M3YTBmNDZiZGZjZTJhZWE0YzhiMDg2NTU0NGI2NTgxM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTM1LDkgKzM1LDE0IEBAIGNsYXNzIENh
Y2hlU3RvcmFnZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8Q2FjaGVTdG9yYWdlUHJvdmlk
ZXI+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24gZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbiB7CiAgICAgcHVibGlj
OgotICAgICAgICBzdGF0aWMgUmVmPER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24pOyB9
CisgICAgICAgIHN0YXRpYyBSZWY8RHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IER1bW15Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbihzZXNzaW9uSUQpKTsgfQogCiAgICAgcHJpdmF0ZToKKyAgICAg
ICAgZXhwbGljaXQgRHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKKyAgICAgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgICAgICB7
CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIG9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiwgY29u
c3QgU3RyaW5nJiwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZp
bmFsIHsgfQogICAgICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCwgRE9NQ2FjaGVFbmdpbmU6OkNh
Y2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJldHJpZXZl
Q2FjaGVzKGNvbnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2Fj
aGVJbmZvc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQpAQCAtNDYsMTAgKzUxLDEzIEBAIHB1YmxpYzoK
ICAgICAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCwgVmVjdG9yPERPTUNhY2hl
RW5naW5lOjpSZWNvcmQ+JiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxi
YWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJlZmVyZW5jZSh1aW50NjRfdCkgZmluYWwg
eyB9CiAgICAgICAgIHZvaWQgZGVyZWZlcmVuY2UodWludDY0X3QpIGZpbmFsIHsgfQorICAgICAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Np
b25JRDsgfQorCisgICAgICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIH07CiAK
ICAgICBzdGF0aWMgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IENhY2hlU3RvcmFnZVByb3ZpZGVyKTsgfQotICAgIHZpcnR1YWwgUmVmPENh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oUEFMOjpT
ZXNzaW9uSUQpIHsgcmV0dXJuIER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKCk7
IH0KKyAgICB2aXJ0dWFsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgeyByZXR1cm4gRHVtbXlD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoc2Vzc2lvbklEKTsgfQogICAgIHZpcnR1YWwg
fkNhY2hlU3RvcmFnZVByb3ZpZGVyKCkgeyB9OwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaAppbmRleCA2NjBhNzk2ZDBiMmQ4
OTg2MjUxYjgwNmQzOTEzYmY5MTQ1NGU5ZTc3Li44Y2QzOTFkMWZlMzQ5YjBjZThhOGYyNzQ1OTMy
OTFiNzFlNGE1NGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxv
YlJlZ2lzdHJ5LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKSA9IDA7CiAKLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKSA9IDA7Cisg
ICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlG
aWxlcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYgZmlsZVBhdGhzKT4mJikgPSAwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCmluZGV4IGQ3
MWIxZWRjY2ZjYWQxOGM1ZWVjNzAyZTJmMWVlZGY3Zjk2YjYzYzUuLjIxNmNiMzM3YTQwYzYwYTUw
OWM5NjM2MWQ1OWZmMzNmNjc2ZTQ0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvRm9ybURhdGEuY3BwCkBAIC0xMjQsOSArMTI0LDkgQEAgUmVmPEZvcm1EYXRhPiBGb3Jt
RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAgICByZXR1cm4gZm9ybURhdGE7CiB9CiAKLXVp
bnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcygpIGNvbnN0CitzdGF0aWMgaW5s
aW5lIHVpbnQ2NF90IGNvbXB1dGVMZW5ndGhJbkJ5dGVzKGNvbnN0IEZvcm1EYXRhRWxlbWVudCYg
ZWxlbWVudCwgY29uc3QgRnVuY3Rpb248dWludDY0X3QoY29uc3QgVVJMJik+JiBibG9iU2l6ZSkK
IHsKLSAgICByZXR1cm4gc3dpdGNoT24oZGF0YSwKKyAgICByZXR1cm4gc3dpdGNoT24oZWxlbWVu
dC5kYXRhLAogICAgICAgICBbXSAoY29uc3QgVmVjdG9yPGNoYXI+JiBieXRlcykgewogICAgICAg
ICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PihieXRlcy5zaXplKCkpOwogICAgICAg
ICB9LCBbXSAoY29uc3QgRm9ybURhdGFFbGVtZW50OjpFbmNvZGVkRmlsZURhdGEmIGZpbGVEYXRh
KSB7CkBAIC0xMzYsMTIgKzEzNiwyNiBAQCB1aW50NjRfdCBGb3JtRGF0YUVsZW1lbnQ6Omxlbmd0
aEluQnl0ZXMoKSBjb25zdAogICAgICAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmdldEZpbGVTaXpl
KGZpbGVEYXRhLmZpbGVuYW1lLCBmaWxlU2l6ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVpbnQ2NF90PihmaWxlU2l6ZSk7CiAgICAgICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KDApOwotICAgICAgICB9LCBbXSAoY29uc3QgRm9ybURhdGFFbGVtZW50
OjpFbmNvZGVkQmxvYkRhdGEmIGJsb2JEYXRhKSB7Ci0gICAgICAgICAgICByZXR1cm4gVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUoYmxvYkRhdGEudXJsKTsKKyAgICAgICAgfSwgWyZi
bG9iU2l6ZV0gKGNvbnN0IEZvcm1EYXRhRWxlbWVudDo6RW5jb2RlZEJsb2JEYXRhJiBibG9iRGF0
YSkgeworICAgICAgICAgICAgcmV0dXJuIGJsb2JTaXplKGJsb2JEYXRhLnVybCk7CiAgICAgICAg
IH0KICAgICApOwogfQogCit1aW50NjRfdCBGb3JtRGF0YUVsZW1lbnQ6Omxlbmd0aEluQnl0ZXMo
QmxvYlJlZ2lzdHJ5SW1wbCogYmxvYlJlZ2lzdHJ5KSBjb25zdAoreworICAgIHJldHVybiBjb21w
dXRlTGVuZ3RoSW5CeXRlcygqdGhpcywgWyZdKGF1dG8mIHVybCkgeworICAgICAgICByZXR1cm4g
YmxvYlJlZ2lzdHJ5ID8gYmxvYlJlZ2lzdHJ5LT5ibG9iU2l6ZSh1cmwpIDogMDsKKyAgICB9KTsK
K30KKwordWludDY0X3QgRm9ybURhdGFFbGVtZW50OjpsZW5ndGhJbkJ5dGVzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29tcHV0ZUxlbmd0aEluQnl0ZXMo
KnRoaXMsIFsmXShhdXRvJiB1cmwpIHsKKyAgICAgICAgcmV0dXJuIGJsb2JSZWdpc3RyeSgpLmJs
b2JTaXplKHNlc3Npb25JRCwgdXJsKTsKKyAgICB9KTsKK30KKwogRm9ybURhdGFFbGVtZW50IEZv
cm1EYXRhRWxlbWVudDo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIHsKICAgICByZXR1cm4gc3dpdGNo
T24oZGF0YSwKQEAgLTM4MCwxMiArMzk0LDEyIEBAIEZvcm1EYXRhRm9yVXBsb2FkOjp+Rm9ybURh
dGFGb3JVcGxvYWQoKQogICAgICAgICBGaWxlU3lzdGVtOjpkZWxldGVGaWxlKGZpbGUpOwogfQog
Ci11aW50NjRfdCBGb3JtRGF0YTo6bGVuZ3RoSW5CeXRlcygpIGNvbnN0Cit1aW50NjRfdCBGb3Jt
RGF0YTo6bGVuZ3RoSW5CeXRlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2xlbmd0aEluQnl0ZXMpIHsKICAgICAgICAgdWludDY0X3QgbGVuZ3RoID0gMDsK
ICAgICAgICAgZm9yIChhdXRvJiBlbGVtZW50IDogbV9lbGVtZW50cykKLSAgICAgICAgICAgIGxl
bmd0aCArPSBlbGVtZW50Lmxlbmd0aEluQnl0ZXMoKTsKKyAgICAgICAgICAgIGxlbmd0aCArPSBl
bGVtZW50Lmxlbmd0aEluQnl0ZXMoc2Vzc2lvbklEKTsKICAgICAgICAgbV9sZW5ndGhJbkJ5dGVz
ID0gbGVuZ3RoOwogICAgIH0KICAgICByZXR1cm4gKm1fbGVuZ3RoSW5CeXRlczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAppbmRleCA3YzY4NmU4YjQyM2IzNmRl
OGIxMmYxMGI1N2RmMThkZTNlNDA5NWI2Li5iOGVjMDNkYzFmODE0NGI3NjRiODQ3NjhjYTM1MTdh
ZGNiYzkyZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zv
cm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5o
CkBAIC0yMCw2ICsyMCw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkJsb2JEYXRhLmgi
CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC01MCw3
ICs1MSw4IEBAIHN0cnVjdCBGb3JtRGF0YUVsZW1lbnQgewogICAgIGV4cGxpY2l0IEZvcm1EYXRh
RWxlbWVudChjb25zdCBVUkwmIGJsb2JVUkwpCiAgICAgICAgIDogZGF0YShFbmNvZGVkQmxvYkRh
dGEgeyBibG9iVVJMIH0pIHsgfQogCi0gICAgdWludDY0X3QgbGVuZ3RoSW5CeXRlcygpIGNvbnN0
OworICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0ZXMoQmxvYlJlZ2lzdHJ5SW1wbCopIGNvbnN0Owor
ICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0ZXMoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCiAgICAg
Rm9ybURhdGFFbGVtZW50IGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCkBAIC0yNDksNyArMjUxLDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gRm9ybVVSTEVuY29kZWQ7CiAgICAgfQogCi0gICAg
dWludDY0X3QgbGVuZ3RoSW5CeXRlcygpIGNvbnN0OworICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0
ZXMoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgVVJMIGFzQmxv
YlVSTCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcAppbmRleCA1M2ZlYTA1NjM1OThhYzE4
OTVlOTY3NjQzNzJhMTdlN2Q5ZDJlYmU2Li45YTNhNTRmYjY1NDQwMDE3NDAxMTAzYjVhYTNlNTMy
NmI2NzU2ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKQEAgLTM3OCw3ICszNzgsNyBAQCBSZXRh
aW5QdHI8Q0ZSZWFkU3RyZWFtUmVmPiBjcmVhdGVIVFRQQm9keUNGUmVhZFN0cmVhbShGb3JtRGF0
YSYgZm9ybURhdGEpCiAgICAgLy8gUHJlY29tcHV0ZSB0aGUgY29udGVudCBsZW5ndGggc28gQ0ZO
ZXR3b3JrIGRvZXNuJ3QgdXNlIGNodW5rZWQgbW9kZS4KICAgICB1bnNpZ25lZCBsb25nIGxvbmcg
bGVuZ3RoID0gMDsKICAgICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBkYXRhRm9yVXBsb2FkLmRhdGEo
KS5lbGVtZW50cygpKQotICAgICAgICBsZW5ndGggKz0gZWxlbWVudC5sZW5ndGhJbkJ5dGVzKCk7
CisgICAgICAgIGxlbmd0aCArPSBlbGVtZW50Lmxlbmd0aEluQnl0ZXMoYmxvYlJlZ2lzdHJ5KCku
YmxvYlJlZ2lzdHJ5SW1wbCgpKTsKIAogICAgIEZvcm1DcmVhdGlvbkNvbnRleHQqIGZvcm1Db250
ZXh0ID0gbmV3IEZvcm1DcmVhdGlvbkNvbnRleHQgeyBXVEZNb3ZlKGRhdGFGb3JVcGxvYWQpLCBs
ZW5ndGggfTsKICAgICBDRlJlYWRTdHJlYW1DYWxsQmFja3NWMSBjYWxsQmFja3MgPSB7IDEsIGZv
cm1DcmVhdGUsIGZvcm1GaW5hbGl6ZSwgbnVsbHB0ciwgZm9ybU9wZW4sIG51bGxwdHIsIGZvcm1S
ZWFkLCBudWxscHRyLCBmb3JtQ2FuUmVhZCwgZm9ybUNsb3NlLCBmb3JtQ29weVByb3BlcnR5LCBu
dWxscHRyLCBudWxscHRyLCBmb3JtU2NoZWR1bGUsIGZvcm1VbnNjaGVkdWxlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBmMDE5M2Q4Yzk2ZTM1YzlmZjc1ZTZhNjNh
MzUwYzY1NWRjYTg2MGVmLi44ZTQ0MjRlZjI0NmEzNmE0ZGI4MTNjMzA2Y2IzMjFmYTRmZWEyNTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTYyMSw3ICs2MjEsNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAg
aWYgKG1fYXN5bmMpIHsKICAgICAgICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQ
cm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCk7CiAgICAgICAgIGlmICgh
bV91cGxvYWRDb21wbGV0ZSAmJiBtX3VwbG9hZExpc3RlbmVyRmxhZykKLSAgICAgICAgICAgIG1f
dXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRzdGFydEV2ZW50
LCAwLCByZXF1ZXN0Lmh0dHBCb2R5KCktPmxlbmd0aEluQnl0ZXMoKSk7CisgICAgICAgICAgICBt
X3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVu
dCwgMCwgcmVxdWVzdC5odHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+c2Vzc2lvbklEKCkpKTsKIAogICAgICAgICBpZiAocmVhZHlTdGF0ZSgpICE9IE9Q
RU5FRCB8fCAhbV9zZW5kRmxhZyB8fCBtX2xvYWRlcikKICAgICAgICAgICAgIHJldHVybiB7IH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDJlNGY1M2QyYWRjMGU4NTIwMjZiMDM3
MWI1MTU0ZDRiM2M4OTk2YzEuLjFmMTAwNGUxYjViY2QzOWQ4YjEyMmRmOGM2ZGE0OGQxMzdjNGJl
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC02MjcsMjAgKzYyNywxNyBAQCB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp1bnJlZ2lzdGVyQmxvYlVSTChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgc2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCkudW5yZWdp
c3RlckJsb2JVUkwodXJsKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6YmxvYlNpemUoY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0
X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6YmxvYlNpemUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgYXV0byogYmxvYlJlZ2lzdHJ5ID0gbmV0d29ya1Byb2Nlc3MoKS5ibG9iUmVnaXN0cnko
KnRoaXMpOwotICAgIGlmICghYmxvYlJlZ2lzdHJ5KQotICAgICAgICByZXR1cm47Ci0KLSAgICBj
b21wbGV0aW9uSGFuZGxlcihibG9iUmVnaXN0cnktPmJsb2JTaXplKHVybCkpOworICAgIGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoc2Vzc2lvbiA/IHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLmJs
b2JTaXplKHVybCkgOiAwKTsKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFN0cmluZz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byogc2Vzc2lv
biA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKICAgICBpZiAo
IXNlc3Npb24pCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKHsgfSk7CiAKICAgICBWZWN0b3I8UmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IGZp
bGVSZWZlcmVuY2VzOwogICAgIGZvciAoYXV0byYgdXJsIDogYmxvYlVSTHMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKaW5kZXggOGZlOWYzMmM5ZWZjNjJmZDNjNTNlMGIxMmMyZGQ1ZDJjNDVkZTEw
OC4uOTI4NjczM2M0YjdjNzUxMmMyOWM1MzI0MzgyMWQwZWUxZWM3MTMwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaApAQCAtMTg2LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdp
c3RlckJsb2JVUkxGcm9tVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwm
IHNyY1VSTCk7CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmlu
ZyYgZmlsZUJhY2tlZFBhdGgsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpOwogICAgIHZvaWQg
cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0
IFVSTCYgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2NF90IGVuZCk7Ci0gICAgdm9pZCBibG9i
U2l6ZShjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7Cisg
ICAgdm9pZCBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogICAgIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpOwogICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVtcG9yYXJ5
RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDFlNzdjOGFiOTg0NDlmZjA0ZWZh
Yjc5MzA1ZDUxMzhkZWJkODVkZGEuLjRiMTE4OWIzOWNjZWJjOGZiMjI2ZjhmZWUwMzQyOGM2Yzg1
YWQ3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
NDcsNyArNDcsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgUmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsLCBVUkwgc3JjVVJMLCBTdHJpbmcgZmls
ZUJhY2tlZFBhdGgsIFN0cmluZyBjb250ZW50VHlwZSkKICAgICBSZWdpc3RlckJsb2JVUkxGb3JT
bGljZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwsIFVSTCBzcmNVUkwsIGludDY0
X3Qgc3RhcnQsIGludDY0X3QgZW5kKQogICAgIFVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgVVJMIHVybCkKLSAgICBCbG9iU2l6ZShVUkwgdXJsKSAtPiAodWludDY0
X3QgcmVzdWx0U2l6ZSkgU3luY2hyb25vdXMKKyAgICBCbG9iU2l6ZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFVSTCB1cmwpIC0+ICh1aW50NjRfdCByZXN1bHRTaXplKSBTeW5jaHJvbm91cwog
ICAgIFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VmVjdG9yPFN0cmluZz4gYmxvYlVSTHMpIC0+IChWZWN0b3I8U3RyaW5nPiBmaWxlTmFtZXMpIEFz
eW5jCiAKICAgICBTZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMGM4NDZkYjAy
NDJmM2E3NTEzZTZjM2IxMTFlYWFjMWQ4ODYwZWM5NS4uNDY3MmIzZTlkYTA2MGVjZmVjZGJjZTg1
NWZhNTQ2ZmQ3ZmY2YjFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAg
LTU4LDcgKzU4LDcgQEAgQmxvYlJlZ2lzdHJ5KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRl
Z2llczo6Y3JlYXRlQmxvYlJlZ2lzdHJ5KCkKICAgICAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxP
cHRpb25hbGx5RmlsZUJhY2tlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBzcmNVUkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICAgICAgdm9p
ZCByZWdpc3RlckJsb2JVUkxGb3JTbGljZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29u
c3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWwgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKSBmaW5hbCB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorICAgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgYmxvYlNpemUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpIGZpbmFsIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CiAgICAgICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVt
cG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJM
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYp
IGZpbmFsIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB9OwogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxFbXB0eUJsb2JSZWdpc3RyeT4gYmxvYlJlZ2lzdHJ5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmgKaW5kZXggNGU1OGFmYzE4MzE5YzU1MzhiOGM1NGIxOWJkOGQ0ZjE3ZDg3Y2U1Ni4uM2U0
ZDQzOWFiNzBhMDIwMDYwYzYxMzRjMzYzZWIyZjQ3NzY4MTVjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bi5oCkBAIC02Nyw2ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmdpbmVSZXByZXNlbnRh
dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIHVwZGF0ZVF1b3RhQmFzZWRPblNwYWNlVXNhZ2UoY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJikgZmluYWw7CiAKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQorCiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlk
ZXImIG1fcHJvdmlkZXI7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJv
eHkuY3BwCmluZGV4IDJmM2I2YmE4MzE0Nzg0NWU2ODYyYzRmOTAzOTdkMjUxYzY1YjE3ZjMuLjc4
MTEyMDc3ODRhZjYwYTJhZGVjNTZjYWE1ODY0YTcxYjNhZDEyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKQEAg
LTczLDEwICs3MywxMCBAQCB2b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJsb2JVUkxG
b3JTbGljZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJs
b2JVUkxGb3JTbGljZShzZXNzaW9uSUQsIHVybCwgc3JjVVJMLCBzdGFydCwgZW5kKSwgMCk7CiB9
CiAKLXVuc2lnbmVkIGxvbmcgbG9uZyBCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUoY29uc3Qg
VVJMJiB1cmwpCit1bnNpZ25lZCBsb25nIGxvbmcgQmxvYlJlZ2lzdHJ5UHJveHk6OmJsb2JTaXpl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwpCiB7CiAgICAgdWludDY0
X3QgcmVzdWx0U2l6ZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkJsb2JTaXplKHVybCksIE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QmxvYlNpemU6OlJlcGx5KHJlc3VsdFNpemUp
LCAwKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkJsb2JTaXplKHNlc3Npb25JRCwgdXJsKSwgTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpCbG9iU2l6ZTo6UmVwbHkocmVzdWx0U2l6
ZSksIDApKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gcmVzdWx0U2l6ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94
eS5oCmluZGV4IGQ3NjYxNTg3ZTNlNzQzODMyZTIzMjVjNjc5NmNmYTM0NWJiOTU2YzAuLjgwOTI0
YzBmOTQ5ZWQ3YTA4MmJhZTAyNWRiYWY0YjM0YmY1MTA2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaApAQCAtMzcsNyAr
MzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJh
Y2tlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwsIFJlZlB0
cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYsIGNvbnN0IFN0cmluZyYgY29udGVu
dFR5cGUpIGZpbmFsOwogICAgIHZvaWQgdW5yZWdpc3RlckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFVSTCYpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3Rh
cnQsIGxvbmcgbG9uZyBlbmQpIGZpbmFsOwotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6
ZShjb25zdCBVUkwmKSBmaW5hbDsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpIGZpbmFsOwogICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVt
cG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJM
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYp
IGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCmluZGV4IGRlZjk4ZGFl
MmZlYjQ0ODA3ZWZiMzIxN2FjZGNjZWNiYjY1OTlkYzAuLjA4OWU2YTdhZWMxMTc5MjZjM2I5NThm
NWJjMzAwMTc1MGExZDFmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KQEAgLTcw
LDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlG
aWxlQmFja2VkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNV
UkwsIFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+JiYgcmVmZXJlbmNlLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTE9w
dGlvbmFsbHlGaWxlQmFja2VkKHVybCwgc3JjVVJMLCBXVEZNb3ZlKHJlZmVyZW5jZSksIGNvbnRl
bnRUeXBlKTsgfQogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBs
b25nIGxvbmcgZW5kKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5LnJlZ2lzdGVyQmxvYlVSTEZvclNs
aWNlKHVybCwgc3JjVVJMLCBzdGFydCwgZW5kKTsgfQogICAgIHZvaWQgdW5yZWdpc3RlckJsb2JV
UkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IG1fYmxvYlJlZ2lzdHJ5
LnVucmVnaXN0ZXJCbG9iVVJMKHVybCk7IH0KLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNp
emUoY29uc3QgVVJMJiB1cmwpIGZpbmFsIHsgcmV0dXJuIG1fYmxvYlJlZ2lzdHJ5LmJsb2JTaXpl
KHVybCk7IH0KKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJldHVybiBtX2Jsb2JSZWdpc3RyeS5ibG9iU2l6ZSh1
cmwpOyB9CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhQQUw6OlNlc3Npb25J
RCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxTdHJpbmc+JiYgZmlsZVBhdGhzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwg
eyBtX2Jsb2JSZWdpc3RyeS53cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhibG9iVVJMcywgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOyB9CiAKICAgICBCbG9iUmVnaXN0cnlJbXBsKiBibG9i
UmVnaXN0cnlJbXBsKCkgZmluYWwgeyByZXR1cm4gJm1fYmxvYlJlZ2lzdHJ5OyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376251</attachid>
            <date>2019-08-14 02:31:10 -0700</date>
            <delta_ts>2019-08-14 03:32:44 -0700</delta_ts>
            <desc>Win fix</desc>
            <filename>bug-200671-20190814113108.patch</filename>
            <type>text/plain</type>
            <size>39002</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ0OTVlNDc2OTE2MGI4
MjYwMTE4N2UxNGE4ZDBkNWQzMjg0YTRkYS4uY2I1OWE4ZTBmNWRiMmYwNmQwZDQxOTliZmY0YWEw
M2EyM2Y1MTYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE5LTA4LTEzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5OjpibG9iU2l6ZSBzaG91bGQgdGFrZSBhIFNlc3Npb25JRCBhcyBwYXJhbWV0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDY3MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVXBkYXRlIEZv
cm1EYXRhIHRvIGNvbXB1dGUgaXRzIGJ5dGUgc2l6ZSBiYXNlZCBvbiBhIFNlc3Npb25JRC4KKyAg
ICAgICAgV2Uga2VlcCBhIFdLMSBieXRlIGxlbmd0aCBjb21wdXRhdGlvbiBmb3IgRm9ybURhdGFF
bGVtZW50LgorICAgICAgICBVcGRhdGUgRm9ybURhdGEgY2FsbCBzaXRlcyBhY2NvcmRpbmdseS4K
KyAgICAgICAgVXBkYXRlIENhY2hlU3RvcmFnZUNvbm5lY3Rpb24gdG8gaW1wbGVtZW50IGEgU2Vz
c2lvbklEIGdldHRlci4KKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2aW9yLgorCisgICAgICAg
ICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNvbXB1dGVSZWFsQm9keVNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29tcHV0ZVJlYWxCb2R5U2l6ZSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnNlc3Npb25JRCBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAg
ICAgICogZmlsZWFwaS9CbG9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnNpemUgY29u
c3QpOgorICAgICAgICAqIGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpibG9iU2l6ZSk6CisgICAgICAg
ICogZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0tlZXBhbGl2ZVJlcXVlc3RUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktlZXBh
bGl2ZVJlcXVlc3RUcmFja2VyOjp0cnlSZWdpc3RlclJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6S2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnJlZ2lzdGVyUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpLZWVwYWxpdmVSZXF1ZXN0VHJhY2tlcjo6dW5yZWdpc3RlclJlcXVlc3QpOgorICAg
ICAgICAqIHBhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvRm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUxlbmd0aElu
Qnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFFbGVtZW50OjpsZW5ndGhJbkJ5dGVz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhOjpsZW5ndGhJbkJ5dGVzIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUhUVFBCb2R5Q0ZSZWFkU3RyZWFtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2Vz
c2lvbklEKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVhbTo6Y29tcHV0ZUNv
bnRlbnRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybEZvcm1EYXRhU3RyZWFtOjpDdXJs
Rm9ybURhdGFTdHJlYW0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsRm9ybURhdGFTdHJlYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OkN1cmxSZXF1
ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpjcmVhdGUpOgorCisgICAgICAgICogeG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVh
dGVSZXF1ZXN0KToKKwogMjAxOS0wOC0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIFNlc3Npb25JRCBkZWZhdWx0IGNvbnN0cnVjdG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGI3NzQzZDc4ZGVlODM3NjE3MjcyMGE0ZWVjNGFhNTAzN2NkY2Q4ZjUuLmU0YTcxY2I0
OTI3NTMwMjljMTM3Mjg1YjQyZTM5NTkzYWUzZjliZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTktMDgtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplIHNob3VsZCB0YWtlIGEgU2Vzc2lv
bklEIGFzIHBhcmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAwNjcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICBVcGRhdGUgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbiB0byBpbXBsZW1lbnQg
c2Vzc2lvbklEIGdldHRlci4KKyAgICAgICAgVXBkYXRlIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzIHRvIGdldCBhIHNlc3Npb25JRCBhcyBwYXJhbWV0ZXIgdG8gYmxvYlNpemUgY29tcHV0
YXRpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1
cmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJsOjpjcmVhdGVDdXJs
UmVxdWVzdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6YmxvYlNpemUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lz
dHJ5UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNp
emUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oOgor
CiAyMDE5LTA4LTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6bV9zZXNzaW9uSUQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCAzZmM4ZmRlYzNhNGQwZGE2ZjhiZmIyYmY0YjkwMjIwMjAwMGZk
MTQ4Li40MmNkOTUxOGRmNDdiMDAzZGUyZDM3NjZlNTQyODcxYzk2YjQwYzZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMDgtMTMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0
cnk6OmJsb2JTaXplIHNob3VsZCB0YWtlIGEgU2Vzc2lvbklEIGFzIHBhcmFtZXRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNjcxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQUxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKwogMjAxOS0wOC0xMiAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQmxvYiByZWdpc3RyaWVzIHNob3VsZCBi
ZSBrZXllZCBieSBzZXNzaW9uIElEcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDE1
ZmU3YWZmZWZkYTlmYThmODllOTg3N2U1NjdhYjQzYTVjNWYyY2UuLmIxZTYxNWZhZWVmNGRlY2My
MjY0YjRlZmYzYzMxNDg1OTEzMWQ4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxOS0wOC0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRh
a2UgYSBTZXNzaW9uSUQgYXMgcGFyYW1ldGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA2NzEKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcDoKKwogMjAxOS0wOC0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQmxvYiByZWdpc3RyaWVzIHNob3VsZCBiZSBrZXllZCBieSBzZXNzaW9uIElE
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5jcHAKaW5kZXggNGFjYjhhYWJkODY3ZDhkZTIyMDkzNzliMjYwYzYxZmZmZmVi
NDkwMC4uNGMwNGQyNGY3NDViZjdhNDIzN2MzOGU1N2FkZWE4ZThkZGExYjQ4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCkBAIC0zMywxMSArMzMsMTEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTsKIAotc3RhdGljIGlubGluZSB1aW50NjRf
dCBjb21wdXRlUmVhbEJvZHlTaXplKGNvbnN0IERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkm
IGJvZHkpCit1aW50NjRfdCBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wdXRlUmVhbEJvZHlT
aXplKGNvbnN0IERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkmIGJvZHkpCiB7CiAgICAgdWlu
dDY0X3QgcmVzdWx0ID0gMDsKICAgICBXVEY6OnN3aXRjaE9uKGJvZHksIFsmXSAoY29uc3QgUmVm
PFdlYkNvcmU6OkZvcm1EYXRhPiYgZm9ybURhdGEpIHsKLSAgICAgICAgcmVzdWx0ID0gZm9ybURh
dGEtPmxlbmd0aEluQnl0ZXMoKTsKKyAgICAgICAgcmVzdWx0ID0gZm9ybURhdGEtPmxlbmd0aElu
Qnl0ZXMoc2Vzc2lvbklEKCkpOwogICAgIH0sIFsmXSAoY29uc3QgUmVmPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4mIGJ1ZmZlcikgewogICAgICAgICByZXN1bHQgPSBidWZmZXItPnNpemUoKTsKICAg
ICB9LCBbXSAoY29uc3Qgc3RkOjpudWxscHRyX3QmKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDg3ZWFiNzE4
NjI2YzYwMjc0MTQ4OWRiYzJiZmE3N2U4NjU2NWFjN2MuLmQxZGFmYTg5YWZlZThmMDQ0Y2VjODhk
NTM0NGQ5NWZhMWU1ODY3YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01Nyw2ICs1NywxMSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGVuZ2luZVJlcHJlc2VudGF0aW9uKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgU3RyaW5nJik+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soU3RyaW5nIHsgfSk7
IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZShjb25zdCBD
bGllbnRPcmlnaW4mKSB7IH0KIAorICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KCkgY29uc3QgPSAwOworCitwcml2YXRlOgorICAgIHVpbnQ2NF90IGNvbXB1dGVSZWFsQm9keVNp
emUoY29uc3QgRE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9keSYpOworCiBwcm90ZWN0ZWQ6CiAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgdWludDY0X3Q+IG1fb3BhcXVlUmVzcG9uc2VUb1NpemVXaXRo
UGFkZGluZ01hcDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAyMDZjMjQxOGU5
ODdmZWRmZGEyMTAxZTZlYmE1ZjVhNWJhMGFmM2VmLi5mZjA2YTZiOGViOGVmYmIzM2VkM2ZmMzdj
ODc3MGZjZjE4OGVlYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTEzNCw2ICsx
MzQsMTEgQEAgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6fldvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24oKQogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFttYWluVGhyZWFkQ29ubmVj
dGlvbiA9IFdURk1vdmUobV9tYWluVGhyZWFkQ29ubmVjdGlvbildKCkgbXV0YWJsZSB7IH0pOwog
fQogCitQQUw6OlNlc3Npb25JRCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpzZXNzaW9u
SUQoKSBjb25zdAoreworICAgIHJldHVybiBtX3Njb3BlLnNlc3Npb25JRCgpOworfQorCiB2b2lk
IFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246Om9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiBv
cmlnaW4sIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lLCBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYm
IGNhbGxiYWNrKQogewogICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0gKyttX2xhc3RS
ZXF1ZXN0SWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMTE5ZDRjYzYxMjA4
M2RhNzI4NWY0Zjc5YzIyZGU1OWM5YjBjNGJmYi4uMmYzYWZhZDI5NDRlYjE0MjY3N2YyYjljNTBk
ZDVmMjhkM2I5MmM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTU1LDYgKzU1LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJlZmVyZW5jZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpIGZp
bmFsOwogICAgIHZvaWQgZGVyZWZlcmVuY2UodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKSBmaW5h
bDsKIAorICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOworCiAgICAg
dm9pZCBkb09wZW4odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdp
biYsIGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lKTsKICAgICB2b2lkIGRvUmVtb3ZlKHVpbnQ2NF90
IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpOwogICAgIHZvaWQg
ZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgQ2xpZW50
T3JpZ2luJiwgdWludDY0X3QgdXBkYXRlQ291bnRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcApp
bmRleCBkODkxYzcwODY4YjhjNzZhOTI5MTExN2M1M2MzMmNmNmYxN2E2NDljLi41MmE1MzY3ODU3
YTFmYTQ3M2Q0NzExMDJkODM0ZmM3OTRiYTQ4MWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAK
QEAgLTE2OSw3ICsxNjksNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgQmxvYjo6c2l6ZSgpIGNvbnN0
CiAgICAgaWYgKCFtX3NpemUpIHsKICAgICAgICAgLy8gRklYTUU6IEphdmFTY3JpcHQgY2Fubm90
IHJlcHJlc2VudCBzaXplcyBhcyBsYXJnZSBhcyB1bnNpZ25lZCBsb25nIGxvbmcsIHdlIG5lZWQg
dG8KICAgICAgICAgLy8gY29tZSB1cCB3aXRoIGFuIGV4Y2VwdGlvbiB0byB0aHJvdyBpZiBmaWxl
IHNpemUgaXMgbm90IHJlcHJlc2VudGFibGUuCi0gICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBh
Y3R1YWxTaXplID0gVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUobV9pbnRlcm5hbFVS
TCk7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhY3R1YWxTaXplID0gVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeTo6YmxvYlNpemUobV9zZXNzaW9uSUQsIG1faW50ZXJuYWxVUkwpOwogICAgICAg
ICBtX3NpemUgPSBXVEY6OmlzSW5Cb3VuZHM8bG9uZyBsb25nPihhY3R1YWxTaXplKSA/IGFjdHVh
bFNpemUgOiAwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9U
aHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5jcHAKaW5kZXggYTk1YjI0OWY4Yzg0MjNmZDc0NWJjMmFjOTdiMjdi
YzA0YWEzYTczOS4uNzYxMDY2NGY1ZGEwOWExY2Y4YTVlMTk3NjRjYTc3NWY3YTFkZjZmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3Bw
CkBAIC0xMjgsMTUgKzEyOCwxNSBAQCB2b2lkIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lz
dGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYwogICAgIH0pOwog
fQogCi11bnNpZ25lZCBsb25nIGxvbmcgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUo
Y29uc3QgVVJMJiB1cmwpCit1bnNpZ25lZCBsb25nIGxvbmcgVGhyZWFkYWJsZUJsb2JSZWdpc3Ry
eTo6YmxvYlNpemUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCkKIHsK
ICAgICBpZiAoaXNNYWluVGhyZWFkKCkpCi0gICAgICAgIHJldHVybiBibG9iUmVnaXN0cnkoKS5i
bG9iU2l6ZSh1cmwpOworICAgICAgICByZXR1cm4gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUoc2Vz
c2lvbklELCB1cmwpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHJlc3VsdFNpemU7CiAgICAg
QmluYXJ5U2VtYXBob3JlIHNlbWFwaG9yZTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt1cmwgPSB1
cmwuaXNvbGF0ZWRDb3B5KCksICZzZW1hcGhvcmUsICZyZXN1bHRTaXplXSB7Ci0gICAgICAgIHJl
c3VsdFNpemUgPSBibG9iUmVnaXN0cnkoKS5ibG9iU2l6ZSh1cmwpOworICAgIGNhbGxPbk1haW5U
aHJlYWQoW3Nlc3Npb25JRCwgdXJsID0gdXJsLmlzb2xhdGVkQ29weSgpLCAmc2VtYXBob3JlLCAm
cmVzdWx0U2l6ZV0geworICAgICAgICByZXN1bHRTaXplID0gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNp
emUoc2Vzc2lvbklELCB1cmwpOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7
CiAgICAgc2VtYXBob3JlLndhaXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJl
YWRhYmxlQmxvYlJlZ2lzdHJ5LmgKaW5kZXggMzE1ZjVjYWRiNDY2Mzg5ODBiNGMxZmQ4ZWM1YjY3
ZGJlM2U0MTI3NC4uYzU3NmIyZDRiY2QwNWE4YjU2YWEzMzg0YTkwYmM5ZTcyZWEzYzliYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZv
clNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIG5ld1VSTCwgY29uc3QgVVJMJiBzcmNV
UkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCk7CiAgICAgc3RhdGljIHZvaWQgdW5y
ZWdpc3RlckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpOwogCi0gICAgc3RhdGlj
IHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMgdW5z
aWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKTsKIAog
ICAgIC8vIFJldHVybnMgdGhlIG9yaWdpbiBmb3IgdGhlIGdpdmVuIGJsb2IgVVJMLiBUaGlzIGlz
IGJlY2F1c2Ugd2UgYXJlIG5vdCBhYmxlIHRvIGVtYmVkIHRoZSB1bmlxdWUgc2VjdXJpdHkgb3Jp
Z2luIG9yIHRoZSBvcmlnaW4gb2YgZmlsZSBVUkwKICAgICAvLyBpbiB0aGUgYmxvYiBVUkwuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvS2VlcGFsaXZlUmVxdWVzdFRy
YWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0tlZXBhbGl2ZVJlcXVlc3RU
cmFja2VyLmNwcAppbmRleCAwMGM1NTA1ZTdlYzE3NTA1ODI1ZjE0YTM1ODcwYzAzMzg3Zjk0MDE5
Li40N2EzYzdiNmUwNzY1ODViOTY4NWYxMzQwN2YwM2MyYzBlNmVhMmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9LZWVwYWxpdmVSZXF1ZXN0VHJhY2tlci5j
cHAKQEAgLTQ0LDcgKzQ0LDcgQEAgYm9vbCBLZWVwYWxpdmVSZXF1ZXN0VHJhY2tlcjo6dHJ5UmVn
aXN0ZXJSZXF1ZXN0KENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKICAgICBpZiAoIWJvZHkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgdWludDY0X3QgYm9keVNpemUgPSBib2R5LT5sZW5n
dGhJbkJ5dGVzKCk7CisgICAgdWludDY0X3QgYm9keVNpemUgPSBib2R5LT5sZW5ndGhJbkJ5dGVz
KHJlc291cmNlLnNlc3Npb25JRCgpKTsKICAgICBpZiAobV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVz
ICsgYm9keVNpemUgPiBtYXhJbmZsaWdodEtlZXBhbGl2ZUJ5dGVzKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBLZWVwYWxpdmVSZXF1ZXN0VHJhY2tlcjo6
cmVnaXN0ZXJSZXF1ZXN0KENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKICAgICAgICAgcmV0dXJu
OwogICAgIEFTU0VSVCghbV9pbmZsaWdodEtlZXBhbGl2ZVJlcXVlc3RzLmNvbnRhaW5zKCZyZXNv
dXJjZSkpOwogICAgIG1faW5mbGlnaHRLZWVwYWxpdmVSZXF1ZXN0cy5hcHBlbmQoJnJlc291cmNl
KTsKLSAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgKz0gYm9keS0+bGVuZ3RoSW5CeXRlcygp
OworICAgIG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyArPSBib2R5LT5sZW5ndGhJbkJ5dGVzKHJl
c291cmNlLnNlc3Npb25JRCgpKTsKICAgICBBU1NFUlQobV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVz
IDw9IG1heEluZmxpZ2h0S2VlcGFsaXZlQnl0ZXMpOwogCiAgICAgcmVzb3VyY2UuYWRkQ2xpZW50
KCp0aGlzKTsKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBLZWVwYWxpdmVSZXF1ZXN0VHJhY2tlcjo6
dW5yZWdpc3RlclJlcXVlc3QoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQogICAgIHJlc291cmNl
LnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgYm9vbCB3YXNSZW1vdmVkID0gbV9pbmZsaWdodEtl
ZXBhbGl2ZVJlcXVlc3RzLnJlbW92ZUZpcnN0KCZyZXNvdXJjZSk7CiAgICAgQVNTRVJUX1VOVVNF
RCh3YXNSZW1vdmVkLCB3YXNSZW1vdmVkKTsKLSAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMg
LT0gcmVzb3VyY2UucmVzb3VyY2VSZXF1ZXN0KCkuaHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcygp
OworICAgIG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyAtPSByZXNvdXJjZS5yZXNvdXJjZVJlcXVl
c3QoKS5odHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKHJlc291cmNlLnNlc3Npb25JRCgpKTsKICAg
ICBBU1NFUlQobV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVzIDw9IG1heEluZmxpZ2h0S2VlcGFsaXZl
Qnl0ZXMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFn
ZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgK
aW5kZXggNjM2ZjNkMGExMTliN2M2N2ZiYmRlN2Y2MWYxZjdkMGYwYzU5YmYxYi4uZDlmM2YzYzdh
MGY0NmJkZmNlMmFlYTRjOGIwODY1NTQ0YjY1ODEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2FjaGVTdG9yYWdlUHJvdmlkZXIuaApAQCAtMzUsOSArMzUsMTQgQEAgY2xhc3MgQ2FjaGVTdG9y
YWdlUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZVN0b3JhZ2VQcm92aWRlcj4gewog
cHVibGljOgogICAgIGNsYXNzIER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbiBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAg
ICAgIHN0YXRpYyBSZWY8RHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbik7IH0KKyAgICAg
ICAgc3RhdGljIFJlZjxEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHVtbXlDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uKHNlc3Npb25JRCkpOyB9CiAKICAgICBwcml2YXRlOgorICAgICAgICBleHBs
aWNpdCBEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQorICAgICAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgICAgIHsKKyAgICAg
ICAgfQorCiAgICAgICAgIHZvaWQgb3Blbihjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJp
bmcmLCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWwgeyB9
CiAgICAgICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVu
dGlmaWVyQ2FsbGJhY2smJikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgcmV0cmlldmVDYWNoZXMo
Y29uc3QgQ2xpZW50T3JpZ2luJiwgdWludDY0X3QsIERPTUNhY2hlRW5naW5lOjpDYWNoZUluZm9z
Q2FsbGJhY2smJikgZmluYWwgeyB9CkBAIC00NiwxMCArNTEsMTMgQEAgcHVibGljOgogICAgICAg
ICB2b2lkIGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90LCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6
OlJlY29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikg
ZmluYWwgeyB9CiAgICAgICAgIHZvaWQgcmVmZXJlbmNlKHVpbnQ2NF90KSBmaW5hbCB7IH0KICAg
ICAgICAgdm9pZCBkZXJlZmVyZW5jZSh1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9
CisKKyAgICAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgfTsKIAogICAgIHN0
YXRpYyBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgQ2FjaGVTdG9yYWdlUHJvdmlkZXIpOyB9Ci0gICAgdmlydHVhbCBSZWY8Q2FjaGVTdG9y
YWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihQQUw6OlNlc3Npb25J
RCkgeyByZXR1cm4gRHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoKTsgfQorICAg
IHZpcnR1YWwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSB7IHJldHVybiBEdW1teUNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb246OmNyZWF0ZShzZXNzaW9uSUQpOyB9CiAgICAgdmlydHVhbCB+Q2FjaGVT
dG9yYWdlUHJvdmlkZXIoKSB7IH07CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCmluZGV4IDY2MGE3OTZkMGIyZDg5ODYyNTFi
ODA2ZDM5MTNiZjkxNDU0ZTllNzcuLjhjZDM5MWQxZmUzNDliMGNlOGE4ZjI3NDU5MzI5MWI3MWU0
YTU0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJl
Z2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0
cnkuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgdW5yZWdp
c3RlckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpID0gMDsKIAotICAgIHZpcnR1
YWwgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYpID0gMDsKKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJM
JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSA9IDA7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAKaW5kZXggZDcxYjFlZGNj
ZmNhZDE4YzVlZWM3MDJlMmYxZWVkZjdmOTZiNjNjNS4uMjE2Y2IzMzdhNDBjNjBhNTA5Yzk2MzYx
ZDU5ZmYzM2Y2NzZlNDQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9Gb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9G
b3JtRGF0YS5jcHAKQEAgLTEyNCw5ICsxMjQsOSBAQCBSZWY8Rm9ybURhdGE+IEZvcm1EYXRhOjpp
c29sYXRlZENvcHkoKSBjb25zdAogICAgIHJldHVybiBmb3JtRGF0YTsKIH0KIAotdWludDY0X3Qg
Rm9ybURhdGFFbGVtZW50OjpsZW5ndGhJbkJ5dGVzKCkgY29uc3QKK3N0YXRpYyBpbmxpbmUgdWlu
dDY0X3QgY29tcHV0ZUxlbmd0aEluQnl0ZXMoY29uc3QgRm9ybURhdGFFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBGdW5jdGlvbjx1aW50NjRfdChjb25zdCBVUkwmKT4mIGJsb2JTaXplKQogewotICAg
IHJldHVybiBzd2l0Y2hPbihkYXRhLAorICAgIHJldHVybiBzd2l0Y2hPbihlbGVtZW50LmRhdGEs
CiAgICAgICAgIFtdIChjb25zdCBWZWN0b3I8Y2hhcj4mIGJ5dGVzKSB7CiAgICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJ5dGVzLnNpemUoKSk7CiAgICAgICAgIH0sIFtd
IChjb25zdCBGb3JtRGF0YUVsZW1lbnQ6OkVuY29kZWRGaWxlRGF0YSYgZmlsZURhdGEpIHsKQEAg
LTEzNiwxMiArMTM2LDI2IEBAIHVpbnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRl
cygpIGNvbnN0CiAgICAgICAgICAgICBpZiAoRmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoZmlsZURh
dGEuZmlsZW5hbWUsIGZpbGVTaXplKSkKICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KGZpbGVTaXplKTsKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
aW50NjRfdD4oMCk7Ci0gICAgICAgIH0sIFtdIChjb25zdCBGb3JtRGF0YUVsZW1lbnQ6OkVuY29k
ZWRCbG9iRGF0YSYgYmxvYkRhdGEpIHsKLSAgICAgICAgICAgIHJldHVybiBUaHJlYWRhYmxlQmxv
YlJlZ2lzdHJ5OjpibG9iU2l6ZShibG9iRGF0YS51cmwpOworICAgICAgICB9LCBbJmJsb2JTaXpl
XSAoY29uc3QgRm9ybURhdGFFbGVtZW50OjpFbmNvZGVkQmxvYkRhdGEmIGJsb2JEYXRhKSB7Cisg
ICAgICAgICAgICByZXR1cm4gYmxvYlNpemUoYmxvYkRhdGEudXJsKTsKICAgICAgICAgfQogICAg
ICk7CiB9CiAKK3VpbnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyhCbG9iUmVn
aXN0cnlJbXBsKiBibG9iUmVnaXN0cnkpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbXB1dGVMZW5n
dGhJbkJ5dGVzKCp0aGlzLCBbJl0oYXV0byYgdXJsKSB7CisgICAgICAgIHJldHVybiBibG9iUmVn
aXN0cnkgPyBibG9iUmVnaXN0cnktPmJsb2JTaXplKHVybCkgOiAwOworICAgIH0pOworfQorCit1
aW50NjRfdCBGb3JtRGF0YUVsZW1lbnQ6Omxlbmd0aEluQnl0ZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKSBjb25zdAoreworICAgIHJldHVybiBjb21wdXRlTGVuZ3RoSW5CeXRlcygqdGhpcywg
WyZdKGF1dG8mIHVybCkgeworICAgICAgICByZXR1cm4gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUo
c2Vzc2lvbklELCB1cmwpOworICAgIH0pOworfQorCiBGb3JtRGF0YUVsZW1lbnQgRm9ybURhdGFF
bGVtZW50Ojppc29sYXRlZENvcHkoKSBjb25zdAogewogICAgIHJldHVybiBzd2l0Y2hPbihkYXRh
LApAQCAtMzgwLDEyICszOTQsMTIgQEAgRm9ybURhdGFGb3JVcGxvYWQ6On5Gb3JtRGF0YUZvclVw
bG9hZCgpCiAgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoZmlsZSk7CiB9CiAKLXVpbnQ2
NF90IEZvcm1EYXRhOjpsZW5ndGhJbkJ5dGVzKCkgY29uc3QKK3VpbnQ2NF90IEZvcm1EYXRhOjps
ZW5ndGhJbkJ5dGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBpZiAo
IW1fbGVuZ3RoSW5CeXRlcykgewogICAgICAgICB1aW50NjRfdCBsZW5ndGggPSAwOwogICAgICAg
ICBmb3IgKGF1dG8mIGVsZW1lbnQgOiBtX2VsZW1lbnRzKQotICAgICAgICAgICAgbGVuZ3RoICs9
IGVsZW1lbnQubGVuZ3RoSW5CeXRlcygpOworICAgICAgICAgICAgbGVuZ3RoICs9IGVsZW1lbnQu
bGVuZ3RoSW5CeXRlcyhzZXNzaW9uSUQpOwogICAgICAgICBtX2xlbmd0aEluQnl0ZXMgPSBsZW5n
dGg7CiAgICAgfQogICAgIHJldHVybiAqbV9sZW5ndGhJbkJ5dGVzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCmluZGV4IDdjNjg2ZThiNDIzYjM2ZGU4YjEyZjEw
YjU3ZGYxOGRlM2U0MDk1YjYuLmI4ZWMwM2RjMWY4MTQ0Yjc2NGI4NDc2OGNhMzUxN2FkY2JjOTJm
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKQEAgLTIw
LDYgKzIwLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIKKyNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTUwLDcgKzUxLDgg
QEAgc3RydWN0IEZvcm1EYXRhRWxlbWVudCB7CiAgICAgZXhwbGljaXQgRm9ybURhdGFFbGVtZW50
KGNvbnN0IFVSTCYgYmxvYlVSTCkKICAgICAgICAgOiBkYXRhKEVuY29kZWRCbG9iRGF0YSB7IGJs
b2JVUkwgfSkgeyB9CiAKLSAgICB1aW50NjRfdCBsZW5ndGhJbkJ5dGVzKCkgY29uc3Q7CisgICAg
dWludDY0X3QgbGVuZ3RoSW5CeXRlcyhCbG9iUmVnaXN0cnlJbXBsKikgY29uc3Q7CisgICAgdWlu
dDY0X3QgbGVuZ3RoSW5CeXRlcyhQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAKICAgICBGb3JtRGF0
YUVsZW1lbnQgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAKQEAgLTI0OSw3ICsyNTEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBGb3JtVVJMRW5jb2RlZDsKICAgICB9CiAKLSAgICB1aW50NjRf
dCBsZW5ndGhJbkJ5dGVzKCkgY29uc3Q7CisgICAgdWludDY0X3QgbGVuZ3RoSW5CeXRlcyhQQUw6
OlNlc3Npb25JRCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgYXNCbG9iVVJMKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
Rm9ybURhdGFTdHJlYW1DRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCmluZGV4IDUzZmVhMDU2MzU5OGFjMTg5NWU5Njc2
NDM3MmExN2U3ZDlkMmViZTYuLjlhM2E1NGZiNjU0NDAwMTc0MDExMDNiNWFhM2U1MzI2YjY3NTZm
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURh
dGFTdHJlYW1DRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcApAQCAtMzc4LDcgKzM3OCw3IEBAIFJldGFpblB0cjxD
RlJlYWRTdHJlYW1SZWY+IGNyZWF0ZUhUVFBCb2R5Q0ZSZWFkU3RyZWFtKEZvcm1EYXRhJiBmb3Jt
RGF0YSkKICAgICAvLyBQcmVjb21wdXRlIHRoZSBjb250ZW50IGxlbmd0aCBzbyBDRk5ldHdvcmsg
ZG9lc24ndCB1c2UgY2h1bmtlZCBtb2RlLgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBsZW5ndGgg
PSAwOwogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGRhdGFGb3JVcGxvYWQuZGF0YSgpLmVsZW1l
bnRzKCkpCi0gICAgICAgIGxlbmd0aCArPSBlbGVtZW50Lmxlbmd0aEluQnl0ZXMoKTsKKyAgICAg
ICAgbGVuZ3RoICs9IGVsZW1lbnQubGVuZ3RoSW5CeXRlcyhibG9iUmVnaXN0cnkoKS5ibG9iUmVn
aXN0cnlJbXBsKCkpOwogCiAgICAgRm9ybUNyZWF0aW9uQ29udGV4dCogZm9ybUNvbnRleHQgPSBu
ZXcgRm9ybUNyZWF0aW9uQ29udGV4dCB7IFdURk1vdmUoZGF0YUZvclVwbG9hZCksIGxlbmd0aCB9
OwogICAgIENGUmVhZFN0cmVhbUNhbGxCYWNrc1YxIGNhbGxCYWNrcyA9IHsgMSwgZm9ybUNyZWF0
ZSwgZm9ybUZpbmFsaXplLCBudWxscHRyLCBmb3JtT3BlbiwgbnVsbHB0ciwgZm9ybVJlYWQsIG51
bGxwdHIsIGZvcm1DYW5SZWFkLCBmb3JtQ2xvc2UsIGZvcm1Db3B5UHJvcGVydHksIG51bGxwdHIs
IG51bGxwdHIsIGZvcm1TY2hlZHVsZSwgZm9ybVVuc2NoZWR1bGUgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVh
bS5jcHAKaW5kZXggMmJiYTVhNmMzYTRiMjY5NWViOWI0ZTEwNWY4NTJkNTE0ZThiZjhjOC4uYzk5
YWNlZjhmMDVhYzlmMDhkNzgxYThlOGZkZTVmZDk3MGMwODE1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVh
bS5jcHAKQEAgLTQxLDcgKzQxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DdXJsRm9y
bURhdGFTdHJlYW06OkN1cmxGb3JtRGF0YVN0cmVhbShjb25zdCBGb3JtRGF0YSogZm9ybURhdGEp
CitDdXJsRm9ybURhdGFTdHJlYW06OkN1cmxGb3JtRGF0YVN0cmVhbShjb25zdCBGb3JtRGF0YSog
Zm9ybURhdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMTAzLDcgKzEwNCw3
IEBAIHZvaWQgQ3VybEZvcm1EYXRhU3RyZWFtOjpjb21wdXRlQ29udGVudExlbmd0aCgpCiAgICAg
bV9pc0NvbnRlbnRMZW5ndGhVcGRhdGVkID0gdHJ1ZTsKIAogICAgIGZvciAoY29uc3QgYXV0byYg
ZWxlbWVudCA6IG1fZm9ybURhdGEtPmVsZW1lbnRzKCkpCi0gICAgICAgIG1fdG90YWxTaXplICs9
IGVsZW1lbnQubGVuZ3RoSW5CeXRlcygpOworICAgICAgICBtX3RvdGFsU2l6ZSArPSBlbGVtZW50
Lmxlbmd0aEluQnl0ZXMobV9zZXNzaW9uSUQpOwogfQogCiBPcHRpb25hbDxzaXplX3Q+IEN1cmxG
b3JtRGF0YVN0cmVhbTo6cmVhZChjaGFyKiBidWZmZXIsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVh
bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0
cmVhbS5oCmluZGV4IDA5ZTdmZGJiNGEyY2ZhYjRiOTA3MzJmMDYxMTRiZTA4MTEzYmI1MWQuLjVh
MzI2MzA4YTI2MWE4ODk5MmYwZjJlZDdmMWQ2ZjY1NDY0MDM2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFTdHJlYW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFt
LmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdXJsRm9y
bURhdGFTdHJlYW0gewogcHVibGljOgotICAgIEN1cmxGb3JtRGF0YVN0cmVhbShjb25zdCBGb3Jt
RGF0YSopOworICAgIEN1cmxGb3JtRGF0YVN0cmVhbShjb25zdCBGb3JtRGF0YSosIFBBTDo6U2Vz
c2lvbklEKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+Q3VybEZvcm1EYXRhU3RyZWFtKCk7CiAKICAg
ICB2b2lkIGNsZWFuKCk7CkBAIC01NCw2ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8
c2l6ZV90PiByZWFkRnJvbUZpbGUoY29uc3QgRm9ybURhdGFFbGVtZW50OjpFbmNvZGVkRmlsZURh
dGEmLCBjaGFyKiwgc2l6ZV90KTsKICAgICBPcHRpb25hbDxzaXplX3Q+IHJlYWRGcm9tRGF0YShj
b25zdCBWZWN0b3I8Y2hhcj4mLCBjaGFyKiwgc2l6ZV90KTsKIAorICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogICAgIFJlZlB0cjxGb3JtRGF0YT4gbV9mb3JtRGF0YTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxWZWN0b3I8Y2hhcj4+IG1fcG9zdERhdGE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcAppbmRleCAxN2Zl
ZGRmMGUwODE0ZDVlYWQwNjgyZjZlZjE0Zjc2NWM5MWU1OTA4Li4wNzAzNGJiNjJkN2JiZTY0MGQ0
ZjgwMWM0ZTE4NDIyM2RmMjQxM2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKQEAgLTQxLDEzICs0MSwxMyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUN1cmxSZXF1ZXN0OjpDdXJsUmVxdWVzdChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmcmVxdWVzdCwgQ3VybFJlcXVlc3RDbGllbnQqIGNsaWVudCwgU2hvdWxkU3Vz
cGVuZCBzaG91bGRTdXNwZW5kLCBFbmFibGVNdWx0aXBhcnQgZW5hYmxlTXVsdGlwYXJ0LCBDYXB0
dXJlTmV0d29ya0xvYWRNZXRyaWNzIGNhcHR1cmVFeHRyYU1ldHJpY3MsIE1lc3NhZ2VRdWV1ZTxG
dW5jdGlvbjx2b2lkKCk+PiogbWVzc2FnZVF1ZXVlKQorQ3VybFJlcXVlc3Q6OkN1cmxSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCZyZXF1ZXN0LCBDdXJsUmVxdWVzdENsaWVudCogY2xpZW50
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNob3VsZFN1c3BlbmQgc2hvdWxkU3VzcGVuZCwg
RW5hYmxlTXVsdGlwYXJ0IGVuYWJsZU11bHRpcGFydCwgQ2FwdHVyZU5ldHdvcmtMb2FkTWV0cmlj
cyBjYXB0dXJlRXh0cmFNZXRyaWNzLCBNZXNzYWdlUXVldWU8RnVuY3Rpb248dm9pZCgpPj4qIG1l
c3NhZ2VRdWV1ZSkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fbWVzc2FnZVF1ZXVl
KG1lc3NhZ2VRdWV1ZSkKICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0Lmlzb2xhdGVkQ29weSgpKQog
ICAgICwgbV9zaG91bGRTdXNwZW5kKHNob3VsZFN1c3BlbmQgPT0gU2hvdWxkU3VzcGVuZDo6WWVz
KQogICAgICwgbV9lbmFibGVNdWx0aXBhcnQoZW5hYmxlTXVsdGlwYXJ0ID09IEVuYWJsZU11bHRp
cGFydDo6WWVzKQotICAgICwgbV9mb3JtRGF0YVN0cmVhbShtX3JlcXVlc3QuaHR0cEJvZHkoKSkK
KyAgICAsIG1fZm9ybURhdGFTdHJlYW0obV9yZXF1ZXN0Lmh0dHBCb2R5KCksIHNlc3Npb25JRCkK
ICAgICAsIG1fY2FwdHVyZUV4dHJhTWV0cmljcyhjYXB0dXJlRXh0cmFNZXRyaWNzID09IENhcHR1
cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkV4dGVuZGVkKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
UmVxdWVzdC5oCmluZGV4IGIwOGVjYzE5OGJkMzZhMGUwZDU0ZWZjYjc3MzQzY2JjZWJmOWNhMjgu
LjYwNjY3M2QxMzBjNDk1MGFjMDdiOGY0ZTQ4NjAyMzVmNDI5MDU2MTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiQ3VybFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiUHJvdGVjdGlv
blNwYWNlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL01l
c3NhZ2VRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CkBAIC02Myw5ICs2
NCw5IEBAIHB1YmxpYzoKICAgICAgICAgRXh0ZW5kZWQKICAgICB9OwogCi0gICAgc3RhdGljIFJl
ZjxDdXJsUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ3Vy
bFJlcXVlc3RDbGllbnQmIGNsaWVudCwgU2hvdWxkU3VzcGVuZCBzaG91bGRTdXNwZW5kID0gU2hv
dWxkU3VzcGVuZDo6Tm8sIEVuYWJsZU11bHRpcGFydCBlbmFibGVNdWx0aXBhcnQgPSBFbmFibGVN
dWx0aXBhcnQ6Ok5vLCBDYXB0dXJlTmV0d29ya0xvYWRNZXRyaWNzIGNhcHR1cmVNZXRyaWNzID0g
Q2FwdHVyZU5ldHdvcmtMb2FkTWV0cmljczo6QmFzaWMsIE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2
b2lkKCk+PiogbWVzc2FnZVF1ZXVlID0gbnVsbHB0cikKKyAgICBzdGF0aWMgUmVmPEN1cmxSZXF1
ZXN0PiBjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBDdXJsUmVxdWVzdENs
aWVudCYgY2xpZW50LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNob3VsZFN1c3BlbmQgc2hv
dWxkU3VzcGVuZCA9IFNob3VsZFN1c3BlbmQ6Ok5vLCBFbmFibGVNdWx0aXBhcnQgZW5hYmxlTXVs
dGlwYXJ0ID0gRW5hYmxlTXVsdGlwYXJ0OjpObywgQ2FwdHVyZU5ldHdvcmtMb2FkTWV0cmljcyBj
YXB0dXJlTWV0cmljcyA9IENhcHR1cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkJhc2ljLCBNZXNzYWdl
UXVldWU8RnVuY3Rpb248dm9pZCgpPj4qIG1lc3NhZ2VRdWV1ZSA9IG51bGxwdHIpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXJsUmVxdWVzdChyZXF1ZXN0LCAmY2xpZW50
LCBzaG91bGRTdXNwZW5kLCBlbmFibGVNdWx0aXBhcnQsIGNhcHR1cmVNZXRyaWNzLCBtZXNzYWdl
UXVldWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3VybFJlcXVlc3QocmVxdWVz
dCwgJmNsaWVudCwgc2Vzc2lvbklELCBzaG91bGRTdXNwZW5kLCBlbmFibGVNdWx0aXBhcnQsIGNh
cHR1cmVNZXRyaWNzLCBtZXNzYWdlUXVldWUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5DdXJs
UmVxdWVzdCgpID0gZGVmYXVsdDsKQEAgLTEwNSw3ICsxMDYsNyBAQCBwcml2YXRlOgogICAgICAg
ICBGaW5pc2hUcmFuc2ZlcgogICAgIH07CiAKLSAgICBDdXJsUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBDdXJsUmVxdWVzdENsaWVudCosIFNob3VsZFN1c3BlbmQsIEVuYWJsZU11bHRp
cGFydCwgQ2FwdHVyZU5ldHdvcmtMb2FkTWV0cmljcywgTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZv
aWQoKT4+Kik7CisgICAgQ3VybFJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ3VybFJl
cXVlc3RDbGllbnQqLCBQQUw6OlNlc3Npb25JRCwgU2hvdWxkU3VzcGVuZCwgRW5hYmxlTXVsdGlw
YXJ0LCBDYXB0dXJlTmV0d29ya0xvYWRNZXRyaWNzLCBNZXNzYWdlUXVldWU8RnVuY3Rpb248dm9p
ZCgpPj4qKTsKIAogICAgIHZvaWQgcmV0YWluKCkgb3ZlcnJpZGUgeyByZWYoKTsgfQogICAgIHZv
aWQgcmVsZWFzZSgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAKaW5kZXggZjAxOTNkOGM5NmUzNWM5ZmY3NWU2YTYzYTM1MGM2NTVkY2E4NjBl
Zi4uOGU0NDI0ZWYyNDZhMzZhNGRiODEzYzMwNmNiMzIxZmE0ZmVhMjUxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC02MjEsNyArNjIxLDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoKQogICAgIGlmIChtX2FzeW5jKSB7
CiAgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChl
dmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwogICAgICAgICBpZiAoIW1fdXBsb2FkQ29tcGxl
dGUgJiYgbV91cGxvYWRMaXN0ZW5lckZsYWcpCi0gICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0
Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCwgMCwgcmVxdWVzdC5o
dHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKCkpOworICAgICAgICAgICAgbV91cGxvYWQtPmRpc3Bh
dGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQsIDAsIHJlcXVlc3Qu
aHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlc3Np
b25JRCgpKSk7CiAKICAgICAgICAgaWYgKHJlYWR5U3RhdGUoKSAhPSBPUEVORUQgfHwgIW1fc2Vu
ZEZsYWcgfHwgbV9sb2FkZXIpCiAgICAgICAgICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAppbmRleCAyZTRmNTNkMmFkYzBlODUyMDI2YjAzNzFiNTE1NGQ0YjNjODk5
NmMxLi4xZjEwMDRlMWI1YmNkMzlkOGIxMjJkZjhjNmRhNDhkMTM3YzRiZTYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNjI3LDIwICs2MjcsMTcgQEAgdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6dW5yZWdpc3RlckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELAogICAgIHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLnVucmVnaXN0ZXJCbG9iVVJMKHVy
bCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJsb2JTaXplKGNv
bnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJsb2JTaXpl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGF1dG8qIGJs
b2JSZWdpc3RyeSA9IG5ldHdvcmtQcm9jZXNzKCkuYmxvYlJlZ2lzdHJ5KCp0aGlzKTsKLSAgICBp
ZiAoIWJsb2JSZWdpc3RyeSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29tcGxldGlvbkhhbmRs
ZXIoYmxvYlJlZ2lzdHJ5LT5ibG9iU2l6ZSh1cmwpKTsKKyAgICBhdXRvKiBzZXNzaW9uID0gbmV0
d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGNvbXBsZXRpb25I
YW5kbGVyKHNlc3Npb24gPyBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5ibG9iU2l6ZSh1cmwpIDog
MCk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndyaXRlQmxvYnNU
b1RlbXBvcmFyeUZpbGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7CiAgICAgaWYgKCFzZXNzaW9uKQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogCiAg
ICAgVmVjdG9yPFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBmaWxlUmVmZXJlbmNlczsK
ICAgICBmb3IgKGF1dG8mIHVybCA6IGJsb2JVUkxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmlu
ZGV4IDhmZTlmMzJjOWVmYzYyZmQzYzUzZTBiMTJjMmRkNWQyYzQ1ZGUxMDguLjkyODY3MzNjNGI3
Yzc1MTJjMjljNTMyNDM4MjFkMGVlMWVjNzEzMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
QEAgLTE4Niw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMRnJv
bVVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpOwogICAg
IHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNrZWRQ
YXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwg
aW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQpOwotICAgIHZvaWQgYmxvYlNpemUoY29uc3QgVVJM
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOworICAgIHZvaWQgYmxvYlNp
emUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWlu
dDY0X3QpPiYmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBVUkwmKTsKICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCAxZTc3YzhhYjk4NDQ5ZmYwNGVmYWI3OTMwNWQ1MTM4ZGVi
ZDg1ZGRhLi40YjExODliMzljY2ViYzhmYjIyNmY4ZmVlMDM0MjhjNmM4NWFkN2EzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTQ3LDcgKzQ3LDcgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVVJMIHVybCwgVVJMIHNyY1VSTCwgU3RyaW5nIGZpbGVCYWNrZWRQYXRoLCBT
dHJpbmcgY29udGVudFR5cGUpCiAgICAgUmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBpbnQ2
NF90IGVuZCkKICAgICBVbnJlZ2lzdGVyQmxvYlVSTChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFVSTCB1cmwpCi0gICAgQmxvYlNpemUoVVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNpemUp
IFN5bmNocm9ub3VzCisgICAgQmxvYlNpemUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwg
dXJsKSAtPiAodWludDY0X3QgcmVzdWx0U2l6ZSkgU3luY2hyb25vdXMKICAgICBXcml0ZUJsb2Jz
VG9UZW1wb3JhcnlGaWxlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxTdHJpbmc+
IGJsb2JVUkxzKSAtPiAoVmVjdG9yPFN0cmluZz4gZmlsZU5hbWVzKSBBc3luYwogCiAgICAgU2V0
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sIGVuYWJsZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDBjODQ2ZGIwMjQyZjNhNzUxM2U2YzNi
MTExZWFhYzFkODg2MGVjOTUuLjQ2NzJiM2U5ZGEwNjBlY2ZlY2RiY2U4NTVmYTU0NmZkN2ZmNmIx
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01OCw3ICs1OCw3IEBA
IEJsb2JSZWdpc3RyeSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUJs
b2JSZWdpc3RyeSgpCiAgICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVC
YWNrZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQ
dHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBm
aW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMRm9yU2xpY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJM
LCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIGZpbmFsIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KICAgICAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChQQUw6OlNlc3Npb25JRCwg
Y29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgICAgICB1bnNp
Z25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgcmV0dXJuIDA7IH0KKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXpl
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyByZXR1cm4gMDsgfQogICAgICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBmaW5hbCB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgfTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1w
dHlCbG9iUmVnaXN0cnk+IGJsb2JSZWdpc3RyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcAppbmRleCAyNGVi
OGY3NmMzZTY2N2Y0NTIzNmI4NzVkOTQzOTNiMDNmNGY4MzBhLi5lYjU1NzBjYzRlZDM1MTc4NTZm
YjNkYjMwZWM4YmY2NDczNDIxMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwCkBAIC0xMjgsNyArMTI4
LDcgQEAgUmVmPEN1cmxSZXF1ZXN0PiBOZXR3b3JrRGF0YVRhc2tDdXJsOjpjcmVhdGVDdXJsUmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXMKICAgICAvLyBDcmVhdGVzIGEgQ3VybFJlcXVl
c3QgaW4gc3VzcGVuZGVkIHN0YXRlLgogICAgIC8vIFRoZW4sIE5ldHdvcmtEYXRhVGFza0N1cmw6
OnJlc3VtZSgpIHdpbGwgYmUgY2FsbGVkIGFuZCBjb21tdW5pY2F0aW9uIHJlc3VtZXMuCiAgICAg
Y29uc3QgYXV0byBjYXB0dXJlTWV0cmljcyA9IHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljcygpID8gQ3VybFJlcXVlc3Q6OkNhcHR1cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkV4dGVu
ZGVkIDogQ3VybFJlcXVlc3Q6OkNhcHR1cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkJhc2ljOwotICAg
IHJldHVybiBDdXJsUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3QsICp0aGlzLCBDdXJsUmVxdWVzdDo6
U2hvdWxkU3VzcGVuZDo6WWVzLCBDdXJsUmVxdWVzdDo6RW5hYmxlTXVsdGlwYXJ0OjpObywgY2Fw
dHVyZU1ldHJpY3MpOworICAgIHJldHVybiBDdXJsUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3QsICp0
aGlzLCBtX3Nlc3Npb24tPnNlc3Npb25JRCgpLCBDdXJsUmVxdWVzdDo6U2hvdWxkU3VzcGVuZDo6
WWVzLCBDdXJsUmVxdWVzdDo6RW5hYmxlTXVsdGlwYXJ0OjpObywgY2FwdHVyZU1ldHJpY3MpOwog
fQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza0N1cmw6OmN1cmxEaWRTZW5kRGF0YShDdXJsUmVxdWVz
dCYsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25n
IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDRlNThh
ZmMxODMxOWM1NTM4YjhjNTRiMTliZDhkNGYxN2Q4N2NlNTYuLjNlNGQ0MzlhYjcwYTAyMDA2MGM2
MTM0YzM2M2ViMmY0Nzc2ODE1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNjcsNiArNjcs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5naW5lUmVwcmVzZW50YXRpb24oQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVRdW90
YUJhc2VkT25TcGFjZVVzYWdlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFsOwog
CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9z
ZXNzaW9uSUQ7IH0KKwogICAgIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyJiBtX3Byb3ZpZGVyOwog
ICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAppbmRleCAyZjNi
NmJhODMxNDc4NDVlNjg2MmM0ZjkwMzk3ZDI1MWM2NWIxN2YzLi43ODExMjA3Nzg0YWY2MGEyYWRl
YzU2Y2FhNTg2NGE3MWIzYWQxMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCkBAIC03MywxMCArNzMsMTAgQEAg
dm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2Uoc2Vz
c2lvbklELCB1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCksIDApOwogfQogCi11bnNpZ25lZCBsb25n
IGxvbmcgQmxvYlJlZ2lzdHJ5UHJveHk6OmJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKQordW5zaWdu
ZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeVByb3h5OjpibG9iU2l6ZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsKQogewogICAgIHVpbnQ2NF90IHJlc3VsdFNpemU7Ci0g
ICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpCbG9iU2l6ZSh1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkJsb2JTaXplOjpSZXBseShyZXN1bHRTaXplKSwgMCkpCisgICAgaWYgKCFX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5j
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpCbG9iU2l6ZShzZXNzaW9uSUQsIHVybCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6QmxvYlNpemU6OlJlcGx5KHJlc3VsdFNpemUpLCAwKSkKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgcmV0dXJuIHJlc3VsdFNpemU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAppbmRleCBkNzY2MTU4
N2UzZTc0MzgzMmUyMzI1YzY3OTZjZmEzNDViYjk1NmMwLi44MDkyNGMwZjk0OWVkN2EwODJiYWUw
MjVkYmFmNGIzNGJmNTEwNmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
RmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRh
dGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsKICAg
ICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKSBmaW5h
bDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgZW5k
KSBmaW5hbDsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmlu
YWw7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBVUkwmKSBmaW5hbDsKICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBmaW5hbDsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCBkZWY5OGRhZTJmZWI0NDgwN2VmYjMyMTdh
Y2RjY2VjYmI2NTk5ZGMwLi4wODllNmE3YWVjMTE3OTI2YzNiOTU4ZjViYzMwMDE3NTBhMWQxZjI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC03MCw3ICs3MCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChQQUw6OlNl
c3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRh
dGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkg
ZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tl
ZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KICAgICB2
b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmlu
YWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwg
c3RhcnQsIGVuZCk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmIHVybCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxvYlVS
TCh1cmwpOyB9Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYgdXJs
KSBmaW5hbCB7IHJldHVybiBtX2Jsb2JSZWdpc3RyeS5ibG9iU2l6ZSh1cmwpOyB9CisgICAgdW5z
aWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCkg
ZmluYWwgeyByZXR1cm4gbV9ibG9iUmVnaXN0cnkuYmxvYlNpemUodXJsKTsgfQogICAgIHZvaWQg
d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYm
IGZpbGVQYXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnku
d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsgfQogCiAgICAgQmxvYlJlZ2lzdHJ5SW1wbCogYmxvYlJlZ2lzdHJ5SW1wbCgpIGZp
bmFsIHsgcmV0dXJuICZtX2Jsb2JSZWdpc3RyeTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKaW5kZXggYjc2OTBkZmJkZmYxOWFjOGU0NjVkZjBhYzlkOTM2MjA2MmIzNGVmZC4uNWRh
OWVkNGU0ZjEyNGY0MGIyMzEwMTBkM2I1MzY3ZWM0M2ZhOWNkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdp
c3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYm
IHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JSZWdp
c3RyeS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwgV1RG
TW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVS
TEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBzcmNV
UkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWwgeyBtX2Jsb2JSZWdpc3Ry
eS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCk7IH0KICAg
ICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCkg
ZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOyB9Ci0gICAgdW5z
aWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJldHVybiBt
X2Jsb2JSZWdpc3RyeS5ibG9iU2l6ZSh1cmwpOyB9CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGJs
b2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCkgZmluYWwgeyByZXR1cm4gbV9i
bG9iUmVnaXN0cnkuYmxvYlNpemUodXJsKTsgfQogICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVtcG9y
YXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJMcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkud3JpdGVCbG9ic1RvVGVtcG9y
YXJ5RmlsZXMoYmxvYlVSTHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQogCiAgICAg
QmxvYlJlZ2lzdHJ5SW1wbCogYmxvYlJlZ2lzdHJ5SW1wbCgpIGZpbmFsIHsgcmV0dXJuICZtX2Js
b2JSZWdpc3RyeTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376256</attachid>
            <date>2019-08-14 03:32:49 -0700</date>
            <delta_ts>2019-08-14 06:42:44 -0700</delta_ts>
            <desc>WinCairo fix</desc>
            <filename>bug-200671-20190814123246.patch</filename>
            <type>text/plain</type>
            <size>40772</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQ0MWJhNzAwNWFkNDBi
MTdhZDVlYjQ1ZGYxZDM5NDQ3ZDhhMjM1OC4uNmNiMjY5NmI2MWViM2E0NDllNzI4ZDg1ZmM3OGU0
YWY0YjlhNDI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE5LTA4LTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5OjpibG9iU2l6ZSBzaG91bGQgdGFrZSBhIFNlc3Npb25JRCBhcyBwYXJhbWV0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMDY3MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVXBkYXRlIEZv
cm1EYXRhIHRvIGNvbXB1dGUgaXRzIGJ5dGUgc2l6ZSBiYXNlZCBvbiBhIFNlc3Npb25JRC4KKyAg
ICAgICAgV2Uga2VlcCBhIFdLMSBieXRlIGxlbmd0aCBjb21wdXRhdGlvbiBmb3IgRm9ybURhdGFF
bGVtZW50LgorICAgICAgICBVcGRhdGUgRm9ybURhdGEgY2FsbCBzaXRlcyBhY2NvcmRpbmdseS4K
KyAgICAgICAgVXBkYXRlIENhY2hlU3RvcmFnZUNvbm5lY3Rpb24gdG8gaW1wbGVtZW50IGEgU2Vz
c2lvbklEIGdldHRlci4KKyAgICAgICAgTm8gY2hhbmdlIG9mIGJlaGF2aW9yLgorCisgICAgICAg
ICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNvbXB1dGVSZWFsQm9keVNpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29tcHV0ZVJlYWxCb2R5U2l6ZSk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnNlc3Npb25JRCBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAg
ICAgICogZmlsZWFwaS9CbG9iLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnNpemUgY29u
c3QpOgorICAgICAgICAqIGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpibG9iU2l6ZSk6CisgICAgICAg
ICogZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0tlZXBhbGl2ZVJlcXVlc3RUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktlZXBh
bGl2ZVJlcXVlc3RUcmFja2VyOjp0cnlSZWdpc3RlclJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6S2VlcGFsaXZlUmVxdWVzdFRyYWNrZXI6OnJlZ2lzdGVyUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpLZWVwYWxpdmVSZXF1ZXN0VHJhY2tlcjo6dW5yZWdpc3RlclJlcXVlc3QpOgorICAg
ICAgICAqIHBhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvRm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZUxlbmd0aElu
Qnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFFbGVtZW50OjpsZW5ndGhJbkJ5dGVz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhOjpsZW5ndGhJbkJ5dGVzIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUhUVFBCb2R5Q0ZSZWFkU3RyZWFtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2Vz
c2lvbklEKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxGb3JtRGF0YVN0cmVhbTo6Y29tcHV0ZUNv
bnRlbnRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybEZvcm1EYXRhU3RyZWFtOjpDdXJs
Rm9ybURhdGFTdHJlYW0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsRm9ybURhdGFTdHJlYW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OkN1cmxSZXF1
ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxSZXF1ZXN0OjpjcmVhdGUpOgorCisgICAgICAgICogeG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVh
dGVSZXF1ZXN0KToKKwogMjAxOS0wOC0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIFNlc3Npb25JRCBkZWZhdWx0IGNvbnN0cnVjdG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDZiNWI5ZDE3MjY2MGM0YjI5N2EwNjZhYWNiMjYyZTdkYjcxMjJiZDUuLmYyOWVjMTM2
YjE2OGFkNWMxNDMxZWYzMGVhZmZhN2JlZWIzYzcwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTktMDgtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJsb2JTaXplIHNob3VsZCB0YWtlIGEgU2Vzc2lv
bklEIGFzIHBhcmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAwNjcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4K
KworICAgICAgICBVcGRhdGUgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbiB0byBpbXBsZW1lbnQg
c2Vzc2lvbklEIGdldHRlci4KKyAgICAgICAgVXBkYXRlIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzIHRvIGdldCBhIHNlc3Npb25JRCBhcyBwYXJhbWV0ZXIgdG8gYmxvYlNpemUgY29tcHV0
YXRpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1
cmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJsOjpjcmVhdGVDdXJs
UmVxdWVzdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6YmxvYlNpemUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llczo6Y3Jl
YXRlQmxvYlJlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lz
dHJ5UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNp
emUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oOgor
CiAyMDE5LTA4LTEzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgU2Vzc2lvbklEIGRlZmF1bHQgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwppbmRleCAzZmM4ZmRlYzNhNGQwZGE2ZjhiZmIyYmY0YjkwMjIwMjAwMGZkMTQ4Li4w
NGNlMWMyMzc1Y2Q3MTM1ODhjM2I0MzM1M2Q4YzcyZTExNGM1OTVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMDgtMTQgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmJs
b2JTaXplIHNob3VsZCB0YWtlIGEgU2Vzc2lvbklEIGFzIHBhcmFtZXRlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwNjcxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQUxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YlBsYXRmb3JtU3RyYXRlZ2llcy5tbToKKwogMjAxOS0wOC0xMiAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQmxvYiByZWdpc3RyaWVzIHNob3VsZCBiZSBrZXll
ZCBieSBzZXNzaW9uIElEcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDE1ZmU3YWZm
ZWZkYTlmYThmODllOTg3N2U1NjdhYjQzYTVjNWYyY2UuLjIyMWM4ZmE4NTU4OTdiNGViN2Q2NzZl
NzA4MmQ0YjY2MDI3ZjhhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDA2NzEKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVu
c2VuLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cDoKKwogMjAxOS0wOC0xMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQmxvYiByZWdpc3RyaWVzIHNob3VsZCBiZSBrZXllZCBieSBzZXNzaW9uIElEcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKaW5kZXggNGFjYjhhYWJkODY3ZDhkZTIyMDkzNzliMjYwYzYxZmZmZmViNDkwMC4u
NGMwNGQyNGY3NDViZjdhNDIzN2MzOGU1N2FkZWE4ZThkZGExYjQ4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CkBAIC0zMywxMSArMzMsMTEgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTsKIAotc3RhdGljIGlubGluZSB1aW50NjRfdCBjb21w
dXRlUmVhbEJvZHlTaXplKGNvbnN0IERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkmIGJvZHkp
Cit1aW50NjRfdCBDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wdXRlUmVhbEJvZHlTaXplKGNv
bnN0IERPTUNhY2hlRW5naW5lOjpSZXNwb25zZUJvZHkmIGJvZHkpCiB7CiAgICAgdWludDY0X3Qg
cmVzdWx0ID0gMDsKICAgICBXVEY6OnN3aXRjaE9uKGJvZHksIFsmXSAoY29uc3QgUmVmPFdlYkNv
cmU6OkZvcm1EYXRhPiYgZm9ybURhdGEpIHsKLSAgICAgICAgcmVzdWx0ID0gZm9ybURhdGEtPmxl
bmd0aEluQnl0ZXMoKTsKKyAgICAgICAgcmVzdWx0ID0gZm9ybURhdGEtPmxlbmd0aEluQnl0ZXMo
c2Vzc2lvbklEKCkpOwogICAgIH0sIFsmXSAoY29uc3QgUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4mIGJ1ZmZlcikgewogICAgICAgICByZXN1bHQgPSBidWZmZXItPnNpemUoKTsKICAgICB9LCBb
XSAoY29uc3Qgc3RkOjpudWxscHRyX3QmKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDg3ZWFiNzE4NjI2YzYw
Mjc0MTQ4OWRiYzJiZmE3N2U4NjU2NWFjN2MuLmQxZGFmYTg5YWZlZThmMDQ0Y2VjODhkNTM0NGQ5
NWZhMWU1ODY3YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01Nyw2ICs1NywxMSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGVuZ2luZVJlcHJlc2VudGF0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgU3RyaW5nJik+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soU3RyaW5nIHsgfSk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZShjb25zdCBDbGllbnRP
cmlnaW4mKSB7IH0KIAorICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29u
c3QgPSAwOworCitwcml2YXRlOgorICAgIHVpbnQ2NF90IGNvbXB1dGVSZWFsQm9keVNpemUoY29u
c3QgRE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9keSYpOworCiBwcm90ZWN0ZWQ6CiAgICAgSGFz
aE1hcDx1aW50NjRfdCwgdWludDY0X3Q+IG1fb3BhcXVlUmVzcG9uc2VUb1NpemVXaXRoUGFkZGlu
Z01hcDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAyMDZjMjQxOGU5ODdmZWRm
ZGEyMTAxZTZlYmE1ZjVhNWJhMGFmM2VmLi5mZjA2YTZiOGViOGVmYmIzM2VkM2ZmMzdjODc3MGZj
ZjE4OGVlYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTEzNCw2ICsxMzQsMTEg
QEAgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6fldvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24oKQogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFttYWluVGhyZWFkQ29ubmVjdGlvbiA9
IFdURk1vdmUobV9tYWluVGhyZWFkQ29ubmVjdGlvbildKCkgbXV0YWJsZSB7IH0pOwogfQogCitQ
QUw6OlNlc3Npb25JRCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpzZXNzaW9uSUQoKSBj
b25zdAoreworICAgIHJldHVybiBtX3Njb3BlLnNlc3Npb25JRCgpOworfQorCiB2b2lkIFdvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246Om9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4s
IGNvbnN0IFN0cmluZyYgY2FjaGVOYW1lLCBDYWNoZUlkZW50aWZpZXJDYWxsYmFjayYmIGNhbGxi
YWNrKQogewogICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0gKyttX2xhc3RSZXF1ZXN0
SWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMTE5ZDRjYzYxMjA4M2RhNzI4
NWY0Zjc5YzIyZGU1OWM5YjBjNGJmYi4uMmYzYWZhZDI5NDRlYjE0MjY3N2YyYjljNTBkZDVmMjhk
M2I5MmM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTU1LDYgKzU1LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlZmVyZW5jZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpIGZpbmFsOwog
ICAgIHZvaWQgZGVyZWZlcmVuY2UodWludDY0X3QgY2FjaGVJZGVudGlmaWVyKSBmaW5hbDsKIAor
ICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBk
b09wZW4odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdpbiYsIGNv
bnN0IFN0cmluZyYgY2FjaGVOYW1lKTsKICAgICB2b2lkIGRvUmVtb3ZlKHVpbnQ2NF90IHJlcXVl
c3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZG9SZXRy
aWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgQ2xpZW50T3JpZ2lu
JiwgdWludDY0X3QgdXBkYXRlQ291bnRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iLmNwcAppbmRleCBk
ODkxYzcwODY4YjhjNzZhOTI5MTExN2M1M2MzMmNmNmYxN2E2NDljLi41MmE1MzY3ODU3YTFmYTQ3
M2Q0NzExMDJkODM0ZmM3OTRiYTQ4MWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5jcHAKQEAgLTE2
OSw3ICsxNjksNyBAQCB1bnNpZ25lZCBsb25nIGxvbmcgQmxvYjo6c2l6ZSgpIGNvbnN0CiAgICAg
aWYgKCFtX3NpemUpIHsKICAgICAgICAgLy8gRklYTUU6IEphdmFTY3JpcHQgY2Fubm90IHJlcHJl
c2VudCBzaXplcyBhcyBsYXJnZSBhcyB1bnNpZ25lZCBsb25nIGxvbmcsIHdlIG5lZWQgdG8KICAg
ICAgICAgLy8gY29tZSB1cCB3aXRoIGFuIGV4Y2VwdGlvbiB0byB0aHJvdyBpZiBmaWxlIHNpemUg
aXMgbm90IHJlcHJlc2VudGFibGUuCi0gICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhY3R1YWxT
aXplID0gVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUobV9pbnRlcm5hbFVSTCk7Cisg
ICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhY3R1YWxTaXplID0gVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeTo6YmxvYlNpemUobV9zZXNzaW9uSUQsIG1faW50ZXJuYWxVUkwpOwogICAgICAgICBtX3Np
emUgPSBXVEY6OmlzSW5Cb3VuZHM8bG9uZyBsb25nPihhY3R1YWxTaXplKSA/IGFjdHVhbFNpemUg
OiAwOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRh
YmxlQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeS5jcHAKaW5kZXggYTk1YjI0OWY4Yzg0MjNmZDc0NWJjMmFjOTdiMjdiYzA0YWEz
YTczOS4uNzYxMDY2NGY1ZGEwOWExY2Y4YTVlMTk3NjRjYTc3NWY3YTFkZjZmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwCkBAIC0x
MjgsMTUgKzEyOCwxNSBAQCB2b2lkIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxv
YlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYwogICAgIH0pOwogfQogCi11
bnNpZ25lZCBsb25nIGxvbmcgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUoY29uc3Qg
VVJMJiB1cmwpCit1bnNpZ25lZCBsb25nIGxvbmcgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6Ymxv
YlNpemUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCkKIHsKICAgICBp
ZiAoaXNNYWluVGhyZWFkKCkpCi0gICAgICAgIHJldHVybiBibG9iUmVnaXN0cnkoKS5ibG9iU2l6
ZSh1cmwpOworICAgICAgICByZXR1cm4gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUoc2Vzc2lvbklE
LCB1cmwpOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHJlc3VsdFNpemU7CiAgICAgQmluYXJ5
U2VtYXBob3JlIHNlbWFwaG9yZTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt1cmwgPSB1cmwuaXNv
bGF0ZWRDb3B5KCksICZzZW1hcGhvcmUsICZyZXN1bHRTaXplXSB7Ci0gICAgICAgIHJlc3VsdFNp
emUgPSBibG9iUmVnaXN0cnkoKS5ibG9iU2l6ZSh1cmwpOworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3Nlc3Npb25JRCwgdXJsID0gdXJsLmlzb2xhdGVkQ29weSgpLCAmc2VtYXBob3JlLCAmcmVzdWx0
U2l6ZV0geworICAgICAgICByZXN1bHRTaXplID0gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUoc2Vz
c2lvbklELCB1cmwpOwogICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CiAgICAgfSk7CiAgICAg
c2VtYXBob3JlLndhaXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvVGhy
ZWFkYWJsZUJsb2JSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxl
QmxvYlJlZ2lzdHJ5LmgKaW5kZXggMzE1ZjVjYWRiNDY2Mzg5ODBiNGMxZmQ4ZWM1YjY3ZGJlM2U0
MTI3NC4uYzU3NmIyZDRiY2QwNWE4YjU2YWEzMzg0YTkwYmM5ZTcyZWEzYzliYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9UaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNl
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIG5ld1VSTCwgY29uc3QgVVJMJiBzcmNVUkwsIGxv
bmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCk7CiAgICAgc3RhdGljIHZvaWQgdW5yZWdpc3Rl
ckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpOwogCi0gICAgc3RhdGljIHVuc2ln
bmVkIGxvbmcgbG9uZyBibG9iU2l6ZShjb25zdCBVUkwmKTsKKyAgICBzdGF0aWMgdW5zaWduZWQg
bG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKTsKIAogICAgIC8v
IFJldHVybnMgdGhlIG9yaWdpbiBmb3IgdGhlIGdpdmVuIGJsb2IgVVJMLiBUaGlzIGlzIGJlY2F1
c2Ugd2UgYXJlIG5vdCBhYmxlIHRvIGVtYmVkIHRoZSB1bmlxdWUgc2VjdXJpdHkgb3JpZ2luIG9y
IHRoZSBvcmlnaW4gb2YgZmlsZSBVUkwKICAgICAvLyBpbiB0aGUgYmxvYiBVUkwuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0tlZXBhbGl2ZVJlcXVlc3RUcmFja2Vy
LmNwcAppbmRleCAwMGM1NTA1ZTdlYzE3NTA1ODI1ZjE0YTM1ODcwYzAzMzg3Zjk0MDE5Li40N2Ez
YzdiNmUwNzY1ODViOTY4NWYxMzQwN2YwM2MyYzBlNmVhMmNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvS2VlcGFsaXZlUmVxdWVzdFRyYWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9LZWVwYWxpdmVSZXF1ZXN0VHJhY2tlci5jcHAKQEAg
LTQ0LDcgKzQ0LDcgQEAgYm9vbCBLZWVwYWxpdmVSZXF1ZXN0VHJhY2tlcjo6dHJ5UmVnaXN0ZXJS
ZXF1ZXN0KENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKICAgICBpZiAoIWJvZHkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgdWludDY0X3QgYm9keVNpemUgPSBib2R5LT5sZW5ndGhJbkJ5
dGVzKCk7CisgICAgdWludDY0X3QgYm9keVNpemUgPSBib2R5LT5sZW5ndGhJbkJ5dGVzKHJlc291
cmNlLnNlc3Npb25JRCgpKTsKICAgICBpZiAobV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVzICsgYm9k
eVNpemUgPiBtYXhJbmZsaWdodEtlZXBhbGl2ZUJ5dGVzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBLZWVwYWxpdmVSZXF1ZXN0VHJhY2tlcjo6cmVnaXN0
ZXJSZXF1ZXN0KENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogICAg
IEFTU0VSVCghbV9pbmZsaWdodEtlZXBhbGl2ZVJlcXVlc3RzLmNvbnRhaW5zKCZyZXNvdXJjZSkp
OwogICAgIG1faW5mbGlnaHRLZWVwYWxpdmVSZXF1ZXN0cy5hcHBlbmQoJnJlc291cmNlKTsKLSAg
ICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgKz0gYm9keS0+bGVuZ3RoSW5CeXRlcygpOworICAg
IG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyArPSBib2R5LT5sZW5ndGhJbkJ5dGVzKHJlc291cmNl
LnNlc3Npb25JRCgpKTsKICAgICBBU1NFUlQobV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVzIDw9IG1h
eEluZmxpZ2h0S2VlcGFsaXZlQnl0ZXMpOwogCiAgICAgcmVzb3VyY2UuYWRkQ2xpZW50KCp0aGlz
KTsKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBLZWVwYWxpdmVSZXF1ZXN0VHJhY2tlcjo6dW5yZWdp
c3RlclJlcXVlc3QoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQogICAgIHJlc291cmNlLnJlbW92
ZUNsaWVudCgqdGhpcyk7CiAgICAgYm9vbCB3YXNSZW1vdmVkID0gbV9pbmZsaWdodEtlZXBhbGl2
ZVJlcXVlc3RzLnJlbW92ZUZpcnN0KCZyZXNvdXJjZSk7CiAgICAgQVNTRVJUX1VOVVNFRCh3YXNS
ZW1vdmVkLCB3YXNSZW1vdmVkKTsKLSAgICBtX2luZmxpZ2h0S2VlcGFsaXZlQnl0ZXMgLT0gcmVz
b3VyY2UucmVzb3VyY2VSZXF1ZXN0KCkuaHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcygpOworICAg
IG1faW5mbGlnaHRLZWVwYWxpdmVCeXRlcyAtPSByZXNvdXJjZS5yZXNvdXJjZVJlcXVlc3QoKS5o
dHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKHJlc291cmNlLnNlc3Npb25JRCgpKTsKICAgICBBU1NF
UlQobV9pbmZsaWdodEtlZXBhbGl2ZUJ5dGVzIDw9IG1heEluZmxpZ2h0S2VlcGFsaXZlQnl0ZXMp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3Zp
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKaW5kZXgg
NjM2ZjNkMGExMTliN2M2N2ZiYmRlN2Y2MWYxZjdkMGYwYzU5YmYxYi4uZDlmM2YzYzdhMGY0NmJk
ZmNlMmFlYTRjOGIwODY1NTQ0YjY1ODEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVT
dG9yYWdlUHJvdmlkZXIuaApAQCAtMzUsOSArMzUsMTQgQEAgY2xhc3MgQ2FjaGVTdG9yYWdlUHJv
dmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWNoZVN0b3JhZ2VQcm92aWRlcj4gewogcHVibGlj
OgogICAgIGNsYXNzIER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBX
ZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0
YXRpYyBSZWY8RHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IER1bW15Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbik7IH0KKyAgICAgICAgc3Rh
dGljIFJlZjxEdW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHVtbXlDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uKHNlc3Npb25JRCkpOyB9CiAKICAgICBwcml2YXRlOgorICAgICAgICBleHBsaWNpdCBE
dW1teUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAg
ICAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgICAgIHsKKyAgICAgICAgfQor
CiAgICAgICAgIHZvaWQgb3Blbihjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmLCBE
T01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWwgeyB9CiAgICAg
ICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVy
Q2FsbGJhY2smJikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgcmV0cmlldmVDYWNoZXMoY29uc3Qg
Q2xpZW50T3JpZ2luJiwgdWludDY0X3QsIERPTUNhY2hlRW5naW5lOjpDYWNoZUluZm9zQ2FsbGJh
Y2smJikgZmluYWwgeyB9CkBAIC00NiwxMCArNTEsMTMgQEAgcHVibGljOgogICAgICAgICB2b2lk
IGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90LCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWwg
eyB9CiAgICAgICAgIHZvaWQgcmVmZXJlbmNlKHVpbnQ2NF90KSBmaW5hbCB7IH0KICAgICAgICAg
dm9pZCBkZXJlZmVyZW5jZSh1aW50NjRfdCkgZmluYWwgeyB9CisgICAgICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CisKKyAg
ICAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgfTsKIAogICAgIHN0YXRpYyBS
ZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q2FjaGVTdG9yYWdlUHJvdmlkZXIpOyB9Ci0gICAgdmlydHVhbCBSZWY8Q2FjaGVTdG9yYWdlQ29u
bmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCkgeyBy
ZXR1cm4gRHVtbXlDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoKTsgfQorICAgIHZpcnR1
YWwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSB7IHJldHVybiBEdW1teUNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmNyZWF0ZShzZXNzaW9uSUQpOyB9CiAgICAgdmlydHVhbCB+Q2FjaGVTdG9yYWdl
UHJvdmlkZXIoKSB7IH07CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JSZWdpc3RyeS5oCmluZGV4IDY2MGE3OTZkMGIyZDg5ODYyNTFiODA2ZDM5
MTNiZjkxNDU0ZTllNzcuLjhjZDM5MWQxZmUzNDliMGNlOGE4ZjI3NDU5MzI5MWI3MWU0YTU0Yjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnkuaApA
QCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckJs
b2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYpID0gMDsKIAotICAgIHZpcnR1YWwgdW5z
aWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYpID0gMDsKKyAgICB2aXJ0dWFsIHVu
c2lnbmVkIGxvbmcgbG9uZyBibG9iU2l6ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJikgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSA9IDA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAKaW5kZXggZDcxYjFlZGNjZmNhZDE4
YzVlZWM3MDJlMmYxZWVkZjdmOTZiNjNjNS4uMjE2Y2IzMzdhNDBjNjBhNTA5Yzk2MzYxZDU5ZmYz
M2Y2NzZlNDQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9G
b3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0
YS5jcHAKQEAgLTEyNCw5ICsxMjQsOSBAQCBSZWY8Rm9ybURhdGE+IEZvcm1EYXRhOjppc29sYXRl
ZENvcHkoKSBjb25zdAogICAgIHJldHVybiBmb3JtRGF0YTsKIH0KIAotdWludDY0X3QgRm9ybURh
dGFFbGVtZW50OjpsZW5ndGhJbkJ5dGVzKCkgY29uc3QKK3N0YXRpYyBpbmxpbmUgdWludDY0X3Qg
Y29tcHV0ZUxlbmd0aEluQnl0ZXMoY29uc3QgRm9ybURhdGFFbGVtZW50JiBlbGVtZW50LCBjb25z
dCBGdW5jdGlvbjx1aW50NjRfdChjb25zdCBVUkwmKT4mIGJsb2JTaXplKQogewotICAgIHJldHVy
biBzd2l0Y2hPbihkYXRhLAorICAgIHJldHVybiBzd2l0Y2hPbihlbGVtZW50LmRhdGEsCiAgICAg
ICAgIFtdIChjb25zdCBWZWN0b3I8Y2hhcj4mIGJ5dGVzKSB7CiAgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGJ5dGVzLnNpemUoKSk7CiAgICAgICAgIH0sIFtdIChjb25z
dCBGb3JtRGF0YUVsZW1lbnQ6OkVuY29kZWRGaWxlRGF0YSYgZmlsZURhdGEpIHsKQEAgLTEzNiwx
MiArMTM2LDI2IEBAIHVpbnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcygpIGNv
bnN0CiAgICAgICAgICAgICBpZiAoRmlsZVN5c3RlbTo6Z2V0RmlsZVNpemUoZmlsZURhdGEuZmls
ZW5hbWUsIGZpbGVTaXplKSkKICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KGZpbGVTaXplKTsKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50NjRf
dD4oMCk7Ci0gICAgICAgIH0sIFtdIChjb25zdCBGb3JtRGF0YUVsZW1lbnQ6OkVuY29kZWRCbG9i
RGF0YSYgYmxvYkRhdGEpIHsKLSAgICAgICAgICAgIHJldHVybiBUaHJlYWRhYmxlQmxvYlJlZ2lz
dHJ5OjpibG9iU2l6ZShibG9iRGF0YS51cmwpOworICAgICAgICB9LCBbJmJsb2JTaXplXSAoY29u
c3QgRm9ybURhdGFFbGVtZW50OjpFbmNvZGVkQmxvYkRhdGEmIGJsb2JEYXRhKSB7CisgICAgICAg
ICAgICByZXR1cm4gYmxvYlNpemUoYmxvYkRhdGEudXJsKTsKICAgICAgICAgfQogICAgICk7CiB9
CiAKK3VpbnQ2NF90IEZvcm1EYXRhRWxlbWVudDo6bGVuZ3RoSW5CeXRlcyhCbG9iUmVnaXN0cnlJ
bXBsKiBibG9iUmVnaXN0cnkpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbXB1dGVMZW5ndGhJbkJ5
dGVzKCp0aGlzLCBbJl0oYXV0byYgdXJsKSB7CisgICAgICAgIHJldHVybiBibG9iUmVnaXN0cnkg
PyBibG9iUmVnaXN0cnktPmJsb2JTaXplKHVybCkgOiAwOworICAgIH0pOworfQorCit1aW50NjRf
dCBGb3JtRGF0YUVsZW1lbnQ6Omxlbmd0aEluQnl0ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KSBjb25zdAoreworICAgIHJldHVybiBjb21wdXRlTGVuZ3RoSW5CeXRlcygqdGhpcywgWyZdKGF1
dG8mIHVybCkgeworICAgICAgICByZXR1cm4gYmxvYlJlZ2lzdHJ5KCkuYmxvYlNpemUoc2Vzc2lv
bklELCB1cmwpOworICAgIH0pOworfQorCiBGb3JtRGF0YUVsZW1lbnQgRm9ybURhdGFFbGVtZW50
Ojppc29sYXRlZENvcHkoKSBjb25zdAogewogICAgIHJldHVybiBzd2l0Y2hPbihkYXRhLApAQCAt
MzgwLDEyICszOTQsMTIgQEAgRm9ybURhdGFGb3JVcGxvYWQ6On5Gb3JtRGF0YUZvclVwbG9hZCgp
CiAgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZpbGUoZmlsZSk7CiB9CiAKLXVpbnQ2NF90IEZv
cm1EYXRhOjpsZW5ndGhJbkJ5dGVzKCkgY29uc3QKK3VpbnQ2NF90IEZvcm1EYXRhOjpsZW5ndGhJ
bkJ5dGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKIHsKICAgICBpZiAoIW1fbGVu
Z3RoSW5CeXRlcykgewogICAgICAgICB1aW50NjRfdCBsZW5ndGggPSAwOwogICAgICAgICBmb3Ig
KGF1dG8mIGVsZW1lbnQgOiBtX2VsZW1lbnRzKQotICAgICAgICAgICAgbGVuZ3RoICs9IGVsZW1l
bnQubGVuZ3RoSW5CeXRlcygpOworICAgICAgICAgICAgbGVuZ3RoICs9IGVsZW1lbnQubGVuZ3Ro
SW5CeXRlcyhzZXNzaW9uSUQpOwogICAgICAgICBtX2xlbmd0aEluQnl0ZXMgPSBsZW5ndGg7CiAg
ICAgfQogICAgIHJldHVybiAqbV9sZW5ndGhJbkJ5dGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Gb3JtRGF0YS5oCmluZGV4IDdjNjg2ZThiNDIzYjM2ZGU4YjEyZjEwYjU3ZGYx
OGRlM2U0MDk1YjYuLmI4ZWMwM2RjMWY4MTQ0Yjc2NGI4NDc2OGNhMzUxN2FkY2JjOTJmNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKQEAgLTIwLDYgKzIw
LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIKKyNpbmNsdWRlIDxw
YWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTUwLDcgKzUxLDggQEAgc3Ry
dWN0IEZvcm1EYXRhRWxlbWVudCB7CiAgICAgZXhwbGljaXQgRm9ybURhdGFFbGVtZW50KGNvbnN0
IFVSTCYgYmxvYlVSTCkKICAgICAgICAgOiBkYXRhKEVuY29kZWRCbG9iRGF0YSB7IGJsb2JVUkwg
fSkgeyB9CiAKLSAgICB1aW50NjRfdCBsZW5ndGhJbkJ5dGVzKCkgY29uc3Q7CisgICAgdWludDY0
X3QgbGVuZ3RoSW5CeXRlcyhCbG9iUmVnaXN0cnlJbXBsKikgY29uc3Q7CisgICAgdWludDY0X3Qg
bGVuZ3RoSW5CeXRlcyhQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAKICAgICBGb3JtRGF0YUVsZW1l
bnQgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAKQEAgLTI0OSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBGb3JtVVJMRW5jb2RlZDsKICAgICB9CiAKLSAgICB1aW50NjRfdCBsZW5n
dGhJbkJ5dGVzKCkgY29uc3Q7CisgICAgdWludDY0X3QgbGVuZ3RoSW5CeXRlcyhQQUw6OlNlc3Np
b25JRCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBVUkwgYXNCbG9iVVJMKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURh
dGFTdHJlYW1DRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zv
cm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCmluZGV4IDUzZmVhMDU2MzU5OGFjMTg5NWU5Njc2NDM3MmEx
N2U3ZDlkMmViZTYuLjlhM2E1NGZiNjU0NDAwMTc0MDExMDNiNWFhM2U1MzI2YjY3NTZmOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJl
YW1DRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Gb3Jt
RGF0YVN0cmVhbUNGTmV0LmNwcApAQCAtMzc4LDcgKzM3OCw3IEBAIFJldGFpblB0cjxDRlJlYWRT
dHJlYW1SZWY+IGNyZWF0ZUhUVFBCb2R5Q0ZSZWFkU3RyZWFtKEZvcm1EYXRhJiBmb3JtRGF0YSkK
ICAgICAvLyBQcmVjb21wdXRlIHRoZSBjb250ZW50IGxlbmd0aCBzbyBDRk5ldHdvcmsgZG9lc24n
dCB1c2UgY2h1bmtlZCBtb2RlLgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBsZW5ndGggPSAwOwog
ICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGRhdGFGb3JVcGxvYWQuZGF0YSgpLmVsZW1lbnRzKCkp
Ci0gICAgICAgIGxlbmd0aCArPSBlbGVtZW50Lmxlbmd0aEluQnl0ZXMoKTsKKyAgICAgICAgbGVu
Z3RoICs9IGVsZW1lbnQubGVuZ3RoSW5CeXRlcyhibG9iUmVnaXN0cnkoKS5ibG9iUmVnaXN0cnlJ
bXBsKCkpOwogCiAgICAgRm9ybUNyZWF0aW9uQ29udGV4dCogZm9ybUNvbnRleHQgPSBuZXcgRm9y
bUNyZWF0aW9uQ29udGV4dCB7IFdURk1vdmUoZGF0YUZvclVwbG9hZCksIGxlbmd0aCB9OwogICAg
IENGUmVhZFN0cmVhbUNhbGxCYWNrc1YxIGNhbGxCYWNrcyA9IHsgMSwgZm9ybUNyZWF0ZSwgZm9y
bUZpbmFsaXplLCBudWxscHRyLCBmb3JtT3BlbiwgbnVsbHB0ciwgZm9ybVJlYWQsIG51bGxwdHIs
IGZvcm1DYW5SZWFkLCBmb3JtQ2xvc2UsIGZvcm1Db3B5UHJvcGVydHksIG51bGxwdHIsIG51bGxw
dHIsIGZvcm1TY2hlZHVsZSwgZm9ybVVuc2NoZWR1bGUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKaW5kZXggMWFjZTI0
Njk0YjU1ZjU5ZTM5Yjk1MDQ3MzBkZDliNTE4MGJlOWE5My4uMWE0MTUwYTY0OTgxMDI2YTYwMzYw
YjJjM2ZkZjBlMDk0YTAwN2E3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKQEAgLTc2LDcgKzc2LDggQEAgYm9vbCBD
dXJsRG93bmxvYWQ6OmNhbmNlbCgpCiAKIFJlZjxDdXJsUmVxdWVzdD4gQ3VybERvd25sb2FkOjpj
cmVhdGVDdXJsUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgYXV0byBj
dXJsUmVxdWVzdCA9IEN1cmxSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdCwgKnRoaXMpOworICAgIC8v
IEZJWE1FOiBVc2UgYSBjb3JyZWN0IHNlc3Npb25JRC4KKyAgICBhdXRvIGN1cmxSZXF1ZXN0ID0g
Q3VybFJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0LCAqdGhpcywgUEFMOjpTZXNzaW9uSUQ6OmVtcHR5
U2Vzc2lvbklEKCkpOwogICAgIHJldHVybiBjdXJsUmVxdWVzdDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0cmVhbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3Ry
ZWFtLmNwcAppbmRleCAyYmJhNWE2YzNhNGIyNjk1ZWI5YjRlMTA1Zjg1MmQ1MTRlOGJmOGM4Li45
ZmM2NmVjMDIwZTI5OTZkMzhkMDYwYWQ3OGQzNmYxMTRhZTQ4MWM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3Ry
ZWFtLmNwcApAQCAtNDEsNyArNDEsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUN1cmxG
b3JtRGF0YVN0cmVhbTo6Q3VybEZvcm1EYXRhU3RyZWFtKGNvbnN0IEZvcm1EYXRhKiBmb3JtRGF0
YSkKK0N1cmxGb3JtRGF0YVN0cmVhbTo6Q3VybEZvcm1EYXRhU3RyZWFtKGNvbnN0IEZvcm1EYXRh
KiBmb3JtRGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogbV9zZXNzaW9uSUQo
c2Vzc2lvbklEKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTEwMyw3ICsx
MDQsNyBAQCB2b2lkIEN1cmxGb3JtRGF0YVN0cmVhbTo6Y29tcHV0ZUNvbnRlbnRMZW5ndGgoKQog
ICAgIG1faXNDb250ZW50TGVuZ3RoVXBkYXRlZCA9IHRydWU7CiAKICAgICBmb3IgKGNvbnN0IGF1
dG8mIGVsZW1lbnQgOiBtX2Zvcm1EYXRhLT5lbGVtZW50cygpKQotICAgICAgICBtX3RvdGFsU2l6
ZSArPSBlbGVtZW50Lmxlbmd0aEluQnl0ZXMoKTsKKyAgICAgICAgbV90b3RhbFNpemUgKz0gZWxl
bWVudC5sZW5ndGhJbkJ5dGVzKG1fc2Vzc2lvbklEKTsKIH0KIAogT3B0aW9uYWw8c2l6ZV90PiBD
dXJsRm9ybURhdGFTdHJlYW06OnJlYWQoY2hhciogYnVmZmVyLCBzaXplX3Qgc2l6ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURhdGFT
dHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRm9ybURh
dGFTdHJlYW0uaAppbmRleCAwOWU3ZmRiYjRhMmNmYWI0YjkwNzMyZjA2MTE0YmUwODExM2JiNTFk
Li41YTMyNjMwOGEyNjFhODg5OTJmMGYyZWQ3ZjFkNmY2NTQ2NDAzNjVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybEZvcm1EYXRhU3RyZWFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxGb3JtRGF0YVN0
cmVhbS5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3Vy
bEZvcm1EYXRhU3RyZWFtIHsKIHB1YmxpYzoKLSAgICBDdXJsRm9ybURhdGFTdHJlYW0oY29uc3Qg
Rm9ybURhdGEqKTsKKyAgICBDdXJsRm9ybURhdGFTdHJlYW0oY29uc3QgRm9ybURhdGEqLCBQQUw6
OlNlc3Npb25JRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgfkN1cmxGb3JtRGF0YVN0cmVhbSgpOwog
CiAgICAgdm9pZCBjbGVhbigpOwpAQCAtNTQsNiArNTQsNyBAQCBwcml2YXRlOgogICAgIE9wdGlv
bmFsPHNpemVfdD4gcmVhZEZyb21GaWxlKGNvbnN0IEZvcm1EYXRhRWxlbWVudDo6RW5jb2RlZEZp
bGVEYXRhJiwgY2hhciosIHNpemVfdCk7CiAgICAgT3B0aW9uYWw8c2l6ZV90PiByZWFkRnJvbURh
dGEoY29uc3QgVmVjdG9yPGNoYXI+JiwgY2hhciosIHNpemVfdCk7CiAKKyAgICBQQUw6OlNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWZQdHI8Rm9ybURhdGE+IG1fZm9ybURhdGE7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPGNoYXI+PiBtX3Bvc3REYXRhOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKaW5kZXgg
MTdmZWRkZjBlMDgxNGQ1ZWFkMDY4MmY2ZWYxNGY3NjVjOTFlNTkwOC4uMDcwMzRiYjYyZDdiYmU2
NDBkNGY4MDFjNGUxODQyMjNkZjI0MTNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwCkBAIC00MSwxMyArNDEsMTMgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DdXJsUmVxdWVzdDo6Q3VybFJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JnJlcXVlc3QsIEN1cmxSZXF1ZXN0Q2xpZW50KiBjbGllbnQsIFNob3Vs
ZFN1c3BlbmQgc2hvdWxkU3VzcGVuZCwgRW5hYmxlTXVsdGlwYXJ0IGVuYWJsZU11bHRpcGFydCwg
Q2FwdHVyZU5ldHdvcmtMb2FkTWV0cmljcyBjYXB0dXJlRXh0cmFNZXRyaWNzLCBNZXNzYWdlUXVl
dWU8RnVuY3Rpb248dm9pZCgpPj4qIG1lc3NhZ2VRdWV1ZSkKK0N1cmxSZXF1ZXN0OjpDdXJsUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmcmVxdWVzdCwgQ3VybFJlcXVlc3RDbGllbnQqIGNs
aWVudCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTaG91bGRTdXNwZW5kIHNob3VsZFN1c3Bl
bmQsIEVuYWJsZU11bHRpcGFydCBlbmFibGVNdWx0aXBhcnQsIENhcHR1cmVOZXR3b3JrTG9hZE1l
dHJpY3MgY2FwdHVyZUV4dHJhTWV0cmljcywgTWVzc2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+
KiBtZXNzYWdlUXVldWUpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX21lc3NhZ2VR
dWV1ZShtZXNzYWdlUXVldWUpCiAgICAgLCBtX3JlcXVlc3QocmVxdWVzdC5pc29sYXRlZENvcHko
KSkKICAgICAsIG1fc2hvdWxkU3VzcGVuZChzaG91bGRTdXNwZW5kID09IFNob3VsZFN1c3BlbmQ6
OlllcykKICAgICAsIG1fZW5hYmxlTXVsdGlwYXJ0KGVuYWJsZU11bHRpcGFydCA9PSBFbmFibGVN
dWx0aXBhcnQ6OlllcykKLSAgICAsIG1fZm9ybURhdGFTdHJlYW0obV9yZXF1ZXN0Lmh0dHBCb2R5
KCkpCisgICAgLCBtX2Zvcm1EYXRhU3RyZWFtKG1fcmVxdWVzdC5odHRwQm9keSgpLCBzZXNzaW9u
SUQpCiAgICAgLCBtX2NhcHR1cmVFeHRyYU1ldHJpY3MoY2FwdHVyZUV4dHJhTWV0cmljcyA9PSBD
YXB0dXJlTmV0d29ya0xvYWRNZXRyaWNzOjpFeHRlbmRlZCkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0N1cmxSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybFJlcXVlc3QuaAppbmRleCBiMDhlY2MxOThiZDM2YTBlMGQ1NGVmY2I3NzM0M2NiY2ViZjlj
YTI4Li42MDY2NzNkMTMwYzQ5NTBhYzA3YjhmNGU0ODYwMjM1ZjQyOTA1NjE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkN1cmxSZXNwb25zZS5oIgogI2luY2x1ZGUgIlByb3Rl
Y3Rpb25TcGFjZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgPHBh
bC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0
Zi9NZXNzYWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgpAQCAtNjMs
OSArNjQsOSBAQCBwdWJsaWM6CiAgICAgICAgIEV4dGVuZGVkCiAgICAgfTsKIAotICAgIHN0YXRp
YyBSZWY8Q3VybFJlcXVlc3Q+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IEN1cmxSZXF1ZXN0Q2xpZW50JiBjbGllbnQsIFNob3VsZFN1c3BlbmQgc2hvdWxkU3VzcGVuZCA9
IFNob3VsZFN1c3BlbmQ6Ok5vLCBFbmFibGVNdWx0aXBhcnQgZW5hYmxlTXVsdGlwYXJ0ID0gRW5h
YmxlTXVsdGlwYXJ0OjpObywgQ2FwdHVyZU5ldHdvcmtMb2FkTWV0cmljcyBjYXB0dXJlTWV0cmlj
cyA9IENhcHR1cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkJhc2ljLCBNZXNzYWdlUXVldWU8RnVuY3Rp
b248dm9pZCgpPj4qIG1lc3NhZ2VRdWV1ZSA9IG51bGxwdHIpCisgICAgc3RhdGljIFJlZjxDdXJs
UmVxdWVzdD4gY3JlYXRlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ3VybFJlcXVl
c3RDbGllbnQmIGNsaWVudCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTaG91bGRTdXNwZW5k
IHNob3VsZFN1c3BlbmQgPSBTaG91bGRTdXNwZW5kOjpObywgRW5hYmxlTXVsdGlwYXJ0IGVuYWJs
ZU11bHRpcGFydCA9IEVuYWJsZU11bHRpcGFydDo6Tm8sIENhcHR1cmVOZXR3b3JrTG9hZE1ldHJp
Y3MgY2FwdHVyZU1ldHJpY3MgPSBDYXB0dXJlTmV0d29ya0xvYWRNZXRyaWNzOjpCYXNpYywgTWVz
c2FnZVF1ZXVlPEZ1bmN0aW9uPHZvaWQoKT4+KiBtZXNzYWdlUXVldWUgPSBudWxscHRyKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3VybFJlcXVlc3QocmVxdWVzdCwgJmNs
aWVudCwgc2hvdWxkU3VzcGVuZCwgZW5hYmxlTXVsdGlwYXJ0LCBjYXB0dXJlTWV0cmljcywgbWVz
c2FnZVF1ZXVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEN1cmxSZXF1ZXN0KHJl
cXVlc3QsICZjbGllbnQsIHNlc3Npb25JRCwgc2hvdWxkU3VzcGVuZCwgZW5hYmxlTXVsdGlwYXJ0
LCBjYXB0dXJlTWV0cmljcywgbWVzc2FnZVF1ZXVlKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+
Q3VybFJlcXVlc3QoKSA9IGRlZmF1bHQ7CkBAIC0xMDUsNyArMTA2LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgRmluaXNoVHJhbnNmZXIKICAgICB9OwogCi0gICAgQ3VybFJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgQ3VybFJlcXVlc3RDbGllbnQqLCBTaG91bGRTdXNwZW5kLCBFbmFibGVN
dWx0aXBhcnQsIENhcHR1cmVOZXR3b3JrTG9hZE1ldHJpY3MsIE1lc3NhZ2VRdWV1ZTxGdW5jdGlv
bjx2b2lkKCk+PiopOworICAgIEN1cmxSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEN1
cmxSZXF1ZXN0Q2xpZW50KiwgUEFMOjpTZXNzaW9uSUQsIFNob3VsZFN1c3BlbmQsIEVuYWJsZU11
bHRpcGFydCwgQ2FwdHVyZU5ldHdvcmtMb2FkTWV0cmljcywgTWVzc2FnZVF1ZXVlPEZ1bmN0aW9u
PHZvaWQoKT4+Kik7CiAKICAgICB2b2lkIHJldGFpbigpIG92ZXJyaWRlIHsgcmVmKCk7IH0KICAg
ICB2b2lkIHJlbGVhc2UoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5j
cHAKaW5kZXggN2JlMDBhZDM0YjhlNTk4ODJkZTBmNTEzYjZjMmRkZjkwMTFmOTllMS4uNDdiMzc4
M2U2NDYyOWE5MmVlOGRhNDBiZDQ3OTcwYzc5NmVhNTQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5j
cHAKQEAgLTE1NCw3ICsxNTQsOCBAQCBSZWY8Q3VybFJlcXVlc3Q+IFJlc291cmNlSGFuZGxlOjpj
cmVhdGVDdXJsUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBSZQogICAgIH0KIAog
ICAgIEN1cmxSZXF1ZXN0OjpTaG91bGRTdXNwZW5kIHNob3VsZFN1c3BlbmQgPSBkLT5tX2RlZmVy
c0xvYWRpbmcgPyBDdXJsUmVxdWVzdDo6U2hvdWxkU3VzcGVuZDo6WWVzIDogQ3VybFJlcXVlc3Q6
OlNob3VsZFN1c3BlbmQ6Ok5vOwotICAgIGF1dG8gY3VybFJlcXVlc3QgPSBDdXJsUmVxdWVzdDo6
Y3JlYXRlKHJlcXVlc3QsICpkZWxlZ2F0ZSgpLCBzaG91bGRTdXNwZW5kLCBDdXJsUmVxdWVzdDo6
RW5hYmxlTXVsdGlwYXJ0OjpZZXMsIEN1cmxSZXF1ZXN0OjpDYXB0dXJlTmV0d29ya0xvYWRNZXRy
aWNzOjpCYXNpYywgZC0+bV9tZXNzYWdlUXVldWUpOworICAgIC8vIEZJWE1FOiBVc2UgYSBjb3Jy
ZWN0IHNlc3Npb25JRC4KKyAgICBhdXRvIGN1cmxSZXF1ZXN0ID0gQ3VybFJlcXVlc3Q6OmNyZWF0
ZShyZXF1ZXN0LCAqZGVsZWdhdGUoKSwgUEFMOjpTZXNzaW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCks
IHNob3VsZFN1c3BlbmQsIEN1cmxSZXF1ZXN0OjpFbmFibGVNdWx0aXBhcnQ6OlllcywgQ3VybFJl
cXVlc3Q6OkNhcHR1cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkJhc2ljLCBkLT5tX21lc3NhZ2VRdWV1
ZSk7CiAgICAgCiAgICAgcmV0dXJuIGN1cmxSZXF1ZXN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAKaW5kZXggZjAxOTNkOGM5NmUzNWM5ZmY3NWU2YTYzYTM1MGM2NTVkY2E4
NjBlZi4uOGU0NDI0ZWYyNDZhMzZhNGRiODEzYzMwNmNiMzIxZmE0ZmVhMjUxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC02MjEsNyArNjIxLDcgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoKQogICAgIGlmIChtX2FzeW5j
KSB7CiAgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jlc3NFdmVu
dChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwogICAgICAgICBpZiAoIW1fdXBsb2FkQ29t
cGxldGUgJiYgbV91cGxvYWRMaXN0ZW5lckZsYWcpCi0gICAgICAgICAgICBtX3VwbG9hZC0+ZGlz
cGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCwgMCwgcmVxdWVz
dC5odHRwQm9keSgpLT5sZW5ndGhJbkJ5dGVzKCkpOworICAgICAgICAgICAgbV91cGxvYWQtPmRp
c3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQsIDAsIHJlcXVl
c3QuaHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNl
c3Npb25JRCgpKSk7CiAKICAgICAgICAgaWYgKHJlYWR5U3RhdGUoKSAhPSBPUEVORUQgfHwgIW1f
c2VuZEZsYWcgfHwgbV9sb2FkZXIpCiAgICAgICAgICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAppbmRleCAyZTRmNTNkMmFkYzBlODUyMDI2YjAzNzFiNTE1NGQ0YjNj
ODk5NmMxLi4xZjEwMDRlMWI1YmNkMzlkOGIxMjJkZjhjNmRhNDhkMTM3YzRiZTYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNjI3LDIwICs2MjcsMTcgQEAgdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6dW5yZWdpc3RlckJsb2JVUkwoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELAogICAgIHNlc3Npb24tPmJsb2JSZWdpc3RyeSgpLnVucmVnaXN0ZXJCbG9iVVJM
KHVybCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJsb2JTaXpl
KGNvbnN0IFVSTCYgdXJsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmJsb2JT
aXplKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGF1dG8q
IGJsb2JSZWdpc3RyeSA9IG5ldHdvcmtQcm9jZXNzKCkuYmxvYlJlZ2lzdHJ5KCp0aGlzKTsKLSAg
ICBpZiAoIWJsb2JSZWdpc3RyeSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29tcGxldGlvbkhh
bmRsZXIoYmxvYlJlZ2lzdHJ5LT5ibG9iU2l6ZSh1cmwpKTsKKyAgICBhdXRvKiBzZXNzaW9uID0g
bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGNvbXBsZXRp
b25IYW5kbGVyKHNlc3Npb24gPyBzZXNzaW9uLT5ibG9iUmVnaXN0cnkoKS5ibG9iU2l6ZSh1cmwp
IDogMCk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndyaXRlQmxv
YnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGJsb2JVUkxzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
UHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7CiAgICAgaWYgKCFzZXNzaW9uKQot
ICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwog
CiAgICAgVmVjdG9yPFJlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBmaWxlUmVmZXJlbmNl
czsKICAgICBmb3IgKGF1dG8mIHVybCA6IGJsb2JVUkxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CmluZGV4IDhmZTlmMzJjOWVmYzYyZmQzYzUzZTBiMTJjMmRkNWQyYzQ1ZGUxMDguLjkyODY3MzNj
NGI3Yzc1MTJjMjljNTMyNDM4MjFkMGVlMWVjNzEzMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKQEAgLTE4Niw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJM
RnJvbVVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpOwog
ICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIGZpbGVCYWNr
ZWRQYXRoLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICAgICB2b2lkIHJlZ2lzdGVyQmxv
YlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VS
TCwgaW50NjRfdCBzdGFydCwgaW50NjRfdCBlbmQpOwotICAgIHZvaWQgYmxvYlNpemUoY29uc3Qg
VVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOworICAgIHZvaWQgYmxv
YlNpemUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
dWludDY0X3QpPiYmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmKTsKICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAxZTc3YzhhYjk4NDQ5ZmYwNGVmYWI3OTMwNWQ1MTM4
ZGViZDg1ZGRhLi40YjExODliMzljY2ViYzhmYjIyNmY4ZmVlMDM0MjhjNmM4NWFkN2EzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTQ3LDcgKzQ3LDcg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2
ZXIgewogICAgIFJlZ2lzdGVyQmxvYlVSTE9wdGlvbmFsbHlGaWxlQmFja2VkKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgVVJMIHVybCwgVVJMIHNyY1VSTCwgU3RyaW5nIGZpbGVCYWNrZWRQYXRo
LCBTdHJpbmcgY29udGVudFR5cGUpCiAgICAgUmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsLCBVUkwgc3JjVVJMLCBpbnQ2NF90IHN0YXJ0LCBp
bnQ2NF90IGVuZCkKICAgICBVbnJlZ2lzdGVyQmxvYlVSTChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFVSTCB1cmwpCi0gICAgQmxvYlNpemUoVVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc3VsdFNp
emUpIFN5bmNocm9ub3VzCisgICAgQmxvYlNpemUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwgdXJsKSAtPiAodWludDY0X3QgcmVzdWx0U2l6ZSkgU3luY2hyb25vdXMKICAgICBXcml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxTdHJp
bmc+IGJsb2JVUkxzKSAtPiAoVmVjdG9yPFN0cmluZz4gZmlsZU5hbWVzKSBBc3luYwogCiAgICAg
U2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sIGVuYWJsZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDBjODQ2ZGIwMjQyZjNhNzUxM2U2
YzNiMTExZWFhYzFkODg2MGVjOTUuLjQ2NzJiM2U5ZGEwNjBlY2ZlY2RiY2U4NTVmYTU0NmZkN2Zm
NmIxZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC01OCw3ICs1OCw3
IEBAIEJsb2JSZWdpc3RyeSogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0
ZUJsb2JSZWdpc3RyeSgpCiAgICAgICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZp
bGVCYWNrZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBS
ZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBl
KSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgICAgIHZvaWQgcmVnaXN0ZXJC
bG9iVVJMRm9yU2xpY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3Jj
VVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpIGZpbmFsIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KICAgICAgICAgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChQQUw6OlNlc3Npb25J
RCwgY29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikgZmluYWwgeyBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JT
aXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKSBmaW5hbCB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyByZXR1cm4gMDsgfQogICAgICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVz
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBmaW5hbCB7IEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgfTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
RW1wdHlCbG9iUmVnaXN0cnk+IGJsb2JSZWdpc3RyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3b3JrRGF0YVRhc2tDdXJsLmNwcAppbmRleCAy
NGViOGY3NmMzZTY2N2Y0NTIzNmI4NzVkOTQzOTNiMDNmNGY4MzBhLi5lYjU1NzBjYzRlZDM1MTc4
NTZmYjNkYjMwZWM4YmY2NDczNDIxMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwCkBAIC0xMjgsNyAr
MTI4LDcgQEAgUmVmPEN1cmxSZXF1ZXN0PiBOZXR3b3JrRGF0YVRhc2tDdXJsOjpjcmVhdGVDdXJs
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXMKICAgICAvLyBDcmVhdGVzIGEgQ3VybFJl
cXVlc3QgaW4gc3VzcGVuZGVkIHN0YXRlLgogICAgIC8vIFRoZW4sIE5ldHdvcmtEYXRhVGFza0N1
cmw6OnJlc3VtZSgpIHdpbGwgYmUgY2FsbGVkIGFuZCBjb21tdW5pY2F0aW9uIHJlc3VtZXMuCiAg
ICAgY29uc3QgYXV0byBjYXB0dXJlTWV0cmljcyA9IHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcygpID8gQ3VybFJlcXVlc3Q6OkNhcHR1cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkV4
dGVuZGVkIDogQ3VybFJlcXVlc3Q6OkNhcHR1cmVOZXR3b3JrTG9hZE1ldHJpY3M6OkJhc2ljOwot
ICAgIHJldHVybiBDdXJsUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3QsICp0aGlzLCBDdXJsUmVxdWVz
dDo6U2hvdWxkU3VzcGVuZDo6WWVzLCBDdXJsUmVxdWVzdDo6RW5hYmxlTXVsdGlwYXJ0OjpObywg
Y2FwdHVyZU1ldHJpY3MpOworICAgIHJldHVybiBDdXJsUmVxdWVzdDo6Y3JlYXRlKHJlcXVlc3Qs
ICp0aGlzLCBtX3Nlc3Npb24tPnNlc3Npb25JRCgpLCBDdXJsUmVxdWVzdDo6U2hvdWxkU3VzcGVu
ZDo6WWVzLCBDdXJsUmVxdWVzdDo6RW5hYmxlTXVsdGlwYXJ0OjpObywgY2FwdHVyZU1ldHJpY3Mp
OwogfQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza0N1cmw6OmN1cmxEaWRTZW5kRGF0YShDdXJsUmVx
dWVzdCYsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBs
b25nIHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDRl
NThhZmMxODMxOWM1NTM4YjhjNTRiMTliZDhkNGYxN2Q4N2NlNTYuLjNlNGQ0MzlhYjcwYTAyMDA2
MGM2MTM0YzM2M2ViMmY0Nzc2ODE1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNjcsNiAr
NjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5naW5lUmVwcmVzZW50YXRpb24oQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVR
dW90YUJhc2VkT25TcGFjZVVzYWdlKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFs
OwogCisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zZXNzaW9uSUQ7IH0KKwogICAgIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyJiBtX3Byb3ZpZGVy
OwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmNwcAppbmRleCAy
ZjNiNmJhODMxNDc4NDVlNjg2MmM0ZjkwMzk3ZDI1MWM2NWIxN2YzLi43ODExMjA3Nzg0YWY2MGEy
YWRlYzU2Y2FhNTg2NGE3MWIzYWQxMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCkBAIC03MywxMCArNzMsMTAg
QEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2Uo
c2Vzc2lvbklELCB1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCksIDApOwogfQogCi11bnNpZ25lZCBs
b25nIGxvbmcgQmxvYlJlZ2lzdHJ5UHJveHk6OmJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKQordW5z
aWduZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeVByb3h5OjpibG9iU2l6ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgdXJsKQogewogICAgIHVpbnQ2NF90IHJlc3VsdFNpemU7
Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpCbG9iU2l6ZSh1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OkJsb2JTaXplOjpSZXBseShyZXN1bHRTaXplKSwgMCkpCisgICAgaWYg
KCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpCbG9iU2l6ZShzZXNzaW9uSUQsIHVybCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6QmxvYlNpemU6OlJlcGx5KHJlc3VsdFNpemUpLCAwKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHJlc3VsdFNpemU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAppbmRleCBkNzY2
MTU4N2UzZTc0MzgzMmUyMzI1YzY3OTZjZmEzNDViYjk1NmMwLi44MDkyNGMwZjk0OWVkN2EwODJi
YWUwMjVkYmFmNGIzNGJmNTEwNmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgcmVnaXN0ZXJCbG9iVVJMT3B0aW9uYWxseUZpbGVCYWNrZWQoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8V2ViQ29yZTo6Qmxv
YkRhdGFGaWxlUmVmZXJlbmNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKSBmaW5hbDsK
ICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmKSBm
aW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcg
ZW5kKSBmaW5hbDsKLSAgICB1bnNpZ25lZCBsb25nIGxvbmcgYmxvYlNpemUoY29uc3QgVVJMJikg
ZmluYWw7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBVUkwmKSBmaW5hbDsKICAgICB2b2lkIHdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJiBmaWxlUGF0aHMpPiYmKSBmaW5hbDsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQppbmRleCBkZWY5OGRhZTJmZWI0NDgwN2VmYjMy
MTdhY2RjY2VjYmI2NTk5ZGMwLi4wODllNmE3YWVjMTE3OTI2YzNiOTU4ZjViYzMwMDE3NTBhMWQx
ZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCkBAIC03MCw3ICs3MCw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChQQUw6
OlNlc3Npb25JRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8Qmxv
YkRhdGFGaWxlUmVmZXJlbmNlPiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJh
Y2tlZCh1cmwsIHNyY1VSTCwgV1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KICAg
ICB2b2lkIHJlZ2lzdGVyQmxvYlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwm
IHVybCwgY29uc3QgVVJMJiBzcmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkg
ZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VS
TCwgc3RhcnQsIGVuZCk7IH0KICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBVUkwmIHVybCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxv
YlVSTCh1cmwpOyB9Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYg
dXJsKSBmaW5hbCB7IHJldHVybiBtX2Jsb2JSZWdpc3RyeS5ibG9iU2l6ZSh1cmwpOyB9CisgICAg
dW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVy
bCkgZmluYWwgeyByZXR1cm4gbV9ibG9iUmVnaXN0cnkuYmxvYlNpemUodXJsKTsgfQogICAgIHZv
aWQgd3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5n
PiYmIGZpbGVQYXRocyk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsIHsgbV9ibG9iUmVnaXN0
cnkud3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoYmxvYlVSTHMsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsgfQogCiAgICAgQmxvYlJlZ2lzdHJ5SW1wbCogYmxvYlJlZ2lzdHJ5SW1wbCgp
IGZpbmFsIHsgcmV0dXJuICZtX2Jsb2JSZWdpc3RyeTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5jcHAKaW5kZXggYjc2OTBkZmJkZmYxOWFjOGU0NjVkZjBhYzlkOTM2MjA2MmIzNGVmZC4u
NWRhOWVkNGU0ZjEyNGY0MGIyMzEwMTBkM2I1MzY3ZWM0M2ZhOWNkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBy
ZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZChQQUw6OlNlc3Npb25JRCwgY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFVSTCYgc3JjVVJMLCBSZWZQdHI8QmxvYkRhdGFGaWxlUmVmZXJlbmNl
PiYmIHJlZmVyZW5jZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkgZmluYWwgeyBtX2Jsb2JS
ZWdpc3RyeS5yZWdpc3RlckJsb2JVUkxPcHRpb25hbGx5RmlsZUJhY2tlZCh1cmwsIHNyY1VSTCwg
V1RGTW92ZShyZWZlcmVuY2UpLCBjb250ZW50VHlwZSk7IH0KICAgICB2b2lkIHJlZ2lzdGVyQmxv
YlVSTEZvclNsaWNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBz
cmNVUkwsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGVuZCkgZmluYWwgeyBtX2Jsb2JSZWdp
c3RyeS5yZWdpc3RlckJsb2JVUkxGb3JTbGljZSh1cmwsIHNyY1VSTCwgc3RhcnQsIGVuZCk7IH0K
ICAgICB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVy
bCkgZmluYWwgeyBtX2Jsb2JSZWdpc3RyeS51bnJlZ2lzdGVyQmxvYlVSTCh1cmwpOyB9Ci0gICAg
dW5zaWduZWQgbG9uZyBsb25nIGJsb2JTaXplKGNvbnN0IFVSTCYgdXJsKSBmaW5hbCB7IHJldHVy
biBtX2Jsb2JSZWdpc3RyeS5ibG9iU2l6ZSh1cmwpOyB9CisgICAgdW5zaWduZWQgbG9uZyBsb25n
IGJsb2JTaXplKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIHVybCkgZmluYWwgeyByZXR1cm4g
bV9ibG9iUmVnaXN0cnkuYmxvYlNpemUodXJsKTsgfQogICAgIHZvaWQgd3JpdGVCbG9ic1RvVGVt
cG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9iVVJM
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZpbGVQYXRocyk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIGZpbmFsIHsgbV9ibG9iUmVnaXN0cnkud3JpdGVCbG9ic1RvVGVt
cG9yYXJ5RmlsZXMoYmxvYlVSTHMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQogCiAg
ICAgQmxvYlJlZ2lzdHJ5SW1wbCogYmxvYlJlZ2lzdHJ5SW1wbCgpIGZpbmFsIHsgcmV0dXJuICZt
X2Jsb2JSZWdpc3RyeTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>