<?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>240112</bug_id>
          
          <creation_ts>2022-05-05 01:08:02 -0700</creation_ts>
          <short_desc>REGRESSION (r291788): MotionMark Suits subtest is 9% regressed</short_desc>
          <delta_ts>2022-06-30 23:45:38 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=241489</see_also>
          <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>
          
          <blocked>230296</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fujii</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>zalan</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1866772</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-05-05 01:08:02 -0700</bug_when>
    <thetext>This is https://browserbench.org/MotionMark1.2/

Individual subtests can be ran via https://browserbench.org/MotionMark1.2/developer.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866773</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-05-05 01:08:27 -0700</bug_when>
    <thetext>rdar://92409900</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866969</commentid>
    <comment_count>2</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-05-05 13:30:17 -0700</bug_when>
    <thetext>Hmm, that&apos;s not a small one... You found this by chance Antti? Or did the patch make you suspicious? :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866973</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-05 13:43:19 -0700</bug_when>
    <thetext>(In reply to Nikolas Zimmermann from comment #2)
&gt; Hmm, that&apos;s not a small one... You found this by chance Antti? Or did the
&gt; patch make you suspicious? :-)
We run MM regularly to discover regressions (and progressions).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867084</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-05 20:06:22 -0700</bug_when>
    <thetext>The Suits subtest is about calling svgElement.setAttribute(&apos;transform&apos;,&apos;translate...&quot;. in a repeated manner.

r291788 went from &quot;attribute changed + set needsLayout&quot; to &quot;attribute changed + invalidate style&quot; which is fine as long as the attribute is translated to a RenderStyle property, however SVG transform is special and internal to SVGGraphicsElement and it does not require style invalidation.

Will post a patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867207</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-06 08:38:25 -0700</bug_when>
    <thetext>&gt; Will post a patch soon.
or Antti. Probably Antti.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868079</commentid>
    <comment_count>6</comment_count>
      <attachid>459148</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-05-11 01:58:40 -0700</bug_when>
    <thetext>Created attachment 459148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868095</commentid>
    <comment_count>7</comment_count>
      <attachid>459154</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-05-11 04:54:23 -0700</bug_when>
    <thetext>Created attachment 459154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868099</commentid>
    <comment_count>8</comment_count>
      <attachid>459156</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-05-11 05:21:31 -0700</bug_when>
    <thetext>Created attachment 459156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868101</commentid>
    <comment_count>9</comment_count>
      <attachid>459157</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-05-11 05:32:37 -0700</bug_when>
    <thetext>Created attachment 459157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868131</commentid>
    <comment_count>10</comment_count>
      <attachid>459165</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-05-11 07:50:36 -0700</bug_when>
    <thetext>Created attachment 459165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868206</commentid>
    <comment_count>11</comment_count>
      <attachid>459165</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-11 13:03:07 -0700</bug_when>
    <thetext>Comment on attachment 459165
Patch

v.nice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868208</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-11 13:36:15 -0700</bug_when>
    <thetext>Committed r294067 (250469@main): &lt;https://commits.webkit.org/250469@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459165.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1879666</commentid>
    <comment_count>13</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-06-30 23:45:38 -0700</bug_when>
    <thetext>Bug 242230 – REGRESSION(250469@main) svg/animations/animation-leak-list-property-instances.html is randomly failing</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459148</attachid>
            <date>2022-05-11 01:58:40 -0700</date>
            <delta_ts>2022-05-11 04:54:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240112-20220511115838.patch</filename>
            <type>text/plain</type>
            <size>10529</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRiMWY1M2ZkNTg5Njdk
OTdhYjc4ODNhZTE4YjRkMjY4YmU2ZWVhYS4uNTk1OGE4YWJlYjAyMzc1ZGQ5MDM5OWY0Y2UwMzJm
YjVjNGQ4Y2VkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTA1LTExICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjkx
Nzg4KTogTW90aW9uTWFyayBTdWl0cyBzdWJ0ZXN0IGlzIDklIHJlZ3Jlc3NlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMTEyCisgICAgICAgIHJk
YXI6Ly85MjQwOTkwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBtZWNoYW5pc20gdG8gc2FmZWx5IHVwZGF0ZSBTVkcgcmVuZGVyZXIgZnJvbSBl
bGVtZW50IHdpdGhvdXQgdHJpZ2dlcmluZyBhbiB1bm5lY2Vzc2FyeSBzdHlsZSByZXNvbHV0aW9u
LgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzb2x2
ZVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUZXh0UmVuZGVyZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVNWR1JlbmRlcmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjplbnN1cmVQZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bmVlZHNTdHlsZVJlY2FsYyBjb25zdCk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVVcGRhdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjp1
cGRhdGVSZW5kZXJUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjp1
cGRhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZEVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6YWRkU1ZHUmVuZGVyZXJVcGRhdGUpOgorICAgICAgICAq
IHN0eWxlL1N0eWxlVXBkYXRlLmg6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6c2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWlu
QXJlRGlydHkpOgorICAgICAgICAqIHN2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHR3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKwog
MjAyMi0wNS0wOSAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtOaWNvc2lhXSBDYW52YXMgYW5pbWF0aW9ucyBkb24ndCB3b3JrIHdpdGggdGhyZWFkZWQgcmVu
ZGVyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiNDM0MTkzNmI1ZDIzMDFkZThhNDg4
YjdiMTAzMjk5N2E5ZDc5ZmE5Li42ODQxOTRmODQ2NTE5MjkxMmQ1OTY4YTY1Y2Y5YzA2ZGM1NDgw
Yzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIERv
Y3VtZW50OjpyZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1fZnVsbHNjcmVlbk1hbmFnZXItPmNs
ZWFyKCk7CiAjZW5kaWYKICAgICAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7
Ci0gICAgICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0geyB9OworICAgICAgICBt
X3BlbmRpbmdSZW5kZXJUcmVlVXBkYXRlID0geyB9OwogCiAgICAgICAgIG1fZm9udExvYWRlci0+
c3RvcExvYWRpbmdBbmRDbGVhckZvbnRzKCk7CiAKQEAgLTIwOTIsNyArMjA5Miw3IEBAIHZvaWQg
RG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAg
ICAgIH0KIAotICAgICAgICBTdHlsZTo6VHJlZVJlc29sdmVyIHJlc29sdmVyKCp0aGlzLCBXVEZN
b3ZlKG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKSk7CisgICAgICAgIFN0eWxlOjpUcmVl
UmVzb2x2ZXIgcmVzb2x2ZXIoKnRoaXMsIFdURk1vdmUobV9wZW5kaW5nUmVuZGVyVHJlZVVwZGF0
ZSkpOwogICAgICAgICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVzb2x2ZSgpOwogCiAg
ICAgICAgIHdoaWxlIChyZXNvbHZlci5oYXNVbnJlc29sdmVkUXVlcnlDb250YWluZXJzKCkgJiYg
c3R5bGVVcGRhdGUpIHsKQEAgLTIxNTQsMTIgKzIxNTQsMjcgQEAgdm9pZCBEb2N1bWVudDo6dXBk
YXRlVGV4dFJlbmRlcmVyKFRleHQmIHRleHQsIHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0
LCB1bnMKICAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSkKLSAgICAgICAgbV9wZW5k
aW5nUmVuZGVyVHJlZVRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlz
KTsKKyAgICBlbnN1cmVQZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSgpLmFkZFRleHQodGV4dCwgeyBv
ZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIHN0ZDo6bnVsbG9wdCB9
KTsKK30KKwordm9pZCBEb2N1bWVudDo6dXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKKyAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUtPmFkZFRleHQodGV4dCwgeyBv
ZmZzZXRPZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIHN0ZDo6bnVsbG9wdCB9
KTsKKyAgICBlbnN1cmVQZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSgpLmFkZFNWR1JlbmRlcmVyVXBk
YXRlKGVsZW1lbnQpOworfQorCitTdHlsZTo6VXBkYXRlJiBEb2N1bWVudDo6ZW5zdXJlUGVuZGlu
Z1JlbmRlclRyZWVVcGRhdGUoKQoreworICAgIEFTU0VSVChoYXNMaXZpbmdSZW5kZXJUcmVlKCkp
OworCisgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVXBkYXRlKQorICAgICAgICBtX3BlbmRp
bmdSZW5kZXJUcmVlVXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7CiAK
ICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSh7IH0pOworCisgICAgcmV0dXJuICptX3BlbmRp
bmdSZW5kZXJUcmVlVXBkYXRlOwogfQogCiBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxj
KCkgY29uc3QKQEAgLTIxNzMsNyArMjE4OCw3IEBAIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVS
ZWNhbGMoKSBjb25zdAogICAgIGlmIChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKLSAgICBpZiAobV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpCisg
ICAgaWYgKG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGUpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgaWYgKHN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nVXBkYXRlKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IDQ0M2VhZDllMmQxMTQ0MzQ0NjRlMjliMmMxYmNhMWYwOGI4M2UwNmMuLjViMzk0
NTcxMjM3NzI3NTA2Y2RkZjQ4NWU5YTVhNGQ2YjI2ZjQ3OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CkBAIC0yMDUsNiArMjA1LDcgQEAgY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3MgUmVzaXplT2JzZXJ2ZXI7CiBjbGFzcyBTVkdEb2N1
bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdFbGVtZW50OwogY2xhc3MgU1ZHU1ZHRWxlbWVudDsK
IGNsYXNzIFNWR1VzZUVsZW1lbnQ7CiBjbGFzcyBTV0NsaWVudENvbm5lY3Rpb247CkBAIC0xMzU2
LDYgKzEzNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc1Jlc29sdmluZ1RyZWVTdHlsZShi
b29sKTsKIAogICAgIHZvaWQgdXBkYXRlVGV4dFJlbmRlcmVyKFRleHQmLCB1bnNpZ25lZCBvZmZz
ZXRPZlJlcGxhY2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZSZXBsYWNlZFRleHQpOworICAgIHZv
aWQgdXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYpOwogCiAgICAgLy8gUmV0dXJuIGEgTG9j
YWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGFyZ3VtZW50IGlzIG51bGwgb3IgZW1w
dHkuCiAgICAgTG9jYWxlJiBnZXRDYWNoZWRMb2NhbGUoY29uc3QgQXRvbVN0cmluZyYgbG9jYWxl
ID0gbnVsbEF0b20oKSk7CkBAIC0xODA2LDYgKzE4MDgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
YWRkVG9Eb2N1bWVudHNNYXAoKTsKICAgICB2b2lkIHJlbW92ZUZyb21Eb2N1bWVudHNNYXAoKTsK
IAorICAgIFN0eWxlOjpVcGRhdGUmIGVuc3VyZVBlbmRpbmdSZW5kZXJUcmVlVXBkYXRlKCk7CisK
ICAgICBOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlvbkNsaWVudCgpIGZpbmFsOwogCiAg
ICAgY29uc3QgUmVmPGNvbnN0IFNldHRpbmdzPiBtX3NldHRpbmdzOwpAQCAtMTg4OCw3ICsxODky
LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBUaW1lciBtX3N0eWxlUmVjYWxjVGltZXI7CiAKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U3R5bGU6OlVwZGF0ZT4gbV9wZW5kaW5nUmVuZGVyVHJlZVRleHRV
cGRhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN0eWxlOjpVcGRhdGU+IG1fcGVuZGluZ1JlbmRl
clRyZWVVcGRhdGU7CiAKICAgICBFbGVtZW50KiBtX2Nzc1RhcmdldCB7IG51bGxwdHIgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVV
cGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
VXBkYXRlci5jcHAKaW5kZXggNWQ0ZjY0OGQ5NjA3ZGMwYWIzZTA3ZjRhZmMzYzY1YTViZTgxZmVl
Zi4uNjk1Yjc1ZjE5Yzc0MTBiYTU4ODhiOGNiZjg1ZGZmNDk1NWI5NTBkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwCkBAIC0xOTMsOSArMTkzLDYgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVu
ZGVyVHJlZShDb250YWluZXJOb2RlJiByb290KQogICAgICAgICBpZiAoZWxlbWVudFVwZGF0ZSkK
ICAgICAgICAgICAgIHVwZGF0ZUVsZW1lbnRSZW5kZXJlcihlbGVtZW50LCAqZWxlbWVudFVwZGF0
ZSk7CiAKLSAgICAgICAgaWYgKGlzPFNWR0VsZW1lbnQ+KGVsZW1lbnQpKQotICAgICAgICAgICAg
ZG93bmNhc3Q8U1ZHRWxlbWVudD4oZWxlbWVudCkuaW52YWxpZGF0ZVNWR1Jlc291cmNlc0luQW5j
ZXN0b3JDaGFpbklmTmVlZGVkKCk7Ci0KICAgICAgICAgc3RvcmVQcmV2aW91c1JlbmRlcmVyKGVs
ZW1lbnQpOwogCiAgICAgICAgIGJvb2wgbWF5SGF2ZVJlbmRlcmVkRGVzY2VuZGFudHMgPSBlbGVt
ZW50LnJlbmRlcmVyKCkgfHwgKGVsZW1lbnQuaGFzRGlzcGxheUNvbnRlbnRzKCkgJiYgc2hvdWxk
Q3JlYXRlUmVuZGVyZXIoZWxlbWVudCwgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFyZW50KCkpKTsK
QEAgLTMwNiw2ICszMDMsMTIgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVy
ZXJTdHlsZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgUmVuZGVyU3R5bGUKIAogdm9pZCBSZW5k
ZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxlbWVudFJlbmRlcmVyKEVsZW1lbnQmIGVsZW1lbnQsIGNv
bnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlJiBlbGVtZW50VXBkYXRlKQogeworICAgIGlmIChlbGVt
ZW50VXBkYXRlLnVwZGF0ZVNWR1JlbmRlcmVyKQorICAgICAgICBkb3duY2FzdDxTVkdFbGVtZW50
PihlbGVtZW50KS5pbnZhbGlkYXRlU1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQo
KTsKKworICAgIGlmICghZWxlbWVudFVwZGF0ZS5zdHlsZSkKKyAgICAgICAgcmV0dXJuOworCiAj
aWYgRU5BQkxFKENPTlRFTlRfQ0hBTkdFX09CU0VSVkVSKQogICAgIENvbnRlbnRDaGFuZ2VPYnNl
cnZlcjo6U3R5bGVDaGFuZ2VTY29wZSBvYnNlcnZpbmdTY29wZShtX2RvY3VtZW50LCBlbGVtZW50
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCmluZGV4IDI0MjdiMjY1
NzRiMGMyZmFiZjMwMDc0MWRkZGJlNGJmOGNlYjkxOGQuLjlhYTYzY2I1NzNlMmRiNTQ0N2QyNWJi
OWJlNjg1NjBiMGJhYTk1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VXBkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRl
clN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0VsZW1l
bnQuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg3LDEz
ICs4OCwxOSBAQCBSZW5kZXJTdHlsZSogVXBkYXRlOjplbGVtZW50U3R5bGUoY29uc3QgRWxlbWVu
dCYgZWxlbWVudCkKIAogdm9pZCBVcGRhdGU6OmFkZEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwg
RWxlbWVudCogcGFyZW50LCBFbGVtZW50VXBkYXRlJiYgZWxlbWVudFVwZGF0ZSkKIHsKLSAgICBB
U1NFUlQoIW1fZWxlbWVudHMuY29udGFpbnMoJmVsZW1lbnQpKTsKICAgICBBU1NFUlQoY29tcG9z
ZWRUcmVlQW5jZXN0b3JzKGVsZW1lbnQpLmZpcnN0KCkgPT0gcGFyZW50KTsKIAogICAgIG1fcm9v
dHMucmVtb3ZlKCZlbGVtZW50KTsKICAgICBhZGRQb3NzaWJsZVJvb3QocGFyZW50KTsKIAotICAg
IG1fZWxlbWVudHMuYWRkKCZlbGVtZW50LCBXVEZNb3ZlKGVsZW1lbnRVcGRhdGUpKTsKKyAgICBh
dXRvIHJlc3VsdCA9IG1fZWxlbWVudHMuYWRkKCZlbGVtZW50LCBXVEZNb3ZlKGVsZW1lbnRVcGRh
dGUpKTsKKworICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKKyAgICAgICAgYXV0byYgZW50
cnkgPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICBBU1NFUlQoZW50cnkudXBkYXRl
U1ZHUmVuZGVyZXIpOworICAgICAgICBlbnRyeSA9IFdURk1vdmUoZWxlbWVudFVwZGF0ZSk7Cisg
ICAgICAgIGVudHJ5LnVwZGF0ZVNWR1JlbmRlcmVyID0gdHJ1ZTsKKyAgICB9CiB9CiAKIHZvaWQg
VXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIEVsZW1lbnQqIHBhcmVudCwgVGV4dFVwZGF0ZSYm
IHRleHRVcGRhdGUpCkBAIC0xMjIsNiArMTI5LDEzIEBAIHZvaWQgVXBkYXRlOjphZGRUZXh0KFRl
eHQmIHRleHQsIFRleHRVcGRhdGUmJiB0ZXh0VXBkYXRlKQogICAgIGFkZFRleHQodGV4dCwgY29t
cG9zZWRUcmVlQW5jZXN0b3JzKHRleHQpLmZpcnN0KCksIFdURk1vdmUodGV4dFVwZGF0ZSkpOwog
fQogCit2b2lkIFVwZGF0ZTo6YWRkU1ZHUmVuZGVyZXJVcGRhdGUoU1ZHRWxlbWVudCYgZWxlbWVu
dCkKK3sKKyAgICBhdXRvIGVsZW1lbnRVcGRhdGUgPSBFbGVtZW50VXBkYXRlIHsgfTsKKyAgICBl
bGVtZW50VXBkYXRlLnVwZGF0ZVNWR1JlbmRlcmVyID0gdHJ1ZTsKKyAgICBhZGRFbGVtZW50KGVs
ZW1lbnQsIGNvbXBvc2VkVHJlZUFuY2VzdG9ycyhlbGVtZW50KS5maXJzdCgpLCBXVEZNb3ZlKGVs
ZW1lbnRVcGRhdGUpKTsKK30KKwogdm9pZCBVcGRhdGU6OmFkZFBvc3NpYmxlUm9vdChFbGVtZW50
KiBlbGVtZW50KQogewogICAgIGlmICghZWxlbWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBk
YXRlLmgKaW5kZXggMWY4MjA5ZGM1NzlmZWMwMDg1NDhlYTUyZmJhMjU1ZjQzZDU1MTAxZC4uYjZj
ZjQ2M2NkYTA5OTgzMTQ3OTBmN2E4OGU5NzEyZjg4ZTZjNDllMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVVwZGF0ZS5oCkBAIC0zNyw2ICszNyw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxl
bWVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSZW5kZXJTdHlsZTsKK2NsYXNzIFNWR0VsZW1lbnQ7
CiBjbGFzcyBUZXh0OwogCiBuYW1lc3BhY2UgU3R5bGUgewpAQCAtNDUsNiArNDYsNyBAQCBzdHJ1
Y3QgRWxlbWVudFVwZGF0ZSB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHls
ZTsKICAgICBDaGFuZ2UgY2hhbmdlIHsgQ2hhbmdlOjpOb25lIH07CiAgICAgYm9vbCByZWNvbXBv
c2l0ZUxheWVyIHsgZmFsc2UgfTsKKyAgICBib29sIHVwZGF0ZVNWR1JlbmRlcmVyIHsgZmFsc2Ug
fTsKIH07CiAKIHN0cnVjdCBUZXh0VXBkYXRlIHsKQEAgLTc2LDYgKzc4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgYWRkRWxlbWVudChFbGVtZW50JiwgRWxlbWVudCogcGFyZW50LCBFbGVtZW50VXBk
YXRlJiYpOwogICAgIHZvaWQgYWRkVGV4dChUZXh0JiwgRWxlbWVudCogcGFyZW50LCBUZXh0VXBk
YXRlJiYpOwogICAgIHZvaWQgYWRkVGV4dChUZXh0JiwgVGV4dFVwZGF0ZSYmKTsKKyAgICB2b2lk
IGFkZFNWR1JlbmRlcmVyVXBkYXRlKFNWR0VsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICB2b2lk
IGFkZFBvc3NpYmxlUm9vdChFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKaW5k
ZXggMGVmOTM2MjhkZmU1ZTdkNGE5YjNiOTJmOTBmNDhkOTU0NTA0ZWE0MC4uYmE4ZDA0ZWUzZjcx
M2I2N2UwNDgyNjM1ZjI0NzI0NTk2MTFiYTg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNw
cApAQCAtODg2LDcgKzg4Niw3IEBAIHZvaWQgU1ZHRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtCiB2b2lkIFNWR0Vs
ZW1lbnQ6OnNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCkKIHsKICAgICBl
bnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLnNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFy
ZURpcnR5KHRydWUpOwotICAgIGludmFsaWRhdGVTdHlsZSgpOworICAgIGRvY3VtZW50KCkudXBk
YXRlU1ZHUmVuZGVyZXIoKnRoaXMpOwogfQogCiB2b2lkIFNWR0VsZW1lbnQ6OmludmFsaWRhdGVT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5JZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHcmFwaGljc0VsZW1lbnQuY3BwCmluZGV4IGUwNzBjN2E3MzA2MjZhZDVjMjA3ZGVjNzIxODAz
MzNlMzUxZWM4MzguLjhmYTU3MWQyMzZlN2VkNDRhNWExMzE4NzZmM2UzOTEwYTE3MjU5NDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCkBAIC0xNDMsNiArMTQz
LDggQEAgdm9pZCBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdO
YW1lczo6dHJhbnNmb3JtQXR0cik7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQg
Z3VhcmQoKnRoaXMpOwogCisgICAgICAgIGRvY3VtZW50KCkudXBkYXRlU1ZHUmVuZGVyZXIoKnRo
aXMpOworCiAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKICAg
ICAgICAgICAgIHJlbmRlcmVyLT5zZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpOwogICAgICAgICBz
ZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459154</attachid>
            <date>2022-05-11 04:54:23 -0700</date>
            <delta_ts>2022-05-11 05:21:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240112-20220511145421.patch</filename>
            <type>text/plain</type>
            <size>53702</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRiMWY1M2ZkNTg5Njdk
OTdhYjc4ODNhZTE4YjRkMjY4YmU2ZWVhYS4uMGQzM2EwYmYwOGQ3YTZhNzE0NDQyN2Q0ZTg5MjUw
YjkwZTBjMTQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NyBAQAorMjAyMi0wNS0xMSAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI5
MTc4OCk6IE1vdGlvbk1hcmsgU3VpdHMgc3VidGVzdCBpcyA5JSByZWdyZXNzZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDExMgorICAgICAgICBy
ZGFyOi8vOTI0MDk5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbWVjaGFuaXNtIHRvIHNhZmVseSB1cGRhdGUgU1ZHIHJlbmRlcmVyIGZyb20g
ZWxlbWVudCB3aXRob3V0IHRyaWdnZXJpbmcgYW4gdW5uZWNlc3Nhcnkgc3R5bGUgcmVzb2x1dGlv
bi4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29s
dmVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVTVkdSZW5kZXJlcik6CisKKyAg
ICAgICAgVXNlIHRoZSBzYW1lIG1lY2hhbmlzbSBhcyB0ZXh0IHVwZGF0ZXMgdG8gc2NoZWR1bGUg
U1ZHIHJlbmRlcmluZyB1cGRhdGVzLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5z
dXJlUGVuZGluZ1JlbmRlclRyZWVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
Om5lZWRzU3R5bGVSZWNhbGMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRl
c3Ryb3lSZW5kZXJUcmVlKToKKworICAgICAgICBFbnN1cmUgYW55IHJlbWFpbmluZyBzdHlsZSB1
cGRhdGUgZ2V0IGRlbGV0ZWQgYWxvbmcgd2l0aCB0aGUgcmVuZGVyIHRyZWUuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudERhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnREYXRhOjpzdmdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6c2V0U1ZH
UmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkgY29uc3QpOiBEZWxldGVkLgorCisgICAg
ICAgIE5vdCBuZWVkZWQgYW55bW9yZSwgU3R5bGU6OlVwZGF0ZSByZW1lbWJlcnMgd2hhdCBuZWVk
cyB1cGRhdGluZy4KKworICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVu
ZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxl
bWVudFJlbmRlcmVyKToKKworICAgICAgICBTY2hlZHVsZSBhbiB1cGRhdGUuIEN1cnJlbnRseSB0
aGlzIHJlYWxseSBqdXN0IHNjaGVkdWxlcyBhIGxheW91dCB3aGljaCBwdWxscyBpbiB0aGUgY2hh
bmdlcyBmcm9tIHRoZSBlbGVtZW50LgorCisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6YWRkRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjphZGRTVkdSZW5kZXJlclVwZGF0ZSk6CisKKyAgICAg
ICAgQWRkIGEgYml0IHRvIEVsZW1lbnRVcGRhdGUgdG8gaW5kaWNhdGUgdGhhdCBTVkcgdXBkYXRl
IGlzIG5lZWRlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmg6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6CisgICAgICAgICogc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDbGlwUGF0aEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBh
dGhFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxl
bWVudENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzZXRTVkdSZXNvdXJj
ZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50OjppbnZhbGlkYXRlU1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQp
OiBEZWxldGVkLgorCisgICAgICAgIFJlcGxhY2Ugc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNo
YWluQXJlRGlydHkgd2l0aCB0aGUgbmV3IG1lY2hhbmlzbS4gRG9uJ3QgaW52YWxpZGF0ZSBzdHls
ZS4KKworICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb3NpdGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnNldE9yZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpzZXRLZXJuZWxVbml0
TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFk
b3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6
OnNldFN0ZERldmlhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dDo6c2V0U3RkRGV2aWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZFBl
bmRpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c2V0UmFkaXVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVPZmZzZXRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGRVRpbGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjaGlsZHJlbkNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjppbnZhbGlkYXRlRmlsdGVyUHJpbWl0aXZlUGFyZW50KToKKyAgICAgICAgKiBzdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdHZW9t
ZXRyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2VvbWV0cnlFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHcmFkaWVudEVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZCk6CisgICAgICAgICogc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXJrZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgICogc3Zn
L1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAg
ICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dHRlcm5FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdHRlcm5FbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICog
c3ZnL1NWR1N0b3BFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKwogMjAyMi0w
NS0wOSAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtOaWNv
c2lhXSBDYW52YXMgYW5pbWF0aW9ucyBkb24ndCB3b3JrIHdpdGggdGhyZWFkZWQgcmVuZGVyaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiNDM0MTkzNmI1ZDIzMDFkZThhNDg4YjdiMTAz
Mjk5N2E5ZDc5ZmE5Li5iMGEzOTI1N2FmOTY3YWYxNDY5MDQ3NjAzZTU1MzY2NmI3Zjc2OTliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIERvY3VtZW50
OjpyZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1fZnVsbHNjcmVlbk1hbmFnZXItPmNsZWFyKCk7
CiAjZW5kaWYKICAgICAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7Ci0gICAg
ICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0geyB9OworICAgICAgICBtX3BlbmRp
bmdSZW5kZXJUcmVlVXBkYXRlID0geyB9OwogCiAgICAgICAgIG1fZm9udExvYWRlci0+c3RvcExv
YWRpbmdBbmRDbGVhckZvbnRzKCk7CiAKQEAgLTIwOTIsNyArMjA5Miw3IEBAIHZvaWQgRG9jdW1l
bnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAgICAgIH0K
IAotICAgICAgICBTdHlsZTo6VHJlZVJlc29sdmVyIHJlc29sdmVyKCp0aGlzLCBXVEZNb3ZlKG1f
cGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKSk7CisgICAgICAgIFN0eWxlOjpUcmVlUmVzb2x2
ZXIgcmVzb2x2ZXIoKnRoaXMsIFdURk1vdmUobV9wZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSkpOwog
ICAgICAgICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVzb2x2ZSgpOwogCiAgICAgICAg
IHdoaWxlIChyZXNvbHZlci5oYXNVbnJlc29sdmVkUXVlcnlDb250YWluZXJzKCkgJiYgc3R5bGVV
cGRhdGUpIHsKQEAgLTIxNTQsMTIgKzIxNTQsMjcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVGV4
dFJlbmRlcmVyKFRleHQmIHRleHQsIHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0LCB1bnMK
ICAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSkKLSAgICAgICAgbV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlzKTsKKyAg
ICBlbnN1cmVQZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSgpLmFkZFRleHQodGV4dCwgeyBvZmZzZXRP
ZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIHN0ZDo6bnVsbG9wdCB9KTsKK30K
Kwordm9pZCBEb2N1bWVudDo6dXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZW5zdXJlUGVuZGluZ1JlbmRlclRyZWVVcGRhdGUoKS5hZGRTVkdSZW5kZXJlclVwZGF0ZShl
bGVtZW50KTsKK30KKworU3R5bGU6OlVwZGF0ZSYgRG9jdW1lbnQ6OmVuc3VyZVBlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlKCkKK3sKKyAgICBBU1NFUlQoaGFzTGl2aW5nUmVuZGVyVHJlZSgpKTsKIAot
ICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0
T2ZSZXBsYWNlZFRleHQsIGxlbmd0aE9mUmVwbGFjZWRUZXh0LCBzdGQ6Om51bGxvcHQgfSk7Cisg
ICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVXBkYXRlKQorICAgICAgICBtX3BlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7CiAKICAgICBz
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSh7IH0pOworCisgICAgcmV0dXJuICptX3BlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlOwogfQogCiBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29u
c3QKQEAgLTIxNzMsNyArMjE4OCw3IEBAIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMo
KSBjb25zdAogICAgIGlmIChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBpZiAobV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpCisgICAgaWYg
KG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
aWYgKHN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nVXBkYXRlKCkpCkBAIC0yNTk0LDYgKzI2MDksOCBA
QCB2b2lkIERvY3VtZW50OjpkZXN0cm95UmVuZGVyVHJlZSgpCiAgICAgaWYgKHZpZXcoKSkKICAg
ICAgICAgdmlldygpLT53aWxsRGVzdHJveVJlbmRlclRyZWUoKTsKIAorICAgIG1fcGVuZGluZ1Jl
bmRlclRyZWVVcGRhdGUgPSB7IH07CisKICAgICBpZiAobV9kb2N1bWVudEVsZW1lbnQpCiAgICAg
ICAgIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJlbmRlcmVycygqbV9kb2N1bWVudEVsZW1l
bnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ0M2VhZDllMmQxMTQ0MzQ0NjRlMjliMmMx
YmNhMWYwOGI4M2UwNmMuLjViMzk0NTcxMjM3NzI3NTA2Y2RkZjQ4NWU5YTVhNGQ2YjI2ZjQ3OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMDUsNiArMjA1LDcgQEAgY2xhc3MgUmVuZGVyVmll
dzsKIGNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3MgUmVzaXplT2Jz
ZXJ2ZXI7CiBjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdFbGVtZW50Owog
Y2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNWR1VzZUVsZW1lbnQ7CiBjbGFzcyBTV0NsaWVu
dENvbm5lY3Rpb247CkBAIC0xMzU2LDYgKzEzNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJ
c1Jlc29sdmluZ1RyZWVTdHlsZShib29sKTsKIAogICAgIHZvaWQgdXBkYXRlVGV4dFJlbmRlcmVy
KFRleHQmLCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZS
ZXBsYWNlZFRleHQpOworICAgIHZvaWQgdXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYpOwog
CiAgICAgLy8gUmV0dXJuIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGFy
Z3VtZW50IGlzIG51bGwgb3IgZW1wdHkuCiAgICAgTG9jYWxlJiBnZXRDYWNoZWRMb2NhbGUoY29u
c3QgQXRvbVN0cmluZyYgbG9jYWxlID0gbnVsbEF0b20oKSk7CkBAIC0xODA2LDYgKzE4MDgsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgYWRkVG9Eb2N1bWVudHNNYXAoKTsKICAgICB2b2lkIHJlbW92
ZUZyb21Eb2N1bWVudHNNYXAoKTsKIAorICAgIFN0eWxlOjpVcGRhdGUmIGVuc3VyZVBlbmRpbmdS
ZW5kZXJUcmVlVXBkYXRlKCk7CisKICAgICBOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlv
bkNsaWVudCgpIGZpbmFsOwogCiAgICAgY29uc3QgUmVmPGNvbnN0IFNldHRpbmdzPiBtX3NldHRp
bmdzOwpAQCAtMTg4OCw3ICsxODkyLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBUaW1lciBtX3N0
eWxlUmVjYWxjVGltZXI7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U3R5bGU6OlVwZGF0ZT4gbV9w
ZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN0eWxlOjpV
cGRhdGU+IG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGU7CiAKICAgICBFbGVtZW50KiBtX2Nzc1Rh
cmdldCB7IG51bGxwdHIgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaAppbmRleCBmMTQ3MWE4
ZTlmNzUxMmE1NWM4YmY5M2E5NDQ2MDM4YjQ4MjJjMzE1Li41MTdlNWNhMzdkODA5NDAxYzhkYzNi
MTI0N2IxNmM4MzY1ZDIxZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaApAQCAtMTMxLDcg
KzEzMSw2IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfZmxhZ1ByZXNl
bnRhdGlvbmFsSGludFN0eWxlSXNEaXJ0eSA9IDEgPDwgMjsKICAgICBzdGF0aWMgY29uc3QgdWlu
dDMyX3Qgc19mbGFnU3R5bGVBdHRyaWJ1dGVJc0RpcnR5ID0gMSA8PCAzOwogICAgIHN0YXRpYyBj
b25zdCB1aW50MzJfdCBzX2ZsYWdBbmltYXRlZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eSA9IDEgPDwg
NDsKLSAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnU1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkgPSAxIDw8IDU7CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNfZmxh
Z3NNYXNrID0gKDEgPDwgc19mbGFnQ291bnQpIC0gMTsKICAgICAvLyBGSVhNRTogY291bGQgdGhl
IFNWRyBzcGVjaWZpYyBmbGFncyBnbyB0byBzb21lIFNWRyBjbGFzcz8KIApAQCAtMTYyLDkgKzE2
MSw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIGFuaW1hdGVkU1ZHQXR0cmlidXRlc0FyZURpcnR5
KCkgY29uc3QgeyByZXR1cm4gbV9hcnJheVNpemVBbmRGbGFncyAmIHNfZmxhZ0FuaW1hdGVkU1ZH
QXR0cmlidXRlc0FyZURpcnR5OyB9CiAgICAgdm9pZCBzZXRBbmltYXRlZFNWR0F0dHJpYnV0ZXNB
cmVEaXJ0eShib29sIGRpcnR5KSBjb25zdCB7IHVwZGF0ZUZsYWcoc19mbGFnQW5pbWF0ZWRTVkdB
dHRyaWJ1dGVzQXJlRGlydHksIGRpcnR5KTsgfQogCi0gICAgYm9vbCBzdmdSZXNvdXJjZXNJbkFu
Y2VzdG9yQ2hhaW5BcmVEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYXJyYXlTaXplQW5kRmxhZ3Mg
JiBzX2ZsYWdTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eTsgfQotICAgIHZvaWQg
c2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoYm9vbCBkaXJ0eSkgY29uc3Qg
eyB1cGRhdGVGbGFnKHNfZmxhZ1NWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5LCBk
aXJ0eSk7IH0KLQogICAgIG11dGFibGUgUmVmUHRyPFN0eWxlUHJvcGVydGllcz4gbV9pbmxpbmVT
dHlsZTsKICAgICBtdXRhYmxlIFNwYWNlU3BsaXRTdHJpbmcgbV9jbGFzc05hbWVzOwogICAgIG11
dGFibGUgQXRvbVN0cmluZyBtX2lkRm9yU3R5bGVSZXNvbHV0aW9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5k
ZXggNWQ0ZjY0OGQ5NjA3ZGMwYWIzZTA3ZjRhZmMzYzY1YTViZTgxZmVlZi4uYjA2ZTMwMDk3NDk2
MmRmMWIwYzk1ZmNkZWNmZWMwYWZmYWMxMDhjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTXVsdGlD
b2x1bW5GbG93LmgiCiAjaW5jbHVkZSAiUmVuZGVyTXVsdGlDb2x1bW5TZXQuaCIKKyNpbmNsdWRl
ICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVVcGRhdGVyR2VuZXJh
dGVkQ29udGVudC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgiCkBAIC0xOTMsOSArMTk0LDYgQEAgdm9pZCBSZW5kZXJUcmVlVXBk
YXRlcjo6dXBkYXRlUmVuZGVyVHJlZShDb250YWluZXJOb2RlJiByb290KQogICAgICAgICBpZiAo
ZWxlbWVudFVwZGF0ZSkKICAgICAgICAgICAgIHVwZGF0ZUVsZW1lbnRSZW5kZXJlcihlbGVtZW50
LCAqZWxlbWVudFVwZGF0ZSk7CiAKLSAgICAgICAgaWYgKGlzPFNWR0VsZW1lbnQ+KGVsZW1lbnQp
KQotICAgICAgICAgICAgZG93bmNhc3Q8U1ZHRWxlbWVudD4oZWxlbWVudCkuaW52YWxpZGF0ZVNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbklmTmVlZGVkKCk7Ci0KICAgICAgICAgc3RvcmVQcmV2
aW91c1JlbmRlcmVyKGVsZW1lbnQpOwogCiAgICAgICAgIGJvb2wgbWF5SGF2ZVJlbmRlcmVkRGVz
Y2VuZGFudHMgPSBlbGVtZW50LnJlbmRlcmVyKCkgfHwgKGVsZW1lbnQuaGFzRGlzcGxheUNvbnRl
bnRzKCkgJiYgc2hvdWxkQ3JlYXRlUmVuZGVyZXIoZWxlbWVudCwgcmVuZGVyVHJlZVBvc2l0aW9u
KCkucGFyZW50KCkpKTsKQEAgLTMwNiw2ICszMDQsMTIgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRl
cjo6dXBkYXRlUmVuZGVyZXJTdHlsZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgUmVuZGVyU3R5
bGUKIAogdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxlbWVudFJlbmRlcmVyKEVsZW1l
bnQmIGVsZW1lbnQsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlJiBlbGVtZW50VXBkYXRlKQog
eworICAgIGlmIChlbGVtZW50VXBkYXRlLnVwZGF0ZVNWR1JlbmRlcmVyICYmIGVsZW1lbnQucmVu
ZGVyZXIoKSkKKyAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJl
bnRSZXNvdXJjZUludmFsaWRhdGlvbigqZWxlbWVudC5yZW5kZXJlcigpKTsKKworICAgIGlmICgh
ZWxlbWVudFVwZGF0ZS5zdHlsZSkKKyAgICAgICAgcmV0dXJuOworCiAjaWYgRU5BQkxFKENPTlRF
TlRfQ0hBTkdFX09CU0VSVkVSKQogICAgIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6U3R5bGVDaGFu
Z2VTY29wZSBvYnNlcnZpbmdTY29wZShtX2RvY3VtZW50LCBlbGVtZW50KTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCmluZGV4IDI0MjdiMjY1NzRiMGMyZmFiZjMwMDc0
MWRkZGJlNGJmOGNlYjkxOGQuLjlhYTYzY2I1NzNlMmRiNTQ0N2QyNWJiOWJlNjg1NjBiMGJhYTk1
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg3LDEzICs4OCwxOSBAQCBSZW5k
ZXJTdHlsZSogVXBkYXRlOjplbGVtZW50U3R5bGUoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIAog
dm9pZCBVcGRhdGU6OmFkZEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgRWxlbWVudCogcGFyZW50
LCBFbGVtZW50VXBkYXRlJiYgZWxlbWVudFVwZGF0ZSkKIHsKLSAgICBBU1NFUlQoIW1fZWxlbWVu
dHMuY29udGFpbnMoJmVsZW1lbnQpKTsKICAgICBBU1NFUlQoY29tcG9zZWRUcmVlQW5jZXN0b3Jz
KGVsZW1lbnQpLmZpcnN0KCkgPT0gcGFyZW50KTsKIAogICAgIG1fcm9vdHMucmVtb3ZlKCZlbGVt
ZW50KTsKICAgICBhZGRQb3NzaWJsZVJvb3QocGFyZW50KTsKIAotICAgIG1fZWxlbWVudHMuYWRk
KCZlbGVtZW50LCBXVEZNb3ZlKGVsZW1lbnRVcGRhdGUpKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1f
ZWxlbWVudHMuYWRkKCZlbGVtZW50LCBXVEZNb3ZlKGVsZW1lbnRVcGRhdGUpKTsKKworICAgIGlm
ICghcmVzdWx0LmlzTmV3RW50cnkpIHsKKyAgICAgICAgYXV0byYgZW50cnkgPSByZXN1bHQuaXRl
cmF0b3ItPnZhbHVlOworICAgICAgICBBU1NFUlQoZW50cnkudXBkYXRlU1ZHUmVuZGVyZXIpOwor
ICAgICAgICBlbnRyeSA9IFdURk1vdmUoZWxlbWVudFVwZGF0ZSk7CisgICAgICAgIGVudHJ5LnVw
ZGF0ZVNWR1JlbmRlcmVyID0gdHJ1ZTsKKyAgICB9CiB9CiAKIHZvaWQgVXBkYXRlOjphZGRUZXh0
KFRleHQmIHRleHQsIEVsZW1lbnQqIHBhcmVudCwgVGV4dFVwZGF0ZSYmIHRleHRVcGRhdGUpCkBA
IC0xMjIsNiArMTI5LDEzIEBAIHZvaWQgVXBkYXRlOjphZGRUZXh0KFRleHQmIHRleHQsIFRleHRV
cGRhdGUmJiB0ZXh0VXBkYXRlKQogICAgIGFkZFRleHQodGV4dCwgY29tcG9zZWRUcmVlQW5jZXN0
b3JzKHRleHQpLmZpcnN0KCksIFdURk1vdmUodGV4dFVwZGF0ZSkpOwogfQogCit2b2lkIFVwZGF0
ZTo6YWRkU1ZHUmVuZGVyZXJVcGRhdGUoU1ZHRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBhdXRv
IGVsZW1lbnRVcGRhdGUgPSBFbGVtZW50VXBkYXRlIHsgfTsKKyAgICBlbGVtZW50VXBkYXRlLnVw
ZGF0ZVNWR1JlbmRlcmVyID0gdHJ1ZTsKKyAgICBhZGRFbGVtZW50KGVsZW1lbnQsIGNvbXBvc2Vk
VHJlZUFuY2VzdG9ycyhlbGVtZW50KS5maXJzdCgpLCBXVEZNb3ZlKGVsZW1lbnRVcGRhdGUpKTsK
K30KKwogdm9pZCBVcGRhdGU6OmFkZFBvc3NpYmxlUm9vdChFbGVtZW50KiBlbGVtZW50KQogewog
ICAgIGlmICghZWxlbWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKaW5kZXggMWY4
MjA5ZGM1NzlmZWMwMDg1NDhlYTUyZmJhMjU1ZjQzZDU1MTAxZC4uYjZjZjQ2M2NkYTA5OTgzMTQ3
OTBmN2E4OGU5NzEyZjg4ZTZjNDllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVVcGRhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCkBA
IC0zNyw2ICszNyw3IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIE5v
ZGU7CiBjbGFzcyBSZW5kZXJTdHlsZTsKK2NsYXNzIFNWR0VsZW1lbnQ7CiBjbGFzcyBUZXh0Owog
CiBuYW1lc3BhY2UgU3R5bGUgewpAQCAtNDUsNiArNDYsNyBAQCBzdHJ1Y3QgRWxlbWVudFVwZGF0
ZSB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZTsKICAgICBDaGFuZ2Ug
Y2hhbmdlIHsgQ2hhbmdlOjpOb25lIH07CiAgICAgYm9vbCByZWNvbXBvc2l0ZUxheWVyIHsgZmFs
c2UgfTsKKyAgICBib29sIHVwZGF0ZVNWR1JlbmRlcmVyIHsgZmFsc2UgfTsKIH07CiAKIHN0cnVj
dCBUZXh0VXBkYXRlIHsKQEAgLTc2LDYgKzc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkRWxl
bWVudChFbGVtZW50JiwgRWxlbWVudCogcGFyZW50LCBFbGVtZW50VXBkYXRlJiYpOwogICAgIHZv
aWQgYWRkVGV4dChUZXh0JiwgRWxlbWVudCogcGFyZW50LCBUZXh0VXBkYXRlJiYpOwogICAgIHZv
aWQgYWRkVGV4dChUZXh0JiwgVGV4dFVwZGF0ZSYmKTsKKyAgICB2b2lkIGFkZFNWR1JlbmRlcmVy
VXBkYXRlKFNWR0VsZW1lbnQmKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFkZFBvc3NpYmxlUm9v
dChFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVt
ZW50LmNwcAppbmRleCA3NGRkZjhkOTdiMWZmY2Q2ZGM4MTA2ZjA5ZDNmZjNlZjY4NTdkNzExLi41
MDgwNGJhNDc4MDFhNjE5NGZkZTY2YjA5NDc4YTg3MGI1ZGFlNGUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTI1Myw3ICsyNTMsNyBA
QCB2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCgpCiAg
ICAgYXV0byB1cGRhdGVUYXJnZXRFbGVtZW50ID0gW10oU1ZHRWxlbWVudCYgZWxlbWVudCkgewog
ICAgICAgICBpZiAoYXV0byByZW5kZXJlciA9IGVsZW1lbnQucmVuZGVyZXIoKSkKICAgICAgICAg
ICAgIHJlbmRlcmVyLT5zZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpOwotICAgICAgICBlbGVtZW50
LnNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIGVsZW1l
bnQudXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgfTsKIAogICAgIHVw
ZGF0ZVRhcmdldEVsZW1lbnQoKnRhcmdldEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q2xpcFBhdGhFbGVtZW50LmNwcAppbmRleCBhZmQ2MGViZTA4OGU0M2Q3N2E2ODY4YTVjNTQ2N2Y0
ZDE4NTAwNTY0Li5lYzQ1NTc2Zjg0Yjc3OTIzYWUyMzUyZTVlZDgxNTY4MzVkNDIzYjgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcApAQCAtNjcsNyArNjcsNyBA
QCB2b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBn
dWFyZCgqdGhpcyk7CiAKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJl
RGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBTVkdDbGlwUGF0
aEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAg
IGlmIChjaGFuZ2Uuc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHko
KTsKKyAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IFNWR0NsaXBQYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5jcHAKaW5kZXggMGVmOTM2MjhkZmU1ZTdkNGE5YjNiOTJmOTBmNDhk
OTU0NTA0ZWE0MC4uNDMwZDZlMmQ3MmM0Y2U2MTliZWQ4MTIyZDcxYzU4OTUzNmQ0MzhiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcApAQCAtODgzLDIwICs4ODMsOSBAQCB2b2lkIFNWR0Vs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbQogICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uYWxIaW50U3R5
bGUoc3R5bGUsIHByb3BlcnR5SUQsIHZhbHVlKTsKIH0KIAotdm9pZCBTVkdFbGVtZW50OjpzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpCit2b2lkIFNWR0VsZW1lbnQ6OnVw
ZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpCiB7Ci0gICAgZW5zdXJlVW5pcXVlRWxl
bWVudERhdGEoKS5zZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSh0cnVlKTsK
LSAgICBpbnZhbGlkYXRlU3R5bGUoKTsKLX0KLQotdm9pZCBTVkdFbGVtZW50OjppbnZhbGlkYXRl
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQoKQotewotICAgIGlmICghZWxlbWVu
dERhdGEoKSB8fCAhZWxlbWVudERhdGEoKS0+c3ZnUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJl
RGlydHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlz
LT5yZW5kZXJlcigpKQotICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFu
ZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7Ci0gICAgZWxlbWVudERhdGEo
KS0+c2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoZmFsc2UpOworICAgIGRv
Y3VtZW50KCkudXBkYXRlU1ZHUmVuZGVyZXIoKnRoaXMpOwogfQogCiB2b2lkIFNWR0VsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0VsZW1lbnQuaAppbmRleCBlMTliZTBkYWRiZjk0MjI5N2ZiNzM2ODA5YzY2YjY5OWI4
OGJhMGZlLi41Y2FjZjE1ZWYwNzQzNmM4YTQzODY1ZjQ1YWM5Nzc5MmMwNzAyNDA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmgKQEAgLTg0LDggKzg0LDcgQEAgcHVibGljOgogCiAgICAgaW5saW5l
IHZvaWQgc2V0QW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGlydHkoKTsKICAgICBpbmxpbmUgdm9p
ZCBzZXRQcmVzZW50YXRpb25hbEhpbnRTdHlsZUlzRGlydHkoKTsKLSAgICB2b2lkIHNldFNWR1Jl
c291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlU1ZH
UmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQoKTsKKyAgICB2b2lkIHVwZGF0ZVNWR1Jl
bmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogCiAgICAgLy8gVGhlIGluc3RhbmNlcyBvZiBhbiBl
bGVtZW50IGFyZSBjbG9uZXMgbWFkZSBpbiBzaGFkb3cgdHJlZXMgdG8gaW1wbGVtZW50IDx1c2U+
LgogICAgIGNvbnN0IFdlYWtIYXNoU2V0PFNWR0VsZW1lbnQ+JiBpbnN0YW5jZXMoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4IGQ4Y2U4ZjExNjBj
MGQzYWEwZGQ0MWQ0OTc4YmM1MzhjNDM5N2E3NzAuLjUwMjVjYjM3MmM0MzFhYmE0MDk1NDBjMDZj
MDdkZmM0YWM1OTY2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5k
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNw
cApAQCAtODksNyArODksNyBAQCB2b2lkIFNWR0ZFQmxlbmRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgcHJpbWl0
aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OmluMkF0dHIpOwotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNo
YWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENo
YW5nZSgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAppbmRleCBlYzk4M2JkZTM4ZDZi
ZmIzMTFmZjg0MWFlOGRkYWFhNTk2MzQ3YjFlLi4yNTBlNTZhY2ZmNDZiMjJkOTg1YmUzMDZmNDA4
NWFmYjZkYWZkNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4
RWxlbWVudC5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAg
ICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAg
ICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlm
IChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKQotICAgICAgICAgICAgc2V0U1ZHUmVzb3Vy
Y2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRl
cmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VS
VChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dHlwZUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6
OnZhbHVlc0F0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRy
TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCmlu
ZGV4IGEyOTI0YjIxOTZkZmIyNTZlNjRhNWUwNjY4ODExNDBmY2MwYjE2MDMuLjM1MjYxZjllNTI3
MGY0YzM3MGVjMWM5MDg3ZThhOTM1MmNkZWMzN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCkBAIC0xMTgsNyArMTE4LDcgQEAgdm9pZCBTVkdGRUNv
bXBvc2l0ZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0
ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMp
OwogICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFtZSA9
PSBTVkdOYW1lczo6aW4yQXR0cikKLSAgICAgICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0
b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1l
bnRDaGFuZ2UoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQoYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmsxQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6azJBdHRyIHx8IGF0
dHJOYW1lID09IFNWR05hbWVzOjprM0F0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Oms0QXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6b3BlcmF0b3JBdHRyKTsKICAgICAgICAgICAgIHBy
aW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKaW5kZXggN2MxNjY0M2VlOWQ2OTdk
MTBkNGQ2Mzc4MWYxY2UzOGY1MmQ2ZWU4MS4uOWRkY2IxNWEwYTI1ZWI5ZmIwYTQzNmJlYjRhYWIy
YWM3ZmZjYjdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQuY3BwCkBAIC0xNjEsMTQgKzE2MSwxNCBAQCB2b2lkIFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50OjpzZXRPcmRlcihmbG9hdCB4LCBmbG9hdCB5KQogewogICAgIG1fb3JkZXJY
LT5zZXRCYXNlVmFsSW50ZXJuYWwoeCk7CiAgICAgbV9vcmRlclktPnNldEJhc2VWYWxJbnRlcm5h
bCh5KTsKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAg
IHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiB2b2lkIFNWR0ZFQ29u
dm9sdmVNYXRyaXhFbGVtZW50OjpzZXRLZXJuZWxVbml0TGVuZ3RoKGZsb2F0IHgsIGZsb2F0IHkp
CiB7CiAgICAgbV9rZXJuZWxVbml0TGVuZ3RoWC0+c2V0QmFzZVZhbEludGVybmFsKHgpOwogICAg
IG1fa2VybmVsVW5pdExlbmd0aFktPnNldEJhc2VWYWxJbnRlcm5hbCh5KTsKLSAgICBzZXRTVkdS
ZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVy
Rm9yRWxlbWVudENoYW5nZSgpOwogfQogCiB2b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpAQCAt
MTc2LDcgKzE3Niw3IEBAIHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hCiAgICAgaWYgKFByb3BlcnR5
UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNl
SW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBpZiAoYXR0ck5hbWUgPT0g
U1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6b3JkZXJBdHRyIHx8IGF0
dHJOYW1lID09IFNWR05hbWVzOjprZXJuZWxNYXRyaXhBdHRyKQotICAgICAgICAgICAgc2V0U1ZH
UmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0ZVNW
R1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6ZWRnZU1vZGVBdHRyIHx8IGF0dHJOYW1lID09
IFNWR05hbWVzOjpkaXZpc29yQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6Ymlhc0F0dHIg
fHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnRhcmdldFhBdHRyCiAgICAgICAgICAgICAgICAgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnRhcmdldFlBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVz
OjprZXJuZWxVbml0TGVuZ3RoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6cHJlc2VydmVB
bHBoYUF0dHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LmNwcAppbmRleCA3ZWMwNWRmMGMyNWQwYTcxYWY2NzRiNzkwNDg0YjA4ZGFiN2Ew
MzAzLi5iNWM0M2M0YmVhZDZjMzZhM2RjMDk2ZjJlYjQ3YjIzMjdlZjkzMDI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcApAQCAt
MTI4LDcgKzEyOCw3IEBAIHZvaWQgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOCiAgICAgaWYgKFByb3BlcnR5
UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNl
SW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBpZiAoYXR0ck5hbWUgPT0g
U1ZHTmFtZXM6OmluQXR0cikKLSAgICAgICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JD
aGFpbkFyZURpcnR5KCk7CisgICAgICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRD
aGFuZ2UoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0g
U1ZHTmFtZXM6OmRpZmZ1c2VDb25zdGFudEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnN1
cmZhY2VTY2FsZUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhB
dHRyKTsKICAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNw
cAppbmRleCBhMTViYTRiM2UxZTE0N2ZmNGUyMWM4ZGJhYmE2ZmJhZDA4OGE1MzNkLi5mMmNlMTc5
NzIzYWY4MTYyNTViZmFlZTQ0OWVhZGQyY2I2NWE3MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcApAQCAtMTAyLDcgKzEwMiw3
IEBAIHZvaWQgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6Omlz
S25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9u
R3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omlu
QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW4yQXR0cikKLSAgICAgICAgICAgIHNldFNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgICAgICB1cGRhdGVT
VkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnhDaGFubmVsU2VsZWN0b3JBdHRyIHx8IGF0
dHJOYW1lID09IFNWR05hbWVzOjp5Q2hhbm5lbFNlbGVjdG9yQXR0ciB8fCBhdHRyTmFtZSA9PSBT
VkdOYW1lczo6c2NhbGVBdHRyKTsKICAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5n
ZWQoYXR0ck5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1l
bnQuY3BwCmluZGV4IGQxZTYxODQ4YWFjMTgyNmY0MTY3YjVmMTExNWJmMTVkOWZhZGNiOTIuLjBi
NTA4YTEyODE4YzhmM2VkNjU4MDAwNDg2YmI3YTUwMzEwYTExZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9p
ZCBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpzZXRTdGREZXZpYXRpb24oZmxvYXQgeCwgZmxvYXQg
eSkKIHsKICAgICBtX3N0ZERldmlhdGlvblgtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBt
X3N0ZERldmlhdGlvblktPnNldEJhc2VWYWxJbnRlcm5hbCh5KTsKLSAgICBzZXRTVkdSZXNvdXJj
ZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxl
bWVudENoYW5nZSgpOwogfQogCiB2b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQpAQCAtODksNyArODksNyBAQCB2b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaWYgKFBy
b3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIElu
c3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNv
dXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJl
ckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAppbmRleCBjYjE5MGFk
MzU0MWQyMmNmZjBjZTdjY2JmNThlMzZjYzBmYjVjNzNlLi5mMjhmOTgxMzEwZTM0YTNjODRkNTRl
ZjZhYWU3MDViNjlhYmQxNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVH
YXVzc2lhbkJsdXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFNWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudDo6c2V0U3RkRGV2aWF0aW9uKGZsb2F0IHgsIGZsb2F0IHkpCiB7CiAgICAgbV9z
dGREZXZpYXRpb25YLT5zZXRCYXNlVmFsSW50ZXJuYWwoeCk7CiAgICAgbV9zdGREZXZpYXRpb25Z
LT5zZXRCYXNlVmFsSW50ZXJuYWwoeSk7Ci0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNo
YWluQXJlRGlydHkoKTsKKyAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsK
IH0KIAogdm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQpAQCAtODcsNyAr
ODcsNyBAQCB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogewogICAgIGlmIChQcm9wZXJ0eVJlZ2lz
dHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFs
aWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNl
c3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50
Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDRkNzMyMjk0ZmQ1ODIzYzY5ZGY0MDhhZTE2ZWFjOTQy
N2JjNmM5NWIuLmMzMTlmNTVkZjVlZmVjNWQ3ZmU5YTk1YWYzM2U2NTc2YWQ3NTA1ZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAtMTExLDcgKzExMSw3IEBA
IHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jlc291cmNlKCkKICAgICB9IGVs
c2UgaWYgKGlzPFNWR0VsZW1lbnQ+KCp0YXJnZXQuZWxlbWVudCkpCiAgICAgICAgIGRvd25jYXN0
PFNWR0VsZW1lbnQ+KCp0YXJnZXQuZWxlbWVudCkuYWRkUmVmZXJlbmNpbmdFbGVtZW50KCp0aGlz
KTsKIAotICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAg
dXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVJbWFn
ZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQpAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgU1ZHRkVJbWFnZUVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7
CiAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRp
b0F0dHIpOwogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsK
LSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAg
ICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNw
cAppbmRleCA2MTA4MmE0OTgzOTMxZDhhYjcwMzg1MzQ0ZTYyN2MzY2I1NzUyNzQxLi5iZDg4Y2Q4
MWUwZjFmZjJhNTJiMjU5NGFkNjZiNmE0ZmVlMGVjYjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCkBAIC01Miw3ICs1Miw3IEBAIHZvaWQgU1ZH
RkVNb3JwaG9sb2d5RWxlbWVudDo6c2V0UmFkaXVzKGZsb2F0IHgsIGZsb2F0IHkpCiB7CiAgICAg
bV9yYWRpdXNYLT5zZXRCYXNlVmFsSW50ZXJuYWwoeCk7CiAgICAgbV9yYWRpdXNZLT5zZXRCYXNl
VmFsSW50ZXJuYWwoeSk7Ci0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGly
dHkoKTsKKyAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogdm9p
ZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKQEAgLTEwMSw3ICsxMDEsNyBAQCB2
b2lkIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25B
dHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQg
Z3VhcmQoKnRoaXMpOwogICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikK
LSAgICAgICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7Cisg
ICAgICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Om9wZXJhdG9y
QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6cmFkaXVzQXR0cik7CiAgICAgICAgICAgICBw
cmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFT2Zmc2V0RWxlbWVudC5jcHAKaW5kZXggY2I5NDFkNDUxNDI0ZTAwY2I0NjcyY2FmZmIyMDli
MzJmMDg2OGU0ZC4uOTlkYTZhNWY0ODMxMjc2NjM3YWU4ZDViOTZiMzkwZWI0MmRkZDRmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKQEAgLTcyLDcgKzcyLDcg
QEAgdm9pZCBTVkdGRU9mZnNldEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25v
d25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3Vh
cmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5B
cmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IDA5ZTE3YmQwNTgxZjg0YTEzZjNh
Y2U3OGZlY2VkMWVkNmFlMDc1M2YuLjZlMDBjZGJkMjAyNzUwNmYzOTA4MTRmYTNkZDhkOTk1ZmNl
NjYxNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudC5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cgogICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkg
ewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAg
ICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIpCi0gICAgICAgICAgICBzZXRTVkdS
ZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
QVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjpzcGVjdWxhckNvbnN0YW50QXR0ciB8fCBhdHRy
TmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJFeHBvbmVudEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OnN1cmZhY2VTY2FsZUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbFVu
aXRMZW5ndGhBdHRyKTsKICAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0
ck5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCmluZGV4IDVjNWE2
ODgzYjc4ZTY4ZmJiMDg2YjJhNGZhMTRmODI1ZDU2MWQ4ODQuLjM5ZjI0N2RjNjFiZGEwNDYxOWVj
ZDRlYmUxNTk5ZDZmYTI1Y2RiYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVRpbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVu
dC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBTVkdGRVRpbGVFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlmIChQcm9wZXJ0
eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBBU1NFUlQo
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cik7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0
aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9y
Q2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFu
Z2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuY3BwCmluZGV4IGY5ZWJhNjVmZDlkMDI1NWFjY2RmNDgyNWZhYzIwOTU3MGE2YjVh
MDkuLmE5NzljMDc5YjUxZmE3ZWI1MmE5NWRkYTVjNDM2MjkwMDZlODQ5MjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBTVkdG
aWx0ZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogICAgIH0KIAogICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmli
dXRlKGF0dHJOYW1lKSB8fCBTVkdVUklSZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5h
bWUpKSB7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7
CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBTVkdGaWx0ZXJFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICBpZiAoY2hh
bmdlLnNvdXJjZSA9PSBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAg
dXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBTVkdGaWx0ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVy
U3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5jcHAKaW5kZXggMTc5Yzc0NWEwYTM3NDJkYTc1M2ZmMDQxNjgwOTRmNDYxMjAzN2Q1NS4uMWFj
Zjg0YWIzZTE3Mjg0YmU2MjMzMTZiMjk5NjRhODM3YjRlZGI5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmEKIHsKICAgICBp
ZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAg
ICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1Jl
bmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC05
MCw3ICs5MCw3IEBAIHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpj
aGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoCiAKICAgICBpZiAoY2hhbmdlLnNv
dXJjZSA9PSBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIpCiAgICAgICAgIHJldHVybjsKLSAg
ICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNW
R1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKQEAg
LTExOSw3ICsxMTksNyBAQCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
czo6aW52YWxpZGF0ZUZpbHRlclByaW1pdGl2ZVBhcmVudChTVkdFbAogICAgIGlmICghcmVuZGVy
ZXIgfHwgIXJlbmRlcmVyLT5pc1NWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGRvd25jYXN0PFNWR0VsZW1lbnQ+KCpwYXJlbnQpLnNldFNWR1Jlc291
cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgZG93bmNhc3Q8U1ZHRWxlbWVudD4o
KnBhcmVudCkudXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGVj
YjNiYmY4OTYwN2NkN2QwMzI1NzY0NGU4YjYyYWNiMDY1NThjMWIuLjY4NDUwNzI1ZWM1MGJjYWNh
YjA4MmY5OTgyZWU5ZWI4N2RkNjY0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIFNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBT
VkdOYW1lczo6eEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRyKTsKICAgICAgICAg
ICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7Ci0gICAgICAgICAgICBzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHAKaW5kZXgg
MjhlYzQ3N2I4NGJhMWJhYmUwOTliOWQ2MzlmOTIwMDc5ZDU2MmZjNy4uZDcxMzI2OGZkMGRmMGZm
NTk5MjU5ZTk5OWMyZTkxMDM1NTNiZGVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dlb21ldHJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21l
dHJ5RWxlbWVudC5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIFNWR0dlb21ldHJ5RWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAg
ICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAg
ICAgICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjpwYXRoTGVuZ3RoQXR0cik7CiAgICAg
ICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdS
ZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCBlMDljMWQ5NTlkZTg5
ZDZkMzgyYjFjNzc2N2JhMzBmYzMyN2E2NTAwLi44MDEzMzA4NmU0MDIwZGUwOGFiM2Q0MWRlNTBk
OTI5NTUyNjU4ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNw
cApAQCAtNzksNyArNzksNyBAQCB2b2lkIFNWR0dyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkgfHwgU1ZHVVJJUmVmZXJlbmNl
Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRh
dGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBT
VkdHcmFkaWVudEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hh
bmdlKQogICAgIGlmIChjaGFuZ2Uuc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNl
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWlu
QXJlRGlydHkoKTsKKyAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0K
IAogR3JhZGllbnRDb2xvclN0b3BzIFNWR0dyYWRpZW50RWxlbWVudDo6YnVpbGRTdG9wcygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCmluZGV4IGUwNzBjN2E3MzA2
MjZhZDVjMjA3ZGVjNzIxODAzMzNlMzUxZWM4MzguLjNlMDUxZGQxZTRjYWQwMWRhMDg3NTNlNmRi
NTVjMmIwMzAzM2FlZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGlj
c0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQu
Y3BwCkBAIC0xNDMsOSArMTQzLDExIEBAIHZvaWQgU1ZHR3JhcGhpY3NFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBBU1NF
UlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnRyYW5zZm9ybUF0dHIpOwogICAgICAgICBJbnN0YW5j
ZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKIAorICAgICAgICBkb2N1bWVudCgpLnVw
ZGF0ZVNWR1JlbmRlcmVyKCp0aGlzKTsKKwogICAgICAgICBpZiAoYXV0byByZW5kZXJlciA9IHRo
aXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICByZW5kZXJlci0+c2V0TmVlZHNUcmFuc2Zvcm1V
cGRhdGUoKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHko
KTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFn
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5k
ZXggYmUwNDQ5MjdjYzgxZjkwZDQxMTQ4NmU5NjcwNmNhNzJiZDA3YTE0OC4uZjQ0NjgzYmQ4MDkz
MjkyNTA1MjA2MThjNzNlZjE0MjhiMDUzMzhiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdl
RWxlbWVudC5jcHAKQEAgLTEwMSwxMyArMTAxLDEzIEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAg
ICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewogICAgICAgICAg
ICAgICAgIGlmICghZG93bmNhc3Q8UmVuZGVyU1ZHSW1hZ2U+KCpyZW5kZXJlcikudXBkYXRlSW1h
Z2VWaWV3cG9ydCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAg
ICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAg
ICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfSBlbHNlIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6d2lkdGhBdHRyIHx8IGF0
dHJOYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQogICAgICAgICAgICAgc2V0UHJlc2VudGF0
aW9uYWxIaW50U3R5bGVJc0RpcnR5KCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNT
RVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cik7Ci0gICAg
ICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAg
ICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCmlu
ZGV4IDIzMTlkNWVjY2Q3ZWYyMzQ0NmZkZTg0Y2VkNzJhMDg3YTY5OTdjNzAuLjdmMTJkMjY2YjBj
ZTU3NGMxNjY3NGMwNGJmOTIwOTk0ZjE5NmQ5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVF
bGVtZW50LmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFNWR0xpbmVFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogCiAgICAgICAgIGlm
IChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxMZWdhY3lSZW5kZXJTVkdTaGFwZSo+KHJlbmRlcmVyKS0+c2V0TmVlZHNTaGFwZVVwZGF0
ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOwor
ICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LmNwcAppbmRleCAxY2Q1MDFiMDJlNjlkNDYyNzhlNTdjZWI5YjhlY2ZmYTI5ZjFjYjlh
Li40ODU4MmI1MzlmMDlkMzUwN2JlY2Q1YzZjZDhkYjNkZTA4MzhkNmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcApAQCAtODMsNyArODMs
NyBAQCB2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojpp
c0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlv
bkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3Jt
YXRpb24oKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHko
KTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApp
bmRleCAwOTZlZDA5ZGFjMGRhMDE2NDViY2YyZTk2Yzg5MjRlMDExNDI4MTVkLi4yZDZhYTc0ZjI2
NDg4MWRhOWE0ZWRhNDcwYWQyOWI3ZjgzMmQ2NzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuY3BwCkBAIC05OCwxMiArOTgsMTIgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
ICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgaWYg
KFByb3BlcnR5UmVnaXN0cnk6OmlzQW5pbWF0ZWRMZW5ndGhBdHRyaWJ1dGUoYXR0ck5hbWUpKQog
ICAgICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKLSAgICAgICAg
c2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgCiAgICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkp
IHsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAg
ICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OmNo
aWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGlmIChjaGFuZ2Uu
c291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICB1cGRh
dGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogQXRvbVN0cmluZyBTVkdNYXJr
ZXJFbGVtZW50OjpvcmllbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hc2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5j
cHAKaW5kZXggMjU3NzgzYjM0ZWNiMjU4Y2UyN2ZlNDE0Y2E4YjZmZTg2OTFkMzk3Mi4uNjVmYzlh
N2FjOTAxOGEzNWIzMTUwN2NjYmU5NDEyNjY3MmIwMzA2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFza0VsZW1lbnQuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBTVkdNYXNrRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICB9
CiAKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkp
IHsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAg
ICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFNWR01hc2tFbGVtZW50OjpjaGls
ZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICBpZiAoY2hhbmdlLnNv
dXJjZSA9PSBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYg
c3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhF
bGVtZW50LmNwcAppbmRleCBkMGI1ZGYyMWQxNmFjNGRjMTMwZjQwMjkxYmQ0NWE5OWZkMzg0NmY3
Li40YWViNDZlYzUyNjNkY2Y3NjQyN2E3M2I2YTQ5NWVhNzkwYjI1MDFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBTVkdQYXRoRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
IAogICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUGF0aCo+KHJlbmRlcmVyKS0+c2V0TmVlZHNTaGFw
ZVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIAogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dHRlcm5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5j
cHAKaW5kZXggYjQ3NTg5ZmY4ZmNhN2NhMTY4Mzk2YmU5NjE4NGVkNjRlZDk3MDVhNi4uNjJhOGIz
NmM1MGExMTQ3YWY5OTFmMzc4MmUzNGUzMWQzNmE5OTU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBTVkdQYXR0ZXJu
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKICAgICB9CiAKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShh
dHRyTmFtZSkgfHwgU1ZHRml0VG9WaWV3Qm94Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSB8
fCBTVkdVUklSZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7Ci0gICAgICAg
IHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0
ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgaWYgKGNoYW5nZS5zb3VyY2UgPT0g
Q2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRl
cmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZH
UGF0dGVybkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVu
dC5jcHAKaW5kZXggODBlZDAzZmNhNGI3YzM2Njg1NDA5NWM2ZGVjYjdjNTZhYzNmZmUzMC4uMDY3
ZmUxZDQ4MWJmNDBhMGE5YjZkOTVmYzc4MGJhMTc4MDI3N2Q1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAg
ICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBpZiAo
YXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICAgICAgc3RhdGljX2Nh
c3Q8UmVuZGVyU1ZHUGF0aCo+KHJlbmRlcmVyKS0+c2V0TmVlZHNTaGFwZVVwZGF0ZSgpOwotICAg
ICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1
cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNw
cAppbmRleCAwNzRhNzY3NzlkN2RjYjEwOTA3ZDZlNzBkZWUzMGJiZWMzMDkyYzNkLi5jNGZjMGRi
MjAyMWUyYzE1NmJiZmRlZDUxMzc1MmYxZTdhNWU0OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcApAQCAtODksNyArODksNyBAQCB2b2lk
IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZQogICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0
cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1
YXJkKCp0aGlzKTsKICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsK
LSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAg
ICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRleCA3Yzg0OTEyOTMx
NzdlNmNhZGY2ZWFhMDVhOWY2ODUwYWFmOWRmZDA1Li4xYWIxMjlkOThkNzk4YjM3ZjUwNjg0NjUy
YmIzNmE0OTMyODNjYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCkBAIC0x
MzcsNyArMTM3LDcgQEAgdm9pZCBTVkdTVkdFbGVtZW50OjpzZXRDdXJyZW50VHJhbnNsYXRlKGNv
bnN0IEZsb2F0UG9pbnQmIHRyYW5zbGF0aW9uKQogCiB2b2lkIFNWR1NWR0VsZW1lbnQ6OnVwZGF0
ZUN1cnJlbnRUcmFuc2xhdGUoKQogewotICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFp
bkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAg
ICAgaWYgKHBhcmVudE5vZGUoKSA9PSAmZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLnJlbmRlclZp
ZXcoKSkKICAgICAgICAgZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCktPnJlcGFpbnQoKTsKIH0KQEAg
LTIyNCwxNCArMjI0LDE0IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgICAgICAgICAgICAgcmVu
ZGVyZXItPnZpZXcoKS5zZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOwogICAgICAgICAgICAg
fQogICAgICAgICB9Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURp
cnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+
cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJlbmRlcmVyLT5zZXROZWVkc1RyYW5zZm9ybVVwZGF0
ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOwor
ICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKaW5kZXggYWQ4
MzIzOTllNmRlZGMxMDkwODMzNjAwMTAxYTA4MWYyNGEwNzk1MS4uZTIxMWNiZTk1YTk1MDAzMTMy
ZDNkZGM5NTZmNzMxOTUwYWQwY2Q1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0b3BFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQu
Y3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU1ZHU3RvcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgaWYgKFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEFTU0VSVChhdHRy
TmFtZSA9PSBTVkdOYW1lczo6b2Zmc2V0QXR0cik7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0
aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9y
Q2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFu
Z2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxl
bWVudC5jcHAKaW5kZXggY2U0N2UyNzM2Yzc0NTNhNGVjYWY3NjA1NTExNzcxZDc5MWY3ZDIyNS4u
ODg0NGIzMzk5NzQzYjdlOTNmNGMzODE1YWU4NzhiZGU0MTNhMTc0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBTVkdUUmVmRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewog
ICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAg
YnVpbGRQZW5kaW5nUmVzb3VyY2UoKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRDb250ZW50RWxlbWVudC5jcHAKaW5kZXggZjg0YzM0YjQ0MDEyZGFhY2Q4Mzk1YjE2MmM0
ODE3NjA1NGM3ZmVjZi4uNTA3Mjk5MzljNTIzMjNhNjU5YWY2YmRhZDMxODNmMmMxMmRiZWUwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTE4
NCw3ICsxODQsNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgICAgIG1fc3BlY2lm
aWVkVGV4dExlbmd0aCA9IG1fdGV4dExlbmd0aC0+YmFzZVZhbCgpLT52YWx1ZSgpOwogCiAgICAg
ICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdS
ZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAppbmRleCAwNzhjMGM3ODExYjc0
YjAxNmYxMzY3NzY4MTNjYjYzOGE2ZDMxYTcxLi5lM2JkMGYzOGIzMmI2MDExYTg3MWUwOWIwY2U3
YmJkNmJiMDk2OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cApAQCAtOTMsMTMgKzkzLDEzIEBAIHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBpZiAoYXR0
ck5hbWUgPT0gU1ZHTmFtZXM6OnN0YXJ0T2Zmc2V0QXR0cikKICAgICAgICAgICAgIHVwZGF0ZVJl
bGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7CiAKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5B
bmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVt
ZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoU1ZHVVJJUmVm
ZXJlbmNlOjppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBidWlsZFBlbmRp
bmdSZXNvdXJjZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVE
aXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQ
b3NpdGlvbmluZ0VsZW1lbnQuY3BwCmluZGV4IGJhYTU1MWRjM2YzMTQwZGUyZTUxNWNmOTU0NDBj
NGRkZGY1ZTdjNzkuLjA3YTA2OWJlYTUxODQ5ZGUwOTM4NTIwNzRiMTM4MjNhNzgxNTFiZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAK
QEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbQogICAgICAgICAgICAg
aWYgKGF1dG8qIHRleHRBbmNlc3RvciA9IFJlbmRlclNWR1RleHQ6OmxvY2F0ZVJlbmRlclNWR1Rl
eHRBbmNlc3RvcigqcmVuZGVyZXIpKQogICAgICAgICAgICAgICAgIHRleHRBbmNlc3Rvci0+c2V0
TmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSgpOwogICAgICAgICB9Ci0gICAgICAgIHNldFNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1Jl
bmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggMDU1ZGQ1MDI0ZTdlNDcxNjAyYjIzM2U4
NzdhNWJjY2E0ZTExN2Q1Ni4uNDFkNWJlNmVjM2NlZWQwZGRjYjQ4MWU4NTI5M2VlMTllYmM5ZWI1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMTY1LDcgKzE2NSw3IEBA
IHZvaWQgU1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKICAgICAgICAgICAgIGlmIChhdXRvIHRhcmdldENsb25lID0gdGhpcy0+
dGFyZ2V0Q2xvbmUoKSkKICAgICAgICAgICAgICAgICB0cmFuc2ZlclNpemVBdHRyaWJ1dGVzVG9U
YXJnZXRDbG9uZSgqdGFyZ2V0Q2xvbmUpOwogICAgICAgICB9Ci0gICAgICAgIHNldFNWR1Jlc291
cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVy
Rm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAppbmRleCBlYWEyNjUxNjRjNDk2YWRlYTM4MjVlMWIzNDhl
M2ZhNDBkOWUwYTZjLi40ZTJlOTU0YWM3YzE3ODc3ZDY5ODBjMWQ3ZTdlMzJkMGJjYjM5ZTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9p
ZCBTVkdWaWV3RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICAgICAgaWYgKCFtX3RhcmdldEVsZW1lbnQpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIG1fdGFyZ2V0RWxlbWVudC0+aW5oZXJpdFZpZXdBdHRyaWJ1dGVzKCp0
aGlzKTsKLSAgICAgICAgbV90YXJnZXRFbGVtZW50LT5zZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9y
Q2hhaW5BcmVEaXJ0eSgpOworICAgICAgICBtX3RhcmdldEVsZW1lbnQtPnVwZGF0ZVNWR1JlbmRl
cmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ODAzMzJiNWE2N2Q0MjJiZWVlOGE0OTYwNDNkYjIxNTNkNmJiZWIyMS4uNjc2M2FjM2JhYjhiYWVi
NDllZDlmZWY3OTk3ODA5NDM4YmY5ODg2YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTA1
LTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OIChyMjkxNzg4KTogTW90aW9uTWFyayBTdWl0cyBzdWJ0ZXN0IGlzIDklIHJlZ3Jlc3NlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMTEyCisg
ICAgICAgIHJkYXI6Ly85MjQwOTkwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWxlYWstbGlzdC1wcm9w
ZXJ0eS1pbnN0YW5jZXMuaHRtbDoKKworICAgICAgICBEbyBhIHJlbmRlcmluZyB1cGRhdGUgYmVm
b3JlIGNoZWNraW5nIGZvciBsZWFrcy4KKwogMjAyMi0wNS0wOSAgTWFudWVsIFJlZ28gQ2FzYXNu
b3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dW1dLMV0gYWNjZXNz
aWJpbGl0eS9hcmlhLWNvbWJvYm94LWNvbnRyb2wtb3ducy1lbGVtZW50cy5odG1sIGlzIGNyYXNo
aW5nIGFmdGVyIDI1MDMyNUBtYWluCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9hbmltYXRpb24tbGVhay1saXN0LXByb3BlcnR5LWluc3RhbmNlcy5odG1sIGIvTGF5b3V0
VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWxlYWstbGlzdC1wcm9wZXJ0eS1pbnN0YW5j
ZXMuaHRtbAppbmRleCBkMDZmYjQyMGE0ZDgxY2EwY2YwMTkyZTY4MjliZTBjNDc3OGZhMGMwLi5j
NjdkOWM1YzM1NzBlNDZkMGQ1NDMxZTg3Njc0MTIwYmFiZDAyYjVlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRpb24tbGVhay1saXN0LXByb3BlcnR5LWluc3Rh
bmNlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGlvbi1sZWFr
LWxpc3QtcHJvcGVydHktaW5zdGFuY2VzLmh0bWwKQEAgLTM3LDYgKzM3LDcgQEAKICAgICAgICAg
IHJldHVybjsKICAgICAgfQogCisgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgICAvLyBPbmUgZ2MoKSBjYWxsIGlzIG5vdCBlbm91
Z2ggYW5kIGNhdXNlcyBmbGFraW5lc3MgaW4gc29tZSBwbGF0Zm9ybXMuCkBAIC00OCwxMiArNDks
MTUgQEAKICAgICAgYXBwbHlUcmFuc2Zvcm0oKTsKICAgICAgcmVtb3ZlUmVjdCgpOwogCi0gICAg
IC8vIE9uZSBnYygpIGNhbGwgaXMgbm90IGVub3VnaCBhbmQgY2F1c2VzIGZsYWtpbmVzcyBpbiBz
b21lIHBsYXRmb3Jtcy4KLSAgICAgZ2MoKTsKLSAgICAgZ2MoKTsKLSAgICAgdmFyIGRlbHRhID0g
aW50ZXJuYWxzLm51bWJlck9mTGl2ZU5vZGVzKCkgLSBvcmlnaW5hbExpdmVFbGVtZW50czsKLSAg
ICAgc2hvdWxkQmVaZXJvKGRlbHRhLnRvU3RyaW5nKCkpOwotICAgICB2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKyAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAg
ICAgIC8vIE9uZSBnYygpIGNhbGwgaXMgbm90IGVub3VnaCBhbmQgY2F1c2VzIGZsYWtpbmVzcyBp
biBzb21lIHBsYXRmb3Jtcy4KKyAgICAgICAgIGdjKCk7CisgICAgICAgICBnYygpOworICAgICAg
ICAgdmFyIGRlbHRhID0gaW50ZXJuYWxzLm51bWJlck9mTGl2ZU5vZGVzKCkgLSBvcmlnaW5hbExp
dmVFbGVtZW50czsKKyAgICAgICAgIHNob3VsZEJlWmVybyhkZWx0YS50b1N0cmluZygpKTsKKyAg
ICAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgIH0pOwogIH0KIDwvc2NyaXB0PgogPGJvZHkgb25sb2FkPSJ0
ZXN0KCkiPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459156</attachid>
            <date>2022-05-11 05:21:31 -0700</date>
            <delta_ts>2022-05-11 05:32:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240112-20220511152130.patch</filename>
            <type>text/plain</type>
            <size>53989</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRiMWY1M2ZkNTg5Njdk
OTdhYjc4ODNhZTE4YjRkMjY4YmU2ZWVhYS4uMGQzM2EwYmYwOGQ3YTZhNzE0NDQyN2Q0ZTg5MjUw
YjkwZTBjMTQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NyBAQAorMjAyMi0wNS0xMSAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI5
MTc4OCk6IE1vdGlvbk1hcmsgU3VpdHMgc3VidGVzdCBpcyA5JSByZWdyZXNzZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDExMgorICAgICAgICBy
ZGFyOi8vOTI0MDk5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbWVjaGFuaXNtIHRvIHNhZmVseSB1cGRhdGUgU1ZHIHJlbmRlcmVyIGZyb20g
ZWxlbWVudCB3aXRob3V0IHRyaWdnZXJpbmcgYW4gdW5uZWNlc3Nhcnkgc3R5bGUgcmVzb2x1dGlv
bi4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29s
dmVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVTVkdSZW5kZXJlcik6CisKKyAg
ICAgICAgVXNlIHRoZSBzYW1lIG1lY2hhbmlzbSBhcyB0ZXh0IHVwZGF0ZXMgdG8gc2NoZWR1bGUg
U1ZHIHJlbmRlcmluZyB1cGRhdGVzLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5z
dXJlUGVuZGluZ1JlbmRlclRyZWVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
Om5lZWRzU3R5bGVSZWNhbGMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRl
c3Ryb3lSZW5kZXJUcmVlKToKKworICAgICAgICBFbnN1cmUgYW55IHJlbWFpbmluZyBzdHlsZSB1
cGRhdGUgZ2V0IGRlbGV0ZWQgYWxvbmcgd2l0aCB0aGUgcmVuZGVyIHRyZWUuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudERhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnREYXRhOjpzdmdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6c2V0U1ZH
UmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkgY29uc3QpOiBEZWxldGVkLgorCisgICAg
ICAgIE5vdCBuZWVkZWQgYW55bW9yZSwgU3R5bGU6OlVwZGF0ZSByZW1lbWJlcnMgd2hhdCBuZWVk
cyB1cGRhdGluZy4KKworICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVu
ZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxl
bWVudFJlbmRlcmVyKToKKworICAgICAgICBTY2hlZHVsZSBhbiB1cGRhdGUuIEN1cnJlbnRseSB0
aGlzIHJlYWxseSBqdXN0IHNjaGVkdWxlcyBhIGxheW91dCB3aGljaCBwdWxscyBpbiB0aGUgY2hh
bmdlcyBmcm9tIHRoZSBlbGVtZW50LgorCisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6YWRkRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjphZGRTVkdSZW5kZXJlclVwZGF0ZSk6CisKKyAgICAg
ICAgQWRkIGEgYml0IHRvIEVsZW1lbnRVcGRhdGUgdG8gaW5kaWNhdGUgdGhhdCBTVkcgdXBkYXRl
IGlzIG5lZWRlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmg6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6CisgICAgICAgICogc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDbGlwUGF0aEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBh
dGhFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxl
bWVudENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzZXRTVkdSZXNvdXJj
ZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50OjppbnZhbGlkYXRlU1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQp
OiBEZWxldGVkLgorCisgICAgICAgIFJlcGxhY2Ugc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNo
YWluQXJlRGlydHkgd2l0aCB0aGUgbmV3IG1lY2hhbmlzbS4gRG9uJ3QgaW52YWxpZGF0ZSBzdHls
ZS4KKworICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb3NpdGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnNldE9yZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpzZXRLZXJuZWxVbml0
TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFk
b3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6
OnNldFN0ZERldmlhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dDo6c2V0U3RkRGV2aWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZFBl
bmRpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c2V0UmFkaXVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVPZmZzZXRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGRVRpbGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjaGlsZHJlbkNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjppbnZhbGlkYXRlRmlsdGVyUHJpbWl0aXZlUGFyZW50KToKKyAgICAgICAgKiBzdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdHZW9t
ZXRyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2VvbWV0cnlFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHcmFkaWVudEVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZCk6CisgICAgICAgICogc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXJrZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgICogc3Zn
L1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAg
ICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dHRlcm5FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdHRlcm5FbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICog
c3ZnL1NWR1N0b3BFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKwogMjAyMi0w
NS0wOSAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtOaWNv
c2lhXSBDYW52YXMgYW5pbWF0aW9ucyBkb24ndCB3b3JrIHdpdGggdGhyZWFkZWQgcmVuZGVyaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiNDM0MTkzNmI1ZDIzMDFkZThhNDg4YjdiMTAz
Mjk5N2E5ZDc5ZmE5Li5iMGEzOTI1N2FmOTY3YWYxNDY5MDQ3NjAzZTU1MzY2NmI3Zjc2OTliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIERvY3VtZW50
OjpyZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1fZnVsbHNjcmVlbk1hbmFnZXItPmNsZWFyKCk7
CiAjZW5kaWYKICAgICAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7Ci0gICAg
ICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0geyB9OworICAgICAgICBtX3BlbmRp
bmdSZW5kZXJUcmVlVXBkYXRlID0geyB9OwogCiAgICAgICAgIG1fZm9udExvYWRlci0+c3RvcExv
YWRpbmdBbmRDbGVhckZvbnRzKCk7CiAKQEAgLTIwOTIsNyArMjA5Miw3IEBAIHZvaWQgRG9jdW1l
bnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAgICAgIH0K
IAotICAgICAgICBTdHlsZTo6VHJlZVJlc29sdmVyIHJlc29sdmVyKCp0aGlzLCBXVEZNb3ZlKG1f
cGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKSk7CisgICAgICAgIFN0eWxlOjpUcmVlUmVzb2x2
ZXIgcmVzb2x2ZXIoKnRoaXMsIFdURk1vdmUobV9wZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSkpOwog
ICAgICAgICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVzb2x2ZSgpOwogCiAgICAgICAg
IHdoaWxlIChyZXNvbHZlci5oYXNVbnJlc29sdmVkUXVlcnlDb250YWluZXJzKCkgJiYgc3R5bGVV
cGRhdGUpIHsKQEAgLTIxNTQsMTIgKzIxNTQsMjcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVGV4
dFJlbmRlcmVyKFRleHQmIHRleHQsIHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0LCB1bnMK
ICAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSkKLSAgICAgICAgbV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlzKTsKKyAg
ICBlbnN1cmVQZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSgpLmFkZFRleHQodGV4dCwgeyBvZmZzZXRP
ZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIHN0ZDo6bnVsbG9wdCB9KTsKK30K
Kwordm9pZCBEb2N1bWVudDo6dXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZW5zdXJlUGVuZGluZ1JlbmRlclRyZWVVcGRhdGUoKS5hZGRTVkdSZW5kZXJlclVwZGF0ZShl
bGVtZW50KTsKK30KKworU3R5bGU6OlVwZGF0ZSYgRG9jdW1lbnQ6OmVuc3VyZVBlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlKCkKK3sKKyAgICBBU1NFUlQoaGFzTGl2aW5nUmVuZGVyVHJlZSgpKTsKIAot
ICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0
T2ZSZXBsYWNlZFRleHQsIGxlbmd0aE9mUmVwbGFjZWRUZXh0LCBzdGQ6Om51bGxvcHQgfSk7Cisg
ICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVXBkYXRlKQorICAgICAgICBtX3BlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7CiAKICAgICBz
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSh7IH0pOworCisgICAgcmV0dXJuICptX3BlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlOwogfQogCiBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29u
c3QKQEAgLTIxNzMsNyArMjE4OCw3IEBAIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMo
KSBjb25zdAogICAgIGlmIChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBpZiAobV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpCisgICAgaWYg
KG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
aWYgKHN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nVXBkYXRlKCkpCkBAIC0yNTk0LDYgKzI2MDksOCBA
QCB2b2lkIERvY3VtZW50OjpkZXN0cm95UmVuZGVyVHJlZSgpCiAgICAgaWYgKHZpZXcoKSkKICAg
ICAgICAgdmlldygpLT53aWxsRGVzdHJveVJlbmRlclRyZWUoKTsKIAorICAgIG1fcGVuZGluZ1Jl
bmRlclRyZWVVcGRhdGUgPSB7IH07CisKICAgICBpZiAobV9kb2N1bWVudEVsZW1lbnQpCiAgICAg
ICAgIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJlbmRlcmVycygqbV9kb2N1bWVudEVsZW1l
bnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ0M2VhZDllMmQxMTQ0MzQ0NjRlMjliMmMx
YmNhMWYwOGI4M2UwNmMuLjViMzk0NTcxMjM3NzI3NTA2Y2RkZjQ4NWU5YTVhNGQ2YjI2ZjQ3OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMDUsNiArMjA1LDcgQEAgY2xhc3MgUmVuZGVyVmll
dzsKIGNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3MgUmVzaXplT2Jz
ZXJ2ZXI7CiBjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdFbGVtZW50Owog
Y2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNWR1VzZUVsZW1lbnQ7CiBjbGFzcyBTV0NsaWVu
dENvbm5lY3Rpb247CkBAIC0xMzU2LDYgKzEzNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJ
c1Jlc29sdmluZ1RyZWVTdHlsZShib29sKTsKIAogICAgIHZvaWQgdXBkYXRlVGV4dFJlbmRlcmVy
KFRleHQmLCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZS
ZXBsYWNlZFRleHQpOworICAgIHZvaWQgdXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYpOwog
CiAgICAgLy8gUmV0dXJuIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGFy
Z3VtZW50IGlzIG51bGwgb3IgZW1wdHkuCiAgICAgTG9jYWxlJiBnZXRDYWNoZWRMb2NhbGUoY29u
c3QgQXRvbVN0cmluZyYgbG9jYWxlID0gbnVsbEF0b20oKSk7CkBAIC0xODA2LDYgKzE4MDgsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgYWRkVG9Eb2N1bWVudHNNYXAoKTsKICAgICB2b2lkIHJlbW92
ZUZyb21Eb2N1bWVudHNNYXAoKTsKIAorICAgIFN0eWxlOjpVcGRhdGUmIGVuc3VyZVBlbmRpbmdS
ZW5kZXJUcmVlVXBkYXRlKCk7CisKICAgICBOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlv
bkNsaWVudCgpIGZpbmFsOwogCiAgICAgY29uc3QgUmVmPGNvbnN0IFNldHRpbmdzPiBtX3NldHRp
bmdzOwpAQCAtMTg4OCw3ICsxODkyLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBUaW1lciBtX3N0
eWxlUmVjYWxjVGltZXI7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U3R5bGU6OlVwZGF0ZT4gbV9w
ZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN0eWxlOjpV
cGRhdGU+IG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGU7CiAKICAgICBFbGVtZW50KiBtX2Nzc1Rh
cmdldCB7IG51bGxwdHIgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaAppbmRleCBmMTQ3MWE4
ZTlmNzUxMmE1NWM4YmY5M2E5NDQ2MDM4YjQ4MjJjMzE1Li5lMjRlMmUxOWIxNWM3YzZmNmU1ZjYz
NDlmOGEyZjZhODVjMTIyM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaApAQCAtMTI1LDEz
ICsxMjUsMTIgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVpbnQzMl90IG1fYXJyYXlTaXplQW5k
RmxhZ3M7CiAKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19hcnJheVNpemUgPSAyNzsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnQ291bnQgPSA2OworICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBzX2ZsYWdDb3VudCA9IDU7CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNf
ZmxhZ0lzVW5pcXVlID0gMTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnSGFzTmFt
ZUF0dHJpYnV0ZSA9IDEgPDwgMTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnUHJl
c2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5ID0gMSA8PCAyOwogICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBzX2ZsYWdTdHlsZUF0dHJpYnV0ZUlzRGlydHkgPSAxIDw8IDM7CiAgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IHNfZmxhZ0FuaW1hdGVkU1ZHQXR0cmlidXRlc0FyZURpcnR5ID0gMSA8
PCA0OwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2ZsYWdTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSA9IDEgPDwgNTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19m
bGFnc01hc2sgPSAoMSA8PCBzX2ZsYWdDb3VudCkgLSAxOwogICAgIC8vIEZJWE1FOiBjb3VsZCB0
aGUgU1ZHIHNwZWNpZmljIGZsYWdzIGdvIHRvIHNvbWUgU1ZHIGNsYXNzPwogCkBAIC0xNjIsOSAr
MTYxLDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgYW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGly
dHkoKSBjb25zdCB7IHJldHVybiBtX2FycmF5U2l6ZUFuZEZsYWdzICYgc19mbGFnQW5pbWF0ZWRT
VkdBdHRyaWJ1dGVzQXJlRGlydHk7IH0KICAgICB2b2lkIHNldEFuaW1hdGVkU1ZHQXR0cmlidXRl
c0FyZURpcnR5KGJvb2wgZGlydHkpIGNvbnN0IHsgdXBkYXRlRmxhZyhzX2ZsYWdBbmltYXRlZFNW
R0F0dHJpYnV0ZXNBcmVEaXJ0eSwgZGlydHkpOyB9CiAKLSAgICBib29sIHN2Z1Jlc291cmNlc0lu
QW5jZXN0b3JDaGFpbkFyZURpcnR5KCkgY29uc3QgeyByZXR1cm4gbV9hcnJheVNpemVBbmRGbGFn
cyAmIHNfZmxhZ1NWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5OyB9Ci0gICAgdm9p
ZCBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eShib29sIGRpcnR5KSBjb25z
dCB7IHVwZGF0ZUZsYWcoc19mbGFnU1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHks
IGRpcnR5KTsgfQotCiAgICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVzPiBtX2lubGlu
ZVN0eWxlOwogICAgIG11dGFibGUgU3BhY2VTcGxpdFN0cmluZyBtX2NsYXNzTmFtZXM7CiAgICAg
bXV0YWJsZSBBdG9tU3RyaW5nIG1faWRGb3JTdHlsZVJlc29sdXRpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcApp
bmRleCA1ZDRmNjQ4ZDk2MDdkYzBhYjNlMDdmNGFmYzNjNjVhNWJlODFmZWVmLi5iMDZlMzAwOTc0
OTYyZGYxYjBjOTVmY2RlY2ZlYzBhZmZhYzEwOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTQyLDYg
KzQyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0
aUNvbHVtbkZsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtblNldC5oIgorI2luY2x1
ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZVVwZGF0ZXJHZW5l
cmF0ZWRDb250ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTE5Myw5ICsxOTQsNiBAQCB2b2lkIFJlbmRlclRyZWVV
cGRhdGVyOjp1cGRhdGVSZW5kZXJUcmVlKENvbnRhaW5lck5vZGUmIHJvb3QpCiAgICAgICAgIGlm
IChlbGVtZW50VXBkYXRlKQogICAgICAgICAgICAgdXBkYXRlRWxlbWVudFJlbmRlcmVyKGVsZW1l
bnQsICplbGVtZW50VXBkYXRlKTsKIAotICAgICAgICBpZiAoaXM8U1ZHRWxlbWVudD4oZWxlbWVu
dCkpCi0gICAgICAgICAgICBkb3duY2FzdDxTVkdFbGVtZW50PihlbGVtZW50KS5pbnZhbGlkYXRl
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQoKTsKLQogICAgICAgICBzdG9yZVBy
ZXZpb3VzUmVuZGVyZXIoZWxlbWVudCk7CiAKICAgICAgICAgYm9vbCBtYXlIYXZlUmVuZGVyZWRE
ZXNjZW5kYW50cyA9IGVsZW1lbnQucmVuZGVyZXIoKSB8fCAoZWxlbWVudC5oYXNEaXNwbGF5Q29u
dGVudHMoKSAmJiBzaG91bGRDcmVhdGVSZW5kZXJlcihlbGVtZW50LCByZW5kZXJUcmVlUG9zaXRp
b24oKS5wYXJlbnQoKSkpOwpAQCAtMzA2LDYgKzMwNCwxMiBAQCB2b2lkIFJlbmRlclRyZWVVcGRh
dGVyOjp1cGRhdGVSZW5kZXJlclN0eWxlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBSZW5kZXJT
dHlsZQogCiB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVFbGVtZW50UmVuZGVyZXIoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUmIGVsZW1lbnRVcGRhdGUp
CiB7CisgICAgaWYgKGVsZW1lbnRVcGRhdGUudXBkYXRlU1ZHUmVuZGVyZXIgJiYgZWxlbWVudC5y
ZW5kZXJlcigpKQorICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBh
cmVudFJlc291cmNlSW52YWxpZGF0aW9uKCplbGVtZW50LnJlbmRlcmVyKCkpOworCisgICAgaWYg
KCFlbGVtZW50VXBkYXRlLnN0eWxlKQorICAgICAgICByZXR1cm47CisKICNpZiBFTkFCTEUoQ09O
VEVOVF9DSEFOR0VfT0JTRVJWRVIpCiAgICAgQ29udGVudENoYW5nZU9ic2VydmVyOjpTdHlsZUNo
YW5nZVNjb3BlIG9ic2VydmluZ1Njb3BlKG1fZG9jdW1lbnQsIGVsZW1lbnQpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKaW5kZXggMjQyN2IyNjU3NGIwYzJmYWJmMzAw
NzQxZGRkYmU0YmY4Y2ViOTE4ZC4uOWFhNjNjYjU3M2UyZGI1NDQ3ZDI1YmI5YmU2ODU2MGIwYmFh
OTVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1
ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsMTMgKzg4LDE5IEBAIFJl
bmRlclN0eWxlKiBVcGRhdGU6OmVsZW1lbnRTdHlsZShjb25zdCBFbGVtZW50JiBlbGVtZW50KQog
CiB2b2lkIFVwZGF0ZTo6YWRkRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBFbGVtZW50KiBwYXJl
bnQsIEVsZW1lbnRVcGRhdGUmJiBlbGVtZW50VXBkYXRlKQogewotICAgIEFTU0VSVCghbV9lbGVt
ZW50cy5jb250YWlucygmZWxlbWVudCkpOwogICAgIEFTU0VSVChjb21wb3NlZFRyZWVBbmNlc3Rv
cnMoZWxlbWVudCkuZmlyc3QoKSA9PSBwYXJlbnQpOwogCiAgICAgbV9yb290cy5yZW1vdmUoJmVs
ZW1lbnQpOwogICAgIGFkZFBvc3NpYmxlUm9vdChwYXJlbnQpOwogCi0gICAgbV9lbGVtZW50cy5h
ZGQoJmVsZW1lbnQsIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkpOworICAgIGF1dG8gcmVzdWx0ID0g
bV9lbGVtZW50cy5hZGQoJmVsZW1lbnQsIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkpOworCisgICAg
aWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICBhdXRvJiBlbnRyeSA9IHJlc3VsdC5p
dGVyYXRvci0+dmFsdWU7CisgICAgICAgIEFTU0VSVChlbnRyeS51cGRhdGVTVkdSZW5kZXJlcik7
CisgICAgICAgIGVudHJ5ID0gV1RGTW92ZShlbGVtZW50VXBkYXRlKTsKKyAgICAgICAgZW50cnku
dXBkYXRlU1ZHUmVuZGVyZXIgPSB0cnVlOworICAgIH0KIH0KIAogdm9pZCBVcGRhdGU6OmFkZFRl
eHQoVGV4dCYgdGV4dCwgRWxlbWVudCogcGFyZW50LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkK
QEAgLTEyMiw2ICsxMjksMTMgQEAgdm9pZCBVcGRhdGU6OmFkZFRleHQoVGV4dCYgdGV4dCwgVGV4
dFVwZGF0ZSYmIHRleHRVcGRhdGUpCiAgICAgYWRkVGV4dCh0ZXh0LCBjb21wb3NlZFRyZWVBbmNl
c3RvcnModGV4dCkuZmlyc3QoKSwgV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CiB9CiAKK3ZvaWQgVXBk
YXRlOjphZGRTVkdSZW5kZXJlclVwZGF0ZShTVkdFbGVtZW50JiBlbGVtZW50KQoreworICAgIGF1
dG8gZWxlbWVudFVwZGF0ZSA9IEVsZW1lbnRVcGRhdGUgeyB9OworICAgIGVsZW1lbnRVcGRhdGUu
dXBkYXRlU1ZHUmVuZGVyZXIgPSB0cnVlOworICAgIGFkZEVsZW1lbnQoZWxlbWVudCwgY29tcG9z
ZWRUcmVlQW5jZXN0b3JzKGVsZW1lbnQpLmZpcnN0KCksIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkp
OworfQorCiB2b2lkIFVwZGF0ZTo6YWRkUG9zc2libGVSb290KEVsZW1lbnQqIGVsZW1lbnQpCiB7
CiAgICAgaWYgKCFlbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAppbmRleCAx
ZjgyMDlkYzU3OWZlYzAwODU0OGVhNTJmYmEyNTVmNDNkNTUxMDFkLi5iNmNmNDYzY2RhMDk5ODMx
NDc5MGY3YTg4ZTk3MTJmODhlNmM0OWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgK
QEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3Mg
Tm9kZTsKIGNsYXNzIFJlbmRlclN0eWxlOworY2xhc3MgU1ZHRWxlbWVudDsKIGNsYXNzIFRleHQ7
CiAKIG5hbWVzcGFjZSBTdHlsZSB7CkBAIC00NSw2ICs0Niw3IEBAIHN0cnVjdCBFbGVtZW50VXBk
YXRlIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlOwogICAgIENoYW5n
ZSBjaGFuZ2UgeyBDaGFuZ2U6Ok5vbmUgfTsKICAgICBib29sIHJlY29tcG9zaXRlTGF5ZXIgeyBm
YWxzZSB9OworICAgIGJvb2wgdXBkYXRlU1ZHUmVuZGVyZXIgeyBmYWxzZSB9OwogfTsKIAogc3Ry
dWN0IFRleHRVcGRhdGUgewpAQCAtNzYsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRF
bGVtZW50KEVsZW1lbnQmLCBFbGVtZW50KiBwYXJlbnQsIEVsZW1lbnRVcGRhdGUmJik7CiAgICAg
dm9pZCBhZGRUZXh0KFRleHQmLCBFbGVtZW50KiBwYXJlbnQsIFRleHRVcGRhdGUmJik7CiAgICAg
dm9pZCBhZGRUZXh0KFRleHQmLCBUZXh0VXBkYXRlJiYpOworICAgIHZvaWQgYWRkU1ZHUmVuZGVy
ZXJVcGRhdGUoU1ZHRWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVS
b290KEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQuY3BwCmluZGV4IDc0ZGRmOGQ5N2IxZmZjZDZkYzgxMDZmMDlkM2ZmM2VmNjg1N2Q3MTEu
LjUwODA0YmE0NzgwMWE2MTk0ZmRlNjZiMDk0NzhhODcwYjVkYWU0ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcApAQCAtMjUzLDcgKzI1Myw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KCkK
ICAgICBhdXRvIHVwZGF0ZVRhcmdldEVsZW1lbnQgPSBbXShTVkdFbGVtZW50JiBlbGVtZW50KSB7
CiAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigpKQogICAgICAg
ICAgICAgcmVuZGVyZXItPnNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCk7Ci0gICAgICAgIGVsZW1l
bnQuc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgZWxl
bWVudC51cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICB9OwogCiAgICAg
dXBkYXRlVGFyZ2V0RWxlbWVudCgqdGFyZ2V0RWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IGFmZDYwZWJlMDg4ZTQzZDc3YTY4NjhhNWM1NDY3
ZjRkMTg1MDA1NjQuLmVjNDU1NzZmODRiNzc5MjNhZTIzNTJlNWVkODE1NjgzNWQ0MjNiODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBAIC02Nyw3ICs2Nyw3
IEBAIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0aGlzKTsKIAotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5B
cmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODEsNyArODEsNyBAQCB2b2lkIFNWR0NsaXBQ
YXRoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAg
ICAgaWYgKGNoYW5nZS5zb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCAwZWY5MzYyOGRmZTVlN2Q0YTliM2I5MmY5MGY0
OGQ5NTQ1MDRlYTQwLi40MzBkNmUyZDcyYzRjZTYxOWJlZDgxMjJkNzFjNTg5NTM2ZDQzOGI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC04ODMsMjAgKzg4Myw5IEBAIHZvaWQgU1ZH
RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtCiAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRT
dHlsZShzdHlsZSwgcHJvcGVydHlJRCwgdmFsdWUpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OnNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCkKK3ZvaWQgU1ZHRWxlbWVudDo6
dXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCkKIHsKLSAgICBlbnN1cmVVbmlxdWVF
bGVtZW50RGF0YSgpLnNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KHRydWUp
OwotICAgIGludmFsaWRhdGVTdHlsZSgpOwotfQotCi12b2lkIFNWR0VsZW1lbnQ6OmludmFsaWRh
dGVTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5JZk5lZWRlZCgpCi17Ci0gICAgaWYgKCFlbGVt
ZW50RGF0YSgpIHx8ICFlbGVtZW50RGF0YSgpLT5zdmdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5B
cmVEaXJ0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoYXV0byByZW5kZXJlciA9IHRo
aXMtPnJlbmRlcmVyKCkpCi0gICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0
QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKLSAgICBlbGVtZW50RGF0
YSgpLT5zZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eShmYWxzZSk7CisgICAg
ZG9jdW1lbnQoKS51cGRhdGVTVkdSZW5kZXJlcigqdGhpcyk7CiB9CiAKIHZvaWQgU1ZHRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4IGUxOWJlMGRhZGJmOTQyMjk3ZmI3MzY4MDljNjZiNjk5
Yjg4YmEwZmUuLjVjYWNmMTVlZjA3NDM2YzhhNDM4NjVmNDVhYzk3NzkyYzA3MDI0MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAtODQsOCArODQsNyBAQCBwdWJsaWM6CiAKICAgICBpbmxp
bmUgdm9pZCBzZXRBbmltYXRlZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eSgpOwogICAgIGlubGluZSB2
b2lkIHNldFByZXNlbnRhdGlvbmFsSGludFN0eWxlSXNEaXJ0eSgpOwotICAgIHZvaWQgc2V0U1ZH
UmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKLSAgICB2b2lkIGludmFsaWRhdGVT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5JZk5lZWRlZCgpOworICAgIHZvaWQgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAKICAgICAvLyBUaGUgaW5zdGFuY2VzIG9mIGFu
IGVsZW1lbnQgYXJlIGNsb25lcyBtYWRlIGluIHNoYWRvdyB0cmVlcyB0byBpbXBsZW1lbnQgPHVz
ZT4uCiAgICAgY29uc3QgV2Vha0hhc2hTZXQ8U1ZHRWxlbWVudD4mIGluc3RhbmNlcygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKaW5kZXggZDhjZThmMTE2
MGMwZDNhYTBkZDQxZDQ5NzhiYzUzOGM0Mzk3YTc3MC4uNTAyNWNiMzcyYzQzMWFiYTQwOTU0MGMw
NmMwN2RmYzRhYzU5NjYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
Y3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgICAgICBwcmlt
aXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFtZSA9PSBT
VkdOYW1lczo6aW4yQXR0cik7Ci0gICAgICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9y
Q2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50
Q2hhbmdlKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IGVjOTgzYmRlMzhk
NmJmYjMxMWZmODQxYWU4ZGRhYWE1OTYzNDdiMWUuLjI1MGU1NmFjZmY0NmIyMmQ5ODViZTMwNmY0
MDg1YWZiNmRhZmQ0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50LmNwcApAQCAtODcsNyArODcsNyBAQCB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewog
ICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIpCi0gICAgICAgICAgICBzZXRTVkdSZXNv
dXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRlU1ZHUmVu
ZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNT
RVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjp0eXBlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1l
czo6dmFsdWVzQXR0cik7CiAgICAgICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0
dHJOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAK
aW5kZXggYTI5MjRiMjE5NmRmYjI1NmU2NGE1ZTA2Njg4MTE0MGZjYzBiMTYwMy4uMzUyNjFmOWU1
MjcwZjRjMzcwZWMxYzkwODdlOGE5MzUyY2RlYzM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIFNWR0ZF
Q29tcG9zaXRlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShh
dHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhp
cyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1l
ID09IFNWR05hbWVzOjppbjJBdHRyKQotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNl
c3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxl
bWVudENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6azFBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprMkF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmszQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6azRB
dHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpvcGVyYXRvckF0dHIpOwogICAgICAgICAgICAg
cHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCA3YzE2NjQzZWU5ZDY5
N2QxMGQ0ZDYzNzgxZjFjZTM4ZjUyZDZlZTgxLi45ZGRjYjE1YTBhMjVlYjlmYjBhNDM2YmViNGFh
YjJhYzdmZmNiN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5jcHAKQEAgLTE2MSwxNCArMTYxLDE0IEBAIHZvaWQgU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6OnNldE9yZGVyKGZsb2F0IHgsIGZsb2F0IHkpCiB7CiAgICAgbV9vcmRl
clgtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBtX29yZGVyWS0+c2V0QmFzZVZhbEludGVy
bmFsKHkpOwotICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7Cisg
ICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQ6OnNldEtlcm5lbFVuaXRMZW5ndGgoZmxvYXQgeCwgZmxvYXQg
eSkKIHsKICAgICBtX2tlcm5lbFVuaXRMZW5ndGhYLT5zZXRCYXNlVmFsSW50ZXJuYWwoeCk7CiAg
ICAgbV9rZXJuZWxVbml0TGVuZ3RoWS0+c2V0QmFzZVZhbEludGVybmFsKHkpOwotICAgIHNldFNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVy
ZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkBA
IC0xNzYsNyArMTc2LDcgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmEKICAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFu
Y2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpvcmRlckF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbE1hdHJpeEF0dHIpCi0gICAgICAgICAgICBzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjplZGdlTW9kZUF0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmRpdmlzb3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpiaWFzQXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGFyZ2V0WEF0dHIKICAgICAgICAgICAgICAgICB8
fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGFyZ2V0WUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2
ZUFscGhhQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQuY3BwCmluZGV4IDdlYzA1ZGYwYzI1ZDBhNzFhZjY3NGI3OTA0ODRiMDhkYWI3
YTAzMDMuLmI1YzQzYzRiZWFkNmMzNmEzZGMwOTZmMmViNDdiMjMyN2VmOTMwMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCkBA
IC0xMjgsNyArMTI4LDcgQEAgdm9pZCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck4KICAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFu
Y2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6aW5BdHRyKQotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVu
dENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6ZGlmZnVzZUNvbnN0YW50QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
c3VyZmFjZVNjYWxlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0
aEF0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQu
Y3BwCmluZGV4IGExNWJhNGIzZTFlMTQ3ZmY0ZTIxYzhkYmFiYTZmYmFkMDg4YTUzM2QuLmYyY2Ux
Nzk3MjNhZjgxNjI1NWJmYWVlNDQ5ZWFkZDJjYjY1YTcwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCkBAIC0xMDIsNyArMTAy
LDcgQEAgdm9pZCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck4KICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6
aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRp
b25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6
aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjppbjJBdHRyKQotICAgICAgICAgICAgc2V0
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0
ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eENoYW5uZWxTZWxlY3RvckF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlDaGFubmVsU2VsZWN0b3JBdHRyIHx8IGF0dHJOYW1lID09
IFNWR05hbWVzOjpzY2FsZUF0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hh
bmdlZChhdHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxl
bWVudC5jcHAKaW5kZXggZDFlNjE4NDhhYWMxODI2ZjQxNjdiNWYxMTE1YmYxNWQ5ZmFkY2I5Mi4u
MGI1MDhhMTI4MThjOGYzZWQ2NTgwMDA0ODZiYjdhNTAzMTBhMTFlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2
b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnNldFN0ZERldmlhdGlvbihmbG9hdCB4LCBmbG9h
dCB5KQogewogICAgIG1fc3RkRGV2aWF0aW9uWC0+c2V0QmFzZVZhbEludGVybmFsKHgpOwogICAg
IG1fc3RkRGV2aWF0aW9uWS0+c2V0QmFzZVZhbEludGVybmFsKHkpOwotICAgIHNldFNWR1Jlc291
cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JF
bGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAo
UHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAg
SW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jl
c291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRl
cmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCmluZGV4IGNiMTkw
YWQzNTQxZDIyY2ZmMGNlN2NjYmY1OGUzNmNjMGZiNWM3M2UuLmYyOGY5ODEzMTBlMzRhM2M4NGQ1
NGVmNmFhZTcwNWI2OWFiZDE2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50OjpzZXRTdGREZXZpYXRpb24oZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAgICBt
X3N0ZERldmlhdGlvblgtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBtX3N0ZERldmlhdGlv
blktPnNldEJhc2VWYWxJbnRlcm5hbCh5KTsKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9y
Q2hhaW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgp
OwogfQogCiB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCkBAIC04Nyw3
ICs4Nyw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lCiB7CiAgICAgaWYgKFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52
YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFu
Y2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1l
bnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggNGQ3MzIyOTRmZDU4MjNjNjlkZjQwOGFlMTZlYWM5
NDI3YmM2Yzk1Yi4uYzMxOWY1NWRmNWVmZWM1ZDdmZTlhOTVhZjMzZTY1NzZhZDc1MDVmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcg
QEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6YnVpbGRQZW5kaW5nUmVzb3VyY2UoKQogICAgIH0g
ZWxzZSBpZiAoaXM8U1ZHRWxlbWVudD4oKnRhcmdldC5lbGVtZW50KSkKICAgICAgICAgZG93bmNh
c3Q8U1ZHRWxlbWVudD4oKnRhcmdldC5lbGVtZW50KS5hZGRSZWZlcmVuY2luZ0VsZW1lbnQoKnRo
aXMpOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAg
ICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogdm9pZCBTVkdGRUlt
YWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBTVkdGRUltYWdl
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkp
IHsKICAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0cik7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMp
OwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAg
ICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
Y3BwCmluZGV4IDYxMDgyYTQ5ODM5MzFkOGFiNzAzODUzNDRlNjI3YzNjYjU3NTI3NDEuLmJkODhj
ZDgxZTBmMWZmMmE1MmIyNTk0YWQ2NmI2YTRmZWUwZWNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBT
VkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzZXRSYWRpdXMoZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAg
ICBtX3JhZGl1c1gtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBtX3JhZGl1c1ktPnNldEJh
c2VWYWxJbnRlcm5hbCh5KTsKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVE
aXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiB2
b2lkIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQpAQCAtMTAxLDcgKzEwMSw3IEBA
IHZvaWQgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFy
ZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRy
KQotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsK
KyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6b3BlcmF0
b3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpyYWRpdXNBdHRyKTsKICAgICAgICAgICAg
IHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVPZmZzZXRFbGVtZW50LmNwcAppbmRleCBjYjk0MWQ0NTE0MjRlMDBjYjQ2NzJjYWZmYjIw
OWIzMmYwODY4ZTRkLi45OWRhNmE1ZjQ4MzEyNzY2MzdhZThkNWI5NmIzOTBlYjQyZGRkNGY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcApAQCAtNzIsNyArNzIs
NyBAQCB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNL
bm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25H
dWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFp
bkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggMDllMTdiZDA1ODFmODRhMTNm
M2FjZTc4ZmVjZWQxZWQ2YWUwNzUzZi4uNmUwMGNkYmQyMDI3NTA2ZjM5MDgxNGZhM2RkOGQ5OTVm
Y2U2NjE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUp
KSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAg
ICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikKLSAgICAgICAgICAgIHNldFNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgICAgICB1cGRhdGVT
VkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyIHx8IGF0
dHJOYW1lID09IFNWR05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0ciB8fCBhdHRyTmFtZSA9PSBT
VkdOYW1lczo6c3VyZmFjZVNjYWxlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVs
VW5pdExlbmd0aEF0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChh
dHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKaW5kZXggNWM1
YTY4ODNiNzhlNjhmYmIwODZiMmE0ZmExNGY4MjVkNTYxZDg4NC4uMzlmMjQ3ZGM2MWJkYTA0NjE5
ZWNkNGViZTE1OTlkNmZhMjVjZGJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVGlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVt
ZW50LmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgaWYgKFByb3Bl
cnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEFTU0VS
VChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKTsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlk
YXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0
b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENo
YW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5jcHAKaW5kZXggZjllYmE2NWZkOWQwMjU1YWNjZGY0ODI1ZmFjMjA5NTcwYTZi
NWEwOS4uYTk3OWMwNzliNTFmYTdlYjUyYTk1ZGRhNWM0MzYyOTAwNmU4NDkyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIFNW
R0ZpbHRlckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgfQogCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRy
aWJ1dGUoYXR0ck5hbWUpIHx8IFNWR1VSSVJlZmVyZW5jZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRy
TmFtZSkpIHsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHko
KTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIFNWR0ZpbHRlckVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGlmIChj
aGFuZ2Uuc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAg
ICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5k
ZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcAppbmRleCAxNzljNzQ1YTBhMzc0MmRhNzUzZmYwNDE2ODA5NGY0NjEyMDM3ZDU1Li4x
YWNmODRhYjNlMTcyODRiZTYyMzMxNmIyOTk2NGE4MzdiNGVkYjk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYQogewogICAg
IGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAg
ICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgc2V0
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTkwLDcgKzkwLDcgQEAgdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6
OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2gKIAogICAgIGlmIChjaGFuZ2Uu
c291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKICAgICAgICAgcmV0dXJuOwot
ICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpA
QCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjppbnZhbGlkYXRlRmlsdGVyUHJpbWl0aXZlUGFyZW50KFNWR0VsCiAgICAgaWYgKCFyZW5k
ZXJlciB8fCAhcmVuZGVyZXItPmlzU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZG93bmNhc3Q8U1ZHRWxlbWVudD4oKnBhcmVudCkuc2V0U1ZHUmVz
b3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICBkb3duY2FzdDxTVkdFbGVtZW50
PigqcGFyZW50KS51cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXgg
ZWNiM2JiZjg5NjA3Y2Q3ZDAzMjU3NjQ0ZThiNjJhY2IwNjU1OGMxYi4uNjg0NTA3MjVlYzUwYmNh
Y2FiMDgyZjk5ODJlZTllYjg3ZGQ2NjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09
IFNWR05hbWVzOjp4QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6eUF0dHIpOwogICAgICAg
ICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKLSAgICAgICAgICAgIHNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgICAgICB1cGRh
dGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgfQogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAppbmRl
eCAyOGVjNDc3Yjg0YmExYmFiZTA5OWI5ZDYzOWY5MjAwNzlkNTYyZmM3Li5kNzEzMjY4ZmQwZGYw
ZmY1OTkyNTllOTk5YzJlOTEwMzU1M2JkZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2Vv
bWV0cnlFbGVtZW50LmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgU1ZHR2VvbWV0cnlFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewog
ICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBhdGhMZW5ndGhBdHRyKTsKICAg
ICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNW
R1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IGUwOWMxZDk1OWRl
ODlkNmQzODJiMWM3NzY3YmEzMGZjMzI3YTY1MDAuLjgwMTMzMDg2ZTQwMjBkZTA4YWIzZDQxZGU1
MGQ5Mjk1NTI2NThkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVu
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQu
Y3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgU1ZHR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIGlmIChQcm9w
ZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSB8fCBTVkdVUklSZWZlcmVu
Y2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxp
ZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtOTMsNyArOTMsNyBAQCB2b2lk
IFNWR0dyYWRpZW50RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBj
aGFuZ2UpCiAgICAgaWYgKGNoYW5nZS5zb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFy
c2VyKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hh
aW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwog
fQogCiBHcmFkaWVudENvbG9yU3RvcHMgU1ZHR3JhZGllbnRFbGVtZW50OjpidWlsZFN0b3BzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKaW5kZXggZTA3MGM3YTcz
MDYyNmFkNWMyMDdkZWM3MjE4MDMzM2UzNTFlYzgzOC4uM2UwNTFkZDFlNGNhZDAxZGEwODc1M2U2
ZGI1NWMyYjAzMDMzYWVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBo
aWNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVu
dC5jcHAKQEAgLTE0Myw5ICsxNDMsMTEgQEAgdm9pZCBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIEFT
U0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dHJhbnNmb3JtQXR0cik7CiAgICAgICAgIEluc3Rh
bmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogCisgICAgICAgIGRvY3VtZW50KCku
dXBkYXRlU1ZHUmVuZGVyZXIoKnRoaXMpOworCiAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0g
dGhpcy0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJlbmRlcmVyLT5zZXROZWVkc1RyYW5zZm9y
bVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIAogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0lt
YWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApp
bmRleCBiZTA0NDkyN2NjODFmOTBkNDExNDg2ZTk2NzA2Y2E3MmJkMDdhMTQ4Li5mNDQ2ODNiZDgw
OTMyOTI1MDUyMDYxOGM3M2VmMTQyOGIwNTMzOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1h
Z2VFbGVtZW50LmNwcApAQCAtMTAxLDEzICsxMDEsMTMgQEAgdm9pZCBTVkdJbWFnZUVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAg
ICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKCFkb3duY2FzdDxSZW5kZXJTVkdJbWFnZT4oKnJlbmRlcmVyKS51cGRhdGVJ
bWFnZVZpZXdwb3J0KCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAg
ICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAg
ICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICAgICAg
fQogICAgICAgICB9IGVsc2UgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp3aWR0aEF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpCiAgICAgICAgICAgICBzZXRQcmVzZW50
YXRpb25hbEhpbnRTdHlsZUlzRGlydHkoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBB
U1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKTsKLSAg
ICAgICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAg
ICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAK
aW5kZXggMjMxOWQ1ZWNjZDdlZjIzNDQ2ZmRlODRjZWQ3MmEwODdhNjk5N2M3MC4uN2YxMmQyNjZi
MGNlNTc0YzE2Njc0YzA0YmY5MjA5OTRmMTk2ZDk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGlu
ZUVsZW1lbnQuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgU1ZHTGluZUVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAKICAgICAgICAg
aWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHN0YXRp
Y19jYXN0PExlZ2FjeVJlbmRlclNWR1NoYXBlKj4ocmVuZGVyZXIpLT5zZXROZWVkc1NoYXBlVXBk
YXRlKCk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7
CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQuY3BwCmluZGV4IDFjZDUwMWIwMmU2OWQ0NjI3OGU1N2NlYjliOGVjZmZhMjlmMWNi
OWEuLjQ4NTgyYjUzOWYwOWQzNTA3YmVjZDVjNmNkOGRiM2RlMDgzOGQ2ZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC04Myw3ICs4
Myw3IEBAIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6
OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0
aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZv
cm1hdGlvbigpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3Bw
CmluZGV4IDA5NmVkMDlkYWMwZGEwMTY0NWJjZjJlOTZjODkyNGUwMTE0MjgxNWQuLjJkNmFhNzRm
MjY0ODgxZGE5YTRlZGE0NzBhZDI5YjdmODMyZDY3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFya2VyRWxlbWVudC5jcHAKQEAgLTk4LDEyICs5OCwxMiBAQCB2b2lkIFNWR01hcmtlckVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAg
ICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBp
ZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNBbmltYXRlZExlbmd0aEF0dHJpYnV0ZShhdHRyTmFtZSkp
CiAgICAgICAgICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1hdGlvbigpOwotICAgICAg
ICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRh
dGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICAKICAgICBpZiAoU1ZHRml0VG9WaWV3Qm94Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1l
KSkgewotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOwor
ICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6
Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgaWYgKGNoYW5n
ZS5zb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQogICAgICAgICByZXR1cm47
CiAKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgIHVw
ZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiBBdG9tU3RyaW5nIFNWR01h
cmtlckVsZW1lbnQ6Om9yaWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTWFza0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50
LmNwcAppbmRleCAyNTc3ODNiMzRlY2IyNThjZTI3ZmU0MTRjYThiNmZlODY5MWQzOTcyLi42NWZj
OWE3YWM5MDE4YTM1YjMxNTA3Y2NiZTk0MTI2NjcyYjAzMDY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIFNWR01hc2tFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
IH0KIAogICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1l
KSkgewotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOwor
ICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU1ZHTWFza0VsZW1lbnQ6OmNo
aWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGlmIChjaGFuZ2Uu
c291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICB1cGRh
dGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IFNWR01hc2tFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUm
JiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aEVsZW1lbnQuY3BwCmluZGV4IGQwYjVkZjIxZDE2YWM0ZGMxMzBmNDAyOTFiZDQ1YTk5ZmQzODQ2
ZjcuLjRhZWI0NmVjNTI2M2RjZjc2NDI3YTczYjZhNDk1ZWE3OTBiMjUwMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFNWR1BhdGhF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogCiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJTVkdQYXRoKj4ocmVuZGVyZXIpLT5zZXROZWVkc1No
YXBlVXBkYXRlKCk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURp
cnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogCiAg
ICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0dGVybkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50
LmNwcAppbmRleCBiNDc1ODlmZjhmY2E3Y2ExNjgzOTZiZTk2MTg0ZWQ2NGVkOTcwNWE2Li42MmE4
YjM2YzUwYTExNDdhZjk5MWYzNzgyZTM0ZTMxZDM2YTk5NTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIFNWR1BhdHRl
cm5FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogICAgIH0KIAogICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRl
KGF0dHJOYW1lKSB8fCBTVkdGaXRUb1ZpZXdCb3g6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUp
IHx8IFNWR1VSSVJlZmVyZW5jZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKLSAgICAg
ICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBk
YXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjpjaGlsZHJlbkNo
YW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICBpZiAoY2hhbmdlLnNvdXJjZSA9
PSBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVu
ZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBT
VkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5
bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVt
ZW50LmNwcAppbmRleCA4MGVkMDNmY2E0YjdjMzY2ODU0MDk1YzZkZWNiN2M1NmFjM2ZmZTMwLi4w
NjdmZTFkNDgxYmY0MGEwYTliNmQ5NWZjNzgwYmExNzgwMjc3ZDViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5RWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBTVkdQb2x5RWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAg
ICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlm
IChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxSZW5kZXJTVkdQYXRoKj4ocmVuZGVyZXIpLT5zZXROZWVkc1NoYXBlVXBkYXRlKCk7Ci0g
ICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAg
IHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwCmluZGV4IDA3NGE3Njc3OWQ3ZGNiMTA5MDdkNmU3MGRlZTMwYmJlYzMwOTJjM2QuLmM0ZmMw
ZGIyMDIxZTJjMTU2YmJmZGVkNTEzNzUyZjFlN2E1ZTQ5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZv
aWQgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25B
dHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQg
Z3VhcmQoKnRoaXMpOwogICAgICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1hdGlvbigp
OwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAg
ICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4IDdjODQ5MTI5
MzE3N2U2Y2FkZjZlYWEwNWE5ZjY4NTBhYWY5ZGZkMDUuLjFhYjEyOWQ5OGQ3OThiMzdmNTA2ODQ2
NTJiYjM2YTQ5MzI4M2NiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKQEAg
LTEzNyw3ICsxMzcsNyBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldEN1cnJlbnRUcmFuc2xhdGUo
Y29uc3QgRmxvYXRQb2ludCYgdHJhbnNsYXRpb24pCiAKIHZvaWQgU1ZHU1ZHRWxlbWVudDo6dXBk
YXRlQ3VycmVudFRyYW5zbGF0ZSgpCiB7Ci0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNo
YWluQXJlRGlydHkoKTsKKyAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsK
ICAgICBpZiAocGFyZW50Tm9kZSgpID09ICZkb2N1bWVudCgpICYmIGRvY3VtZW50KCkucmVuZGVy
VmlldygpKQogICAgICAgICBkb2N1bWVudCgpLnJlbmRlclZpZXcoKS0+cmVwYWludCgpOwogfQpA
QCAtMjI0LDE0ICsyMjQsMTQgQEAgdm9pZCBTVkdTVkdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgICAgICAgICBy
ZW5kZXJlci0+dmlldygpLnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJl
RGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoU1ZHRml0VG9WaWV3Qm94Ojppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlz
LT5yZW5kZXJlcigpKQogICAgICAgICAgICAgcmVuZGVyZXItPnNldE5lZWRzVHJhbnNmb3JtVXBk
YXRlKCk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7
CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAppbmRleCBh
ZDgzMjM5OWU2ZGVkYzEwOTA4MzM2MDAxMDFhMDgxZjI0YTA3OTUxLi5lMjExY2JlOTVhOTUwMDMx
MzJkM2RkYzk1NmY3MzE5NTBhZDBjZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RvcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVu
dC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBTVkdTdG9wRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBpZiAoUHJvcGVydHlS
ZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgQVNTRVJUKGF0
dHJOYW1lID09IFNWR05hbWVzOjpvZmZzZXRBdHRyKTsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlk
YXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0
b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENo
YW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmNwcAppbmRleCBjZTQ3ZTI3MzZjNzQ1M2E0ZWNhZjc2MDU1MTE3NzFkNzkxZjdkMjI1
Li44ODQ0YjMzOTk3NDNiN2U5M2Y0YzM4MTVhZTg3OGJkZTQxM2ExNzRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIFNWR1RSZWZF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogICAgIGlmIChTVkdVUklSZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7
CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAg
ICBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBmODRjMzRiNDQwMTJkYWFjZDgzOTViMTYy
YzQ4MTc2MDU0YzdmZWNmLi41MDcyOTkzOWM1MjMyM2E2NTlhZjZiZGFkMzE4M2YyYzEyZGJlZTAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAt
MTg0LDcgKzE4NCw3IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgbV9zcGVj
aWZpZWRUZXh0TGVuZ3RoID0gbV90ZXh0TGVuZ3RoLT5iYXNlVmFsKCktPnZhbHVlKCk7CiAKICAg
ICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNW
R1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCmluZGV4IDA3OGMwYzc4MTFi
NzRiMDE2ZjEzNjc3NjgxM2NiNjM4YTZkMzFhNzEuLmUzYmQwZjM4YjMyYjYwMTFhODcxZTA5YjBj
ZTdiYmQ2YmIwOTY4YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0
aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQu
Y3BwCkBAIC05MywxMyArOTMsMTMgQEAgdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIGlmIChh
dHRyTmFtZSA9PSBTVkdOYW1lczo6c3RhcnRPZmZzZXRBdHRyKQogICAgICAgICAgICAgdXBkYXRl
UmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJ
bkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVs
ZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChTVkdVUklS
ZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIGJ1aWxkUGVu
ZGluZ1Jlc291cmNlKCk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFy
ZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKaW5kZXggYmFhNTUxZGMzZjMxNDBkZTJlNTE1Y2Y5NTQ0
MGM0ZGRkZjVlN2M3OS4uMDdhMDY5YmVhNTE4NDlkZTA5Mzg1MjA3NGIxMzgyM2E3ODE1MWJmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNw
cApAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtCiAgICAgICAgICAg
ICBpZiAoYXV0byogdGV4dEFuY2VzdG9yID0gUmVuZGVyU1ZHVGV4dDo6bG9jYXRlUmVuZGVyU1ZH
VGV4dEFuY2VzdG9yKCpyZW5kZXJlcikpCiAgICAgICAgICAgICAgICAgdGV4dEFuY2VzdG9yLT5z
ZXROZWVkc1Bvc2l0aW9uaW5nVmFsdWVzVXBkYXRlKCk7CiAgICAgICAgIH0KLSAgICAgICAgc2V0
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCAwNTVkZDUwMjRlN2U0NzE2MDJiMjMz
ZTg3N2E1YmNjYTRlMTE3ZDU2Li40MWQ1YmU2ZWMzY2VlZDBkZGNiNDgxZTg1MjkzZWUxOWViYzll
YjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC0xNjUsNyArMTY1LDcg
QEAgdm9pZCBTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgaWYgKGF1dG8gdGFyZ2V0Q2xvbmUgPSB0aGlz
LT50YXJnZXRDbG9uZSgpKQogICAgICAgICAgICAgICAgIHRyYW5zZmVyU2l6ZUF0dHJpYnV0ZXNU
b1RhcmdldENsb25lKCp0YXJnZXRDbG9uZSk7CiAgICAgICAgIH0KLSAgICAgICAgc2V0U1ZHUmVz
b3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVy
ZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCmluZGV4IGVhYTI2NTE2NGM0OTZhZGVhMzgyNWUxYjM0
OGUzZmE0MGQ5ZTBhNmMuLjRlMmU5NTRhYzdjMTc4NzdkNjk4MGMxZDdlN2UzMmQwYmNiMzllNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcApAQCAtNjIsNyArNjIsNyBAQCB2
b2lkIFNWR1ZpZXdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgICAgICBpZiAoIW1fdGFyZ2V0RWxlbWVudCkKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgbV90YXJnZXRFbGVtZW50LT5pbmhlcml0Vmlld0F0dHJpYnV0ZXMo
KnRoaXMpOwotICAgICAgICBtX3RhcmdldEVsZW1lbnQtPnNldFNWR1Jlc291cmNlc0luQW5jZXN0
b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIG1fdGFyZ2V0RWxlbWVudC0+dXBkYXRlU1ZHUmVu
ZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA4MDMzMmI1YTY3ZDQyMmJlZWU4YTQ5NjA0M2RiMjE1M2Q2YmJlYjIxLi42NzYzYWMzYmFiOGJh
ZWI0OWVkOWZlZjc5OTc4MDk0MzhiZjk4ODZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjIt
MDUtMTEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JF
U1NJT04gKHIyOTE3ODgpOiBNb3Rpb25NYXJrIFN1aXRzIHN1YnRlc3QgaXMgOSUgcmVncmVzc2Vk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAxMTIK
KyAgICAgICAgcmRhcjovLzkyNDA5OTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9ucy9hbmltYXRpb24tbGVhay1saXN0LXBy
b3BlcnR5LWluc3RhbmNlcy5odG1sOgorCisgICAgICAgIERvIGEgcmVuZGVyaW5nIHVwZGF0ZSBi
ZWZvcmUgY2hlY2tpbmcgZm9yIGxlYWtzLgorCiAyMDIyLTA1LTA5ICBNYW51ZWwgUmVnbyBDYXNh
c25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb11bV0sxXSBhY2Nl
c3NpYmlsaXR5L2FyaWEtY29tYm9ib3gtY29udHJvbC1vd25zLWVsZW1lbnRzLmh0bWwgaXMgY3Jh
c2hpbmcgYWZ0ZXIgMjUwMzI1QG1haW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1sZWFrLWxpc3QtcHJvcGVydHktaW5zdGFuY2VzLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRpb24tbGVhay1saXN0LXByb3BlcnR5LWluc3Rh
bmNlcy5odG1sCmluZGV4IGQwNmZiNDIwYTRkODFjYTBjZjAxOTJlNjgyOWJlMGM0Nzc4ZmEwYzAu
LmM2N2Q5YzVjMzU3MGU0NmQwZDU0MzFlODc2NzQxMjBiYWJkMDJiNWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGlvbi1sZWFrLWxpc3QtcHJvcGVydHktaW5z
dGFuY2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWxl
YWstbGlzdC1wcm9wZXJ0eS1pbnN0YW5jZXMuaHRtbApAQCAtMzcsNiArMzcsNyBAQAogICAgICAg
ICAgcmV0dXJuOwogICAgICB9CiAKKyAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgIC8vIE9uZSBnYygpIGNhbGwgaXMgbm90IGVu
b3VnaCBhbmQgY2F1c2VzIGZsYWtpbmVzcyBpbiBzb21lIHBsYXRmb3Jtcy4KQEAgLTQ4LDEyICs0
OSwxNSBAQAogICAgICBhcHBseVRyYW5zZm9ybSgpOwogICAgICByZW1vdmVSZWN0KCk7CiAKLSAg
ICAgLy8gT25lIGdjKCkgY2FsbCBpcyBub3QgZW5vdWdoIGFuZCBjYXVzZXMgZmxha2luZXNzIGlu
IHNvbWUgcGxhdGZvcm1zLgotICAgICBnYygpOwotICAgICBnYygpOwotICAgICB2YXIgZGVsdGEg
PSBpbnRlcm5hbHMubnVtYmVyT2ZMaXZlTm9kZXMoKSAtIG9yaWdpbmFsTGl2ZUVsZW1lbnRzOwot
ICAgICBzaG91bGRCZVplcm8oZGVsdGEudG9TdHJpbmcoKSk7Ci0gICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4geworICAg
ICAgICAgLy8gT25lIGdjKCkgY2FsbCBpcyBub3QgZW5vdWdoIGFuZCBjYXVzZXMgZmxha2luZXNz
IGluIHNvbWUgcGxhdGZvcm1zLgorICAgICAgICAgZ2MoKTsKKyAgICAgICAgIGdjKCk7CisgICAg
ICAgICB2YXIgZGVsdGEgPSBpbnRlcm5hbHMubnVtYmVyT2ZMaXZlTm9kZXMoKSAtIG9yaWdpbmFs
TGl2ZUVsZW1lbnRzOworICAgICAgICAgc2hvdWxkQmVaZXJvKGRlbHRhLnRvU3RyaW5nKCkpOwor
ICAgICAgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgfSk7CiAgfQogPC9zY3JpcHQ+CiA8Ym9keSBvbmxvYWQ9
InRlc3QoKSI+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459157</attachid>
            <date>2022-05-11 05:32:37 -0700</date>
            <delta_ts>2022-05-11 07:50:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240112-20220511153236.patch</filename>
            <type>text/plain</type>
            <size>53837</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRiMWY1M2ZkNTg5Njdk
OTdhYjc4ODNhZTE4YjRkMjY4YmU2ZWVhYS4uMGQzM2EwYmYwOGQ3YTZhNzE0NDQyN2Q0ZTg5MjUw
YjkwZTBjMTQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NyBAQAorMjAyMi0wNS0xMSAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI5
MTc4OCk6IE1vdGlvbk1hcmsgU3VpdHMgc3VidGVzdCBpcyA5JSByZWdyZXNzZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDExMgorICAgICAgICBy
ZGFyOi8vOTI0MDk5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbWVjaGFuaXNtIHRvIHNhZmVseSB1cGRhdGUgU1ZHIHJlbmRlcmVyIGZyb20g
ZWxlbWVudCB3aXRob3V0IHRyaWdnZXJpbmcgYW4gdW5uZWNlc3Nhcnkgc3R5bGUgcmVzb2x1dGlv
bi4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29s
dmVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVTVkdSZW5kZXJlcik6CisKKyAg
ICAgICAgVXNlIHRoZSBzYW1lIG1lY2hhbmlzbSBhcyB0ZXh0IHVwZGF0ZXMgdG8gc2NoZWR1bGUg
U1ZHIHJlbmRlcmluZyB1cGRhdGVzLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5z
dXJlUGVuZGluZ1JlbmRlclRyZWVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
Om5lZWRzU3R5bGVSZWNhbGMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRl
c3Ryb3lSZW5kZXJUcmVlKToKKworICAgICAgICBFbnN1cmUgYW55IHJlbWFpbmluZyBzdHlsZSB1
cGRhdGUgZ2V0IGRlbGV0ZWQgYWxvbmcgd2l0aCB0aGUgcmVuZGVyIHRyZWUuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudERhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnREYXRhOjpzdmdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6c2V0U1ZH
UmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkgY29uc3QpOiBEZWxldGVkLgorCisgICAg
ICAgIE5vdCBuZWVkZWQgYW55bW9yZSwgU3R5bGU6OlVwZGF0ZSByZW1lbWJlcnMgd2hhdCBuZWVk
cyB1cGRhdGluZy4KKworICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVu
ZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxl
bWVudFJlbmRlcmVyKToKKworICAgICAgICBTY2hlZHVsZSBhbiB1cGRhdGUuIEN1cnJlbnRseSB0
aGlzIHJlYWxseSBqdXN0IHNjaGVkdWxlcyBhIGxheW91dCB3aGljaCBwdWxscyBpbiB0aGUgY2hh
bmdlcyBmcm9tIHRoZSBlbGVtZW50LgorCisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6YWRkRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjphZGRTVkdSZW5kZXJlclVwZGF0ZSk6CisKKyAgICAg
ICAgQWRkIGEgYml0IHRvIEVsZW1lbnRVcGRhdGUgdG8gaW5kaWNhdGUgdGhhdCBTVkcgdXBkYXRl
IGlzIG5lZWRlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmg6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6CisgICAgICAgICogc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDbGlwUGF0aEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBh
dGhFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxl
bWVudENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzZXRTVkdSZXNvdXJj
ZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50OjppbnZhbGlkYXRlU1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQp
OiBEZWxldGVkLgorCisgICAgICAgIFJlcGxhY2Ugc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNo
YWluQXJlRGlydHkgd2l0aCB0aGUgbmV3IG1lY2hhbmlzbS4gRG9uJ3QgaW52YWxpZGF0ZSBzdHls
ZS4KKworICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb3NpdGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnNldE9yZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpzZXRLZXJuZWxVbml0
TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFk
b3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6
OnNldFN0ZERldmlhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dDo6c2V0U3RkRGV2aWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZFBl
bmRpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c2V0UmFkaXVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVPZmZzZXRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGRVRpbGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjaGlsZHJlbkNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjppbnZhbGlkYXRlRmlsdGVyUHJpbWl0aXZlUGFyZW50KToKKyAgICAgICAgKiBzdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdHZW9t
ZXRyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2VvbWV0cnlFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHcmFkaWVudEVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZCk6CisgICAgICAgICogc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXJrZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgICogc3Zn
L1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAg
ICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dHRlcm5FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdHRlcm5FbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICog
c3ZnL1NWR1N0b3BFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKwogMjAyMi0w
NS0wOSAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtOaWNv
c2lhXSBDYW52YXMgYW5pbWF0aW9ucyBkb24ndCB3b3JrIHdpdGggdGhyZWFkZWQgcmVuZGVyaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiNDM0MTkzNmI1ZDIzMDFkZThhNDg4YjdiMTAz
Mjk5N2E5ZDc5ZmE5Li5iMGEzOTI1N2FmOTY3YWYxNDY5MDQ3NjAzZTU1MzY2NmI3Zjc2OTliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIERvY3VtZW50
OjpyZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1fZnVsbHNjcmVlbk1hbmFnZXItPmNsZWFyKCk7
CiAjZW5kaWYKICAgICAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7Ci0gICAg
ICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0geyB9OworICAgICAgICBtX3BlbmRp
bmdSZW5kZXJUcmVlVXBkYXRlID0geyB9OwogCiAgICAgICAgIG1fZm9udExvYWRlci0+c3RvcExv
YWRpbmdBbmRDbGVhckZvbnRzKCk7CiAKQEAgLTIwOTIsNyArMjA5Miw3IEBAIHZvaWQgRG9jdW1l
bnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAgICAgIH0K
IAotICAgICAgICBTdHlsZTo6VHJlZVJlc29sdmVyIHJlc29sdmVyKCp0aGlzLCBXVEZNb3ZlKG1f
cGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKSk7CisgICAgICAgIFN0eWxlOjpUcmVlUmVzb2x2
ZXIgcmVzb2x2ZXIoKnRoaXMsIFdURk1vdmUobV9wZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSkpOwog
ICAgICAgICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVzb2x2ZSgpOwogCiAgICAgICAg
IHdoaWxlIChyZXNvbHZlci5oYXNVbnJlc29sdmVkUXVlcnlDb250YWluZXJzKCkgJiYgc3R5bGVV
cGRhdGUpIHsKQEAgLTIxNTQsMTIgKzIxNTQsMjcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVGV4
dFJlbmRlcmVyKFRleHQmIHRleHQsIHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0LCB1bnMK
ICAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSkKLSAgICAgICAgbV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlzKTsKKyAg
ICBlbnN1cmVQZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSgpLmFkZFRleHQodGV4dCwgeyBvZmZzZXRP
ZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIHN0ZDo6bnVsbG9wdCB9KTsKK30K
Kwordm9pZCBEb2N1bWVudDo6dXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZW5zdXJlUGVuZGluZ1JlbmRlclRyZWVVcGRhdGUoKS5hZGRTVkdSZW5kZXJlclVwZGF0ZShl
bGVtZW50KTsKK30KKworU3R5bGU6OlVwZGF0ZSYgRG9jdW1lbnQ6OmVuc3VyZVBlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlKCkKK3sKKyAgICBBU1NFUlQoaGFzTGl2aW5nUmVuZGVyVHJlZSgpKTsKIAot
ICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0
T2ZSZXBsYWNlZFRleHQsIGxlbmd0aE9mUmVwbGFjZWRUZXh0LCBzdGQ6Om51bGxvcHQgfSk7Cisg
ICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVXBkYXRlKQorICAgICAgICBtX3BlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7CiAKICAgICBz
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSh7IH0pOworCisgICAgcmV0dXJuICptX3BlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlOwogfQogCiBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29u
c3QKQEAgLTIxNzMsNyArMjE4OCw3IEBAIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMo
KSBjb25zdAogICAgIGlmIChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBpZiAobV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpCisgICAgaWYg
KG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
aWYgKHN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nVXBkYXRlKCkpCkBAIC0yNTk0LDYgKzI2MDksOCBA
QCB2b2lkIERvY3VtZW50OjpkZXN0cm95UmVuZGVyVHJlZSgpCiAgICAgaWYgKHZpZXcoKSkKICAg
ICAgICAgdmlldygpLT53aWxsRGVzdHJveVJlbmRlclRyZWUoKTsKIAorICAgIG1fcGVuZGluZ1Jl
bmRlclRyZWVVcGRhdGUgPSB7IH07CisKICAgICBpZiAobV9kb2N1bWVudEVsZW1lbnQpCiAgICAg
ICAgIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJlbmRlcmVycygqbV9kb2N1bWVudEVsZW1l
bnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ0M2VhZDllMmQxMTQ0MzQ0NjRlMjliMmMx
YmNhMWYwOGI4M2UwNmMuLjViMzk0NTcxMjM3NzI3NTA2Y2RkZjQ4NWU5YTVhNGQ2YjI2ZjQ3OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMDUsNiArMjA1LDcgQEAgY2xhc3MgUmVuZGVyVmll
dzsKIGNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3MgUmVzaXplT2Jz
ZXJ2ZXI7CiBjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdFbGVtZW50Owog
Y2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNWR1VzZUVsZW1lbnQ7CiBjbGFzcyBTV0NsaWVu
dENvbm5lY3Rpb247CkBAIC0xMzU2LDYgKzEzNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJ
c1Jlc29sdmluZ1RyZWVTdHlsZShib29sKTsKIAogICAgIHZvaWQgdXBkYXRlVGV4dFJlbmRlcmVy
KFRleHQmLCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZS
ZXBsYWNlZFRleHQpOworICAgIHZvaWQgdXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYpOwog
CiAgICAgLy8gUmV0dXJuIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGFy
Z3VtZW50IGlzIG51bGwgb3IgZW1wdHkuCiAgICAgTG9jYWxlJiBnZXRDYWNoZWRMb2NhbGUoY29u
c3QgQXRvbVN0cmluZyYgbG9jYWxlID0gbnVsbEF0b20oKSk7CkBAIC0xODA2LDYgKzE4MDgsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgYWRkVG9Eb2N1bWVudHNNYXAoKTsKICAgICB2b2lkIHJlbW92
ZUZyb21Eb2N1bWVudHNNYXAoKTsKIAorICAgIFN0eWxlOjpVcGRhdGUmIGVuc3VyZVBlbmRpbmdS
ZW5kZXJUcmVlVXBkYXRlKCk7CisKICAgICBOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlv
bkNsaWVudCgpIGZpbmFsOwogCiAgICAgY29uc3QgUmVmPGNvbnN0IFNldHRpbmdzPiBtX3NldHRp
bmdzOwpAQCAtMTg4OCw3ICsxODkyLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBUaW1lciBtX3N0
eWxlUmVjYWxjVGltZXI7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U3R5bGU6OlVwZGF0ZT4gbV9w
ZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN0eWxlOjpV
cGRhdGU+IG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGU7CiAKICAgICBFbGVtZW50KiBtX2Nzc1Rh
cmdldCB7IG51bGxwdHIgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaAppbmRleCBmMTQ3MWE4
ZTlmNzUxMmE1NWM4YmY5M2E5NDQ2MDM4YjQ4MjJjMzE1Li5lMjRlMmUxOWIxNWM3YzZmNmU1ZjYz
NDlmOGEyZjZhODVjMTIyM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaApAQCAtMTI1LDEz
ICsxMjUsMTIgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVpbnQzMl90IG1fYXJyYXlTaXplQW5k
RmxhZ3M7CiAKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19hcnJheVNpemUgPSAyNzsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnQ291bnQgPSA2OworICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBzX2ZsYWdDb3VudCA9IDU7CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNf
ZmxhZ0lzVW5pcXVlID0gMTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnSGFzTmFt
ZUF0dHJpYnV0ZSA9IDEgPDwgMTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnUHJl
c2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5ID0gMSA8PCAyOwogICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBzX2ZsYWdTdHlsZUF0dHJpYnV0ZUlzRGlydHkgPSAxIDw8IDM7CiAgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IHNfZmxhZ0FuaW1hdGVkU1ZHQXR0cmlidXRlc0FyZURpcnR5ID0gMSA8
PCA0OwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2ZsYWdTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSA9IDEgPDwgNTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19m
bGFnc01hc2sgPSAoMSA8PCBzX2ZsYWdDb3VudCkgLSAxOwogICAgIC8vIEZJWE1FOiBjb3VsZCB0
aGUgU1ZHIHNwZWNpZmljIGZsYWdzIGdvIHRvIHNvbWUgU1ZHIGNsYXNzPwogCkBAIC0xNjIsOSAr
MTYxLDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgYW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGly
dHkoKSBjb25zdCB7IHJldHVybiBtX2FycmF5U2l6ZUFuZEZsYWdzICYgc19mbGFnQW5pbWF0ZWRT
VkdBdHRyaWJ1dGVzQXJlRGlydHk7IH0KICAgICB2b2lkIHNldEFuaW1hdGVkU1ZHQXR0cmlidXRl
c0FyZURpcnR5KGJvb2wgZGlydHkpIGNvbnN0IHsgdXBkYXRlRmxhZyhzX2ZsYWdBbmltYXRlZFNW
R0F0dHJpYnV0ZXNBcmVEaXJ0eSwgZGlydHkpOyB9CiAKLSAgICBib29sIHN2Z1Jlc291cmNlc0lu
QW5jZXN0b3JDaGFpbkFyZURpcnR5KCkgY29uc3QgeyByZXR1cm4gbV9hcnJheVNpemVBbmRGbGFn
cyAmIHNfZmxhZ1NWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5OyB9Ci0gICAgdm9p
ZCBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eShib29sIGRpcnR5KSBjb25z
dCB7IHVwZGF0ZUZsYWcoc19mbGFnU1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHks
IGRpcnR5KTsgfQotCiAgICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVzPiBtX2lubGlu
ZVN0eWxlOwogICAgIG11dGFibGUgU3BhY2VTcGxpdFN0cmluZyBtX2NsYXNzTmFtZXM7CiAgICAg
bXV0YWJsZSBBdG9tU3RyaW5nIG1faWRGb3JTdHlsZVJlc29sdXRpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcApp
bmRleCA1ZDRmNjQ4ZDk2MDdkYzBhYjNlMDdmNGFmYzNjNjVhNWJlODFmZWVmLi5iMDZlMzAwOTc0
OTYyZGYxYjBjOTVmY2RlY2ZlYzBhZmZhYzEwOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTQyLDYg
KzQyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0
aUNvbHVtbkZsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtblNldC5oIgorI2luY2x1
ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZVVwZGF0ZXJHZW5l
cmF0ZWRDb250ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTE5Myw5ICsxOTQsNiBAQCB2b2lkIFJlbmRlclRyZWVV
cGRhdGVyOjp1cGRhdGVSZW5kZXJUcmVlKENvbnRhaW5lck5vZGUmIHJvb3QpCiAgICAgICAgIGlm
IChlbGVtZW50VXBkYXRlKQogICAgICAgICAgICAgdXBkYXRlRWxlbWVudFJlbmRlcmVyKGVsZW1l
bnQsICplbGVtZW50VXBkYXRlKTsKIAotICAgICAgICBpZiAoaXM8U1ZHRWxlbWVudD4oZWxlbWVu
dCkpCi0gICAgICAgICAgICBkb3duY2FzdDxTVkdFbGVtZW50PihlbGVtZW50KS5pbnZhbGlkYXRl
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQoKTsKLQogICAgICAgICBzdG9yZVBy
ZXZpb3VzUmVuZGVyZXIoZWxlbWVudCk7CiAKICAgICAgICAgYm9vbCBtYXlIYXZlUmVuZGVyZWRE
ZXNjZW5kYW50cyA9IGVsZW1lbnQucmVuZGVyZXIoKSB8fCAoZWxlbWVudC5oYXNEaXNwbGF5Q29u
dGVudHMoKSAmJiBzaG91bGRDcmVhdGVSZW5kZXJlcihlbGVtZW50LCByZW5kZXJUcmVlUG9zaXRp
b24oKS5wYXJlbnQoKSkpOwpAQCAtMzA2LDYgKzMwNCwxMiBAQCB2b2lkIFJlbmRlclRyZWVVcGRh
dGVyOjp1cGRhdGVSZW5kZXJlclN0eWxlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBSZW5kZXJT
dHlsZQogCiB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVFbGVtZW50UmVuZGVyZXIoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUmIGVsZW1lbnRVcGRhdGUp
CiB7CisgICAgaWYgKGVsZW1lbnRVcGRhdGUudXBkYXRlU1ZHUmVuZGVyZXIgJiYgZWxlbWVudC5y
ZW5kZXJlcigpKQorICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBh
cmVudFJlc291cmNlSW52YWxpZGF0aW9uKCplbGVtZW50LnJlbmRlcmVyKCkpOworCisgICAgaWYg
KCFlbGVtZW50VXBkYXRlLnN0eWxlKQorICAgICAgICByZXR1cm47CisKICNpZiBFTkFCTEUoQ09O
VEVOVF9DSEFOR0VfT0JTRVJWRVIpCiAgICAgQ29udGVudENoYW5nZU9ic2VydmVyOjpTdHlsZUNo
YW5nZVNjb3BlIG9ic2VydmluZ1Njb3BlKG1fZG9jdW1lbnQsIGVsZW1lbnQpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKaW5kZXggMjQyN2IyNjU3NGIwYzJmYWJmMzAw
NzQxZGRkYmU0YmY4Y2ViOTE4ZC4uOWFhNjNjYjU3M2UyZGI1NDQ3ZDI1YmI5YmU2ODU2MGIwYmFh
OTVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1
ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsMTMgKzg4LDE5IEBAIFJl
bmRlclN0eWxlKiBVcGRhdGU6OmVsZW1lbnRTdHlsZShjb25zdCBFbGVtZW50JiBlbGVtZW50KQog
CiB2b2lkIFVwZGF0ZTo6YWRkRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBFbGVtZW50KiBwYXJl
bnQsIEVsZW1lbnRVcGRhdGUmJiBlbGVtZW50VXBkYXRlKQogewotICAgIEFTU0VSVCghbV9lbGVt
ZW50cy5jb250YWlucygmZWxlbWVudCkpOwogICAgIEFTU0VSVChjb21wb3NlZFRyZWVBbmNlc3Rv
cnMoZWxlbWVudCkuZmlyc3QoKSA9PSBwYXJlbnQpOwogCiAgICAgbV9yb290cy5yZW1vdmUoJmVs
ZW1lbnQpOwogICAgIGFkZFBvc3NpYmxlUm9vdChwYXJlbnQpOwogCi0gICAgbV9lbGVtZW50cy5h
ZGQoJmVsZW1lbnQsIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkpOworICAgIGF1dG8gcmVzdWx0ID0g
bV9lbGVtZW50cy5hZGQoJmVsZW1lbnQsIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkpOworCisgICAg
aWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICBhdXRvJiBlbnRyeSA9IHJlc3VsdC5p
dGVyYXRvci0+dmFsdWU7CisgICAgICAgIEFTU0VSVChlbnRyeS51cGRhdGVTVkdSZW5kZXJlcik7
CisgICAgICAgIGVudHJ5ID0gV1RGTW92ZShlbGVtZW50VXBkYXRlKTsKKyAgICAgICAgZW50cnku
dXBkYXRlU1ZHUmVuZGVyZXIgPSB0cnVlOworICAgIH0KIH0KIAogdm9pZCBVcGRhdGU6OmFkZFRl
eHQoVGV4dCYgdGV4dCwgRWxlbWVudCogcGFyZW50LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkK
QEAgLTEyMiw2ICsxMjksMTMgQEAgdm9pZCBVcGRhdGU6OmFkZFRleHQoVGV4dCYgdGV4dCwgVGV4
dFVwZGF0ZSYmIHRleHRVcGRhdGUpCiAgICAgYWRkVGV4dCh0ZXh0LCBjb21wb3NlZFRyZWVBbmNl
c3RvcnModGV4dCkuZmlyc3QoKSwgV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CiB9CiAKK3ZvaWQgVXBk
YXRlOjphZGRTVkdSZW5kZXJlclVwZGF0ZShTVkdFbGVtZW50JiBlbGVtZW50KQoreworICAgIGF1
dG8gZWxlbWVudFVwZGF0ZSA9IEVsZW1lbnRVcGRhdGUgeyB9OworICAgIGVsZW1lbnRVcGRhdGUu
dXBkYXRlU1ZHUmVuZGVyZXIgPSB0cnVlOworICAgIGFkZEVsZW1lbnQoZWxlbWVudCwgY29tcG9z
ZWRUcmVlQW5jZXN0b3JzKGVsZW1lbnQpLmZpcnN0KCksIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkp
OworfQorCiB2b2lkIFVwZGF0ZTo6YWRkUG9zc2libGVSb290KEVsZW1lbnQqIGVsZW1lbnQpCiB7
CiAgICAgaWYgKCFlbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAppbmRleCAx
ZjgyMDlkYzU3OWZlYzAwODU0OGVhNTJmYmEyNTVmNDNkNTUxMDFkLi5iNmNmNDYzY2RhMDk5ODMx
NDc5MGY3YTg4ZTk3MTJmODhlNmM0OWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgK
QEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3Mg
Tm9kZTsKIGNsYXNzIFJlbmRlclN0eWxlOworY2xhc3MgU1ZHRWxlbWVudDsKIGNsYXNzIFRleHQ7
CiAKIG5hbWVzcGFjZSBTdHlsZSB7CkBAIC00NSw2ICs0Niw3IEBAIHN0cnVjdCBFbGVtZW50VXBk
YXRlIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlOwogICAgIENoYW5n
ZSBjaGFuZ2UgeyBDaGFuZ2U6Ok5vbmUgfTsKICAgICBib29sIHJlY29tcG9zaXRlTGF5ZXIgeyBm
YWxzZSB9OworICAgIGJvb2wgdXBkYXRlU1ZHUmVuZGVyZXIgeyBmYWxzZSB9OwogfTsKIAogc3Ry
dWN0IFRleHRVcGRhdGUgewpAQCAtNzYsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRF
bGVtZW50KEVsZW1lbnQmLCBFbGVtZW50KiBwYXJlbnQsIEVsZW1lbnRVcGRhdGUmJik7CiAgICAg
dm9pZCBhZGRUZXh0KFRleHQmLCBFbGVtZW50KiBwYXJlbnQsIFRleHRVcGRhdGUmJik7CiAgICAg
dm9pZCBhZGRUZXh0KFRleHQmLCBUZXh0VXBkYXRlJiYpOworICAgIHZvaWQgYWRkU1ZHUmVuZGVy
ZXJVcGRhdGUoU1ZHRWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVS
b290KEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQuY3BwCmluZGV4IDc0ZGRmOGQ5N2IxZmZjZDZkYzgxMDZmMDlkM2ZmM2VmNjg1N2Q3MTEu
LjUwODA0YmE0NzgwMWE2MTk0ZmRlNjZiMDk0NzhhODcwYjVkYWU0ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcApAQCAtMjUzLDcgKzI1Myw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KCkK
ICAgICBhdXRvIHVwZGF0ZVRhcmdldEVsZW1lbnQgPSBbXShTVkdFbGVtZW50JiBlbGVtZW50KSB7
CiAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigpKQogICAgICAg
ICAgICAgcmVuZGVyZXItPnNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCk7Ci0gICAgICAgIGVsZW1l
bnQuc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgZWxl
bWVudC51cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICB9OwogCiAgICAg
dXBkYXRlVGFyZ2V0RWxlbWVudCgqdGFyZ2V0RWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IGFmZDYwZWJlMDg4ZTQzZDc3YTY4NjhhNWM1NDY3
ZjRkMTg1MDA1NjQuLmVjNDU1NzZmODRiNzc5MjNhZTIzNTJlNWVkODE1NjgzNWQ0MjNiODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBAIC02Nyw3ICs2Nyw3
IEBAIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0aGlzKTsKIAotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5B
cmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODEsNyArODEsNyBAQCB2b2lkIFNWR0NsaXBQ
YXRoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAg
ICAgaWYgKGNoYW5nZS5zb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCAwZWY5MzYyOGRmZTVlN2Q0YTliM2I5MmY5MGY0
OGQ5NTQ1MDRlYTQwLi40MzBkNmUyZDcyYzRjZTYxOWJlZDgxMjJkNzFjNTg5NTM2ZDQzOGI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC04ODMsMjAgKzg4Myw5IEBAIHZvaWQgU1ZH
RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtCiAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRT
dHlsZShzdHlsZSwgcHJvcGVydHlJRCwgdmFsdWUpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OnNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCkKK3ZvaWQgU1ZHRWxlbWVudDo6
dXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCkKIHsKLSAgICBlbnN1cmVVbmlxdWVF
bGVtZW50RGF0YSgpLnNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KHRydWUp
OwotICAgIGludmFsaWRhdGVTdHlsZSgpOwotfQotCi12b2lkIFNWR0VsZW1lbnQ6OmludmFsaWRh
dGVTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5JZk5lZWRlZCgpCi17Ci0gICAgaWYgKCFlbGVt
ZW50RGF0YSgpIHx8ICFlbGVtZW50RGF0YSgpLT5zdmdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5B
cmVEaXJ0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoYXV0byByZW5kZXJlciA9IHRo
aXMtPnJlbmRlcmVyKCkpCi0gICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0
QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKLSAgICBlbGVtZW50RGF0
YSgpLT5zZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eShmYWxzZSk7CisgICAg
ZG9jdW1lbnQoKS51cGRhdGVTVkdSZW5kZXJlcigqdGhpcyk7CiB9CiAKIHZvaWQgU1ZHRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4IGUxOWJlMGRhZGJmOTQyMjk3ZmI3MzY4MDljNjZiNjk5
Yjg4YmEwZmUuLjVjYWNmMTVlZjA3NDM2YzhhNDM4NjVmNDVhYzk3NzkyYzA3MDI0MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAtODQsOCArODQsNyBAQCBwdWJsaWM6CiAKICAgICBpbmxp
bmUgdm9pZCBzZXRBbmltYXRlZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eSgpOwogICAgIGlubGluZSB2
b2lkIHNldFByZXNlbnRhdGlvbmFsSGludFN0eWxlSXNEaXJ0eSgpOwotICAgIHZvaWQgc2V0U1ZH
UmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKLSAgICB2b2lkIGludmFsaWRhdGVT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5JZk5lZWRlZCgpOworICAgIHZvaWQgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAKICAgICAvLyBUaGUgaW5zdGFuY2VzIG9mIGFu
IGVsZW1lbnQgYXJlIGNsb25lcyBtYWRlIGluIHNoYWRvdyB0cmVlcyB0byBpbXBsZW1lbnQgPHVz
ZT4uCiAgICAgY29uc3QgV2Vha0hhc2hTZXQ8U1ZHRWxlbWVudD4mIGluc3RhbmNlcygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKaW5kZXggZDhjZThmMTE2
MGMwZDNhYTBkZDQxZDQ5NzhiYzUzOGM0Mzk3YTc3MC4uNTAyNWNiMzcyYzQzMWFiYTQwOTU0MGMw
NmMwN2RmYzRhYzU5NjYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
Y3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgICAgICBwcmlt
aXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFtZSA9PSBT
VkdOYW1lczo6aW4yQXR0cik7Ci0gICAgICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9y
Q2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50
Q2hhbmdlKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IGVjOTgzYmRlMzhk
NmJmYjMxMWZmODQxYWU4ZGRhYWE1OTYzNDdiMWUuLjI1MGU1NmFjZmY0NmIyMmQ5ODViZTMwNmY0
MDg1YWZiNmRhZmQ0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50LmNwcApAQCAtODcsNyArODcsNyBAQCB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewog
ICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIpCi0gICAgICAgICAgICBzZXRTVkdSZXNv
dXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRlU1ZHUmVu
ZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNT
RVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjp0eXBlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1l
czo6dmFsdWVzQXR0cik7CiAgICAgICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0
dHJOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAK
aW5kZXggYTI5MjRiMjE5NmRmYjI1NmU2NGE1ZTA2Njg4MTE0MGZjYzBiMTYwMy4uMzUyNjFmOWU1
MjcwZjRjMzcwZWMxYzkwODdlOGE5MzUyY2RlYzM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIFNWR0ZF
Q29tcG9zaXRlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShh
dHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhp
cyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1l
ID09IFNWR05hbWVzOjppbjJBdHRyKQotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNl
c3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxl
bWVudENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6azFBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprMkF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmszQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6azRB
dHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpvcGVyYXRvckF0dHIpOwogICAgICAgICAgICAg
cHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCA3YzE2NjQzZWU5ZDY5
N2QxMGQ0ZDYzNzgxZjFjZTM4ZjUyZDZlZTgxLi45ZGRjYjE1YTBhMjVlYjlmYjBhNDM2YmViNGFh
YjJhYzdmZmNiN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5jcHAKQEAgLTE2MSwxNCArMTYxLDE0IEBAIHZvaWQgU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6OnNldE9yZGVyKGZsb2F0IHgsIGZsb2F0IHkpCiB7CiAgICAgbV9vcmRl
clgtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBtX29yZGVyWS0+c2V0QmFzZVZhbEludGVy
bmFsKHkpOwotICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7Cisg
ICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQ6OnNldEtlcm5lbFVuaXRMZW5ndGgoZmxvYXQgeCwgZmxvYXQg
eSkKIHsKICAgICBtX2tlcm5lbFVuaXRMZW5ndGhYLT5zZXRCYXNlVmFsSW50ZXJuYWwoeCk7CiAg
ICAgbV9rZXJuZWxVbml0TGVuZ3RoWS0+c2V0QmFzZVZhbEludGVybmFsKHkpOwotICAgIHNldFNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVy
ZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkBA
IC0xNzYsNyArMTc2LDcgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmEKICAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFu
Y2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpvcmRlckF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbE1hdHJpeEF0dHIpCi0gICAgICAgICAgICBzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjplZGdlTW9kZUF0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmRpdmlzb3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpiaWFzQXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGFyZ2V0WEF0dHIKICAgICAgICAgICAgICAgICB8
fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGFyZ2V0WUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2
ZUFscGhhQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQuY3BwCmluZGV4IDdlYzA1ZGYwYzI1ZDBhNzFhZjY3NGI3OTA0ODRiMDhkYWI3
YTAzMDMuLmI1YzQzYzRiZWFkNmMzNmEzZGMwOTZmMmViNDdiMjMyN2VmOTMwMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCkBA
IC0xMjgsNyArMTI4LDcgQEAgdm9pZCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck4KICAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFu
Y2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6aW5BdHRyKQotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVu
dENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6ZGlmZnVzZUNvbnN0YW50QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
c3VyZmFjZVNjYWxlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0
aEF0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQu
Y3BwCmluZGV4IGExNWJhNGIzZTFlMTQ3ZmY0ZTIxYzhkYmFiYTZmYmFkMDg4YTUzM2QuLmYyY2Ux
Nzk3MjNhZjgxNjI1NWJmYWVlNDQ5ZWFkZDJjYjY1YTcwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCkBAIC0xMDIsNyArMTAy
LDcgQEAgdm9pZCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck4KICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6
aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRp
b25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6
aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjppbjJBdHRyKQotICAgICAgICAgICAgc2V0
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0
ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eENoYW5uZWxTZWxlY3RvckF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlDaGFubmVsU2VsZWN0b3JBdHRyIHx8IGF0dHJOYW1lID09
IFNWR05hbWVzOjpzY2FsZUF0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hh
bmdlZChhdHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxl
bWVudC5jcHAKaW5kZXggZDFlNjE4NDhhYWMxODI2ZjQxNjdiNWYxMTE1YmYxNWQ5ZmFkY2I5Mi4u
MGI1MDhhMTI4MThjOGYzZWQ2NTgwMDA0ODZiYjdhNTAzMTBhMTFlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2
b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnNldFN0ZERldmlhdGlvbihmbG9hdCB4LCBmbG9h
dCB5KQogewogICAgIG1fc3RkRGV2aWF0aW9uWC0+c2V0QmFzZVZhbEludGVybmFsKHgpOwogICAg
IG1fc3RkRGV2aWF0aW9uWS0+c2V0QmFzZVZhbEludGVybmFsKHkpOwotICAgIHNldFNWR1Jlc291
cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JF
bGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAo
UHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAg
SW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jl
c291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRl
cmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCmluZGV4IGNiMTkw
YWQzNTQxZDIyY2ZmMGNlN2NjYmY1OGUzNmNjMGZiNWM3M2UuLmYyOGY5ODEzMTBlMzRhM2M4NGQ1
NGVmNmFhZTcwNWI2OWFiZDE2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50OjpzZXRTdGREZXZpYXRpb24oZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAgICBt
X3N0ZERldmlhdGlvblgtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBtX3N0ZERldmlhdGlv
blktPnNldEJhc2VWYWxJbnRlcm5hbCh5KTsKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9y
Q2hhaW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgp
OwogfQogCiB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCkBAIC04Nyw3
ICs4Nyw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lCiB7CiAgICAgaWYgKFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52
YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFu
Y2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1l
bnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggNGQ3MzIyOTRmZDU4MjNjNjlkZjQwOGFlMTZlYWM5
NDI3YmM2Yzk1Yi4uYzMxOWY1NWRmNWVmZWM1ZDdmZTlhOTVhZjMzZTY1NzZhZDc1MDVmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcg
QEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6YnVpbGRQZW5kaW5nUmVzb3VyY2UoKQogICAgIH0g
ZWxzZSBpZiAoaXM8U1ZHRWxlbWVudD4oKnRhcmdldC5lbGVtZW50KSkKICAgICAgICAgZG93bmNh
c3Q8U1ZHRWxlbWVudD4oKnRhcmdldC5lbGVtZW50KS5hZGRSZWZlcmVuY2luZ0VsZW1lbnQoKnRo
aXMpOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAg
ICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogdm9pZCBTVkdGRUlt
YWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBTVkdGRUltYWdl
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkp
IHsKICAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0cik7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMp
OwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAg
ICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
Y3BwCmluZGV4IDYxMDgyYTQ5ODM5MzFkOGFiNzAzODUzNDRlNjI3YzNjYjU3NTI3NDEuLmJkODhj
ZDgxZTBmMWZmMmE1MmIyNTk0YWQ2NmI2YTRmZWUwZWNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBT
VkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzZXRSYWRpdXMoZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAg
ICBtX3JhZGl1c1gtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBtX3JhZGl1c1ktPnNldEJh
c2VWYWxJbnRlcm5hbCh5KTsKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVE
aXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiB2
b2lkIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQpAQCAtMTAxLDcgKzEwMSw3IEBA
IHZvaWQgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFy
ZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRy
KQotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsK
KyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6b3BlcmF0
b3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpyYWRpdXNBdHRyKTsKICAgICAgICAgICAg
IHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVPZmZzZXRFbGVtZW50LmNwcAppbmRleCBjYjk0MWQ0NTE0MjRlMDBjYjQ2NzJjYWZmYjIw
OWIzMmYwODY4ZTRkLi45OWRhNmE1ZjQ4MzEyNzY2MzdhZThkNWI5NmIzOTBlYjQyZGRkNGY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcApAQCAtNzIsNyArNzIs
NyBAQCB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNL
bm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25H
dWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFp
bkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggMDllMTdiZDA1ODFmODRhMTNm
M2FjZTc4ZmVjZWQxZWQ2YWUwNzUzZi4uNmUwMGNkYmQyMDI3NTA2ZjM5MDgxNGZhM2RkOGQ5OTVm
Y2U2NjE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUp
KSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAg
ICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikKLSAgICAgICAgICAgIHNldFNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgICAgICB1cGRhdGVT
VkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyIHx8IGF0
dHJOYW1lID09IFNWR05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0ciB8fCBhdHRyTmFtZSA9PSBT
VkdOYW1lczo6c3VyZmFjZVNjYWxlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVs
VW5pdExlbmd0aEF0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChh
dHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKaW5kZXggNWM1
YTY4ODNiNzhlNjhmYmIwODZiMmE0ZmExNGY4MjVkNTYxZDg4NC4uMzlmMjQ3ZGM2MWJkYTA0NjE5
ZWNkNGViZTE1OTlkNmZhMjVjZGJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVGlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVt
ZW50LmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgaWYgKFByb3Bl
cnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEFTU0VS
VChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKTsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlk
YXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0
b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENo
YW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5jcHAKaW5kZXggZjllYmE2NWZkOWQwMjU1YWNjZGY0ODI1ZmFjMjA5NTcwYTZi
NWEwOS4uYTk3OWMwNzliNTFmYTdlYjUyYTk1ZGRhNWM0MzYyOTAwNmU4NDkyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIFNW
R0ZpbHRlckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgfQogCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRy
aWJ1dGUoYXR0ck5hbWUpIHx8IFNWR1VSSVJlZmVyZW5jZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRy
TmFtZSkpIHsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHko
KTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIFNWR0ZpbHRlckVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGlmIChj
aGFuZ2Uuc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAg
ICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5k
ZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcAppbmRleCAxNzljNzQ1YTBhMzc0MmRhNzUzZmYwNDE2ODA5NGY0NjEyMDM3ZDU1Li4x
YWNmODRhYjNlMTcyODRiZTYyMzMxNmIyOTk2NGE4MzdiNGVkYjk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYQogewogICAg
IGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAg
ICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgc2V0
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTkwLDcgKzkwLDcgQEAgdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6
OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2gKIAogICAgIGlmIChjaGFuZ2Uu
c291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKICAgICAgICAgcmV0dXJuOwot
ICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpA
QCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjppbnZhbGlkYXRlRmlsdGVyUHJpbWl0aXZlUGFyZW50KFNWR0VsCiAgICAgaWYgKCFyZW5k
ZXJlciB8fCAhcmVuZGVyZXItPmlzU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZG93bmNhc3Q8U1ZHRWxlbWVudD4oKnBhcmVudCkuc2V0U1ZHUmVz
b3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICBkb3duY2FzdDxTVkdFbGVtZW50
PigqcGFyZW50KS51cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXgg
ZWNiM2JiZjg5NjA3Y2Q3ZDAzMjU3NjQ0ZThiNjJhY2IwNjU1OGMxYi4uNjg0NTA3MjVlYzUwYmNh
Y2FiMDgyZjk5ODJlZTllYjg3ZGQ2NjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09
IFNWR05hbWVzOjp4QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6eUF0dHIpOwogICAgICAg
ICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKLSAgICAgICAgICAgIHNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgICAgICB1cGRh
dGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgfQogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAppbmRl
eCAyOGVjNDc3Yjg0YmExYmFiZTA5OWI5ZDYzOWY5MjAwNzlkNTYyZmM3Li5kNzEzMjY4ZmQwZGYw
ZmY1OTkyNTllOTk5YzJlOTEwMzU1M2JkZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2Vv
bWV0cnlFbGVtZW50LmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgU1ZHR2VvbWV0cnlFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewog
ICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBhdGhMZW5ndGhBdHRyKTsKICAg
ICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNW
R1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IGUwOWMxZDk1OWRl
ODlkNmQzODJiMWM3NzY3YmEzMGZjMzI3YTY1MDAuLjgwMTMzMDg2ZTQwMjBkZTA4YWIzZDQxZGU1
MGQ5Mjk1NTI2NThkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVu
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQu
Y3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgU1ZHR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIGlmIChQcm9w
ZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSB8fCBTVkdVUklSZWZlcmVu
Y2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxp
ZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtOTMsNyArOTMsNyBAQCB2b2lk
IFNWR0dyYWRpZW50RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBj
aGFuZ2UpCiAgICAgaWYgKGNoYW5nZS5zb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFy
c2VyKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hh
aW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwog
fQogCiBHcmFkaWVudENvbG9yU3RvcHMgU1ZHR3JhZGllbnRFbGVtZW50OjpidWlsZFN0b3BzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKaW5kZXggZTA3MGM3YTcz
MDYyNmFkNWMyMDdkZWM3MjE4MDMzM2UzNTFlYzgzOC4uYWYwMTMwOGU2Yzk2NTE5M2E3ZmMxODE4
ODQ1ZjhhMTNiNDRiZjY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBo
aWNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVu
dC5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAogICAgICAgICBp
ZiAoYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICByZW5kZXJl
ci0+c2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5B
bmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVt
ZW50Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHAKaW5kZXggYmUwNDQ5MjdjYzgxZjkwZDQxMTQ4NmU5NjcwNmNhNzJi
ZDA3YTE0OC4uZjQ0NjgzYmQ4MDkzMjkyNTA1MjA2MThjNzNlZjE0MjhiMDUzMzhiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTEwMSwxMyArMTAxLDEzIEBAIHZv
aWQgU1ZHSW1hZ2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVu
ZGVyZXIoKSkgewogICAgICAgICAgICAgICAgIGlmICghZG93bmNhc3Q8UmVuZGVyU1ZHSW1hZ2U+
KCpyZW5kZXJlcikudXBkYXRlSW1hZ2VWaWV3cG9ydCgpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJl
RGlydHkoKTsKKyAgICAgICAgICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFu
Z2UoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChhdHRyTmFtZSA9PSBTVkdO
YW1lczo6d2lkdGhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQogICAg
ICAgICAgICAgc2V0UHJlc2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5KCk7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFz
cGVjdFJhdGlvQXR0cik7Ci0gICAgICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hh
aW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hh
bmdlKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZUVsZW1lbnQuY3BwCmluZGV4IDIzMTlkNWVjY2Q3ZWYyMzQ0NmZkZTg0Y2VkNzJhMDg3
YTY5OTdjNzAuLjdmMTJkMjY2YjBjZTU3NGMxNjY3NGMwNGJmOTIwOTk0ZjE5NmQ5NDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFNW
R0xpbmVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogCiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkp
CiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxMZWdhY3lSZW5kZXJTVkdTaGFwZSo+KHJlbmRlcmVy
KS0+c2V0TmVlZHNTaGFwZVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCAxY2Q1MDFiMDJlNjlkNDYyNzhl
NTdjZWI5YjhlY2ZmYTI5ZjFjYjlhLi40ODU4MmI1MzlmMDlkMzUwN2JlY2Q1YzZjZDhkYjNkZTA4
MzhkNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgIGlm
IChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAg
ICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgdXBkYXRl
UmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5B
bmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVt
ZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmNwcAppbmRleCAwOTZlZDA5ZGFjMGRhMDE2NDViY2YyZTk2Yzg5MjRl
MDExNDI4MTVkLi4yZDZhYTc0ZjI2NDg4MWRhOWE0ZWRhNDcwYWQyOWI3ZjgzMmQ2NzEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCkBAIC05OCwxMiArOTgsMTIgQEAg
dm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJk
KCp0aGlzKTsKICAgICAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzQW5pbWF0ZWRMZW5ndGhB
dHRyaWJ1dGUoYXR0ck5hbWUpKQogICAgICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5m
b3JtYXRpb24oKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGly
dHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lk
IFNWR01hcmtlckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hh
bmdlKQogICAgIGlmIChjaGFuZ2Uuc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNl
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWlu
QXJlRGlydHkoKTsKKyAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0K
IAogQXRvbVN0cmluZyBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKaW5kZXggMjU3NzgzYjM0ZWNiMjU4Y2UyN2ZlNDE0Y2E4
YjZmZTg2OTFkMzk3Mi4uNjVmYzlhN2FjOTAxOGEzNWIzMTUwN2NjYmU5NDEyNjY3MmIwMzA2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAg
dm9pZCBTVkdNYXNrRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKICAgICB9CiAKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lk
IFNWR01hc2tFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5n
ZSkKICAgICBpZiAoY2hhbmdlLnNvdXJjZSA9PSBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFy
ZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAK
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRleCBkMGI1ZGYyMWQxNmFjNGRjMTMw
ZjQwMjkxYmQ0NWE5OWZkMzg0NmY3Li40YWViNDZlYzUyNjNkY2Y3NjQyN2E3M2I2YTQ5NWVhNzkw
YjI1MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTcyLDcgKzcy
LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKIAogICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlz
LT5yZW5kZXJlcigpKQogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUGF0aCo+KHJl
bmRlcmVyKS0+c2V0TmVlZHNTaGFwZVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJ
bkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVs
ZW1lbnRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKaW5kZXggYjQ3NTg5ZmY4ZmNhN2NhMTY4Mzk2YmU5NjE4
NGVkNjRlZDk3MDVhNi4uNjJhOGIzNmM1MGExMTQ3YWY5OTFmMzc4MmUzNGUzMWQzNmE5OTU1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC0xMTcsNyArMTE3
LDcgQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICB9CiAKICAgICBpZiAoUHJvcGVydHlSZWdpc3Ry
eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkgfHwgU1ZHRml0VG9WaWV3Qm94Ojppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKSB8fCBTVkdVUklSZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1dGUo
YXR0ck5hbWUpKSB7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURp
cnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBTVkdQYXR0ZXJu
RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAg
aWYgKGNoYW5nZS5zb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgp
OworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKaW5kZXggODBlZDAzZmNhNGI3YzM2Njg1NDA5NWM2
ZGVjYjdjNTZhYzNmZmUzMC4uMDY3ZmUxZDQ4MWJmNDBhMGE5YjZkOTVmYzc4MGJhMTc4MDI3N2Q1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBA
IHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQo
KnRoaXMpOwogICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQog
ICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUGF0aCo+KHJlbmRlcmVyKS0+c2V0TmVl
ZHNTaGFwZVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5B
cmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCAwNzRhNzY3NzlkN2RjYjEwOTA3ZDZlNzBkZWUz
MGJiZWMzMDkyYzNkLi5jNGZjMGRiMjAyMWUyYzE1NmJiZmRlZDUxMzc1MmYxZTdhNWU0OTJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcApA
QCAtODksNyArODksNyBAQCB2b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgIGlmIChQcm9wZXJ0
eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5j
ZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgdXBkYXRlUmVsYXRpdmVM
ZW5ndGhzSW5mb3JtYXRpb24oKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNo
YWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdl
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmNwcAppbmRleCA3Yzg0OTEyOTMxNzdlNmNhZGY2ZWFhMDVhOWY2ODUwYWFmOWRmZDA1Li4xYWIx
MjlkOThkNzk4YjM3ZjUwNjg0NjUyYmIzNmE0OTMyODNjYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBTVkdTVkdFbGVtZW50Ojpz
ZXRDdXJyZW50VHJhbnNsYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHRyYW5zbGF0aW9uKQogCiB2b2lk
IFNWR1NWR0VsZW1lbnQ6OnVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUoKQogewotICAgIHNldFNWR1Jl
c291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVyZXJG
b3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgaWYgKHBhcmVudE5vZGUoKSA9PSAmZG9jdW1lbnQoKSAm
JiBkb2N1bWVudCgpLnJlbmRlclZpZXcoKSkKICAgICAgICAgZG9jdW1lbnQoKS5yZW5kZXJWaWV3
KCktPnJlcGFpbnQoKTsKIH0KQEAgLTIyNCwxNCArMjI0LDE0IEBAIHZvaWQgU1ZHU1ZHRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAg
ICAgICAgICAgICAgICAgICAgcmVuZGVyZXItPnZpZXcoKS5zZXROZWVkc0xheW91dChNYXJrT25s
eVRoaXMpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHNldFNWR1Jlc291cmNl
c0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9y
RWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKFNWR0Zp
dFRvVmlld0JveDo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgaWYgKGF1
dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJlbmRlcmVyLT5z
ZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9w
RWxlbWVudC5jcHAKaW5kZXggYWQ4MzIzOTllNmRlZGMxMDkwODMzNjAwMTAxYTA4MWYyNGEwNzk1
MS4uZTIxMWNiZTk1YTk1MDAzMTMyZDNkZGM5NTZmNzMxOTUwYWQwY2Q1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU1ZHU3RvcEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7
CiAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6b2Zmc2V0QXR0cik7CiAgICAg
ICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdS
ZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggY2U0N2UyNzM2Yzc0NTNhNGVjYWY3
NjA1NTExNzcxZDc5MWY3ZDIyNS4uODg0NGIzMzk5NzQzYjdlOTNmNGMzODE1YWU4NzhiZGU0MTNh
MTc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0xODMsNyArMTgz
LDcgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjppc0tub3duQXR0
cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1
YXJkKCp0aGlzKTsKICAgICAgICAgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKTsKLSAgICAgICAgc2V0
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKaW5kZXggZjg0YzM0
YjQ0MDEyZGFhY2Q4Mzk1YjE2MmM0ODE3NjA1NGM3ZmVjZi4uNTA3Mjk5MzljNTIzMjNhNjU5YWY2
YmRhZDMxODNmMmMxMmRiZWUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250
ZW50RWxlbWVudC5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICAgICAgICAgIG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9IG1fdGV4dExlbmd0aC0+YmFzZVZh
bCgpLT52YWx1ZSgpOwogCiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQo
KnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgp
OworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQ
YXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cAppbmRleCAwNzhjMGM3ODExYjc0YjAxNmYxMzY3NzY4MTNjYjYzOGE2ZDMxYTcxLi5lM2JkMGYz
OGIzMmI2MDExYTg3MWUwOWIwY2U3YmJkNmJiMDk2OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBhdGhFbGVtZW50LmNwcApAQCAtOTMsMTMgKzkzLDEzIEBAIHZvaWQgU1ZHVGV4dFBh
dGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnN0YXJ0T2Zmc2V0QXR0cikK
ICAgICAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7CiAKLSAgICAg
ICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBk
YXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkg
ewogICAgICAgICBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJj
ZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZv
ckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCmluZGV4IGJhYTU1MWRj
M2YzMTQwZGUyZTUxNWNmOTU0NDBjNGRkZGY1ZTdjNzkuLjA3YTA2OWJlYTUxODQ5ZGUwOTM4NTIw
NzRiMTM4MjNhNzgxNTFiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbQogICAgICAgICAgICAgaWYgKGF1dG8qIHRleHRBbmNlc3RvciA9IFJlbmRlclNWR1Rl
eHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3RvcigqcmVuZGVyZXIpKQogICAgICAgICAgICAg
ICAgIHRleHRBbmNlc3Rvci0+c2V0TmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSgpOwogICAg
ICAgICB9Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7
CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggMDU1
ZGQ1MDI0ZTdlNDcxNjAyYjIzM2U4NzdhNWJjY2E0ZTExN2Q1Ni4uNDFkNWJlNmVjM2NlZWQwZGRj
YjQ4MWU4NTI5M2VlMTllYmM5ZWI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNw
cApAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgICAgIGlmIChhdXRv
IHRhcmdldENsb25lID0gdGhpcy0+dGFyZ2V0Q2xvbmUoKSkKICAgICAgICAgICAgICAgICB0cmFu
c2ZlclNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSgqdGFyZ2V0Q2xvbmUpOwogICAgICAgICB9
Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAg
ICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAppbmRleCBlYWEyNjUx
NjRjNDk2YWRlYTM4MjVlMWIzNDhlM2ZhNDBkOWUwYTZjLi40ZTJlOTU0YWM3YzE3ODc3ZDY5ODBj
MWQ3ZTdlMzJkMGJjYjM5ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAK
QEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBTVkdWaWV3RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgaWYgKCFtX3RhcmdldEVs
ZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fdGFyZ2V0RWxlbWVudC0+aW5o
ZXJpdFZpZXdBdHRyaWJ1dGVzKCp0aGlzKTsKLSAgICAgICAgbV90YXJnZXRFbGVtZW50LT5zZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICBtX3RhcmdldEVs
ZW1lbnQtPnVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODAzMzJiNWE2N2Q0MjJiZWVlOGE0OTYwNDNkYjIxNTNkNmJi
ZWIyMS4uNjc2M2FjM2JhYjhiYWViNDllZDlmZWY3OTk3ODA5NDM4YmY5ODg2YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIyLTA1LTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjkxNzg4KTogTW90aW9uTWFyayBTdWl0cyBzdWJ0
ZXN0IGlzIDklIHJlZ3Jlc3NlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjQwMTEyCisgICAgICAgIHJkYXI6Ly85MjQwOTkwMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5p
bWF0aW9uLWxlYWstbGlzdC1wcm9wZXJ0eS1pbnN0YW5jZXMuaHRtbDoKKworICAgICAgICBEbyBh
IHJlbmRlcmluZyB1cGRhdGUgYmVmb3JlIGNoZWNraW5nIGZvciBsZWFrcy4KKwogMjAyMi0wNS0w
OSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
V2luQ2Fpcm9dW1dLMV0gYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWNvbnRyb2wtb3ducy1l
bGVtZW50cy5odG1sIGlzIGNyYXNoaW5nIGFmdGVyIDI1MDMyNUBtYWluCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRpb24tbGVhay1saXN0LXByb3BlcnR5LWlu
c3RhbmNlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWxlYWst
bGlzdC1wcm9wZXJ0eS1pbnN0YW5jZXMuaHRtbAppbmRleCBkMDZmYjQyMGE0ZDgxY2EwY2YwMTky
ZTY4MjliZTBjNDc3OGZhMGMwLi5jNjdkOWM1YzM1NzBlNDZkMGQ1NDMxZTg3Njc0MTIwYmFiZDAy
YjVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9hbmltYXRpb24tbGVh
ay1saXN0LXByb3BlcnR5LWluc3RhbmNlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N2Zy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1sZWFrLWxpc3QtcHJvcGVydHktaW5zdGFuY2VzLmh0bWwKQEAgLTM3
LDYgKzM3LDcgQEAKICAgICAgICAgIHJldHVybjsKICAgICAgfQogCisgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogICAgICAvLyBPbmUg
Z2MoKSBjYWxsIGlzIG5vdCBlbm91Z2ggYW5kIGNhdXNlcyBmbGFraW5lc3MgaW4gc29tZSBwbGF0
Zm9ybXMuCkBAIC00OCwxMiArNDksMTUgQEAKICAgICAgYXBwbHlUcmFuc2Zvcm0oKTsKICAgICAg
cmVtb3ZlUmVjdCgpOwogCi0gICAgIC8vIE9uZSBnYygpIGNhbGwgaXMgbm90IGVub3VnaCBhbmQg
Y2F1c2VzIGZsYWtpbmVzcyBpbiBzb21lIHBsYXRmb3Jtcy4KLSAgICAgZ2MoKTsKLSAgICAgZ2Mo
KTsKLSAgICAgdmFyIGRlbHRhID0gaW50ZXJuYWxzLm51bWJlck9mTGl2ZU5vZGVzKCkgLSBvcmln
aW5hbExpdmVFbGVtZW50czsKLSAgICAgc2hvdWxkQmVaZXJvKGRlbHRhLnRvU3RyaW5nKCkpOwot
ICAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICAgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lKCgpID0+IHsKKyAgICAgICAgIC8vIE9uZSBnYygpIGNhbGwgaXMgbm90IGVub3VnaCBh
bmQgY2F1c2VzIGZsYWtpbmVzcyBpbiBzb21lIHBsYXRmb3Jtcy4KKyAgICAgICAgIGdjKCk7Cisg
ICAgICAgICBnYygpOworICAgICAgICAgdmFyIGRlbHRhID0gaW50ZXJuYWxzLm51bWJlck9mTGl2
ZU5vZGVzKCkgLSBvcmlnaW5hbExpdmVFbGVtZW50czsKKyAgICAgICAgIHNob3VsZEJlWmVybyhk
ZWx0YS50b1N0cmluZygpKTsKKyAgICAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgIH0pOwogIH0KIDwvc2Ny
aXB0PgogPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459165</attachid>
            <date>2022-05-11 07:50:36 -0700</date>
            <delta_ts>2022-05-11 13:36:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240112-20220511175034.patch</filename>
            <type>text/plain</type>
            <size>54747</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRiMWY1M2ZkNTg5Njdk
OTdhYjc4ODNhZTE4YjRkMjY4YmU2ZWVhYS4uMGQzM2EwYmYwOGQ3YTZhNzE0NDQyN2Q0ZTg5MjUw
YjkwZTBjMTQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NyBAQAorMjAyMi0wNS0xMSAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI5
MTc4OCk6IE1vdGlvbk1hcmsgU3VpdHMgc3VidGVzdCBpcyA5JSByZWdyZXNzZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDExMgorICAgICAgICBy
ZGFyOi8vOTI0MDk5MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgbWVjaGFuaXNtIHRvIHNhZmVseSB1cGRhdGUgU1ZHIHJlbmRlcmVyIGZyb20g
ZWxlbWVudCB3aXRob3V0IHRyaWdnZXJpbmcgYW4gdW5uZWNlc3Nhcnkgc3R5bGUgcmVzb2x1dGlv
bi4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29s
dmVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVGV4dFJlbmRlcmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVTVkdSZW5kZXJlcik6CisKKyAg
ICAgICAgVXNlIHRoZSBzYW1lIG1lY2hhbmlzbSBhcyB0ZXh0IHVwZGF0ZXMgdG8gc2NoZWR1bGUg
U1ZHIHJlbmRlcmluZyB1cGRhdGVzLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5z
dXJlUGVuZGluZ1JlbmRlclRyZWVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6
Om5lZWRzU3R5bGVSZWNhbGMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRl
c3Ryb3lSZW5kZXJUcmVlKToKKworICAgICAgICBFbnN1cmUgYW55IHJlbWFpbmluZyBzdHlsZSB1
cGRhdGUgZ2V0IGRlbGV0ZWQgYWxvbmcgd2l0aCB0aGUgcmVuZGVyIHRyZWUuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudERhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnREYXRhOjpzdmdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6c2V0U1ZH
UmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkgY29uc3QpOiBEZWxldGVkLgorCisgICAg
ICAgIE5vdCBuZWVkZWQgYW55bW9yZSwgU3R5bGU6OlVwZGF0ZSByZW1lbWJlcnMgd2hhdCBuZWVk
cyB1cGRhdGluZy4KKworICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVu
ZGVyVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxl
bWVudFJlbmRlcmVyKToKKworICAgICAgICBTY2hlZHVsZSBhbiB1cGRhdGUuIEN1cnJlbnRseSB0
aGlzIHJlYWxseSBqdXN0IHNjaGVkdWxlcyBhIGxheW91dCB3aGljaCBwdWxscyBpbiB0aGUgY2hh
bmdlcyBmcm9tIHRoZSBlbGVtZW50LgorCisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6YWRkRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjphZGRTVkdSZW5kZXJlclVwZGF0ZSk6CisKKyAgICAg
ICAgQWRkIGEgYml0IHRvIEVsZW1lbnRVcGRhdGUgdG8gaW5kaWNhdGUgdGhhdCBTVkcgdXBkYXRl
IGlzIG5lZWRlZC4KKworICAgICAgICAqIHN0eWxlL1N0eWxlVXBkYXRlLmg6CisgICAgICAgICog
c3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCk6CisgICAgICAgICogc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDbGlwUGF0aEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBh
dGhFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxl
bWVudENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50OjpzZXRTVkdSZXNvdXJj
ZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50OjppbnZhbGlkYXRlU1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQp
OiBEZWxldGVkLgorCisgICAgICAgIFJlcGxhY2Ugc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNo
YWluQXJlRGlydHkgd2l0aCB0aGUgbmV3IG1lY2hhbmlzbS4gRG9uJ3QgaW52YWxpZGF0ZSBzdHls
ZS4KKworICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb21wb3NpdGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnNldE9yZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpzZXRLZXJuZWxVbml0
TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRURyb3BTaGFk
b3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6
OnNldFN0ZERldmlhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRURyb3BTaGFkb3dFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dDo6c2V0U3RkRGV2aWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZFBl
bmRpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c2V0UmFkaXVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVPZmZzZXRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGRVRpbGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcv
U1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpjaGlsZHJlbkNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjppbnZhbGlkYXRlRmlsdGVyUHJpbWl0aXZlUGFyZW50KToKKyAgICAgICAgKiBzdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdHZW9t
ZXRyeUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR2VvbWV0cnlFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHcmFkaWVudEVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZCk6CisgICAgICAgICogc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAg
ICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdNYXJrZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgICogc3Zn
L1NWR01hc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hc2tFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAg
ICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Bh
dHRlcm5FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdHRlcm5FbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1NWR0VsZW1lbnQ6OnVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICog
c3ZnL1NWR1N0b3BFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKwogMjAyMi0w
NS0wOSAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtOaWNv
c2lhXSBDYW52YXMgYW5pbWF0aW9ucyBkb24ndCB3b3JrIHdpdGggdGhyZWFkZWQgcmVuZGVyaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiNDM0MTkzNmI1ZDIzMDFkZThhNDg4YjdiMTAz
Mjk5N2E5ZDc5ZmE5Li5iMGEzOTI1N2FmOTY3YWYxNDY5MDQ3NjAzZTU1MzY2NmI3Zjc2OTliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIERvY3VtZW50
OjpyZW1vdmVkTGFzdFJlZigpCiAgICAgICAgIG1fZnVsbHNjcmVlbk1hbmFnZXItPmNsZWFyKCk7
CiAjZW5kaWYKICAgICAgICAgbV9hc3NvY2lhdGVkRm9ybUNvbnRyb2xzLmNsZWFyKCk7Ci0gICAg
ICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlID0geyB9OworICAgICAgICBtX3BlbmRp
bmdSZW5kZXJUcmVlVXBkYXRlID0geyB9OwogCiAgICAgICAgIG1fZm9udExvYWRlci0+c3RvcExv
YWRpbmdBbmRDbGVhckZvbnRzKCk7CiAKQEAgLTIwOTIsNyArMjA5Miw3IEBAIHZvaWQgRG9jdW1l
bnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAgICAgIH0K
IAotICAgICAgICBTdHlsZTo6VHJlZVJlc29sdmVyIHJlc29sdmVyKCp0aGlzLCBXVEZNb3ZlKG1f
cGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlKSk7CisgICAgICAgIFN0eWxlOjpUcmVlUmVzb2x2
ZXIgcmVzb2x2ZXIoKnRoaXMsIFdURk1vdmUobV9wZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSkpOwog
ICAgICAgICBhdXRvIHN0eWxlVXBkYXRlID0gcmVzb2x2ZXIucmVzb2x2ZSgpOwogCiAgICAgICAg
IHdoaWxlIChyZXNvbHZlci5oYXNVbnJlc29sdmVkUXVlcnlDb250YWluZXJzKCkgJiYgc3R5bGVV
cGRhdGUpIHsKQEAgLTIxNTQsMTIgKzIxNTQsMjcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVGV4
dFJlbmRlcmVyKFRleHQmIHRleHQsIHVuc2lnbmVkIG9mZnNldE9mUmVwbGFjZWRUZXh0LCB1bnMK
ICAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVGV4dFVwZGF0ZSkKLSAgICAgICAgbV9wZW5kaW5nUmVu
ZGVyVHJlZVRleHRVcGRhdGUgPSBtYWtlVW5pcXVlPFN0eWxlOjpVcGRhdGU+KCp0aGlzKTsKKyAg
ICBlbnN1cmVQZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSgpLmFkZFRleHQodGV4dCwgeyBvZmZzZXRP
ZlJlcGxhY2VkVGV4dCwgbGVuZ3RoT2ZSZXBsYWNlZFRleHQsIHN0ZDo6bnVsbG9wdCB9KTsKK30K
Kwordm9pZCBEb2N1bWVudDo6dXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZW5zdXJlUGVuZGluZ1JlbmRlclRyZWVVcGRhdGUoKS5hZGRTVkdSZW5kZXJlclVwZGF0ZShl
bGVtZW50KTsKK30KKworU3R5bGU6OlVwZGF0ZSYgRG9jdW1lbnQ6OmVuc3VyZVBlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlKCkKK3sKKyAgICBBU1NFUlQoaGFzTGl2aW5nUmVuZGVyVHJlZSgpKTsKIAot
ICAgIG1fcGVuZGluZ1JlbmRlclRyZWVUZXh0VXBkYXRlLT5hZGRUZXh0KHRleHQsIHsgb2Zmc2V0
T2ZSZXBsYWNlZFRleHQsIGxlbmd0aE9mUmVwbGFjZWRUZXh0LCBzdGQ6Om51bGxvcHQgfSk7Cisg
ICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJUcmVlVXBkYXRlKQorICAgICAgICBtX3BlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlID0gbWFrZVVuaXF1ZTxTdHlsZTo6VXBkYXRlPigqdGhpcyk7CiAKICAgICBz
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSh7IH0pOworCisgICAgcmV0dXJuICptX3BlbmRpbmdSZW5k
ZXJUcmVlVXBkYXRlOwogfQogCiBib29sIERvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjKCkgY29u
c3QKQEAgLTIxNzMsNyArMjE4OCw3IEBAIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMo
KSBjb25zdAogICAgIGlmIChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBpZiAobV9wZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGUpCisgICAgaWYg
KG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAg
aWYgKHN0eWxlU2NvcGUoKS5oYXNQZW5kaW5nVXBkYXRlKCkpCkBAIC0yNTk0LDYgKzI2MDksOCBA
QCB2b2lkIERvY3VtZW50OjpkZXN0cm95UmVuZGVyVHJlZSgpCiAgICAgaWYgKHZpZXcoKSkKICAg
ICAgICAgdmlldygpLT53aWxsRGVzdHJveVJlbmRlclRyZWUoKTsKIAorICAgIG1fcGVuZGluZ1Jl
bmRlclRyZWVVcGRhdGUgPSB7IH07CisKICAgICBpZiAobV9kb2N1bWVudEVsZW1lbnQpCiAgICAg
ICAgIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJlbmRlcmVycygqbV9kb2N1bWVudEVsZW1l
bnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ0M2VhZDllMmQxMTQ0MzQ0NjRlMjliMmMx
YmNhMWYwOGI4M2UwNmMuLjViMzk0NTcxMjM3NzI3NTA2Y2RkZjQ4NWU5YTVhNGQ2YjI2ZjQ3OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMDUsNiArMjA1LDcgQEAgY2xhc3MgUmVuZGVyVmll
dzsKIGNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3MgUmVzaXplT2Jz
ZXJ2ZXI7CiBjbGFzcyBTVkdEb2N1bWVudEV4dGVuc2lvbnM7CitjbGFzcyBTVkdFbGVtZW50Owog
Y2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNWR1VzZUVsZW1lbnQ7CiBjbGFzcyBTV0NsaWVu
dENvbm5lY3Rpb247CkBAIC0xMzU2LDYgKzEzNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJ
c1Jlc29sdmluZ1RyZWVTdHlsZShib29sKTsKIAogICAgIHZvaWQgdXBkYXRlVGV4dFJlbmRlcmVy
KFRleHQmLCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5zaWduZWQgbGVuZ3RoT2ZS
ZXBsYWNlZFRleHQpOworICAgIHZvaWQgdXBkYXRlU1ZHUmVuZGVyZXIoU1ZHRWxlbWVudCYpOwog
CiAgICAgLy8gUmV0dXJuIGEgTG9jYWxlIGZvciB0aGUgZGVmYXVsdCBsb2NhbGUgaWYgdGhlIGFy
Z3VtZW50IGlzIG51bGwgb3IgZW1wdHkuCiAgICAgTG9jYWxlJiBnZXRDYWNoZWRMb2NhbGUoY29u
c3QgQXRvbVN0cmluZyYgbG9jYWxlID0gbnVsbEF0b20oKSk7CkBAIC0xODA2LDYgKzE4MDgsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgYWRkVG9Eb2N1bWVudHNNYXAoKTsKICAgICB2b2lkIHJlbW92
ZUZyb21Eb2N1bWVudHNNYXAoKTsKIAorICAgIFN0eWxlOjpVcGRhdGUmIGVuc3VyZVBlbmRpbmdS
ZW5kZXJUcmVlVXBkYXRlKCk7CisKICAgICBOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlv
bkNsaWVudCgpIGZpbmFsOwogCiAgICAgY29uc3QgUmVmPGNvbnN0IFNldHRpbmdzPiBtX3NldHRp
bmdzOwpAQCAtMTg4OCw3ICsxODkyLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBUaW1lciBtX3N0
eWxlUmVjYWxjVGltZXI7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U3R5bGU6OlVwZGF0ZT4gbV9w
ZW5kaW5nUmVuZGVyVHJlZVRleHRVcGRhdGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFN0eWxlOjpV
cGRhdGU+IG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGU7CiAKICAgICBFbGVtZW50KiBtX2Nzc1Rh
cmdldCB7IG51bGxwdHIgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaAppbmRleCBmMTQ3MWE4
ZTlmNzUxMmE1NWM4YmY5M2E5NDQ2MDM4YjQ4MjJjMzE1Li5lMjRlMmUxOWIxNWM3YzZmNmU1ZjYz
NDlmOGEyZjZhODVjMTIyM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuaApAQCAtMTI1LDEz
ICsxMjUsMTIgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVpbnQzMl90IG1fYXJyYXlTaXplQW5k
RmxhZ3M7CiAKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19hcnJheVNpemUgPSAyNzsKLSAg
ICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnQ291bnQgPSA2OworICAgIHN0YXRpYyBjb25z
dCB1aW50MzJfdCBzX2ZsYWdDb3VudCA9IDU7CiAgICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNf
ZmxhZ0lzVW5pcXVlID0gMTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnSGFzTmFt
ZUF0dHJpYnV0ZSA9IDEgPDwgMTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19mbGFnUHJl
c2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5ID0gMSA8PCAyOwogICAgIHN0YXRpYyBjb25zdCB1
aW50MzJfdCBzX2ZsYWdTdHlsZUF0dHJpYnV0ZUlzRGlydHkgPSAxIDw8IDM7CiAgICAgc3RhdGlj
IGNvbnN0IHVpbnQzMl90IHNfZmxhZ0FuaW1hdGVkU1ZHQXR0cmlidXRlc0FyZURpcnR5ID0gMSA8
PCA0OwotICAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBzX2ZsYWdTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSA9IDEgPDwgNTsKICAgICBzdGF0aWMgY29uc3QgdWludDMyX3Qgc19m
bGFnc01hc2sgPSAoMSA8PCBzX2ZsYWdDb3VudCkgLSAxOwogICAgIC8vIEZJWE1FOiBjb3VsZCB0
aGUgU1ZHIHNwZWNpZmljIGZsYWdzIGdvIHRvIHNvbWUgU1ZHIGNsYXNzPwogCkBAIC0xNjIsOSAr
MTYxLDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgYW5pbWF0ZWRTVkdBdHRyaWJ1dGVzQXJlRGly
dHkoKSBjb25zdCB7IHJldHVybiBtX2FycmF5U2l6ZUFuZEZsYWdzICYgc19mbGFnQW5pbWF0ZWRT
VkdBdHRyaWJ1dGVzQXJlRGlydHk7IH0KICAgICB2b2lkIHNldEFuaW1hdGVkU1ZHQXR0cmlidXRl
c0FyZURpcnR5KGJvb2wgZGlydHkpIGNvbnN0IHsgdXBkYXRlRmxhZyhzX2ZsYWdBbmltYXRlZFNW
R0F0dHJpYnV0ZXNBcmVEaXJ0eSwgZGlydHkpOyB9CiAKLSAgICBib29sIHN2Z1Jlc291cmNlc0lu
QW5jZXN0b3JDaGFpbkFyZURpcnR5KCkgY29uc3QgeyByZXR1cm4gbV9hcnJheVNpemVBbmRGbGFn
cyAmIHNfZmxhZ1NWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5OyB9Ci0gICAgdm9p
ZCBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eShib29sIGRpcnR5KSBjb25z
dCB7IHVwZGF0ZUZsYWcoc19mbGFnU1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHks
IGRpcnR5KTsgfQotCiAgICAgbXV0YWJsZSBSZWZQdHI8U3R5bGVQcm9wZXJ0aWVzPiBtX2lubGlu
ZVN0eWxlOwogICAgIG11dGFibGUgU3BhY2VTcGxpdFN0cmluZyBtX2NsYXNzTmFtZXM7CiAgICAg
bXV0YWJsZSBBdG9tU3RyaW5nIG1faWRGb3JTdHlsZVJlc29sdXRpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcApp
bmRleCA1ZDRmNjQ4ZDk2MDdkYzBhYjNlMDdmNGFmYzNjNjVhNWJlODFmZWVmLi5iMDZlMzAwOTc0
OTYyZGYxYjBjOTVmY2RlY2ZlYzBhZmZhYzEwOGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTQyLDYg
KzQyLDcgQEAKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0
aUNvbHVtbkZsb3cuaCIKICNpbmNsdWRlICJSZW5kZXJNdWx0aUNvbHVtblNldC5oIgorI2luY2x1
ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZVVwZGF0ZXJHZW5l
cmF0ZWRDb250ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTE5Myw5ICsxOTQsNiBAQCB2b2lkIFJlbmRlclRyZWVV
cGRhdGVyOjp1cGRhdGVSZW5kZXJUcmVlKENvbnRhaW5lck5vZGUmIHJvb3QpCiAgICAgICAgIGlm
IChlbGVtZW50VXBkYXRlKQogICAgICAgICAgICAgdXBkYXRlRWxlbWVudFJlbmRlcmVyKGVsZW1l
bnQsICplbGVtZW50VXBkYXRlKTsKIAotICAgICAgICBpZiAoaXM8U1ZHRWxlbWVudD4oZWxlbWVu
dCkpCi0gICAgICAgICAgICBkb3duY2FzdDxTVkdFbGVtZW50PihlbGVtZW50KS5pbnZhbGlkYXRl
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluSWZOZWVkZWQoKTsKLQogICAgICAgICBzdG9yZVBy
ZXZpb3VzUmVuZGVyZXIoZWxlbWVudCk7CiAKICAgICAgICAgYm9vbCBtYXlIYXZlUmVuZGVyZWRE
ZXNjZW5kYW50cyA9IGVsZW1lbnQucmVuZGVyZXIoKSB8fCAoZWxlbWVudC5oYXNEaXNwbGF5Q29u
dGVudHMoKSAmJiBzaG91bGRDcmVhdGVSZW5kZXJlcihlbGVtZW50LCByZW5kZXJUcmVlUG9zaXRp
b24oKS5wYXJlbnQoKSkpOwpAQCAtMzA2LDYgKzMwNCwxMiBAQCB2b2lkIFJlbmRlclRyZWVVcGRh
dGVyOjp1cGRhdGVSZW5kZXJlclN0eWxlKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBSZW5kZXJT
dHlsZQogCiB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVFbGVtZW50UmVuZGVyZXIoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUmIGVsZW1lbnRVcGRhdGUp
CiB7CisgICAgaWYgKGVsZW1lbnRVcGRhdGUudXBkYXRlU1ZHUmVuZGVyZXIgJiYgZWxlbWVudC5y
ZW5kZXJlcigpKQorICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBh
cmVudFJlc291cmNlSW52YWxpZGF0aW9uKCplbGVtZW50LnJlbmRlcmVyKCkpOworCisgICAgaWYg
KCFlbGVtZW50VXBkYXRlLnN0eWxlKQorICAgICAgICByZXR1cm47CisKICNpZiBFTkFCTEUoQ09O
VEVOVF9DSEFOR0VfT0JTRVJWRVIpCiAgICAgQ29udGVudENoYW5nZU9ic2VydmVyOjpTdHlsZUNo
YW5nZVNjb3BlIG9ic2VydmluZ1Njb3BlKG1fZG9jdW1lbnQsIGVsZW1lbnQpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5jcHAKaW5kZXggMjQyN2IyNjU3NGIwYzJmYWJmMzAw
NzQxZGRkYmU0YmY4Y2ViOTE4ZC4uOWFhNjNjYjU3M2UyZGI1NDQ3ZDI1YmI5YmU2ODU2MGIwYmFh
OTVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1
ZGUgIlRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODcsMTMgKzg4LDE5IEBAIFJl
bmRlclN0eWxlKiBVcGRhdGU6OmVsZW1lbnRTdHlsZShjb25zdCBFbGVtZW50JiBlbGVtZW50KQog
CiB2b2lkIFVwZGF0ZTo6YWRkRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBFbGVtZW50KiBwYXJl
bnQsIEVsZW1lbnRVcGRhdGUmJiBlbGVtZW50VXBkYXRlKQogewotICAgIEFTU0VSVCghbV9lbGVt
ZW50cy5jb250YWlucygmZWxlbWVudCkpOwogICAgIEFTU0VSVChjb21wb3NlZFRyZWVBbmNlc3Rv
cnMoZWxlbWVudCkuZmlyc3QoKSA9PSBwYXJlbnQpOwogCiAgICAgbV9yb290cy5yZW1vdmUoJmVs
ZW1lbnQpOwogICAgIGFkZFBvc3NpYmxlUm9vdChwYXJlbnQpOwogCi0gICAgbV9lbGVtZW50cy5h
ZGQoJmVsZW1lbnQsIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkpOworICAgIGF1dG8gcmVzdWx0ID0g
bV9lbGVtZW50cy5hZGQoJmVsZW1lbnQsIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkpOworCisgICAg
aWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICBhdXRvJiBlbnRyeSA9IHJlc3VsdC5p
dGVyYXRvci0+dmFsdWU7CisgICAgICAgIEFTU0VSVChlbnRyeS51cGRhdGVTVkdSZW5kZXJlcik7
CisgICAgICAgIGVudHJ5ID0gV1RGTW92ZShlbGVtZW50VXBkYXRlKTsKKyAgICAgICAgZW50cnku
dXBkYXRlU1ZHUmVuZGVyZXIgPSB0cnVlOworICAgIH0KIH0KIAogdm9pZCBVcGRhdGU6OmFkZFRl
eHQoVGV4dCYgdGV4dCwgRWxlbWVudCogcGFyZW50LCBUZXh0VXBkYXRlJiYgdGV4dFVwZGF0ZSkK
QEAgLTEyMiw2ICsxMjksMTMgQEAgdm9pZCBVcGRhdGU6OmFkZFRleHQoVGV4dCYgdGV4dCwgVGV4
dFVwZGF0ZSYmIHRleHRVcGRhdGUpCiAgICAgYWRkVGV4dCh0ZXh0LCBjb21wb3NlZFRyZWVBbmNl
c3RvcnModGV4dCkuZmlyc3QoKSwgV1RGTW92ZSh0ZXh0VXBkYXRlKSk7CiB9CiAKK3ZvaWQgVXBk
YXRlOjphZGRTVkdSZW5kZXJlclVwZGF0ZShTVkdFbGVtZW50JiBlbGVtZW50KQoreworICAgIGF1
dG8gZWxlbWVudFVwZGF0ZSA9IEVsZW1lbnRVcGRhdGUgeyB9OworICAgIGVsZW1lbnRVcGRhdGUu
dXBkYXRlU1ZHUmVuZGVyZXIgPSB0cnVlOworICAgIGFkZEVsZW1lbnQoZWxlbWVudCwgY29tcG9z
ZWRUcmVlQW5jZXN0b3JzKGVsZW1lbnQpLmZpcnN0KCksIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkp
OworfQorCiB2b2lkIFVwZGF0ZTo6YWRkUG9zc2libGVSb290KEVsZW1lbnQqIGVsZW1lbnQpCiB7
CiAgICAgaWYgKCFlbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAppbmRleCAx
ZjgyMDlkYzU3OWZlYzAwODU0OGVhNTJmYmEyNTVmNDNkNTUxMDFkLi5iNmNmNDYzY2RhMDk5ODMx
NDc5MGY3YTg4ZTk3MTJmODhlNmM0OWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgK
QEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3Mg
Tm9kZTsKIGNsYXNzIFJlbmRlclN0eWxlOworY2xhc3MgU1ZHRWxlbWVudDsKIGNsYXNzIFRleHQ7
CiAKIG5hbWVzcGFjZSBTdHlsZSB7CkBAIC00NSw2ICs0Niw3IEBAIHN0cnVjdCBFbGVtZW50VXBk
YXRlIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlOwogICAgIENoYW5n
ZSBjaGFuZ2UgeyBDaGFuZ2U6Ok5vbmUgfTsKICAgICBib29sIHJlY29tcG9zaXRlTGF5ZXIgeyBm
YWxzZSB9OworICAgIGJvb2wgdXBkYXRlU1ZHUmVuZGVyZXIgeyBmYWxzZSB9OwogfTsKIAogc3Ry
dWN0IFRleHRVcGRhdGUgewpAQCAtNzYsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRF
bGVtZW50KEVsZW1lbnQmLCBFbGVtZW50KiBwYXJlbnQsIEVsZW1lbnRVcGRhdGUmJik7CiAgICAg
dm9pZCBhZGRUZXh0KFRleHQmLCBFbGVtZW50KiBwYXJlbnQsIFRleHRVcGRhdGUmJik7CiAgICAg
dm9pZCBhZGRUZXh0KFRleHQmLCBUZXh0VXBkYXRlJiYpOworICAgIHZvaWQgYWRkU1ZHUmVuZGVy
ZXJVcGRhdGUoU1ZHRWxlbWVudCYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVS
b290KEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQuY3BwCmluZGV4IDc0ZGRmOGQ5N2IxZmZjZDZkYzgxMDZmMDlkM2ZmM2VmNjg1N2Q3MTEu
LjUwODA0YmE0NzgwMWE2MTk0ZmRlNjZiMDk0NzhhODcwYjVkYWU0ZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcApAQCAtMjUzLDcgKzI1Myw3
IEBAIHZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KCkK
ICAgICBhdXRvIHVwZGF0ZVRhcmdldEVsZW1lbnQgPSBbXShTVkdFbGVtZW50JiBlbGVtZW50KSB7
CiAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigpKQogICAgICAg
ICAgICAgcmVuZGVyZXItPnNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCk7Ci0gICAgICAgIGVsZW1l
bnQuc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgZWxl
bWVudC51cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICB9OwogCiAgICAg
dXBkYXRlVGFyZ2V0RWxlbWVudCgqdGFyZ2V0RWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IGFmZDYwZWJlMDg4ZTQzZDc3YTY4NjhhNWM1NDY3
ZjRkMTg1MDA1NjQuLmVjNDU1NzZmODRiNzc5MjNhZTIzNTJlNWVkODE1NjgzNWQ0MjNiODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBAIC02Nyw3ICs2Nyw3
IEBAIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0aGlzKTsKIAotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5B
cmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtODEsNyArODEsNyBAQCB2b2lkIFNWR0NsaXBQ
YXRoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAg
ICAgaWYgKGNoYW5nZS5zb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0
eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCAwZWY5MzYyOGRmZTVlN2Q0YTliM2I5MmY5MGY0
OGQ5NTQ1MDRlYTQwLi40MzBkNmUyZDcyYzRjZTYxOWJlZDgxMjJkNzFjNTg5NTM2ZDQzOGI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC04ODMsMjAgKzg4Myw5IEBAIHZvaWQgU1ZH
RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtCiAgICAgICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25hbEhpbnRT
dHlsZShzdHlsZSwgcHJvcGVydHlJRCwgdmFsdWUpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OnNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCkKK3ZvaWQgU1ZHRWxlbWVudDo6
dXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCkKIHsKLSAgICBlbnN1cmVVbmlxdWVF
bGVtZW50RGF0YSgpLnNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KHRydWUp
OwotICAgIGludmFsaWRhdGVTdHlsZSgpOwotfQotCi12b2lkIFNWR0VsZW1lbnQ6OmludmFsaWRh
dGVTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5JZk5lZWRlZCgpCi17Ci0gICAgaWYgKCFlbGVt
ZW50RGF0YSgpIHx8ICFlbGVtZW50RGF0YSgpLT5zdmdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5B
cmVEaXJ0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoYXV0byByZW5kZXJlciA9IHRo
aXMtPnJlbmRlcmVyKCkpCi0gICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0
QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKLSAgICBlbGVtZW50RGF0
YSgpLT5zZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eShmYWxzZSk7CisgICAg
ZG9jdW1lbnQoKS51cGRhdGVTVkdSZW5kZXJlcigqdGhpcyk7CiB9CiAKIHZvaWQgU1ZHRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4IGUxOWJlMGRhZGJmOTQyMjk3ZmI3MzY4MDljNjZiNjk5
Yjg4YmEwZmUuLjVjYWNmMTVlZjA3NDM2YzhhNDM4NjVmNDVhYzk3NzkyYzA3MDI0MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAtODQsOCArODQsNyBAQCBwdWJsaWM6CiAKICAgICBpbmxp
bmUgdm9pZCBzZXRBbmltYXRlZFNWR0F0dHJpYnV0ZXNBcmVEaXJ0eSgpOwogICAgIGlubGluZSB2
b2lkIHNldFByZXNlbnRhdGlvbmFsSGludFN0eWxlSXNEaXJ0eSgpOwotICAgIHZvaWQgc2V0U1ZH
UmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKLSAgICB2b2lkIGludmFsaWRhdGVT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5JZk5lZWRlZCgpOworICAgIHZvaWQgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAKICAgICAvLyBUaGUgaW5zdGFuY2VzIG9mIGFu
IGVsZW1lbnQgYXJlIGNsb25lcyBtYWRlIGluIHNoYWRvdyB0cmVlcyB0byBpbXBsZW1lbnQgPHVz
ZT4uCiAgICAgY29uc3QgV2Vha0hhc2hTZXQ8U1ZHRWxlbWVudD4mIGluc3RhbmNlcygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKaW5kZXggZDhjZThmMTE2
MGMwZDNhYTBkZDQxZDQ5NzhiYzUzOGM0Mzk3YTc3MC4uNTAyNWNiMzcyYzQzMWFiYTQwOTU0MGMw
NmMwN2RmYzRhYzU5NjYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
Y3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgICAgICBwcmlt
aXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFtZSA9PSBT
VkdOYW1lczo6aW4yQXR0cik7Ci0gICAgICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9y
Q2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50
Q2hhbmdlKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IGVjOTgzYmRlMzhk
NmJmYjMxMWZmODQxYWU4ZGRhYWE1OTYzNDdiMWUuLjI1MGU1NmFjZmY0NmIyMmQ5ODViZTMwNmY0
MDg1YWZiNmRhZmQ0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50LmNwcApAQCAtODcsNyArODcsNyBAQCB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewog
ICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIpCi0gICAgICAgICAgICBzZXRTVkdSZXNv
dXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRlU1ZHUmVu
ZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNT
RVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjp0eXBlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1l
czo6dmFsdWVzQXR0cik7CiAgICAgICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0
dHJOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAK
aW5kZXggYTI5MjRiMjE5NmRmYjI1NmU2NGE1ZTA2Njg4MTE0MGZjYzBiMTYwMy4uMzUyNjFmOWU1
MjcwZjRjMzcwZWMxYzkwODdlOGE5MzUyY2RlYzM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIFNWR0ZF
Q29tcG9zaXRlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShh
dHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhp
cyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1l
ID09IFNWR05hbWVzOjppbjJBdHRyKQotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNl
c3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxl
bWVudENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6azFBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprMkF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmszQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6azRB
dHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpvcGVyYXRvckF0dHIpOwogICAgICAgICAgICAg
cHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCA3YzE2NjQzZWU5ZDY5
N2QxMGQ0ZDYzNzgxZjFjZTM4ZjUyZDZlZTgxLi45ZGRjYjE1YTBhMjVlYjlmYjBhNDM2YmViNGFh
YjJhYzdmZmNiN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5jcHAKQEAgLTE2MSwxNCArMTYxLDE0IEBAIHZvaWQgU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6OnNldE9yZGVyKGZsb2F0IHgsIGZsb2F0IHkpCiB7CiAgICAgbV9vcmRl
clgtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBtX29yZGVyWS0+c2V0QmFzZVZhbEludGVy
bmFsKHkpOwotICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7Cisg
ICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQ6OnNldEtlcm5lbFVuaXRMZW5ndGgoZmxvYXQgeCwgZmxvYXQg
eSkKIHsKICAgICBtX2tlcm5lbFVuaXRMZW5ndGhYLT5zZXRCYXNlVmFsSW50ZXJuYWwoeCk7CiAg
ICAgbV9rZXJuZWxVbml0TGVuZ3RoWS0+c2V0QmFzZVZhbEludGVybmFsKHkpOwotICAgIHNldFNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVy
ZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCkBA
IC0xNzYsNyArMTc2LDcgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmEKICAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFu
Y2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpvcmRlckF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbE1hdHJpeEF0dHIpCi0gICAgICAgICAgICBzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjplZGdlTW9kZUF0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmRpdmlzb3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpiaWFzQXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGFyZ2V0WEF0dHIKICAgICAgICAgICAgICAgICB8
fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGFyZ2V0WUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2
ZUFscGhhQXR0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQuY3BwCmluZGV4IDdlYzA1ZGYwYzI1ZDBhNzFhZjY3NGI3OTA0ODRiMDhkYWI3
YTAzMDMuLmI1YzQzYzRiZWFkNmMzNmEzZGMwOTZmMmViNDdiMjMyN2VmOTMwMjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCkBA
IC0xMjgsNyArMTI4LDcgQEAgdm9pZCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck4KICAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFu
Y2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6aW5BdHRyKQotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVu
dENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6ZGlmZnVzZUNvbnN0YW50QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
c3VyZmFjZVNjYWxlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0
aEF0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQu
Y3BwCmluZGV4IGExNWJhNGIzZTFlMTQ3ZmY0ZTIxYzhkYmFiYTZmYmFkMDg4YTUzM2QuLmYyY2Ux
Nzk3MjNhZjgxNjI1NWJmYWVlNDQ5ZWFkZDJjYjY1YTcwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCkBAIC0xMDIsNyArMTAy
LDcgQEAgdm9pZCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck4KICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6
aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRp
b25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6
aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjppbjJBdHRyKQotICAgICAgICAgICAgc2V0
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgICAgIHVwZGF0
ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eENoYW5uZWxTZWxlY3RvckF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlDaGFubmVsU2VsZWN0b3JBdHRyIHx8IGF0dHJOYW1lID09
IFNWR05hbWVzOjpzY2FsZUF0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hh
bmdlZChhdHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxl
bWVudC5jcHAKaW5kZXggZDFlNjE4NDhhYWMxODI2ZjQxNjdiNWYxMTE1YmYxNWQ5ZmFkY2I5Mi4u
MGI1MDhhMTI4MThjOGYzZWQ2NTgwMDA0ODZiYjdhNTAzMTBhMTFlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcApAQCAtNTQsNyArNTQsNyBAQCB2
b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnNldFN0ZERldmlhdGlvbihmbG9hdCB4LCBmbG9h
dCB5KQogewogICAgIG1fc3RkRGV2aWF0aW9uWC0+c2V0QmFzZVZhbEludGVybmFsKHgpOwogICAg
IG1fc3RkRGV2aWF0aW9uWS0+c2V0QmFzZVZhbEludGVybmFsKHkpOwotICAgIHNldFNWR1Jlc291
cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JF
bGVtZW50Q2hhbmdlKCk7CiB9CiAKIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAo
UHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAg
SW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jl
c291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRl
cmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCmluZGV4IGNiMTkw
YWQzNTQxZDIyY2ZmMGNlN2NjYmY1OGUzNmNjMGZiNWM3M2UuLmYyOGY5ODEzMTBlMzRhM2M4NGQ1
NGVmNmFhZTcwNWI2OWFiZDE2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50OjpzZXRTdGREZXZpYXRpb24oZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAgICBt
X3N0ZERldmlhdGlvblgtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBtX3N0ZERldmlhdGlv
blktPnNldEJhc2VWYWxJbnRlcm5hbCh5KTsKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9y
Q2hhaW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgp
OwogfQogCiB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCkBAIC04Nyw3
ICs4Nyw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lCiB7CiAgICAgaWYgKFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52
YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFu
Y2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1l
bnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggNGQ3MzIyOTRmZDU4MjNjNjlkZjQwOGFlMTZlYWM5
NDI3YmM2Yzk1Yi4uYzMxOWY1NWRmNWVmZWM1ZDdmZTlhOTVhZjMzZTY1NzZhZDc1MDVmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcg
QEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6YnVpbGRQZW5kaW5nUmVzb3VyY2UoKQogICAgIH0g
ZWxzZSBpZiAoaXM8U1ZHRWxlbWVudD4oKnRhcmdldC5lbGVtZW50KSkKICAgICAgICAgZG93bmNh
c3Q8U1ZHRWxlbWVudD4oKnRhcmdldC5lbGVtZW50KS5hZGRSZWZlcmVuY2luZ0VsZW1lbnQoKnRo
aXMpOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAg
ICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogdm9pZCBTVkdGRUlt
YWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBTVkdGRUltYWdl
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkp
IHsKICAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0cik7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMp
OwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAg
ICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
Y3BwCmluZGV4IDYxMDgyYTQ5ODM5MzFkOGFiNzAzODUzNDRlNjI3YzNjYjU3NTI3NDEuLmJkODhj
ZDgxZTBmMWZmMmE1MmIyNTk0YWQ2NmI2YTRmZWUwZWNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgdm9pZCBT
VkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzZXRSYWRpdXMoZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAg
ICBtX3JhZGl1c1gtPnNldEJhc2VWYWxJbnRlcm5hbCh4KTsKICAgICBtX3JhZGl1c1ktPnNldEJh
c2VWYWxJbnRlcm5hbCh5KTsKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVE
aXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiB2
b2lkIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQpAQCAtMTAxLDcgKzEwMSw3IEBA
IHZvaWQgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFy
ZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRy
KQotICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsK
KyAgICAgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAg
ICBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6b3BlcmF0
b3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpyYWRpdXNBdHRyKTsKICAgICAgICAgICAg
IHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVPZmZzZXRFbGVtZW50LmNwcAppbmRleCBjYjk0MWQ0NTE0MjRlMDBjYjQ2NzJjYWZmYjIw
OWIzMmYwODY4ZTRkLi45OWRhNmE1ZjQ4MzEyNzY2MzdhZThkNWI5NmIzOTBlYjQyZGRkNGY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcApAQCAtNzIsNyArNzIs
NyBAQCB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNL
bm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25H
dWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFp
bkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggMDllMTdiZDA1ODFmODRhMTNm
M2FjZTc4ZmVjZWQxZWQ2YWUwNzUzZi4uNmUwMGNkYmQyMDI3NTA2ZjM5MDgxNGZhM2RkOGQ5OTVm
Y2U2NjE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIHZvaWQgU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUp
KSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAg
ICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikKLSAgICAgICAgICAgIHNldFNW
R1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgICAgICB1cGRhdGVT
VkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyIHx8IGF0
dHJOYW1lID09IFNWR05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0ciB8fCBhdHRyTmFtZSA9PSBT
VkdOYW1lczo6c3VyZmFjZVNjYWxlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVs
VW5pdExlbmd0aEF0dHIpOwogICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChh
dHRyTmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKaW5kZXggNWM1
YTY4ODNiNzhlNjhmYmIwODZiMmE0ZmExNGY4MjVkNTYxZDg4NC4uMzlmMjQ3ZGM2MWJkYTA0NjE5
ZWNkNGViZTE1OTlkNmZhMjVjZGJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVGlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVt
ZW50LmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgaWYgKFByb3Bl
cnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEFTU0VS
VChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKTsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlk
YXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0
b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENo
YW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5jcHAKaW5kZXggZjllYmE2NWZkOWQwMjU1YWNjZGY0ODI1ZmFjMjA5NTcwYTZi
NWEwOS4uYTk3OWMwNzliNTFmYTdlYjUyYTk1ZGRhNWM0MzYyOTAwNmU4NDkyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2b2lkIFNW
R0ZpbHRlckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgfQogCiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRy
aWJ1dGUoYXR0ck5hbWUpIHx8IFNWR1VSSVJlZmVyZW5jZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRy
TmFtZSkpIHsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHko
KTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIFNWR0ZpbHRlckVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGlmIChj
aGFuZ2Uuc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAg
ICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5k
ZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcAppbmRleCAxNzljNzQ1YTBhMzc0MmRhNzUzZmYwNDE2ODA5NGY0NjEyMDM3ZDU1Li4x
YWNmODRhYjNlMTcyODRiZTYyMzMxNmIyOTk2NGE4MzdiNGVkYjk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYQogewogICAg
IGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAg
ICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgc2V0
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTkwLDcgKzkwLDcgQEAgdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6
OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2gKIAogICAgIGlmIChjaGFuZ2Uu
c291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNlcikKICAgICAgICAgcmV0dXJuOwot
ICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpA
QCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjppbnZhbGlkYXRlRmlsdGVyUHJpbWl0aXZlUGFyZW50KFNWR0VsCiAgICAgaWYgKCFyZW5k
ZXJlciB8fCAhcmVuZGVyZXItPmlzU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgZG93bmNhc3Q8U1ZHRWxlbWVudD4oKnBhcmVudCkuc2V0U1ZHUmVz
b3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICBkb3duY2FzdDxTVkdFbGVtZW50
PigqcGFyZW50KS51cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXgg
ZWNiM2JiZjg5NjA3Y2Q3ZDAzMjU3NjQ0ZThiNjJhY2IwNjU1OGMxYi4uNjg0NTA3MjVlYzUwYmNh
Y2FiMDgyZjk5ODJlZTllYjg3ZGQ2NjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09
IFNWR05hbWVzOjp4QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6eUF0dHIpOwogICAgICAg
ICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKLSAgICAgICAgICAgIHNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgICAgICB1cGRh
dGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgfQogICAgICAgICByZXR1
cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAppbmRl
eCAyOGVjNDc3Yjg0YmExYmFiZTA5OWI5ZDYzOWY5MjAwNzlkNTYyZmM3Li5kNzEzMjY4ZmQwZGYw
ZmY1OTkyNTllOTk5YzJlOTEwMzU1M2JkZWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2Vv
bWV0cnlFbGVtZW50LmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgU1ZHR2VvbWV0cnlFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewog
ICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBhdGhMZW5ndGhBdHRyKTsKICAg
ICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHNl
dFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNW
R1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IGUwOWMxZDk1OWRl
ODlkNmQzODJiMWM3NzY3YmEzMGZjMzI3YTY1MDAuLjgwMTMzMDg2ZTQwMjBkZTA4YWIzZDQxZGU1
MGQ5Mjk1NTI2NThkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVu
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQu
Y3BwCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgU1ZHR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIGlmIChQcm9w
ZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSB8fCBTVkdVUklSZWZlcmVu
Y2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxp
ZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtOTMsNyArOTMsNyBAQCB2b2lk
IFNWR0dyYWRpZW50RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBj
aGFuZ2UpCiAgICAgaWYgKGNoYW5nZS5zb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFy
c2VyKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hh
aW5BcmVEaXJ0eSgpOworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwog
fQogCiBHcmFkaWVudENvbG9yU3RvcHMgU1ZHR3JhZGllbnRFbGVtZW50OjpidWlsZFN0b3BzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKaW5kZXggZTA3MGM3YTcz
MDYyNmFkNWMyMDdkZWM3MjE4MDMzM2UzNTFlYzgzOC4uYWYwMTMwOGU2Yzk2NTE5M2E3ZmMxODE4
ODQ1ZjhhMTNiNDRiZjY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBo
aWNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVu
dC5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAogICAgICAgICBp
ZiAoYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICByZW5kZXJl
ci0+c2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5B
bmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVt
ZW50Q2hhbmdlKCk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHAKaW5kZXggYmUwNDQ5MjdjYzgxZjkwZDQxMTQ4NmU5NjcwNmNhNzJi
ZDA3YTE0OC4uZjQ0NjgzYmQ4MDkzMjkyNTA1MjA2MThjNzNlZjE0MjhiMDUzMzhiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTEwMSwxMyArMTAxLDEzIEBAIHZv
aWQgU1ZHSW1hZ2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgICAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVu
ZGVyZXIoKSkgewogICAgICAgICAgICAgICAgIGlmICghZG93bmNhc3Q8UmVuZGVyU1ZHSW1hZ2U+
KCpyZW5kZXJlcikudXBkYXRlSW1hZ2VWaWV3cG9ydCgpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJl
RGlydHkoKTsKKyAgICAgICAgICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFu
Z2UoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIGlmIChhdHRyTmFtZSA9PSBTVkdO
YW1lczo6d2lkdGhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQogICAg
ICAgICAgICAgc2V0UHJlc2VudGF0aW9uYWxIaW50U3R5bGVJc0RpcnR5KCk7CiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFz
cGVjdFJhdGlvQXR0cik7Ci0gICAgICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hh
aW5BcmVEaXJ0eSgpOworICAgICAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hh
bmdlKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZUVsZW1lbnQuY3BwCmluZGV4IDIzMTlkNWVjY2Q3ZWYyMzQ0NmZkZTg0Y2VkNzJhMDg3
YTY5OTdjNzAuLjdmMTJkMjY2YjBjZTU3NGMxNjY3NGMwNGJmOTIwOTk0ZjE5NmQ5NDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFNW
R0xpbmVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogCiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkp
CiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxMZWdhY3lSZW5kZXJTVkdTaGFwZSo+KHJlbmRlcmVy
KS0+c2V0TmVlZHNTaGFwZVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCAxY2Q1MDFiMDJlNjlkNDYyNzhl
NTdjZWI5YjhlY2ZmYTI5ZjFjYjlhLi40ODU4MmI1MzlmMDlkMzUwN2JlY2Q1YzZjZDhkYjNkZTA4
MzhkNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmNwcApAQCAtODMsNyArODMsNyBAQCB2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgIGlm
IChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAg
ICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgdXBkYXRl
UmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5B
bmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVt
ZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmNwcAppbmRleCAwOTZlZDA5ZGFjMGRhMDE2NDViY2YyZTk2Yzg5MjRl
MDExNDI4MTVkLi4yZDZhYTc0ZjI2NDg4MWRhOWE0ZWRhNDcwYWQyOWI3ZjgzMmQ2NzEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCkBAIC05OCwxMiArOTgsMTIgQEAg
dm9pZCBTVkdNYXJrZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJk
KCp0aGlzKTsKICAgICAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzQW5pbWF0ZWRMZW5ndGhB
dHRyaWJ1dGUoYXR0ck5hbWUpKQogICAgICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5m
b3JtYXRpb24oKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGly
dHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lk
IFNWR01hcmtlckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hh
bmdlKQogICAgIGlmIChjaGFuZ2Uuc291cmNlID09IENoaWxkQ2hhbmdlOjpTb3VyY2U6OlBhcnNl
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWlu
QXJlRGlydHkoKTsKKyAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0K
IAogQXRvbVN0cmluZyBTVkdNYXJrZXJFbGVtZW50OjpvcmllbnQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKaW5kZXggMjU3NzgzYjM0ZWNiMjU4Y2UyN2ZlNDE0Y2E4
YjZmZTg2OTFkMzk3Mi4uNjVmYzlhN2FjOTAxOGEzNWIzMTUwN2NjYmU5NDEyNjY3MmIwMzA2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAg
dm9pZCBTVkdNYXNrRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKICAgICB9CiAKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3Rv
ckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hh
bmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lk
IFNWR01hc2tFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5n
ZSkKICAgICBpZiAoY2hhbmdlLnNvdXJjZSA9PSBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFy
ZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAK
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRleCBkMGI1ZGYyMWQxNmFjNGRjMTMw
ZjQwMjkxYmQ0NWE5OWZkMzg0NmY3Li40YWViNDZlYzUyNjNkY2Y3NjQyN2E3M2I2YTQ5NWVhNzkw
YjI1MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTcyLDcgKzcy
LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKIAogICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlz
LT5yZW5kZXJlcigpKQogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUGF0aCo+KHJl
bmRlcmVyKS0+c2V0TmVlZHNTaGFwZVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJ
bkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVs
ZW1lbnRDaGFuZ2UoKTsKIAogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKaW5kZXggYjQ3NTg5ZmY4ZmNhN2NhMTY4Mzk2YmU5NjE4
NGVkNjRlZDk3MDVhNi4uNjJhOGIzNmM1MGExMTQ3YWY5OTFmMzc4MmUzNGUzMWQzNmE5OTU1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC0xMTcsNyArMTE3
LDcgQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICB9CiAKICAgICBpZiAoUHJvcGVydHlSZWdpc3Ry
eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkgfHwgU1ZHRml0VG9WaWV3Qm94Ojppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKSB8fCBTVkdVUklSZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1dGUo
YXR0ck5hbWUpKSB7Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURp
cnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBTVkdQYXR0ZXJu
RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAg
aWYgKGNoYW5nZS5zb3VyY2UgPT0gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgp
OworICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCiBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gU1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKaW5kZXggODBlZDAzZmNhNGI3YzM2Njg1NDA5NWM2
ZGVjYjdjNTZhYzNmZmUzMC4uMDY3ZmUxZDQ4MWJmNDBhMGE5YjZkOTVmYzc4MGJhMTc4MDI3N2Q1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBA
IHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQo
KnRoaXMpOwogICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQog
ICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUGF0aCo+KHJlbmRlcmVyKS0+c2V0TmVl
ZHNTaGFwZVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5B
cmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCAwNzRhNzY3NzlkN2RjYjEwOTA3ZDZlNzBkZWUz
MGJiZWMzMDkyYzNkLi5jNGZjMGRiMjAyMWUyYzE1NmJiZmRlZDUxMzc1MmYxZTdhNWU0OTJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcApA
QCAtODksNyArODksNyBAQCB2b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgIGlmIChQcm9wZXJ0
eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5j
ZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgdXBkYXRlUmVsYXRpdmVM
ZW5ndGhzSW5mb3JtYXRpb24oKTsKLSAgICAgICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNo
YWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdl
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmNwcAppbmRleCA3Yzg0OTEyOTMxNzdlNmNhZGY2ZWFhMDVhOWY2ODUwYWFmOWRmZDA1Li4xYWIx
MjlkOThkNzk4YjM3ZjUwNjg0NjUyYmIzNmE0OTMyODNjYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBTVkdTVkdFbGVtZW50Ojpz
ZXRDdXJyZW50VHJhbnNsYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHRyYW5zbGF0aW9uKQogCiB2b2lk
IFNWR1NWR0VsZW1lbnQ6OnVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUoKQogewotICAgIHNldFNWR1Jl
c291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgdXBkYXRlU1ZHUmVuZGVyZXJG
b3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgaWYgKHBhcmVudE5vZGUoKSA9PSAmZG9jdW1lbnQoKSAm
JiBkb2N1bWVudCgpLnJlbmRlclZpZXcoKSkKICAgICAgICAgZG9jdW1lbnQoKS5yZW5kZXJWaWV3
KCktPnJlcGFpbnQoKTsKIH0KQEAgLTIyNCwxNCArMjI0LDE0IEBAIHZvaWQgU1ZHU1ZHRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAg
ICAgICAgICAgICAgICAgICAgcmVuZGVyZXItPnZpZXcoKS5zZXROZWVkc0xheW91dChNYXJrT25s
eVRoaXMpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHNldFNWR1Jlc291cmNl
c0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9y
RWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKFNWR0Zp
dFRvVmlld0JveDo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgaWYgKGF1
dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJlbmRlcmVyLT5z
ZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2Vz
dG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRD
aGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9w
RWxlbWVudC5jcHAKaW5kZXggYWQ4MzIzOTllNmRlZGMxMDkwODMzNjAwMTAxYTA4MWYyNGEwNzk1
MS4uZTIxMWNiZTk1YTk1MDAzMTMyZDNkZGM5NTZmNzMxOTUwYWQwY2Q1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU1ZHU3RvcEVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7
CiAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6b2Zmc2V0QXR0cik7CiAgICAg
ICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBzZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdS
ZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggY2U0N2UyNzM2Yzc0NTNhNGVjYWY3
NjA1NTExNzcxZDc5MWY3ZDIyNS4uODg0NGIzMzk5NzQzYjdlOTNmNGMzODE1YWU4NzhiZGU0MTNh
MTc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0xODMsNyArMTgz
LDcgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjppc0tub3duQXR0
cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1
YXJkKCp0aGlzKTsKICAgICAgICAgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKTsKLSAgICAgICAgc2V0
U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBkYXRlU1ZH
UmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKaW5kZXggZjg0YzM0
YjQ0MDEyZGFhY2Q4Mzk1YjE2MmM0ODE3NjA1NGM3ZmVjZi4uNTA3Mjk5MzljNTIzMjNhNjU5YWY2
YmRhZDMxODNmMmMxMmRiZWUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250
ZW50RWxlbWVudC5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2b2lkIFNWR1RleHRDb250ZW50RWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICAgICAgICAgIG1fc3BlY2lmaWVkVGV4dExlbmd0aCA9IG1fdGV4dExlbmd0aC0+YmFzZVZh
bCgpLT52YWx1ZSgpOwogCiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQo
KnRoaXMpOwotICAgICAgICBzZXRTVkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgp
OworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQ
YXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cAppbmRleCAwNzhjMGM3ODExYjc0YjAxNmYxMzY3NzY4MTNjYjYzOGE2ZDMxYTcxLi5lM2JkMGYz
OGIzMmI2MDExYTg3MWUwOWIwY2U3YmJkNmJiMDk2OGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBhdGhFbGVtZW50LmNwcApAQCAtOTMsMTMgKzkzLDEzIEBAIHZvaWQgU1ZHVGV4dFBh
dGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnN0YXJ0T2Zmc2V0QXR0cikK
ICAgICAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7CiAKLSAgICAg
ICAgc2V0U1ZHUmVzb3VyY2VzSW5BbmNlc3RvckNoYWluQXJlRGlydHkoKTsKKyAgICAgICAgdXBk
YXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkg
ewogICAgICAgICBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwotICAgICAgICBzZXRTVkdSZXNvdXJj
ZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICB1cGRhdGVTVkdSZW5kZXJlckZv
ckVsZW1lbnRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCmluZGV4IGJhYTU1MWRj
M2YzMTQwZGUyZTUxNWNmOTU0NDBjNGRkZGY1ZTdjNzkuLjA3YTA2OWJlYTUxODQ5ZGUwOTM4NTIw
NzRiMTM4MjNhNzgxNTFiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbQogICAgICAgICAgICAgaWYgKGF1dG8qIHRleHRBbmNlc3RvciA9IFJlbmRlclNWR1Rl
eHQ6OmxvY2F0ZVJlbmRlclNWR1RleHRBbmNlc3RvcigqcmVuZGVyZXIpKQogICAgICAgICAgICAg
ICAgIHRleHRBbmNlc3Rvci0+c2V0TmVlZHNQb3NpdGlvbmluZ1ZhbHVlc1VwZGF0ZSgpOwogICAg
ICAgICB9Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7
CisgICAgICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggMDU1
ZGQ1MDI0ZTdlNDcxNjAyYjIzM2U4NzdhNWJjY2E0ZTExN2Q1Ni4uNDFkNWJlNmVjM2NlZWQwZGRj
YjQ4MWU4NTI5M2VlMTllYmM5ZWI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNw
cApAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgICAgIGlmIChhdXRv
IHRhcmdldENsb25lID0gdGhpcy0+dGFyZ2V0Q2xvbmUoKSkKICAgICAgICAgICAgICAgICB0cmFu
c2ZlclNpemVBdHRyaWJ1dGVzVG9UYXJnZXRDbG9uZSgqdGFyZ2V0Q2xvbmUpOwogICAgICAgICB9
Ci0gICAgICAgIHNldFNWR1Jlc291cmNlc0luQW5jZXN0b3JDaGFpbkFyZURpcnR5KCk7CisgICAg
ICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAppbmRleCBlYWEyNjUx
NjRjNDk2YWRlYTM4MjVlMWIzNDhlM2ZhNDBkOWUwYTZjLi40ZTJlOTU0YWM3YzE3ODc3ZDY5ODBj
MWQ3ZTdlMzJkMGJjYjM5ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAK
QEAgLTYyLDcgKzYyLDcgQEAgdm9pZCBTVkdWaWV3RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgaWYgKCFtX3RhcmdldEVs
ZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fdGFyZ2V0RWxlbWVudC0+aW5o
ZXJpdFZpZXdBdHRyaWJ1dGVzKCp0aGlzKTsKLSAgICAgICAgbV90YXJnZXRFbGVtZW50LT5zZXRT
VkdSZXNvdXJjZXNJbkFuY2VzdG9yQ2hhaW5BcmVEaXJ0eSgpOworICAgICAgICBtX3RhcmdldEVs
ZW1lbnQtPnVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggODAzMzJiNWE2N2Q0MjJiZWVlOGE0OTYwNDNkYjIxNTNkNmJi
ZWIyMS4uNjc2M2FjM2JhYjhiYWViNDllZDlmZWY3OTk3ODA5NDM4YmY5ODg2YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIyLTA1LTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjkxNzg4KTogTW90aW9uTWFyayBTdWl0cyBzdWJ0
ZXN0IGlzIDklIHJlZ3Jlc3NlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjQwMTEyCisgICAgICAgIHJkYXI6Ly85MjQwOTkwMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3ZnL2FuaW1hdGlvbnMvYW5p
bWF0aW9uLWxlYWstbGlzdC1wcm9wZXJ0eS1pbnN0YW5jZXMuaHRtbDoKKworICAgICAgICBEbyBh
IHJlbmRlcmluZyB1cGRhdGUgYmVmb3JlIGNoZWNraW5nIGZvciBsZWFrcy4KKwogMjAyMi0wNS0w
OSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
V2luQ2Fpcm9dW1dLMV0gYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWNvbnRyb2wtb3ducy1l
bGVtZW50cy5odG1sIGlzIGNyYXNoaW5nIGFmdGVyIDI1MDMyNUBtYWluCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU3MTFjOTQxOTcxMDllNDI1YzZjNzgw
MjFkNmI4YTA3YjIyZTY1MjUuLjAzZDZmYjA4MjYxYTY1MGY4YzU4ZDJkYTYxYWExMDllNGM1NTli
ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0zODQ3
LDYgKzM4NDcsOCBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9h
dWRpby1yZWRpcmVjdC1ibG9ja2VkLmh0bWwgWyBUaW1lb3V0CiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ibG9jay1mYXZpY29uLmh0bWwgWyBGYWlsdXJlIFBhc3Mg
XQogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS93b3JrZXJzL2Nsb3NlLWNvZGUtYW5k
LXJlYXNvbi5odG1sIFsgQ3Jhc2ggUGFzcyBdCiBzdmcvYW5pbWF0aW9ucy9hbmltYXRpb25zLXBh
dXNlZC1pbi1iYWNrZ3JvdW5kLXBhZ2UuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCitzdmcvYW5pbWF0
aW9ucy9hbmltYXRpb25zLXBhdXNlZC13aGVuLWluc2VydGVkLWluLWhpZGRlbi1kb2N1bWVudC5o
dG1sIFsgU2tpcCBdCitzdmcvYW5pbWF0aW9ucy9hbmltYXRpb25zLXBhdXNlZC13aGVuLWluc2Vy
dGVkLWluLWhpZGRlbi1kb2N1bWVudDIuaHRtbCBbIFNraXAgXQogCiAjIEZJWE1FOiBjcmVhdGUg
YnVncyB0byB0cmFjayB0aGUgZm9sbG93aW5nIGZhaWx1cmVzOgogYWNjZXNzaWJpbGl0eS9hZGQt
Y2hpbGRyZW4tcHNldWRvLWVsZW1lbnQuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWxlYWstbGlzdC1wcm9wZXJ0eS1pbnN0
YW5jZXMuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2FuaW1hdGlvbi1sZWFrLWxp
c3QtcHJvcGVydHktaW5zdGFuY2VzLmh0bWwKaW5kZXggZDA2ZmI0MjBhNGQ4MWNhMGNmMDE5MmU2
ODI5YmUwYzQ3NzhmYTBjMC4uYzY3ZDljNWMzNTcwZTQ2ZDBkNTQzMWU4NzY3NDEyMGJhYmQwMmI1
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWxlYWst
bGlzdC1wcm9wZXJ0eS1pbnN0YW5jZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0
aW9ucy9hbmltYXRpb24tbGVhay1saXN0LXByb3BlcnR5LWluc3RhbmNlcy5odG1sCkBAIC0zNyw2
ICszNyw3IEBACiAgICAgICAgICByZXR1cm47CiAgICAgIH0KIAorICAgICBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICAgLy8gT25lIGdj
KCkgY2FsbCBpcyBub3QgZW5vdWdoIGFuZCBjYXVzZXMgZmxha2luZXNzIGluIHNvbWUgcGxhdGZv
cm1zLgpAQCAtNDgsMTIgKzQ5LDE1IEBACiAgICAgIGFwcGx5VHJhbnNmb3JtKCk7CiAgICAgIHJl
bW92ZVJlY3QoKTsKIAotICAgICAvLyBPbmUgZ2MoKSBjYWxsIGlzIG5vdCBlbm91Z2ggYW5kIGNh
dXNlcyBmbGFraW5lc3MgaW4gc29tZSBwbGF0Zm9ybXMuCi0gICAgIGdjKCk7Ci0gICAgIGdjKCk7
Ci0gICAgIHZhciBkZWx0YSA9IGludGVybmFscy5udW1iZXJPZkxpdmVOb2RlcygpIC0gb3JpZ2lu
YWxMaXZlRWxlbWVudHM7Ci0gICAgIHNob3VsZEJlWmVybyhkZWx0YS50b1N0cmluZygpKTsKLSAg
ICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgIHJlcXVlc3RBbmltYXRpb25G
cmFtZSgoKSA9PiB7CisgICAgICAgICAvLyBPbmUgZ2MoKSBjYWxsIGlzIG5vdCBlbm91Z2ggYW5k
IGNhdXNlcyBmbGFraW5lc3MgaW4gc29tZSBwbGF0Zm9ybXMuCisgICAgICAgICBnYygpOworICAg
ICAgICAgZ2MoKTsKKyAgICAgICAgIHZhciBkZWx0YSA9IGludGVybmFscy5udW1iZXJPZkxpdmVO
b2RlcygpIC0gb3JpZ2luYWxMaXZlRWxlbWVudHM7CisgICAgICAgICBzaG91bGRCZVplcm8oZGVs
dGEudG9TdHJpbmcoKSk7CisgICAgICAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
KyAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICB9KTsKICB9CiA8L3Njcmlw
dD4KIDxib2R5IG9ubG9hZD0idGVzdCgpIj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>