<?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>208813</bug_id>
          
          <creation_ts>2020-03-09 08:34:05 -0700</creation_ts>
          <short_desc>Add support for scrollend event on Mac</short_desc>
          <delta_ts>2025-08-14 13:20:35 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>295661</dup_id>
          
          <bug_file_loc>https://wicg.github.io/overscroll-scrollend-events/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>201556</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="cathiechen">cathiechen</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>herr.ernst</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jbedard</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattiasha</cc>
    
    <cc>msaboff</cc>
    
    <cc>nmouchtaris</cc>
    
    <cc>ntim</cc>
    
    <cc>pdr</cc>
    
    <cc>pinkhominid</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tzagallo</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1627776</commentid>
    <comment_count>0</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-03-09 08:34:05 -0700</bug_when>
    <thetext>Add support for scrollend event on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631085</commentid>
    <comment_count>1</comment_count>
      <attachid>393835</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-03-18 05:40:18 -0700</bug_when>
    <thetext>Created attachment 393835
scrollend-userscroll-on-Mac-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631086</commentid>
    <comment_count>2</comment_count>
      <attachid>393836</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-03-18 05:41:29 -0700</bug_when>
    <thetext>Created attachment 393836
scrollend-userscroll-on-Mac-for-ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631091</commentid>
    <comment_count>3</comment_count>
      <attachid>393839</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-03-18 05:53:31 -0700</bug_when>
    <thetext>Created attachment 393839
scrollend-userscroll-on-Mac-for-ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631093</commentid>
    <comment_count>4</comment_count>
      <attachid>393841</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-03-18 05:54:00 -0700</bug_when>
    <thetext>Created attachment 393841
scrollend-userscroll-on-Mac-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673485</commentid>
    <comment_count>5</comment_count>
      <attachid>404830</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-21 10:06:40 -0700</bug_when>
    <thetext>Created attachment 404830
scrollend-userscroll-on-Mac-for-ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673486</commentid>
    <comment_count>6</comment_count>
      <attachid>404831</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-21 10:08:01 -0700</bug_when>
    <thetext>Created attachment 404831
scrollend-userscroll-on-Mac-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675982</commentid>
    <comment_count>7</comment_count>
      <attachid>405452</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-29 06:27:26 -0700</bug_when>
    <thetext>Created attachment 405452
scrollend-userscroll-on-Mac-for-ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675984</commentid>
    <comment_count>8</comment_count>
      <attachid>405454</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-07-29 06:27:59 -0700</bug_when>
    <thetext>Created attachment 405454
scrollend-userscroll-on-Mac-for-review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2136556</commentid>
    <comment_count>9</comment_count>
    <who name="Nikos Mouchtaris">nmouchtaris</who>
    <bug_when>2025-08-14 13:20:35 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 295661 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393835</attachid>
            <date>2020-03-18 05:40:18 -0700</date>
            <delta_ts>2020-03-18 05:53:31 -0700</delta_ts>
            <desc>scrollend-userscroll-on-Mac-for-review</desc>
            <filename>scrollend-mac-for-review.diff</filename>
            <type>text/plain</type>
            <size>20847</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNDcxOTExZjg0Li40NDkzYWViNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTQgQEAKKzIwMjAtMDMtMTggIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGRl
YWxzIHdpdGggdGhlIHVzZXIgc2Nyb2xsaW5nIG9uIE1hYzogd2hlZWwgc2Nyb2xsaW5nLCBrZXli
b2FyZCBzY3JvbGxpbmcsIGF1dG9zY3JvbGwoZHJhZyBzY3JvbGxpbmcpLgorICAgICAgICBXaGVl
bCBzY3JvbGxpbmc6IEJlc2lkZXMgdXNlciBzY3JvbGwsIGl0IG1pZ2h0IGdlbmVyYXRlIG1vbWVu
dHVtIHNjcm9sbGluZywgUnViYmVyQmFuZCwgYW5kIHNjcm9sbFNuYXAuIFNvIGFkZAorICAgICAg
ICBtX2RldGVjdFNjcm9sbGVuZFRpbWVyIHRvIGRldGVjdCB3aGVuIGRvZXMgdGhlIHNjcm9sbGlu
ZyBlbmQuCisgICAgICAgIEtleWJvYXJkIHNjcm9sbGluZzogSGFuZGxlZCBieSBTY3JvbGxBbmlt
YXRvck1hYy4gRm9yIEZyYW1lVmlldywgdGhlIHNjcm9sbGluZyBpcyBhbmltYXRlZCwgc28gc2F2
ZSB0aGUgcG9zaXRpb24gZmlyc3QsCisgICAgICAgIHRoZW4gY2hlY2sgdGhlIHBvc2l0aW9uIHdo
ZW4gaXQgYWN0dWFsbHkgc2Nyb2xscy4gRm9yIFJlbmRlckxheWVyLCBpdCBpcyBpbnN0YW50LCBz
byBub3RpZnkgc2Nyb2xsIGVuZC4KKyAgICAgICAgQXV0b3Njcm9sbDogTm90aWZ5IHNjcm9sbCBl
bmQgd2hlbiBhdXRvc2Nyb2xsIHRpbWVyIGlzIHN0b3BwZWQuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Om5vdGlmeVNjcm9sbERpZEVuZCk6IE5vdGlmeSB0
aGUgY3VycmVudCBzY3JvbGxpbmcgZW5kcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
Ojpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpub3RpZnlT
Y3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVl
Ojpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6bm90
aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNhdmVTY3JvbGxlbmRF
dmVudFBvc2l0aW9uIGNvbnN0KTogU2F2ZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIGZpcmUgc2Ny
b2xsZW5kIGV2ZW50LgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAg
ICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQ29udHJvbGxlckNsaWVudDo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OlNjcm9sbENvbnRyb2xsZXIpOiBBZGQgbV9kZXRlY3RT
Y3JvbGxlbmRUaW1lciB0byBkZXRlY3Qgd2hlbiB0aGUgd2hlZWwgc2Nyb2xsaW5nIGVuZHMuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogU3Rh
cnQgdGhlIHRpbWVyIGF0IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQgcGhyYXNlLCBhbmQg
c3RvcCBpdAorICAgICAgICBhdCBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuIHBocmFzZS4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9y
U2Nyb2xsU25hcCk6IER1cmluZyBTY3JvbGxTbmFwLCBzdGFydCB0aGUgdGltZXIgYXQgVXNlclNj
cm9sbEVuZAorICAgICAgICBzdGF0dXMsIGFuZCBzdG9wIGl0IGF0IFVzZXJTY3JvbGxCZWdpbiBv
ciBVc2VyU2Nyb2xsaW5nIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xs
ZXI6OnN0YXJ0RGV0ZWN0U2Nyb2xsZW5kVGltZXIpOiBTdGFydCB0aGUgdGltZXIsIHJlcGVhdGlu
ZyAxLzYwIHMKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0b3BEZXRlY3RT
Y3JvbGxlbmRUaW1lcik6IFN0b3AgdGhlIHRpbWVyIGFuZCBub3RpZnlTY3JvbGxEaWRFbmQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTY3JvbGxlbmRUaW1lckZp
cmVkKTogSWYgUnViYmVyQmFuZCwgbW9tZW50dW1TY3JvbGwgYW5kIHNjcm9sbFNuYXAgaXMgbm90
IGluIHByb2dyZXNzLCBzdG9wIHRoZSB0aW1lci4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKTogRm9y
IGtleWJvYXJkIHNjcm9sbGluZywgaWYgaXQncyBpbnN0YW50IHNjcm9sbGluZyBub3RpZnlTY3Jv
bGxEaWRFbmQsIGlmIGl0J3MKKyAgICAgICAgYW5pbWF0ZWQgc2Nyb2xsaW5nIHNhdmVTY3JvbGxl
bmRFdmVudFBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om5v
dGlmeVNjcm9sbERpZEVuZCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCk6IFB1dCB0
aGUgdGFyZ2V0IHRvIHRoZSBsaXN0IHdoZW4gYXV0b3Njcm9sbCBzdG9wcy4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0b3BB
dXRvc2Nyb2xsKTogRGVsZXRlZC4KKwogMjAyMC0wMy0xNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVj
aGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbGVuZCBldmVu
dCBvZiBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGVk
NzIwMzY3NDMuLmY3MjhjODRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC04ODAsNiAr
ODgwLDI5IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVwb3J0U3luY2hyb25v
dXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uCiAgICAgICAgIG1fcGFnZS0+cGVyZm9y
bWFuY2VMb2dnaW5nQ2xpZW50KCktPmxvZ1Njcm9sbGluZ0V2ZW50KFBlcmZvcm1hbmNlTG9nZ2lu
Z0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQ6OlN3aXRjaGVkU2Nyb2xsaW5nTW9kZSwgdGltZXN0YW1w
LCByZWFzb25zLnRvUmF3KCkpOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
dm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlTY3JvbGxEaWRFbmQoU2Nyb2xs
aW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZyYW1l
VmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoc2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBp
ZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjcm9sbGluZ05vZGVJ
RCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGZyYW1lVmlldy0+
Zm9yY2VTY3JvbGxlbmQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIE92ZXJm
bG93LXNjcm9sbCBhcmVhLgorICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IGZyYW1lVmll
dy0+c2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxMYXllcklEKHNjcm9sbGluZ05vZGVJRCkpCisgICAg
ICAgIHNjcm9sbGFibGVBcmVhLT5mb3JjZVNjcm9sbGVuZCgpOworfQorI2VuZGlmCisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgKaW5kZXggNmRhMmU4MzE0Ni4uYjY4ZTZlNzY3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaApAQCAtNjgsNiArNjgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVwb3J0RXhwb3Nl
ZFVuZmlsbGVkQXJlYShNb25vdG9uaWNUaW1lLCB1bnNpZ25lZCB1bmZpbGxlZEFyZWEpOwogICAg
IHZvaWQgcmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uaWNU
aW1lLCBPcHRpb25TZXQ8U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb24+KTsKIAorI2lmIEVOQUJM
RShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG5vdGlmeVNjcm9s
bERpZEVuZChTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworI2VuZGlmCisKIHByb3RlY3RlZDoK
ICAgICBXRUJDT1JFX0VYUE9SVCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmgKaW5kZXggMDUxM2ZlNzg3Ni4uZjVhN2MzYjBlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0xMTYsNiAr
MTE2LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5U
UykKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5kKFNj
cm9sbGluZ05vZGVJRCkgeyB9CisjZW5kaWYKKwogICAgIC8vIEZvcmNlIGFsbCBzY3JvbGwgbGF5
ZXIgcG9zaXRpb24gdXBkYXRlcyB0byBoYXBwZW4gb24gdGhlIG1haW4gdGhyZWFkLgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25V
cGRhdGVzKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmgKaW5kZXggNzE5MWEzNzYyMy4uNTljZTkyZDFiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTExLDYgKzExMSwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRl
ZmVycmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVu
dGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSB7IH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlT
Y3JvbGxEaWRFbmQoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJ
bmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5z
aWduZWQgdmVydGljYWwpID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggODEwYWZkNDQz
MS4uMWFiNmYwY2U3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC0yMjUsNiArMjI1LDE4IEBAIHZvaWQg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpyZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZl
cnJhbEZvclJlYXNvbihXaGVlCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZF
TlRTKQordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om5vdGlmeVNjcm9sbERpZEVuZChTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlEKQoreworICAgIGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtzY3JvbGxp
bmdDb29yZGluYXRvciA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IsIG5vZGVJRF0geworICAgICAg
ICBzY3JvbGxpbmdDb29yZGluYXRvci0+bm90aWZ5U2Nyb2xsRGlkRW5kKG5vZGVJRCk7CisgICAg
fSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKEFTWU5DX1NDUk9MTElORykgJiYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5o
CmluZGV4IDA1ZGRjNWNkMDMuLjMyMWQxZDc2YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC03MCw2ICs3MCwx
MCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25E
ZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRl
bnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2b2lkIG5vdGlmeVNj
cm9sbERpZEVuZChTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworI2VuZGlmCisKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNj
cm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92
ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWMuaAppbmRleCBmNWQ0ZGU1ODdmLi42ZDE1YmM2YjE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKQEAgLTc5LDYgKzc5LDEwIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcigpIG92ZXJyaWRlOwogICAgIHZv
aWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCkgb3ZlcnJpZGU7CiAK
KyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBub3RpZnlTY3JvbGxEaWRF
bmQoKSBvdmVycmlkZTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAg
ICBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaW1t
ZWRpYXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50QXhpcywgZmxvYXQgZGVsdGEpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRl
eCA4ZDQ4ZTZkNDQ4Li4zNTNlOWIyNTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQpAQCAtMjUzLDYgKzI1MywxMyBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmFkanVzdFNjcm9sbFBvc2l0aW9uVG9Cb3Vu
ZHNJZk5lY2VzcwogICAgIGltbWVkaWF0ZVNjcm9sbEJ5KGNvbnN0cmFpbmVkUG9zaXRpb24gLSBz
Y3JvbGxQb3NpdGlvbik7CiB9CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vdGlmeVNjcm9sbERpZEVu
ZCgpCit7CisgICAgc2Nyb2xsaW5nVHJlZSgpLm5vdGlmeVNjcm9sbERpZEVuZChzY3JvbGxpbmdO
b2RlKCkuc2Nyb2xsaW5nTm9kZUlEKCkpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1ND
Uk9MTF9TTkFQKQogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjOjpzY3JvbGxPZmZzZXQoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuY3BwCmluZGV4IDBmYzcyOWU5MTIuLmI5NjI4MDUxNjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTE4OCw2ICsxODgsMTMgQEAg
dm9pZCBTY3JvbGxBbmltYXRvcjo6c2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IHBvc2l0aW9uKQogICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNldCgpOwog
fQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBTY3JvbGxBbmltYXRvcjo6
c2F2ZVNjcm9sbGVuZEV2ZW50UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pIGNv
bnN0Cit7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5zYXZlU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihy
b3VuZGVkSW50UG9pbnQocG9zaXRpb24pKTsKK30KKyNlbmRpZgorCiB2b2lkIFNjcm9sbEFuaW1h
dG9yOjp1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKQogewogI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
aAppbmRleCA5YjdjMDliNjkwLi45NDE4YjJhMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmgKQEAgLTg3LDYgKzg3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgY29uc3QgRmxvYXRQb2lu
dCYgY3VycmVudFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UG9zaXRpb247IH0K
IAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2b2lkIHNhdmVTY3JvbGxlbmRF
dmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyNlbmRpZgorCiAgICAgdmly
dHVhbCB2b2lkIGNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNj
cm9sbEFuaW1hdGlvbnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
U2Nyb2xsQ29udHJvbGxlci5oCmluZGV4IDY5NjA3Y2RjYTkuLjk0MmY5ZDVjNTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTc4
LDYgKzc4LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRp
b25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCkgPSAwOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1ZFUlND
Uk9MTF9FVkVOVFMpCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgpIHt9Cisj
ZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZv
clJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwg
V2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3QgeyAvKiBEbyBub3RoaW5n
ICovIH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVm
ZXJyYWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50
aWZpZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGNvbnN0IHsgLyogRG8g
bm90aGluZyAqLyB9CiAKQEAgLTE3Miw2ICsxNzYsMTEgQEAgcHJpdmF0ZToKICNlbmRpZgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBzdGFydERldGVj
dFNjcm9sbGVuZFRpbWVyKCk7CisgICAgdm9pZCBzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsK
KyAgICB2b2lkIGRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKTsKKyNlbmRpZgogICAgIFNjcm9s
bENvbnRyb2xsZXJDbGllbnQmIG1fY2xpZW50OwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTk4
LDYgKzIwNywxMCBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKKyAgICBSdW5Mb29wOjpUaW1lcjxTY3JvbGxDb250cm9sbGVyPiBtX2Rl
dGVjdFNjcm9sbGVuZFRpbWVyOworI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpCiAgICAgYm9v
bCBtX2luU2Nyb2xsR2VzdHVyZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX21vbWVudHVtU2Nyb2xs
SW5Qcm9ncmVzcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29j
b2EvU2Nyb2xsQ29udHJvbGxlci5tbQppbmRleCAzNTYwYmFiZjI5Li4zM2RlNzNhZDRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0K
QEAgLTkzLDYgKzkzLDkgQEAgU2Nyb2xsQ29udHJvbGxlcjo6U2Nyb2xsQ29udHJvbGxlcihTY3Jv
bGxDb250cm9sbGVyQ2xpZW50JiBjbGllbnQpCiAgICAgLCBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0
aW9uVGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmU2Nyb2xsQ29udHJvbGxlcjo6c3Rh
dGVsZXNzU25hcFRyYW5zaXRpb25UaW1lckZpcmVkKQogICAgICwgbV9zY3JvbGxTbmFwVGltZXIo
UnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmU2Nyb2xsQ29udHJvbGxlcjo6c2Nyb2xsU25hcFRp
bWVyRmlyZWQpCiAjZW5kaWYKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgLCBt
X2RldGVjdFNjcm9sbGVuZFRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJlNjcm9sbENv
bnRyb2xsZXI6OmRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQpCisjZW5kaWYKIHsKIH0KIApAQCAt
MTIxLDEyICsxMjQsMTcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgbV9vdmVyZmxv
d1Njcm9sbERlbHRhID0gRmxvYXRTaXplKCk7CiAKICAgICAgICAgc3RvcFNuYXBSdWJiZXJiYW5k
VGltZXIoKTsKLQorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAgc3RvcERl
dGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZUVuZGVkKSB7CiAgICAgICAgIHNuYXBSdWJiZXJCYW5kKCk7CisjaWYgRU5BQkxFKE9WRVJTQ1JP
TExfRVZFTlRTKQorICAgICAgICBzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC01MjksMTIgKzUzNywxOCBAQCBib29s
IFNjcm9sbENvbnRyb2xsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmCiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpVc2VyU2Nyb2xs
QmVnaW46CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpVc2VyU2Nyb2xsaW5nOgogICAgICAg
ICBzdG9wU2Nyb2xsU25hcFRpbWVyKCk7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
ICAgICAgICBzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsKKyNlbmRpZgogICAgICAgICBtX3Nj
cm9sbFNuYXBTdGF0ZS0+dHJhbnNpdGlvblRvVXNlckludGVyYWN0aW9uU3RhdGUoKTsKICAgICAg
ICAgbV9kcmFnRW5kZWRTY3JvbGxpbmdWZWxvY2l0eSA9IC13aGVlbEV2ZW50LnNjcm9sbGluZ1Zl
bG9jaXR5KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFN0YXR1czo6VXNl
clNjcm9sbEVuZDoKICAgICAgICAgbV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5zaXRpb25Ub1NuYXBB
bmltYXRpb25TdGF0ZShtX2NsaWVudC5zY3JvbGxFeHRlbnQoKSwgbV9jbGllbnQudmlld3BvcnRT
aXplKCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVudC5zY3JvbGxPZmZzZXQo
KSk7CiAgICAgICAgIHN0YXJ0U2Nyb2xsU25hcFRpbWVyKCk7CisjaWYgRU5BQkxFKE9WRVJTQ1JP
TExfRVZFTlRTKQorICAgICAgICBzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpJbmVydGlhbFNjcm9s
bEJlZ2luOgogICAgICAgICBtX3Njcm9sbFNuYXBTdGF0ZS0+dHJhbnNpdGlvblRvR2xpZGVBbmlt
YXRpb25TdGF0ZShtX2NsaWVudC5zY3JvbGxFeHRlbnQoKSwgbV9jbGllbnQudmlld3BvcnRTaXpl
KCksIG1fY2xpZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVudC5zY3JvbGxPZmZzZXQoKSwg
bV9kcmFnRW5kZWRTY3JvbGxpbmdWZWxvY2l0eSwgRmxvYXRTaXplKC13aGVlbEV2ZW50LmRlbHRh
WCgpLCAtd2hlZWxFdmVudC5kZWx0YVkoKSkpOwpAQCAtNjc5LDYgKzY5Myw0MiBAQCB2b2lkIFNj
cm9sbENvbnRyb2xsZXI6OnNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzRm9yT2Zmc2V0KGludCB4
LCBpbnQgeSkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQordm9p
ZCBTY3JvbGxDb250cm9sbGVyOjpzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCkKK3sKKyAgICBp
ZiAobV9kZXRlY3RTY3JvbGxlbmRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2RldGVjdFNjcm9sbGVuZFRpbWVyLnN0YXJ0UmVwZWF0aW5nKDFfcyAvIDYwLik7Cit9
CisKK3ZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RvcERldGVjdFNjcm9sbGVuZFRpbWVyKCkKK3sK
KyAgICBpZiAoIW1fZGV0ZWN0U2Nyb2xsZW5kVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jbGllbnQubm90aWZ5U2Nyb2xsRGlkRW5kKCk7CisgICAgbV9kZXRlY3RT
Y3JvbGxlbmRUaW1lci5zdG9wKCk7Cit9CisKK3ZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6ZGV0ZWN0
U2Nyb2xsZW5kVGltZXJGaXJlZCgpCit7CisgICAgaWYgKGlzUnViYmVyQmFuZEluUHJvZ3Jlc3Mo
KSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChtX21vbWVu
dHVtU2Nyb2xsSW5Qcm9ncmVzcykKKyAgICAgICAgcmV0dXJuOworI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApCisgICAgaWYgKG1fc2Nyb2xsU25hcFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAg
IHJldHVybjsKKyNlbmRpZgorI2VuZGlmCisKKyAgICBzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIo
KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoUlVCQkVSX0JBTkRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5oCmluZGV4IDg3OTVjZjgxNWEuLmZiYzlmMTUyNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCkBAIC02NCw2ICs2
NCwxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIHNjcm9sbGJhcnNDYW5CZUFjdGl2ZSgpIGNvbnN0
IGZpbmFsOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIC8vdm9pZCBzY3Jv
bGxhYmxlQXJlYURpZFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBuZXdQb3NpdGlvbikgZmluYWw7
CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ+IG1fc2Nyb2xsQW5pbWF0aW9u
SGVscGVyOwogICAgIFJldGFpblB0cjxXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZT4g
bV9zY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZTsKQEAgLTE1NCw5ICsxNTgsMTYgQEAgcHJp
dmF0ZToKICAgICBib29sIGlzQWxyZWFkeVBpbm5lZEluRGlyZWN0aW9uT2ZHZXN0dXJlKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYsIFNjcm9sbEV2ZW50QXhpcykgY29uc3Q7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykgJiYgKEVOQUJMRShDU1NfU0NST0xMX1NOQVAp
IHx8IEVOQUJMRShSVUJCRVJfQkFORElORykpCisgICAgdm9pZCBub3RpZnlTY3JvbGxEaWRFbmQo
KSBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAgYm9vbCBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxv
YWQ7CiAgICAgYm9vbCBtX25lZWRzU2Nyb2xsZXJTdHlsZVVwZGF0ZTsKICAgICBJbnRSZWN0IG1f
dmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0OworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykK
KyAgICAvL09wdGlvbmFsPEZsb2F0UG9pbnQ+IG1fcmVxdWlyaW5nUG9zaXRpb247CisjZW5kaWYK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBhNDE1MjU0MjBjLi5lMTQ5MWE0YzI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tCkBAIC03NjEsMTEgKzc2MSwxNiBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwo
U2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaQogewogICAg
IG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IHRydWU7CiAKLSAgICBpZiAoIXNjcm9sbEFu
aW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSB8fCAhbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmlt
YXRvckVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3Jp
ZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKTsKLQotICAgIGlmIChncmFu
dWxhcml0eSA9PSBTY3JvbGxCeVBpeGVsKQotICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6
OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOworICAg
IGlmICghc2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclN5c3RlbSgpIHx8ICFtX3Njcm9sbGFibGVB
cmVhLnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIHx8IGdyYW51bGFyaXR5ID09IFNjcm9sbEJ5UGl4
ZWwpIHsKKyAgICAgICAgaWYgKFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdy
YW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKSkgeworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VW
RU5UUykKKyAgICAgICAgICAgIC8vIFNlbmQgc3JvbGxlbmQgZXZlbnQgaWYgdGhlIHNjcm9sbCBh
cHBsaWVkIGltbWVkaWF0ZWx5LgorICAgICAgICAgICAgbm90aWZ5U2Nyb2xsRGlkRW5kKCk7Cisj
ZW5kaWYKKyAgICAgICAgICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgIAorICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBGbG9hdFBvaW50IGN1cnJlbnRQb3Np
dGlvbiA9IHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpOwogICAgIEZsb2F0U2l6ZSBkZWx0YTsKQEAg
LTc3NSw4ICs3ODAsMTIgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJh
ck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcmkKICAgICAgICAgZGVsdGEu
c2V0SGVpZ2h0KHN0ZXAgKiBtdWx0aXBsaWVyKTsKIAogICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRp
b24gPSBGbG9hdFBvaW50KGN1cnJlbnRQb3NpdGlvbiArIGRlbHRhKS5jb25zdHJhaW5lZEJldHdl
ZW4obV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKSwgbV9zY3JvbGxhYmxl
QXJlYS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7Ci0gICAgaWYgKGN1cnJlbnRQb3NpdGlvbiA9
PSBuZXdQb3NpdGlvbikKKyAgICBpZiAoY3VycmVudFBvc2l0aW9uID09IG5ld1Bvc2l0aW9uKSB7
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBub3RpZnlTY3JvbGxEaWRF
bmQoKTsKKyNlbmRpZgogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgaWYgKFtt
X3Njcm9sbEFuaW1hdGlvbkhlbHBlciBfaXNBbmltYXRpbmddKSB7CiAgICAgICAgIE5TUG9pbnQg
dGFyZ2V0T3JpZ2luID0gW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIHRhcmdldE9yaWdpbl07CkBA
IC03ODcsNiArNzk2LDkgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJh
ck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcmkKICAgICB9CiAKICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbEFuaW1hdG9yTWFjOjpz
Y3JvbGwgIiA8PCAiIGZyb20gIiA8PCBjdXJyZW50UG9zaXRpb24gPDwgIiB0byAiIDw8IG5ld1Bv
c2l0aW9uKTsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgU2Nyb2xsQW5pbWF0
b3I6OnNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKG5ld1Bvc2l0aW9uKTsKKyNlbmRpZgogICAg
IFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBzY3JvbGxUb1BvaW50Om5ld1Bvc2l0aW9uXTsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTEzNjksNiArMTM4MSwxMyBAQCB2b2lkIFNjcm9sbEFuaW1h
dG9yTWFjOjppbW1lZGlhdGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhKQogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpICYmIChFTkFCTEUoQ1NTX1NDUk9M
TF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpKQordm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6bm90aWZ5U2Nyb2xsRGlkRW5kKCkKK3sKKyAgICBtX3Njcm9sbGFibGVBcmVhLmZvcmNlU2Ny
b2xsZW5kKCk7Cit9CisjZW5kaWYKKwogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRlU2Ny
b2xsZXJTdHlsZSgpCiB7CiAgICAgaWYgKFttX3Njcm9sbGVySW1wUGFpciBvdmVybGF5U2Nyb2xs
ZXJTdGF0ZUlzTG9ja2VkXSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApp
bmRleCA2OWM3N2IyYmNlLi5hYmIyYmYwZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcApAQCAtOTU3LDYgKzk1NywxNiBAQCBSZW5kZXJCb3gqIFJlbmRlckJveDo6Zmlu
ZEF1dG9zY3JvbGxhYmxlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGlzPFJl
bmRlckJveD4ocmVuZGVyZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBudWxs
cHRyOwogfQogCit2b2lkIFJlbmRlckJveDo6c3RvcEF1dG9zY3JvbGwoKQoreworI2lmIEVOQUJM
RShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoaXNSZW5kZXJWaWV3KCkgJiYgZnJhbWUoKS52
aWV3KCkpCisgICAgICAgIGZyYW1lKCkudmlldygpLT5mb3JjZVNjcm9sbGVuZCgpOworICAgIGVs
c2UgaWYgKGxheWVyKCkpCisgICAgICAgIGxheWVyKCktPmZvcmNlU2Nyb2xsZW5kKCk7CisjZW5k
aWYKK30KKwogdm9pZCBSZW5kZXJCb3g6OnBhblNjcm9sbChjb25zdCBJbnRQb2ludCYgc291cmNl
KQogewogICAgIGlmIChsYXllcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmlu
ZGV4IGM2NmVhNWU3NzMuLjE5NDRiNzY5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmgKQEAgLTQ3MSw3ICs0NzEsNyBAQCBvdmVycmlkZTsKICAgICBib29sIGNhbkF1dG9zY3Jv
bGwoKSBjb25zdDsKICAgICBJbnRTaXplIGNhbGN1bGF0ZUF1dG9zY3JvbGxEaXJlY3Rpb24oY29u
c3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdDsKICAgICBzdGF0aWMgUmVuZGVyQm94KiBm
aW5kQXV0b3Njcm9sbGFibGUoUmVuZGVyT2JqZWN0Kik7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BB
dXRvc2Nyb2xsKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCk7CiAgICAg
dmlydHVhbCB2b2lkIHBhblNjcm9sbChjb25zdCBJbnRQb2ludCYpOwogCiAgICAgYm9vbCBoYXNW
ZXJ0aWNhbFNjcm9sbGJhcldpdGhBdXRvQmVoYXZpb3IoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393836</attachid>
            <date>2020-03-18 05:41:29 -0700</date>
            <delta_ts>2020-03-18 05:53:31 -0700</delta_ts>
            <desc>scrollend-userscroll-on-Mac-for-ews</desc>
            <filename>scrollend-mac-ews.diff</filename>
            <type>text/plain</type>
            <size>117767</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBjYmZmNDc3YjU4Li4xNGY0
Mjk1ZDcxIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjAtMDMtMDkgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAg
ICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLD
qWTDqXJpYyBXYW5nJ3MgcGF0Y2guCisKKyAgICAgICAgQWRkIEVOQUJMRV9PVkVSU0NST0xMX0VW
RU5UUyB3aGljaCBpcyBvZmYgYnkgZGVmYXVsdC4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZToKKwogMjAyMC0wMy0xNiAgS2VpdGggUm9sbGluICA8a3JvbGxp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIFdlYktpdFN5c3RlbUlu
dGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggZDhmMjRkYzliNS4uYjNlM2Q2Mjc4
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDMtMDkg
IENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAgICAgICBSZXZpZXdlZCBieSBG
csOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLDqWTDqXJpYyBXYW5nJ3MgcGF0
Y2guCisKKyAgICAgICAgQWRkIEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUy4KKworICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDIwLTAzLTE2ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gSlNNYXBJ
dGVyYXRvciBhbmQgSlNTZXRJdGVyYXRvciBhcmUgQ2VsbFR5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwppbmRleCBjZmJiNzI5NTEzLi4xMDZiNWM0YTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0yOTYsNiArMjk2LDggQEAgRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMgPSA7CiBFTkFC
TEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIID0gJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5H
X1RPVUNIXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9V
Q0hfY29jb2F0b3VjaCA9IEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0g7CiAKK0VOQUJM
RV9PVkVSU0NST0xMX0VWRU5UUyA9IEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUzsKKwogRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QSUNU
VVJFX0lOX1BJQ1RVUkVfQVBJID0gJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSV8kKFdL
X1BMQVRGT1JNX05BTUUpKTsKQEAgLTQxNiw0ICs0MTgsNCBAQCBFTkFCTEVfV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAogRU5BQkxF
X1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJB
TlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJ
QklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5B
QkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9D
QUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9D
T05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NP
TklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NT
U19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NF
TEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1Nf
VFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQo
RU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RB
VEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19M
RVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNU
VVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQ
RUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxF
X0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVf
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVf
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01B
Q19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJF
KSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04p
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJf
RUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VM
QVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JF
VkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5W
QVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9S
RVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQo
RU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9U
RV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElP
Tl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRC
T1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJ
Q0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVf
UkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJ
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9O
KSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFC
TEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VO
VEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VM
RU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykg
JChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJ
VkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikg
JChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNU
SUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VC
X0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5T
Rk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJ
TElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BB
WV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQ
TEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJM
RV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FD
SEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05J
Q19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxF
Q1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZ
UEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVO
QUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVW
RUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVS
RV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9H
UFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01P
TlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykg
JChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVD
VE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9J
T1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xF
R0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5B
QkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFU
SVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZB
TElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFT
KSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX09WRVJTQ1JPTExf
RVZFTlRTKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4p
ICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVO
QUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09C
U0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJC
RVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJf
UFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9X
T1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRI
RVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
VEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChF
TkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNF
Ul9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJB
Q0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJE
UklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5U
RVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQlhS
KSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVO
QUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGI0NjdhNDdiM2MuLjQ0OTNhZWI3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjIgQEAK
KzIwMjAtMDMtMTggIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb24gTWFjCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGRlYWxzIHdpdGgg
dGhlIHVzZXIgc2Nyb2xsaW5nIG9uIE1hYzogd2hlZWwgc2Nyb2xsaW5nLCBrZXlib2FyZCBzY3Jv
bGxpbmcsIGF1dG9zY3JvbGwoZHJhZyBzY3JvbGxpbmcpLgorICAgICAgICBXaGVlbCBzY3JvbGxp
bmc6IEJlc2lkZXMgdXNlciBzY3JvbGwsIGl0IG1pZ2h0IGdlbmVyYXRlIG1vbWVudHVtIHNjcm9s
bGluZywgUnViYmVyQmFuZCwgYW5kIHNjcm9sbFNuYXAuIFNvIGFkZAorICAgICAgICBtX2RldGVj
dFNjcm9sbGVuZFRpbWVyIHRvIGRldGVjdCB3aGVuIGRvZXMgdGhlIHNjcm9sbGluZyBlbmQuCisg
ICAgICAgIEtleWJvYXJkIHNjcm9sbGluZzogSGFuZGxlZCBieSBTY3JvbGxBbmltYXRvck1hYy4g
Rm9yIEZyYW1lVmlldywgdGhlIHNjcm9sbGluZyBpcyBhbmltYXRlZCwgc28gc2F2ZSB0aGUgcG9z
aXRpb24gZmlyc3QsCisgICAgICAgIHRoZW4gY2hlY2sgdGhlIHBvc2l0aW9uIHdoZW4gaXQgYWN0
dWFsbHkgc2Nyb2xscy4gRm9yIFJlbmRlckxheWVyLCBpdCBpcyBpbnN0YW50LCBzbyBub3RpZnkg
c2Nyb2xsIGVuZC4KKyAgICAgICAgQXV0b3Njcm9sbDogTm90aWZ5IHNjcm9sbCBlbmQgd2hlbiBh
dXRvc2Nyb2xsIHRpbWVyIGlzIHN0b3BwZWQuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6Om5vdGlmeVNjcm9sbERpZEVuZCk6IE5vdGlmeSB0aGUgY3VycmVu
dCBzY3JvbGxpbmcgZW5kcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlT
Y3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpub3RpZnlTY3JvbGxEaWRF
bmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpub3RpZnlT
Y3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6bm90aWZ5U2Nyb2xs
RGlkRW5kKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNhdmVTY3JvbGxlbmRFdmVudFBvc2l0
aW9uIGNvbnN0KTogU2F2ZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIGZpcmUgc2Nyb2xsZW5kIGV2
ZW50LgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Q29udHJvbGxlckNsaWVudDo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbENvbnRyb2xsZXI6OlNjcm9sbENvbnRyb2xsZXIpOiBBZGQgbV9kZXRlY3RTY3JvbGxlbmRU
aW1lciB0byBkZXRlY3Qgd2hlbiB0aGUgd2hlZWwgc2Nyb2xsaW5nIGVuZHMuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogU3RhcnQgdGhlIHRp
bWVyIGF0IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQgcGhyYXNlLCBhbmQgc3RvcCBpdAor
ICAgICAgICBhdCBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuIHBocmFzZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25h
cCk6IER1cmluZyBTY3JvbGxTbmFwLCBzdGFydCB0aGUgdGltZXIgYXQgVXNlclNjcm9sbEVuZAor
ICAgICAgICBzdGF0dXMsIGFuZCBzdG9wIGl0IGF0IFVzZXJTY3JvbGxCZWdpbiBvciBVc2VyU2Ny
b2xsaW5nIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0YXJ0
RGV0ZWN0U2Nyb2xsZW5kVGltZXIpOiBTdGFydCB0aGUgdGltZXIsIHJlcGVhdGluZyAxLzYwIHMK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0b3BEZXRlY3RTY3JvbGxlbmRU
aW1lcik6IFN0b3AgdGhlIHRpbWVyIGFuZCBub3RpZnlTY3JvbGxEaWRFbmQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTY3JvbGxlbmRUaW1lckZpcmVkKTogSWYg
UnViYmVyQmFuZCwgbW9tZW50dW1TY3JvbGwgYW5kIHNjcm9sbFNuYXAgaXMgbm90IGluIHByb2dy
ZXNzLCBzdG9wIHRoZSB0aW1lci4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKTogRm9yIGtleWJvYXJk
IHNjcm9sbGluZywgaWYgaXQncyBpbnN0YW50IHNjcm9sbGluZyBub3RpZnlTY3JvbGxEaWRFbmQs
IGlmIGl0J3MKKyAgICAgICAgYW5pbWF0ZWQgc2Nyb2xsaW5nIHNhdmVTY3JvbGxlbmRFdmVudFBv
c2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVNjcm9s
bERpZEVuZCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCk6IFB1dCB0aGUgdGFyZ2V0
IHRvIHRoZSBsaXN0IHdoZW4gYXV0b3Njcm9sbCBzdG9wcy4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0b3BBdXRvc2Nyb2xs
KTogRGVsZXRlZC4KKworMjAyMC0wMy0xNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbGVuZCBldmVudCBvZiBwcm9n
cmFtbWF0aWMgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDkxMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTdXBwb3J0IHNjcm9sbGVuZCBldmVudCBmb3IgcHJvZ3JhbW1hdGljIHNjcm9s
bGluZy4gU2F2ZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIHdoZW4gc3RhcnRpbmcKKyAgICAgICAgYSBz
Y3JvbGwgKGluc3RhbnQgLyBhbmltYXRlZCkuIENvbXBhcmUgdGhlIGN1cnJlbnQgc2Nyb2xsIHBv
c2l0aW9uIHdpdGggdGhlIHNhdmUgb25lLCB3aGVuCisgICAgICAgIFJlbmRlckxheWVyL1Njcm9s
bFZpZXcgYWN0dWFsbHkgc2Nyb2xscy4gSWYgdGhleSBhcmUgc2FtZSwgcHV0IHRoZSB0YXJnZXQg
dG8gYSBsaXN0IGluIGRvY3VtZW50LgorICAgICAgICBUaGUgdGFyZ2V0cyBpbiB0aGUgbGlzdCB3
b3VsZCBkaXNwYXRjaCBzY3JvbGxlbmQgZXZlbnRzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb21tb25UZWFyZG93bik6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkUGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0KTog
QXBwZW5kIHRoZSB0YXJnZXRzIHRvIG1fcGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0TGlzdC4K
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpydW5TY3JvbGxTdGVwcyk6IERpc3BhdGNoIHNj
cm9sbGVuZCBldmVudCBmb3IgZWFjaCB0YXJnZXQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
IEFkZCBtX3BlbmRpbmdTY3JvbGxlbmRFdmVudFRhcmdldExpc3Qgd2hpY2gga2VlcHMgdGhlIHNj
cm9sbGVuZCBldmVudCB0YXJnZXRzLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBBZGQgc2F2ZVNj
cm9sbGVuZFBvc2l0aW9uIHRvIGluZGljYXRlIHRoZSBwb3NpdGlvbiBzaG91bGQgYmUgc2F2ZWQg
Zm9yIHNjcm9sbGVuZCBldmVudCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6IGNoZWNrU2Nyb2xsZW5kRXZlbnRQb3NpdGlv
biBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGRvbid0IGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2F2ZVNjcm9sbGVuZEV2ZW50UG9zaXRpb24pOiBTYXZlIHRoZSBzY3JvbGwg
cG9zaXRpb24sIGEgc2Nyb2xsZW5kIGV2ZW50IHdvdWxkIGJlIGZpcmVkIGF0IHRoaXMgcG9zaXRp
b24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNoZWNrU2Nyb2xsZW5kRXZlbnRQb3Np
dGlvbik6IElmIHBvc2l0aW9uIGlzIGVxdWFsIHRvIHRoZSBzYXZlZCBvbmUsIGFkZCB0aGUgdGFy
Z2V0IHRvIHRoZSBzY3JvbGxlbmQgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
Zm9yY2VTY3JvbGxlbmQpOiBBZGQgdGhlIHRhcmdldCB0byB0aGUgbGlzdCB3aXRob3V0IGNoZWNr
aW5nIGl0cyBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKTogSWYgdGhlIGFuaW1hdGlvbiBpcyBp
bnRlcnJ1cHRlZCwgY2FsbCBmb3JjZVNjcm9sbGVuZCgpIHRvIGZpcmUgc2Nyb2xsZW5kIGV2ZW50
IHdpdGhvdXQgY2hlY2tpbmcgdGhlIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZpcmVkKTogV2hlbiB0aGUgYW5pbWF0aW9u
IGVuZHMgbmF0dXJhbCwgY2FsbCBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24uCisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3
OjpzY3JvbGxUbyk6IGNoZWNrU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbiB3aGVuIHNjcm9sbFBvc2l0
aW9uIGNoYW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3Np
dGlvbik6IHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uIGZvciBwcm9ncmFtbWF0aWMgc2Nyb2xs
aW5nLiBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24gd2hlbiB0aGUgcG9zaXRpb24gZG9lc24n
dCBjaGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOiBBZGQgc2F2ZVNjcm9s
bGVuZFBvc2l0aW9uIGZsYWcuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzYXZlU2Nyb2xsZW5kRXZlbnRQb3Np
dGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmNoZWNrU2Ny
b2xsZW5kRXZlbnRQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OmZvcmNlU2Nyb2xsZW5kKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbFBvc2l0aW9u
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6c2V0U2Nyb2xsUG9zaXRpb24pOiBSZXBsYWNlIHNjcm9sbFRvUG9zaXRpb24gd2l0aCBz
ZXRTY3JvbGxQb3NpdGlvbiB0byBjb25zaXN0ZW50IHdpdGggRnJhbWVWaWV3IGludGVyZmFjZXMu
IHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uIGZvciBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogY2hlY2tTY3Jv
bGxlbmRFdmVudFBvc2l0aW9uIHdoZW4gc2Nyb2xsIHBvc2l0aW9uIGRvZXNuJ3QgY2hhbmdlLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKTogY2hl
Y2tTY3JvbGxlbmRFdmVudFBvc2l0aW9uIHdoZW4gdGhlIHNjcm9sbFBvc2l0aW9uIGNoYW5nZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IEF1
dG9zY3JvbGxTdGF0dXMgaXMgYXZhaWxhYmxlIGJ5IGV2ZW50SGFuZGxlciwgc28gbm8gbmVlZCB0
byBhZGQgYSBmdW5jdGlvbiB2YXJpYWJsZSBmb3IgaXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6YXV0b3Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Ny
b2xsVG9Qb3NpdGlvbik6IERlbGV0ZWQuIFJlcGxhY2VkIGJ5IHNjcm9sbFRvUG9zaXRpb24uCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisKKzIwMjAtMDMtMDkgIENhdGhpZSBD
aGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBv
dmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmlj
IFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLDqWTDqXJpYyBXYW5nJ3MgcGF0Y2guCisKKyAg
ICAgICAgUGFyc2Ugb25vdmVyc2Nyb2xsL3Njcm9sbGVuZCBhdHRyaWJ1dGUgYW5kIG92ZXJzY3Jv
bGwvb3ZlcnNjcm9sbCBldmVudCBuYW1lLgorCisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICog
ZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEVsZW1lbnQ6OmNyZWF0ZUV2ZW50SGFuZGxlck5hbWVNYXApOgorICAgICAgICAq
IHBhZ2UvU2V0dGluZ3MueWFtbDoKKwogMjAyMC0wMy0xNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgU2FmYXJpIGRvZXNuJ3QgaW5zZXJ0IG1ETlMgY2FuZGlk
YXRlcyB0byBTRFAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKaW5kZXggY2ZiYjcyOTUxMy4uMTA2YjVjNGEwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKQEAgLTI5Niw2ICsyOTYsOCBAQCBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyA9IDsKIEVO
QUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggPSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJ
TkdfVE9VQ0hfJChXS19DT0NPQV9UT1VDSCkpOwogRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19U
T1VDSF9jb2NvYXRvdWNoID0gRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSDsKIAorRU5B
QkxFX09WRVJTQ1JPTExfRVZFTlRTID0gRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTOworCiBFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BJ
Q1RVUkVfSU5fUElDVFVSRV9BUEkgPSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJXyQo
V0tfUExBVEZPUk1fTkFNRSkpOwpAQCAtNDE2LDQgKzQxOCw0IEBAIEVOQUJMRV9XSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUOwogCiBFTkFC
TEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9U
UkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBM
RV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxF
X0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChF
TkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxF
X0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hf
REVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1Nf
Q09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVf
Q1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1Nf
U0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NT
U19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkg
JChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRF
RF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJT
X0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFC
TEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lO
U1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFC
TEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJM
RV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJM
RV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVf
TUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRV
UkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lP
TikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRF
Ul9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAk
KEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVD
VUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVf
UkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NB
TlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5U
X1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykg
JChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVN
T1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FO
REJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VS
VklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJM
RV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19B
UEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJ
T04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVO
QUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVO
QUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVT
RU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNf
RUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05T
KSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJE
UklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wy
KSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQlhSKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJ
U1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9X
RUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJB
TlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJ
QklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5B
QkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9D
QUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9D
T05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NP
TklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NT
U19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NF
TEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1Nf
VFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQo
RU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RB
VEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19M
RVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNU
VVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQ
RUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxF
X0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVf
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVf
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01B
Q19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJF
KSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04p
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJf
RUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VM
QVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JF
VkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5W
QVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfT1ZFUlNDUk9M
TF9FVkVOVFMpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQo
RU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVf
T0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09V
UkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JV
QkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZF
Ul9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNF
X1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lO
VEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9V
U0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dF
QkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9J
TlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5B
QkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VC
WFIpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQo
RU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwppbmRleCA3Zjg1YTBjZmE4Li5kYTk0OTZlMTljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGln
YWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBh
cnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
ODgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBC
YXNlZCBvbiBGcsOpZMOpcmljIFdhbmcncyBwYXRjaC4KKworICAgICAgICBBZGQgRU5BQkxFX09W
RVJTQ1JPTExfRVZFTlRTLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisKIDIwMjAtMDMtMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggY2ZiYjcyOTUxMy4uMTA2YjVjNGEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjk2LDYg
KzI5Niw4IEBAIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTID0gOwogRU5BQkxFX09WRVJGTE9XX1ND
Uk9MTElOR19UT1VDSCA9ICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSF8kKFdLX0NP
Q09BX1RPVUNIKSk7CiBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIX2NvY29hdG91Y2gg
PSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIOwogCitFTkFCTEVfT1ZFUlNDUk9MTF9F
VkVOVFMgPSBFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFM7CisKIEVOQUJMRV9QQVlNRU5UX1JFUVVF
U1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJF
X0FQSSA9ICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUElfJChXS19QTEFURk9STV9OQU1F
KSk7CkBAIC00MTYsNCArNDE4LDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9
IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxF
X1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRF
RF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Yz
KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJ
T05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5U
X0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9O
SU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
TkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
KSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMp
ICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJ
KSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0
KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01P
REVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJM
RV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFC
TEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5B
QkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9X
T1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5T
UEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRS
WSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9F
VkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJM
RV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBU
RURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVO
VFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVB
TSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5B
QkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRP
Ul9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURB
VElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVO
QUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9P
VkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFC
TEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNf
U1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAk
KEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkp
ICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNB
R0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMp
ICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAk
KEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVO
QUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZH
X0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVY
VF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1Rf
QUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9G
T05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAk
KEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JF
RU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRF
UkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQ
VSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5B
QkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVf
WFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURf
VFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9O
X1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9F
TEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklO
RykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5H
KSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykg
JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAk
KEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkg
JChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkg
JChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFC
TEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RF
X0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkg
JChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVf
RVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09S
S0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BF
Q1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkp
ICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElO
R19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVf
TEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVE
X01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRT
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElB
X0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0p
ICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
U1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJ
T04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFC
TEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZF
UkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUykgJChFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lO
VEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQo
RU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFC
TEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQo
RU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQo
RU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJM
RV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxF
X1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1C
RVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5E
TEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVf
VklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9W
SURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lO
VEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChF
TkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5B
QkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VC
X0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikg
JChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCAxODgyYTllZmZlLi4zN2U4MDEz
MmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCkBAIC0zMDQsNiArMzA0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3Jv
KG1hdGNoaW5nRWxlbWVudEluRmxhdFRyZWUpIFwKICAgICBtYWNybyhtZWRpYVN0cmVhbVRyYWNr
Q29uc3RyYWludHMpIFwKICAgICBtYWNybyhvcGVuRGF0YWJhc2UpIFwKKyAgICBtYWNybyhvbm92
ZXJzY3JvbGwpIFwKKyAgICBtYWNybyhvbnNjcm9sbGVuZCkgXAogICAgIG1hY3JvKG9udG91Y2hj
YW5jZWwpIFwKICAgICBtYWNybyhvbnRvdWNoZW5kKSBcCiAgICAgbWFjcm8ob250b3VjaG1vdmUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDYxZGJhNzRiM2QuLjViZTRiODBiYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzk5LDYgKzc5OSwxMCBAQCB2b2lkIERvY3VtZW50
Ojpjb21tb25UZWFyZG93bigpCiAKICAgICBtX3BlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3Qg
PSBudWxscHRyOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIG1fcGVuZGlu
Z1Njcm9sbGVuZEV2ZW50VGFyZ2V0TGlzdCA9IG51bGxwdHI7CisjZW5kaWYKKwogICAgIHdoaWxl
ICghbV90aW1lbGluZXMuY29tcHV0ZXNFbXB0eSgpKQogICAgICAgICBtX3RpbWVsaW5lcy5iZWdp
bigpLT5kZXRhY2hGcm9tRG9jdW1lbnQoKTsKICAgICBtX3RpbWVsaW5lID0gbnVsbHB0cjsKQEAg
LTQwNjYsNiArNDA3MCwyMyBAQCB2b2lkIERvY3VtZW50OjphZGRQZW5kaW5nU2Nyb2xsRXZlbnRU
YXJnZXQoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHRhcmdldHMuYXBwZW5kKHRhcmdldCk7
CiB9CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lkIERvY3VtZW50OjphZGRQ
ZW5kaW5nU2Nyb2xsZW5kRXZlbnRUYXJnZXQoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQoreworICAg
IGlmICghbV9wZW5kaW5nU2Nyb2xsZW5kRXZlbnRUYXJnZXRMaXN0KQorICAgICAgICBtX3BlbmRp
bmdTY3JvbGxlbmRFdmVudFRhcmdldExpc3QgPSBtYWtlVW5pcXVlPFBlbmRpbmdTY3JvbGxFdmVu
dFRhcmdldExpc3Q+KCk7CisKKyAgICBhdXRvJiB0YXJnZXRzID0gbV9wZW5kaW5nU2Nyb2xsZW5k
RXZlbnRUYXJnZXRMaXN0LT50YXJnZXRzOworICAgIGlmICh0YXJnZXRzLmZpbmRNYXRjaGluZyhb
Jl0gKGF1dG8mIGVudHJ5KSB7IHJldHVybiBlbnRyeS5wdHIoKSA9PSAmdGFyZ2V0OyB9KSAhPSBu
b3RGb3VuZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHRhcmdldHMuaXNFbXB0eSgpKQor
ICAgICAgICBzY2hlZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRlKCk7CisKKyAgICB0YXJnZXRzLmFw
cGVuZCh0YXJnZXQpOworfQorI2VuZGlmCisKIHZvaWQgRG9jdW1lbnQ6OnNldE5lZWRzVmlzdWFs
Vmlld3BvcnRTY3JvbGxFdmVudCgpCiB7CiAgICAgaWYgKCFtX25lZWRzVmlzdWFsVmlld3BvcnRT
Y3JvbGxFdmVudCkKQEAgLTQwOTEsNiArNDExMiwxOCBAQCB2b2lkIERvY3VtZW50OjpydW5TY3Jv
bGxTdGVwcygpCiAgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb21XaW5kb3coKSkKICAgICAg
ICAgICAgIHdpbmRvdy0+dmlzdWFsVmlld3BvcnQoKS5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICB9CisKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVO
VFMpCisgICAgLy8gRGVhbCB3aXRoIHNjcm9sbGVuZCBldmVudC4KKyAgICBpZiAobV9wZW5kaW5n
U2Nyb2xsZW5kRXZlbnRUYXJnZXRMaXN0ICYmICFtX3BlbmRpbmdTY3JvbGxlbmRFdmVudFRhcmdl
dExpc3QtPnRhcmdldHMuaXNFbXB0eSgpKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShFdmVu
dHMsIHN0cmVhbSA8PCAiRG9jdW1lbnQiIDw8IHRoaXMgPDwgInNlbmRpbmcgc2Nyb2xsZW5kIGV2
ZW50cyB0byBwZW5kaW5nIHNjcm9sbCBldmVudCB0YXJnZXRzIik7CisgICAgICAgIGF1dG8gY3Vy
cmVudFNjcm9sbGVuZFRhcmdldHMgPSBXVEZNb3ZlKG1fcGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFy
Z2V0TGlzdC0+dGFyZ2V0cyk7CisgICAgICAgIGZvciAoYXV0byYgdGFyZ2V0IDogY3VycmVudFNj
cm9sbGVuZFRhcmdldHMpIHsKKyAgICAgICAgICAgIGF1dG8gYnViYmxlcyA9IHRhcmdldC0+aXNE
b2N1bWVudE5vZGUoKSA/IEV2ZW50OjpDYW5CdWJibGU6OlllcyA6IEV2ZW50OjpDYW5CdWJibGU6
Ok5vOworICAgICAgICAgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLnNjcm9sbGVuZEV2ZW50LCBidWJibGVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bykpOworICAgICAgICB9CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFkZEF1
ZGlvUHJvZHVjZXIoTWVkaWFQcm9kdWNlciYgYXVkaW9Qcm9kdWNlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggNTU5YTk4MzhiNi4uOTI0MmQ1NDE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTEzNjAsNiArMTM2MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJ1blJlc2l6ZVN0ZXBzKCk7CiAK
ICAgICB2b2lkIGFkZFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldChDb250YWluZXJOb2RlJik7Cisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgYWRkUGVuZGluZ1Njcm9sbGVu
ZEV2ZW50VGFyZ2V0KENvbnRhaW5lck5vZGUmKTsKKyNlbmRpZgogICAgIHZvaWQgc2V0TmVlZHNW
aXN1YWxWaWV3cG9ydFNjcm9sbEV2ZW50KCk7CiAgICAgdm9pZCBydW5TY3JvbGxTdGVwcygpOwog
CkBAIC0yMDM5LDYgKzIwNDIsOSBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFBlbmRpbmdTY3Jv
bGxFdmVudFRhcmdldExpc3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdTY3JvbGxFdmVu
dFRhcmdldExpc3Q+IG1fcGVuZGluZ1Njcm9sbEV2ZW50VGFyZ2V0TGlzdDsKKyNpZiBFTkFCTEUo
T1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdTY3JvbGxFdmVu
dFRhcmdldExpc3Q+IG1fcGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0TGlzdDsKKyNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBIYXNoU2V0PEhUTUxNZWRpYUVsZW1lbnQq
PiBtX21lZGlhU3RyZWFtU3RhdGVDaGFuZ2VFbGVtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CmluZGV4IDVjZWVlNmY2ODEuLmU0ZGY0YzRiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApA
QCAtMTkxLDYgKzE5MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhvcmllbnRh
dGlvbmNoYW5nZSkgXAogICAgIG1hY3JvKG92ZXJjb25zdHJhaW5lZCkgXAogICAgIG1hY3JvKG92
ZXJmbG93Y2hhbmdlZCkgXAorICAgIG1hY3JvKG92ZXJzY3JvbGwpIFwKICAgICBtYWNybyhwYWdl
aGlkZSkgXAogICAgIG1hY3JvKHBhZ2VzaG93KSBcCiAgICAgbWFjcm8ocGFzdGUpIFwKQEAgLTIy
Nyw2ICsyMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ocmVzdWx0KSBcCiAg
ICAgbWFjcm8ocmVzdW1lKSBcCiAgICAgbWFjcm8oc2Nyb2xsKSBcCisgICAgbWFjcm8oc2Nyb2xs
ZW5kKSBcCiAgICAgbWFjcm8oc2VhcmNoKSBcCiAgICAgbWFjcm8oc2VjdXJpdHlwb2xpY3l2aW9s
YXRpb24pIFwKICAgICBtYWNybyhzZWVrZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HbG9iYWxF
dmVudEhhbmRsZXJzLmlkbAppbmRleCA3NzBhYTljM2E3Li4xZjI3NjUzNGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsCkBAIC0xMzIsNCArMTMyLDggQEAK
ICAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9TU9VU0VfRk9SQ0VfRVZFTlRTXSBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0bW91c2Vmb3JjZWRvd247CiAgICAgW05vdEVudW1l
cmFibGUsIENvbmRpdGlvbmFsPU1PVVNFX0ZPUkNFX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbndlYmtpdG1vdXNlZm9yY2V3aWxsYmVnaW47CiAgICAgW05vdEVudW1lcmFibGUsIENv
bmRpdGlvbmFsPU1PVVNFX0ZPUkNFX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndl
YmtpdG1vdXNlZm9yY2V1cDsKKworICAgIC8vIEV2ZW50IGhhbmRsZXJzIGZyb20gT3ZlcnNjcm9s
bCBFdmVudHMgQVBJIChodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtc2Nyb2xsZW5k
LWV2ZW50cy8pCisgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPU9WRVJTQ1JPTExfRVZF
TlRTLCBFbmFibGVkQnlTZXR0aW5nPU92ZXJzY3JvbGxFdmVudHNdIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb25vdmVyc2Nyb2xsOworICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1PVkVS
U0NST0xMX0VWRU5UUywgRW5hYmxlZEJ5U2V0dGluZz1PdmVyc2Nyb2xsRXZlbnRzXSBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uc2Nyb2xsZW5kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4KaW5kZXggZGNkODM3OGQ5NS4uMDk5ZmZiODIyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTI2Nyw2ICsyNjcsNyBAQCBv
bm1vdXNld2hlZWwKIG9ub25saW5lCiBvbm9mZmxpbmUKIG9ub3JpZW50YXRpb25jaGFuZ2UKK29u
b3ZlcnNjcm9sbAogb25wYWdlaGlkZQogb25wYWdlc2hvdwogb25wYXN0ZQpAQCAtMjg3LDYgKzI4
OCw3IEBAIG9ucmF0ZWNoYW5nZQogb25yZXNldAogb25yZXNpemUKIG9uc2Nyb2xsCitvbnNjcm9s
bGVuZAogb25zZWFyY2gKIG9uc2Vla2VkCiBvbnNlZWtpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAKaW5kZXggMzJlZDRhZDMxYi4uYWU1OWFjMTJmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKQEAgLTI4NCw2ICsyODQsNyBAQCBIVE1MRWxlbWVudDo6RXZlbnRIYW5k
bGVyTmFtZU1hcCBIVE1MRWxlbWVudDo6Y3JlYXRlRXZlbnRIYW5kbGVyTmFtZU1hcCgpCiAgICAg
ICAgICZvbm1vdXNlb3ZlckF0dHIuZ2V0KCksCiAgICAgICAgICZvbm1vdXNldXBBdHRyLmdldCgp
LAogICAgICAgICAmb25tb3VzZXdoZWVsQXR0ci5nZXQoKSwKKyAgICAgICAgJm9ub3ZlcnNjcm9s
bEF0dHIuZ2V0KCksCiAgICAgICAgICZvbnBhc3RlQXR0ci5nZXQoKSwKICAgICAgICAgJm9ucGF1
c2VBdHRyLmdldCgpLAogICAgICAgICAmb25wbGF5QXR0ci5nZXQoKSwKQEAgLTMwMSw2ICszMDIs
NyBAQCBIVE1MRWxlbWVudDo6RXZlbnRIYW5kbGVyTmFtZU1hcCBIVE1MRWxlbWVudDo6Y3JlYXRl
RXZlbnRIYW5kbGVyTmFtZU1hcCgpCiAgICAgICAgICZvbnJlc2V0QXR0ci5nZXQoKSwKICAgICAg
ICAgJm9ucmVzaXplQXR0ci5nZXQoKSwKICAgICAgICAgJm9uc2Nyb2xsQXR0ci5nZXQoKSwKKyAg
ICAgICAgJm9uc2Nyb2xsZW5kQXR0ci5nZXQoKSwKICAgICAgICAgJm9uc2VhcmNoQXR0ci5nZXQo
KSwKICAgICAgICAgJm9uc2Vla2VkQXR0ci5nZXQoKSwKICAgICAgICAgJm9uc2Vla2luZ0F0dHIu
Z2V0KCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAppbmRl
eCBhYjI1NWRkMGI3Li45M2E3MTI3NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9s
bGVyOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKQogICAgICAgICBpZiAocGFn
ZSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgbV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFj
dG9yKCkpCiAgICAgICAgICAgICBwYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IobV9jdXJyZW50SXRl
bS0+cGFnZVNjYWxlRmFjdG9yKCkgKiBwYWdlLT52aWV3U2NhbGVGYWN0b3IoKSwgZGVzaXJlZFNj
cm9sbFBvc2l0aW9uKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xs
UG9zaXRpb24oZGVzaXJlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgICAgIHZpZXctPnNldFNj
cm9sbFBvc2l0aW9uKGRlc2lyZWRTY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1w
ZWQsIGZhbHNlLCBmYWxzZSk7CiAKICAgICAgICAgLy8gSWYgdGhlIHNjcm9sbCBwb3NpdGlvbiBk
b2Vzbid0IGhhdmUgdG8gYmUgY2xhbXBlZCwgY29uc2lkZXIgaXQgc3VjY2Vzc2Z1bGx5IHJlc3Rv
cmVkLgogICAgICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggNTNmMTc5OGU4Yy4uMmRhZDI5NDUxOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMjI3NSw3ICsyMjc1LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9s
bEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKICAgICBzZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChib3VuZHMueCgpIC0gY2VudGVyaW5n
T2Zmc2V0WCAtIHJlY3QueCgpLCBib3VuZHMueSgpIC0gY2VudGVyaW5nT2Zmc2V0WSAtIHJlY3Qu
eSgpKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29s
IGFuaW1hdGVkKQordm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wg
YW5pbWF0ZWQsIGJvb2wgc2F2ZVNjcm9sbGVuZFBvc2l0aW9uKQogewogICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAi
IDw8IHNjcm9sbFBvc2l0aW9uIDw8ICIgLCBjbGVhcmluZyBhbmNob3IiKTsKIApAQCAtMjI5MSw3
ICsyMjkxLDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2wKICAgICBpZiAoYW5pbWF0ZWQpCiAg
ICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRp
b24oc2Nyb2xsUG9zaXRpb24pLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBjbGFtcGluZyk7CiAgICAg
ZWxzZQotICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlv
biwgY2xhbXBpbmcpOworICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3Jv
bGxQb3NpdGlvbiwgY2xhbXBpbmcsIGFuaW1hdGVkLCBzYXZlU2Nyb2xsZW5kUG9zaXRpb24pOwog
CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUob2xkU2Nyb2xsVHlwZSk7CiB9CkBAIC0zNjE0LDEy
ICszNjE0LDQ4IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24o
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5CiAKICAgICBpZiAoY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZl
QW5pbWF0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsK
KworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAob2Zmc2V0ID09IHRoaXMt
PnNjcm9sbE9mZnNldCgpKQorICAgICAgICBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24oc2Ny
b2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpOworI2VuZGlmCisKICAgICBpZiAob2Zmc2V0
ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQogICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xs
VG9PZmZzZXRXaXRoQW5pbWF0aW9uKG9mZnNldCk7CiAKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlw
ZShwcmV2aW91c1Njcm9sbFR5cGUpOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRT
KQordm9pZCBGcmFtZVZpZXc6OnNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIWZyYW1lKCkuc2V0dGluZ3MoKS5vdmVy
c2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2ZpcmVTY3Jv
bGxlbmRFdmVudEF0UG9zaXRpb24gPSBwb3NpdGlvbjsKK30KKwordm9pZCBGcmFtZVZpZXc6OmNo
ZWNrU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24p
Cit7CisgICAgaWYgKCFtX2ZpcmVTY3JvbGxlbmRFdmVudEF0UG9zaXRpb24gfHwgbV9maXJlU2Ny
b2xsZW5kRXZlbnRBdFBvc2l0aW9uLnZhbHVlKCkgIT0gcG9zaXRpb24pCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCisg
ICAgICAgIGRvY3VtZW50LT5hZGRQZW5kaW5nU2Nyb2xsZW5kRXZlbnRUYXJnZXQoKmRvY3VtZW50
KTsKKworICAgIG1fZmlyZVNjcm9sbGVuZEV2ZW50QXRQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsK
K30KKwordm9pZCBGcmFtZVZpZXc6OmZvcmNlU2Nyb2xsZW5kKCkKK3sKKyAgICBpZiAoIWZyYW1l
KCkuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAg
ICAgICBkb2N1bWVudC0+YWRkUGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0KCpkb2N1bWVudCk7
Cit9CisjZW5kaWYKKwogZmxvYXQgRnJhbWVWaWV3OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRD
b250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoZ3JhbnVsYXJpdHkgIT0gU2Ny
b2xsQnlQYWdlIHx8IG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAppbmRleCBjMjJlNGU1OGMxLi5kNWQwMzhiYjRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKQEAgLTIyNSw3ICsyMjUsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rml4ZWRWaXNpYmxlQ29u
dGVudFJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbENs
YW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSkg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBT
Y3JvbGxQb3NpdGlvbiYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQs
IGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgYm9vbCBzYXZlU2Nyb2xsZW5kUG9zaXRpb24gPSB0cnVl
KSBmaW5hbDsKICAgICB2b2lkIHJlc3RvcmVTY3JvbGxiYXIoKTsKICAgICB2b2lkIHNjaGVkdWxl
U2Nyb2xsVG9Gb2N1c2VkRWxlbWVudChTZWxlY3Rpb25SZXZlYWxNb2RlKTsKICAgICB2b2lkIHNj
cm9sbFRvRm9jdXNlZEVsZW1lbnRJbW1lZGlhdGVseUlmTmVlZGVkKCk7CkBAIC02NTgsNiArNjU4
LDEyIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaW5VcGRhdGVFbWJlZGRlZE9iamVjdHMoKSBjb25z
dCB7IHJldHVybiBtX2luVXBkYXRlRW1iZWRkZWRPYmplY3RzOyB9CiAKKyNpZiBFTkFCTEUoT1ZF
UlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBzYXZlU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIHZvaWQgY2hlY2tTY3JvbGxlbmRFdmVudFBv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CisgICAgdm9pZCBmb3JjZVNjcm9s
bGVuZCgpIGZpbmFsOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBib29sIHNjcm9sbENvbnRl
bnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJl
Y3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogICAgIHZvaWQgc2Ny
b2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSBmaW5hbDsKQEAg
LTg5Myw2ICs4OTksMTAgQEAgcHJpdmF0ZToKIAogICAgIFBhZ2luYXRpb24gbV9wYWdpbmF0aW9u
OwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIE9wdGlvbmFsPFNjcm9sbFBv
c2l0aW9uPiBtX2ZpcmVTY3JvbGxlbmRFdmVudEF0UG9zaXRpb247CisjZW5kaWYKKwogICAgIGVu
dW0gY2xhc3MgVmlld3BvcnRSZW5kZXJlclR5cGUgOiB1aW50OF90IHsgTm9uZSwgRG9jdW1lbnQs
IEJvZHkgfTsKICAgICBWaWV3cG9ydFJlbmRlcmVyVHlwZSBtX3ZpZXdwb3J0UmVuZGVyZXJUeXBl
IHsgVmlld3BvcnRSZW5kZXJlclR5cGU6Ok5vbmUgfTsKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZp
b3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgeyBEb05vdFBpbiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCmluZGV4IDI1YThlYWJkNDcuLjA3ZTUxNmU1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwKQEAgLTkxNiw2ICs5MTYsMTAgQEAgaXNMb2dnZWRJbkFQSUVuYWJsZWQ6CiBl
bnRlcktleUhpbnRFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCitvdmVyc2Nyb2xsRXZlbnRz
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKyAgY29uZGl0aW9uYWw6IE9WRVJTQ1JPTExfRVZF
TlRTCisKIGxlZ2FjeUdldFVzZXJNZWRpYUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAgIGNv
bmRpdGlvbmFsOiBNRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggZWQ3MjAz
Njc0My4uZjcyOGM4NGI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTg4MCw2ICs4ODAs
MjkgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXBvcnRTeW5jaHJvbm91c1Nj
cm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b24KICAgICAgICAgbV9wYWdlLT5wZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQoKS0+bG9nU2Nyb2xsaW5nRXZlbnQoUGVyZm9ybWFuY2VMb2dnaW5nQ2xp
ZW50OjpTY3JvbGxpbmdFdmVudDo6U3dpdGNoZWRTY3JvbGxpbmdNb2RlLCB0aW1lc3RhbXAsIHJl
YXNvbnMudG9SYXcoKSk7CiB9CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lk
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Om5vdGlmeVNjcm9sbERpZEVuZChTY3JvbGxpbmdO
b2RlSUQgc2Nyb2xsaW5nTm9kZUlEKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisK
KyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZnJhbWVWaWV3
ID0gZnJhbWVWaWV3Rm9yU2Nyb2xsaW5nTm9kZShzY3JvbGxpbmdOb2RlSUQpOworICAgIGlmICgh
ZnJhbWVWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZUlEID09
IGZyYW1lVmlldy0+c2Nyb2xsaW5nTm9kZUlEKCkpIHsKKyAgICAgICAgZnJhbWVWaWV3LT5mb3Jj
ZVNjcm9sbGVuZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ct
c2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5z
Y3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQoc2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAg
c2Nyb2xsYWJsZUFyZWEtPmZvcmNlU2Nyb2xsZW5kKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaAppbmRleCA2ZGEyZTgzMTQ2Li5iNjhlNmU3NjcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5oCkBAIC02OCw2ICs2OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBvcnRFeHBvc2VkVW5m
aWxsZWRBcmVhKE1vbm90b25pY1RpbWUsIHVuc2lnbmVkIHVuZmlsbGVkQXJlYSk7CiAgICAgdm9p
ZCByZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1RpbWUs
IE9wdGlvblNldDxTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbj4pOwogCisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbm90aWZ5U2Nyb2xsRGlk
RW5kKFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAg
IFdFQkNPUkVfRVhQT1JUIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSopOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAppbmRleCAwNTEzZmU3ODc2Li5mNWE3YzNiMGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTExNiw2ICsxMTYs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxEaWRFbmQoU2Nyb2xs
aW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAgICAgLy8gRm9yY2UgYWxsIHNjcm9sbCBsYXllciBw
b3NpdGlvbiB1cGRhdGVzIHRvIGhhcHBlbiBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0
ZXMoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAppbmRleCA3MTkxYTM3NjIzLi41OWNlOTJkMWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xMTEsNiArMTExLDEwIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJy
YWxGb3JSZWFzb24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZp
ZXIsIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIHsgfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9s
bERpZEVuZChTY3JvbGxpbmdOb2RlSUQpIHsgfQorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGlj
ZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25l
ZCB2ZXJ0aWNhbCkgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAppbmRleCA4MTBhZmQ0NDMxLi4x
YWI2ZjBjZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJl
YWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTIyNSw2ICsyMjUsMTggQEAgdm9pZCBUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFs
Rm9yUmVhc29uKFdoZWUKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMp
Cit2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6bm90aWZ5U2Nyb2xsRGlkRW5kKFNjcm9sbGlu
Z05vZGVJRCBub2RlSUQpCit7CisgICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAg
ICAgICByZXR1cm47CisKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Njcm9sbGluZ0Nv
b3JkaW5hdG9yID0gbV9zY3JvbGxpbmdDb29yZGluYXRvciwgbm9kZUlEXSB7CisgICAgICAgIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yLT5ub3RpZnlTY3JvbGxEaWRFbmQobm9kZUlEKTsKKyAgICB9KTsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKSAmJiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5k
ZXggMDVkZGM1Y2QwMy4uMzIxZDFkNzZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTcwLDYgKzcwLDEwIEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVy
cmFsRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlm
aWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBvdmVycmlkZTsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgbm90aWZ5U2Nyb2xs
RGlkRW5kKFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xs
aW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJp
ZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1h
Yy5oCmluZGV4IGY1ZDRkZTU4N2YuLjZkMTViYzZiMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApAQCAtNzksNiArNzksMTAgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBh
ZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKIAorI2lm
IEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgp
IG92ZXJyaWRlOworI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIEZs
b2F0UG9pbnQgc2Nyb2xsT2Zmc2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbW1lZGlh
dGVTY3JvbGxPbkF4aXMoU2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBkZWx0YSkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IDhk
NDhlNmQ0NDguLjM1M2U5YjI1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjLm1tCkBAIC0yNTMsNiArMjUzLDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6YWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lm
TmVjZXNzCiAgICAgaW1tZWRpYXRlU2Nyb2xsQnkoY29uc3RyYWluZWRQb3NpdGlvbiAtIHNjcm9s
bFBvc2l0aW9uKTsKIH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6bm90aWZ5U2Nyb2xsRGlkRW5kKCkK
K3sKKyAgICBzY3JvbGxpbmdUcmVlKCkubm90aWZ5U2Nyb2xsRGlkRW5kKHNjcm9sbGluZ05vZGUo
KS5zY3JvbGxpbmdOb2RlSUQoKSk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfU0NST0xM
X1NOQVApCiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6
OnNjcm9sbE9mZnNldCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAppbmRleCAyY2E1NzhhMzBmLi45MjVkNGMwZWIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGgu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5j
cHAKQEAgLTgwLDYgKzgwLDExIEBAIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwo
Y29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCiAKIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
OjpzdG9wKCkKIHsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgaWYgKG1fYW5p
bWF0aW9uVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5mb3JjZVNj
cm9sbGVuZCgpOworI2VuZGlmCisKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3AoKTsKICAgICBt
X3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CkBAIC00MTAsOCArNDE1LDEyIEBAIHZvaWQgU2Nyb2xs
QW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgIGlmIChjb250aW51
ZUFuaW1hdGlvbikKICAgICAgICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWluaW11bVRpbWVy
SW50ZXJ2YWwsIGRlbHRhVG9OZXh0RnJhbWUpKTsKLSAgICBlbHNlCisgICAgZWxzZSB7CiAgICAg
ICAgIG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZp
b3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMp
CisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEuY2hlY2tTY3JvbGxlbmRFdmVudFBvc2l0aW9uKG1f
c2Nyb2xsYWJsZUFyZWEuc2Nyb2xsUG9zaXRpb24oKSk7CisjZW5kaWYKKyAgICB9CiAKICAgICBt
X25vdGlmeVBvc2l0aW9uQ2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9pbnQobV9ob3Jpem9udGFsRGF0
YS5jdXJyZW50UG9zaXRpb24sIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbikpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDBmYzcyOWU5
MTIuLmI5NjI4MDUxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5jcHAKQEAgLTE4OCw2ICsxODgsMTMgQEAgdm9pZCBTY3JvbGxBbmltYXRvcjo6c2V0Q3VycmVu
dFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQogICAgIHVwZGF0ZUFjdGl2ZVNj
cm9sbFNuYXBJbmRleEZvck9mZnNldCgpOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZF
TlRTKQordm9pZCBTY3JvbGxBbmltYXRvcjo6c2F2ZVNjcm9sbGVuZEV2ZW50UG9zaXRpb24oY29u
c3QgRmxvYXRQb2ludCYgcG9zaXRpb24pIGNvbnN0Cit7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5z
YXZlU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKTsKK30K
KyNlbmRpZgorCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjp1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5k
ZXhGb3JPZmZzZXQoKQogewogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA5YjdjMDliNjkwLi45NDE4YjJhMTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTg3LDYgKzg3
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBv
aW50Jik7CiAgICAgY29uc3QgRmxvYXRQb2ludCYgY3VycmVudFBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9jdXJyZW50UG9zaXRpb247IH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5U
UykKKyAgICB2b2lkIHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
KSBjb25zdDsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEFuaW1hdGlvbnMoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCAyZmQxNWY3YjMwLi5lMDE4ZTI5MmUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDg2LDYgKzQ4NiwxMCBA
QCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBuZXdQb3Np
dGlvbikKIAogICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsKIAorI2lmIEVOQUJM
RShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24obV9z
Y3JvbGxQb3NpdGlvbik7CisjZW5kaWYKKwogICAgIGlmIChzY3JvbGxiYXJzU3VwcHJlc3NlZCgp
KQogICAgICAgICByZXR1cm47CiAKQEAgLTUxMyw3ICs1MTcsNyBAQCB2b2lkIFNjcm9sbFZpZXc6
OmNvbXBsZXRlVXBkYXRlc0FmdGVyU2Nyb2xsVG8oY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEp
CiAgICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpOwogfQogCi12b2lk
IFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3Jv
bGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wvKiBhbmltYXRlZCovKQor
dm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYg
c2Nyb2xsUG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29sLyogYW5pbWF0ZWQq
LywgYm9vbCBzYXZlU2Nyb2xsZW5kUG9zaXRpb24pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNj
cm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNj
cm9sbFBvc2l0aW9uKTsKIApAQCAtNTI1LDEzICs1MjksMjMgQEAgdm9pZCBTY3JvbGxWaWV3Ojpz
ZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNj
cm9sbEMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChjdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRp
b24pCisgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOworCiAgICAg
U2Nyb2xsUG9zaXRpb24gbmV3U2Nyb2xsUG9zaXRpb24gPSAoIWRlbGVnYXRlc1Njcm9sbGluZygp
ICYmIGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSA/IGFkanVzdFNjcm9sbFBv
c2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9zaXRpb247CisjaWYg
RU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIGlmIChzYXZlU2Nyb2xsZW5kUG9zaXRpb24p
CisgICAgICAgIHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKG5ld1Njcm9sbFBvc2l0aW9uKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNhdmVTY3JvbGxlbmRQb3NpdGlvbik7CisjZW5kaWYK
IAotICAgIGlmICgoIWRlbGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkg
PT0gU2Nyb2xsVHlwZTo6VXNlcikgJiYgY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0g
U2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uICYmIG5ld1Njcm9sbFBvc2l0aW9u
ID09IHRoaXMtPnNjcm9sbFBvc2l0aW9uKCkpCisgICAgaWYgKCghZGVsZWdhdGVzU2Nyb2xsaW5n
KCkgfHwgY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKSAmJiBjdXJyZW50
U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5Bbmlt
YXRpb24gJiYgbmV3U2Nyb2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkgewor
I2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAgY2hlY2tTY3JvbGxlbmRFdmVu
dFBvc2l0aW9uKG5ld1Njcm9sbFBvc2l0aW9uKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQotICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNh
bmNlbEFuaW1hdGlvbnMoKTsKKyAgICB9CiAKICAgICBpZiAoIXJlcXVlc3RTY3JvbGxQb3NpdGlv
blVwZGF0ZShuZXdTY3JvbGxQb3NpdGlvbiwgY3VycmVudFNjcm9sbFR5cGUoKSwgY2xhbXBpbmcp
KQogICAgICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBvc2l0aW9uKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCA0Y2MyYmI0YzBiLi5kZWFjYmIxZDNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0yNjEsNyArMjYxLDcgQEAgcHVibGlj
OgogICAgIFNjcm9sbFBvc2l0aW9uIGNhY2hlZFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9jYWNoZWRTY3JvbGxQb3NpdGlvbjsgfQogCiAgICAgLy8gRnVuY3Rpb25zIGZvciBzY3Jv
bGxpbmcgdGhlIHZpZXcuCi0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBl
ZCwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1w
aW5nOjpDbGFtcGVkLCBib29sIGFuaW1hdGVkID0gZmFsc2UsIGJvb2wgc2F2ZVNjcm9sbGVuZFBv
c2l0aW9uID0gdHJ1ZSk7CiAKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUmIHMpIHsg
cmV0dXJuIHNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKCkgKyBzKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBmZGRkZjJmOWJlLi5mYWI4
Y2JiMzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTM0
Myw2ICszNDMsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBsYWNlQmxv
Y2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCA9IDA7CiAKKyNpZiBFTkFCTEUoT1ZF
UlNDUk9MTF9FVkVOVFMpCisgICAgdmlydHVhbCB2b2lkIHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0
aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGNoZWNrU2Ny
b2xsZW5kRXZlbnRQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBmb3JjZVNjcm9sbGVuZCgpIHsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBX
RUJDT1JFX0VYUE9SVCBTY3JvbGxhYmxlQXJlYSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgflNjcm9sbGFibGVBcmVhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TY3JvbGxDb250cm9sbGVyLmgKaW5kZXggNjk2MDdjZGNhOS4uOTQyZjlkNWM1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaApAQCAt
NzgsNiArNzgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTY3JvbGxQb3Np
dGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSA9IDA7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5kKCkge30K
KyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRlZmVyV2hlZWxFdmVudFRlc3RDb21wbGV0aW9u
Rm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVy
LCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBjb25zdCB7IC8qIERvIG5vdGhp
bmcgKi8gfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25E
ZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRl
bnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3QgeyAvKiBE
byBub3RoaW5nICovIH0KIApAQCAtMTcyLDYgKzE3NiwxMSBAQCBwcml2YXRlOgogI2VuZGlmCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2b2lkIHN0YXJ0RGV0
ZWN0U2Nyb2xsZW5kVGltZXIoKTsKKyAgICB2b2lkIHN0b3BEZXRlY3RTY3JvbGxlbmRUaW1lcigp
OworICAgIHZvaWQgZGV0ZWN0U2Nyb2xsZW5kVGltZXJGaXJlZCgpOworI2VuZGlmCiAgICAgU2Ny
b2xsQ29udHJvbGxlckNsaWVudCYgbV9jbGllbnQ7CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0x
OTgsNiArMjA3LDEwIEBAIHByaXZhdGU6CiAjZW5kaWYKICNlbmRpZgogCisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIFJ1bkxvb3A6OlRpbWVyPFNjcm9sbENvbnRyb2xsZXI+IG1f
ZGV0ZWN0U2Nyb2xsZW5kVGltZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBi
b29sIG1faW5TY3JvbGxHZXN0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW9tZW50dW1TY3Jv
bGxJblByb2dyZXNzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IDM1NjBiYWJmMjkuLjMzZGU3M2FkNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5t
bQpAQCAtOTMsNiArOTMsOSBAQCBTY3JvbGxDb250cm9sbGVyOjpTY3JvbGxDb250cm9sbGVyKFNj
cm9sbENvbnRyb2xsZXJDbGllbnQmIGNsaWVudCkKICAgICAsIG1fc3RhdGVsZXNzU25hcFRyYW5z
aXRpb25UaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZTY3JvbGxDb250cm9sbGVyOjpz
dGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyRmlyZWQpCiAgICAgLCBtX3Njcm9sbFNuYXBUaW1l
cihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZTY3JvbGxDb250cm9sbGVyOjpzY3JvbGxTbmFw
VGltZXJGaXJlZCkKICNlbmRpZgorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAs
IG1fZGV0ZWN0U2Nyb2xsZW5kVGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmU2Nyb2xs
Q29udHJvbGxlcjo6ZGV0ZWN0U2Nyb2xsZW5kVGltZXJGaXJlZCkKKyNlbmRpZgogewogfQogCkBA
IC0xMjEsMTIgKzEyNCwxNyBAQCBib29sIFNjcm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgICAgICBtX292ZXJm
bG93U2Nyb2xsRGVsdGEgPSBGbG9hdFNpemUoKTsKIAogICAgICAgICBzdG9wU25hcFJ1YmJlcmJh
bmRUaW1lcigpOwotCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBzdG9w
RGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsKKyNlbmRpZgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKICAgICBpZiAod2hlZWxFdmVudC5waGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBo
YXNlRW5kZWQpIHsKICAgICAgICAgc25hcFJ1YmJlckJhbmQoKTsKKyNpZiBFTkFCTEUoT1ZFUlND
Uk9MTF9FVkVOVFMpCisgICAgICAgIHN0YXJ0RGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsKKyNlbmRp
ZgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTUyOSwxMiArNTM3LDE4IEBAIGJv
b2wgU2Nyb2xsQ29udHJvbGxlcjo6cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6OlVzZXJTY3Jv
bGxCZWdpbjoKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6OlVzZXJTY3JvbGxpbmc6CiAgICAg
ICAgIHN0b3BTY3JvbGxTbmFwVGltZXIoKTsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMp
CisgICAgICAgIHN0b3BEZXRlY3RTY3JvbGxlbmRUaW1lcigpOworI2VuZGlmCiAgICAgICAgIG1f
c2Nyb2xsU25hcFN0YXRlLT50cmFuc2l0aW9uVG9Vc2VySW50ZXJhY3Rpb25TdGF0ZSgpOwogICAg
ICAgICBtX2RyYWdFbmRlZFNjcm9sbGluZ1ZlbG9jaXR5ID0gLXdoZWVsRXZlbnQuc2Nyb2xsaW5n
VmVsb2NpdHkoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpV
c2VyU2Nyb2xsRW5kOgogICAgICAgICBtX3Njcm9sbFNuYXBTdGF0ZS0+dHJhbnNpdGlvblRvU25h
cEFuaW1hdGlvblN0YXRlKG1fY2xpZW50LnNjcm9sbEV4dGVudCgpLCBtX2NsaWVudC52aWV3cG9y
dFNpemUoKSwgbV9jbGllbnQucGFnZVNjYWxlRmFjdG9yKCksIG1fY2xpZW50LnNjcm9sbE9mZnNl
dCgpKTsKICAgICAgICAgc3RhcnRTY3JvbGxTbmFwVGltZXIoKTsKKyNpZiBFTkFCTEUoT1ZFUlND
Uk9MTF9FVkVOVFMpCisgICAgICAgIHN0YXJ0RGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsKKyNlbmRp
ZgogICAgICAgICBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6OkluZXJ0aWFsU2Ny
b2xsQmVnaW46CiAgICAgICAgIG1fc2Nyb2xsU25hcFN0YXRlLT50cmFuc2l0aW9uVG9HbGlkZUFu
aW1hdGlvblN0YXRlKG1fY2xpZW50LnNjcm9sbEV4dGVudCgpLCBtX2NsaWVudC52aWV3cG9ydFNp
emUoKSwgbV9jbGllbnQucGFnZVNjYWxlRmFjdG9yKCksIG1fY2xpZW50LnNjcm9sbE9mZnNldCgp
LCBtX2RyYWdFbmRlZFNjcm9sbGluZ1ZlbG9jaXR5LCBGbG9hdFNpemUoLXdoZWVsRXZlbnQuZGVs
dGFYKCksIC13aGVlbEV2ZW50LmRlbHRhWSgpKSk7CkBAIC02NzksNiArNjkzLDQyIEBAIHZvaWQg
U2Nyb2xsQ29udHJvbGxlcjo6c2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXNGb3JPZmZzZXQoaW50
IHgsIGludCB5KQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2
b2lkIFNjcm9sbENvbnRyb2xsZXI6OnN0YXJ0RGV0ZWN0U2Nyb2xsZW5kVGltZXIoKQoreworICAg
IGlmIChtX2RldGVjdFNjcm9sbGVuZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fZGV0ZWN0U2Nyb2xsZW5kVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsK
K30KKwordm9pZCBTY3JvbGxDb250cm9sbGVyOjpzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKQor
eworICAgIGlmICghbV9kZXRlY3RTY3JvbGxlbmRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2NsaWVudC5ub3RpZnlTY3JvbGxEaWRFbmQoKTsKKyAgICBtX2RldGVj
dFNjcm9sbGVuZFRpbWVyLnN0b3AoKTsKK30KKwordm9pZCBTY3JvbGxDb250cm9sbGVyOjpkZXRl
Y3RTY3JvbGxlbmRUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAoaXNSdWJiZXJCYW5kSW5Qcm9ncmVz
cygpKQorICAgICAgICByZXR1cm47CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1fbW9t
ZW50dW1TY3JvbGxJblByb2dyZXNzKQorICAgICAgICByZXR1cm47CisjaWYgRU5BQkxFKENTU19T
Q1JPTExfU05BUCkKKyAgICBpZiAobV9zY3JvbGxTbmFwVGltZXIuaXNBY3RpdmUoKSkKKyAgICAg
ICAgcmV0dXJuOworI2VuZGlmCisjZW5kaWYKKworICAgIHN0b3BEZXRlY3RTY3JvbGxlbmRUaW1l
cigpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShSVUJCRVJfQkFORElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggODc5NWNmODE1YS4uZmJjOWYxNTI3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTY0LDYg
KzY0LDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkgY29u
c3QgZmluYWw7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgLy92b2lkIHNj
cm9sbGFibGVBcmVhRGlkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Bvc2l0aW9uKSBmaW5h
bDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZD4gbV9zY3JvbGxBbmltYXRp
b25IZWxwZXI7CiAgICAgUmV0YWluUHRyPFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRl
PiBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlOwpAQCAtMTU0LDkgKzE1OCwxNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgaXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsRXZlbnRBeGlzKSBjb25zdDsKICNlbmRpZgog
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAoRU5BQkxFKENTU19TQ1JPTExfU05B
UCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkKKyAgICB2b2lkIG5vdGlmeVNjcm9sbERpZEVu
ZCgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBib29sIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdl
TG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlOwogICAgIEludFJlY3Qg
bV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRT
KQorICAgIC8vT3B0aW9uYWw8RmxvYXRQb2ludD4gbV9yZXF1aXJpbmdQb3NpdGlvbjsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IGE0MTUyNTQyMGMuLmUxNDkxYTRj
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRv
ck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KQEAgLTc2MSwxMSArNzYxLDE2IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9s
bChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpCiB7CiAg
ICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKIAotICAgIGlmICghc2Nyb2xs
QW5pbWF0aW9uRW5hYmxlZEZvclN5c3RlbSgpIHx8ICFtX3Njcm9sbGFibGVBcmVhLnNjcm9sbEFu
aW1hdG9yRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChv
cmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOwotCi0gICAgaWYgKGdy
YW51bGFyaXR5ID09IFNjcm9sbEJ5UGl4ZWwpCi0gICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRv
cjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7Cisg
ICAgaWYgKCFzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgfHwgIW1fc2Nyb2xsYWJs
ZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgfHwgZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlQ
aXhlbCkgeworICAgICAgICBpZiAoU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwg
Z3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpKSB7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExf
RVZFTlRTKQorICAgICAgICAgICAgLy8gU2VuZCBzcm9sbGVuZCBldmVudCBpZiB0aGUgc2Nyb2xs
IGFwcGxpZWQgaW1tZWRpYXRlbHkuCisgICAgICAgICAgICBub3RpZnlTY3JvbGxEaWRFbmQoKTsK
KyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgCisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIEZsb2F0UG9pbnQgY3VycmVudFBv
c2l0aW9uID0gdGhpcy0+Y3VycmVudFBvc2l0aW9uKCk7CiAgICAgRmxvYXRTaXplIGRlbHRhOwpA
QCAtNzc1LDggKzc4MCwxMiBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Nyb2xs
YmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaQogICAgICAgICBkZWx0
YS5zZXRIZWlnaHQoc3RlcCAqIG11bHRpcGxpZXIpOwogCiAgICAgRmxvYXRQb2ludCBuZXdQb3Np
dGlvbiA9IEZsb2F0UG9pbnQoY3VycmVudFBvc2l0aW9uICsgZGVsdGEpLmNvbnN0cmFpbmVkQmV0
d2VlbihtX3Njcm9sbGFibGVBcmVhLm1pbmltdW1TY3JvbGxQb3NpdGlvbigpLCBtX3Njcm9sbGFi
bGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpKTsKLSAgICBpZiAoY3VycmVudFBvc2l0aW9u
ID09IG5ld1Bvc2l0aW9uKQorICAgIGlmIChjdXJyZW50UG9zaXRpb24gPT0gbmV3UG9zaXRpb24p
IHsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIG5vdGlmeVNjcm9sbERp
ZEVuZCgpOworI2VuZGlmCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBpZiAo
W21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIF9pc0FuaW1hdGluZ10pIHsKICAgICAgICAgTlNQb2lu
dCB0YXJnZXRPcmlnaW4gPSBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgdGFyZ2V0T3JpZ2luXTsK
QEAgLTc4Nyw2ICs3OTYsOSBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Nyb2xs
YmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaQogICAgIH0KIAogICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsQW5pbWF0b3JNYWM6
OnNjcm9sbCAiIDw8ICIgZnJvbSAiIDw8IGN1cnJlbnRQb3NpdGlvbiA8PCAiIHRvICIgPDwgbmV3
UG9zaXRpb24pOworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBTY3JvbGxBbmlt
YXRvcjo6c2F2ZVNjcm9sbGVuZEV2ZW50UG9zaXRpb24obmV3UG9zaXRpb24pOworI2VuZGlmCiAg
ICAgW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIHNjcm9sbFRvUG9pbnQ6bmV3UG9zaXRpb25dOwog
ICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTM2OSw2ICsxMzgxLDEzIEBAIHZvaWQgU2Nyb2xsQW5p
bWF0b3JNYWM6OmltbWVkaWF0ZVNjcm9sbEJ5KGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykgJiYgKEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJfQkFORElORykpCit2b2lkIFNjcm9sbEFuaW1hdG9y
TWFjOjpub3RpZnlTY3JvbGxEaWRFbmQoKQoreworICAgIG1fc2Nyb2xsYWJsZUFyZWEuZm9yY2VT
Y3JvbGxlbmQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVT
Y3JvbGxlclN0eWxlKCkKIHsKICAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3Jv
bGxlclN0YXRlSXNMb2NrZWRdKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CmluZGV4IDQwYmExYWUyMTcuLmFiYjJiZjBkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC02MDIsNyArNjAyLDcgQEAgdm9pZCBSZW5kZXJCb3g6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbiwgU2Nyb2xsVHlwZSBzY3IK
ICAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8ICFsYXllcigpKQogICAgICAgICByZXR1cm47
CiAgICAgc2V0dXBXaGVlbEV2ZW50TW9uaXRvcigqbGF5ZXIoKSk7Ci0gICAgbGF5ZXIoKS0+c2Ny
b2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcsIGFuaW1hdGVkKTsK
KyAgICBsYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgY2xh
bXBpbmcsIGFuaW1hdGVkKTsKIH0KIAogdm9pZCBSZW5kZXJCb3g6OmFic29sdXRlUmVjdHMoVmVj
dG9yPEludFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0
KSBjb25zdApAQCAtOTU3LDYgKzk1NywxNiBAQCBSZW5kZXJCb3gqIFJlbmRlckJveDo6ZmluZEF1
dG9zY3JvbGxhYmxlKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIGlzPFJlbmRl
ckJveD4ocmVuZGVyZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikgOiBudWxscHRy
OwogfQogCit2b2lkIFJlbmRlckJveDo6c3RvcEF1dG9zY3JvbGwoKQoreworI2lmIEVOQUJMRShP
VkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoaXNSZW5kZXJWaWV3KCkgJiYgZnJhbWUoKS52aWV3
KCkpCisgICAgICAgIGZyYW1lKCkudmlldygpLT5mb3JjZVNjcm9sbGVuZCgpOworICAgIGVsc2Ug
aWYgKGxheWVyKCkpCisgICAgICAgIGxheWVyKCktPmZvcmNlU2Nyb2xsZW5kKCk7CisjZW5kaWYK
K30KKwogdm9pZCBSZW5kZXJCb3g6OnBhblNjcm9sbChjb25zdCBJbnRQb2ludCYgc291cmNlKQog
ewogICAgIGlmIChsYXllcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4
IGM2NmVhNWU3NzMuLjE5NDRiNzY5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKQEAgLTQ3MSw3ICs0NzEsNyBAQCBvdmVycmlkZTsKICAgICBib29sIGNhbkF1dG9zY3JvbGwo
KSBjb25zdDsKICAgICBJbnRTaXplIGNhbGN1bGF0ZUF1dG9zY3JvbGxEaXJlY3Rpb24oY29uc3Qg
SW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdDsKICAgICBzdGF0aWMgUmVuZGVyQm94KiBmaW5k
QXV0b3Njcm9sbGFibGUoUmVuZGVyT2JqZWN0Kik7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBdXRv
c2Nyb2xsKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCk7CiAgICAgdmly
dHVhbCB2b2lkIHBhblNjcm9sbChjb25zdCBJbnRQb2ludCYpOwogCiAgICAgYm9vbCBoYXNWZXJ0
aWNhbFNjcm9sbGJhcldpdGhBdXRvQmVoYXZpb3IoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGZiZjM2MDljMDAuLjRlNzI5NjJmYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjYwMywyMSArMjYwMywz
MCBAQCB2b2lkIFJlbmRlckxheWVyOjphcHBseVBvc3RMYXlvdXRTY3JvbGxQb3NpdGlvbklmTmVl
ZGVkKCkKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKGludCB4LCBTY3JvbGxU
eXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29sIGFuaW1hdGVkKQog
ewogICAgIFNjcm9sbFBvc2l0aW9uIHBvc2l0aW9uKHgsIG1fc2Nyb2xsUG9zaXRpb24ueSgpKTsK
LSAgICBzY3JvbGxUb1Bvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBjbGFtcGluZywgYW5p
bWF0ZWQpOworICAgIHNldFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBzY3JvbGxUeXBlLCBjbGFt
cGluZywgYW5pbWF0ZWQpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlv
bihpbnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywg
Ym9vbCBhbmltYXRlZCkKIHsKICAgICBTY3JvbGxQb3NpdGlvbiBwb3NpdGlvbihtX3Njcm9sbFBv
c2l0aW9uLngoKSwgeSk7Ci0gICAgc2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlw
ZSwgY2xhbXBpbmcsIGFuaW1hdGVkKTsKKyAgICBzZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwg
c2Nyb2xsVHlwZSwgY2xhbXBpbmcsIGFuaW1hdGVkKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6
c2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5
cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wgYW5pbWF0ZWQpCit2
b2lkIFJlbmRlckxheWVyOjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYg
cG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcs
IGJvb2wgYW5pbWF0ZWQsIGJvb2wgc2F2ZVNjcm9sbGVuZFBvc2l0aW9uKQogeworICAgIGF1dG8g
b2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICBTY3JvbGxP
ZmZzZXQgbmV3U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1w
ZWQgPyBjbGFtcFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OworI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKKyAgICBpZiAoc2F2ZVNjcm9sbGVuZFBvc2l0aW9uKQorICAgICAgICBz
YXZlU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQobmV3U2Ny
b2xsT2Zmc2V0KSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzYXZlU2Nyb2xsZW5kUG9zaXRp
b24pOworI2VuZGlmCisKICAgICBpZiAoYW5pbWF0ZWQpCi0gICAgICAgIHNjcm9sbFRvT2Zmc2V0
V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxU
eXBlLCBjbGFtcGluZyk7CisgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihuZXdT
Y3JvbGxPZmZzZXQsIHNjcm9sbFR5cGUsIGNsYW1waW5nKTsKICAgICBlbHNlCi0gICAgICAgIHNj
cm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbiksIHNjcm9sbFR5
cGUsIGNsYW1waW5nKTsKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXQobmV3U2Nyb2xsT2Zmc2V0LCBz
Y3JvbGxUeXBlLCBjbGFtcGluZyk7CiB9CiAKIFNjcm9sbE9mZnNldCBSZW5kZXJMYXllcjo6Y2xh
bXBTY3JvbGxPZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQpIGNvbnN0CkBA
IC0yNjQwLDEzICsyNjQ5LDE4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KGNv
bnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0LCBTY3JvbGxUeXBlIHNjCiAgICAgICAgIHNj
cm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogCiAgICAgU2Nyb2xsT2Zmc2V0IGNs
YW1wZWRTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/
IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7Ci0gICAgaWYg
KGNsYW1wZWRTY3JvbGxPZmZzZXQgPT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCisgICAgU2Nyb2xs
UG9zaXRpb24gY2xhbXBlZFNjcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0
KGNsYW1wZWRTY3JvbGxPZmZzZXQpOworICAgIGlmIChjbGFtcGVkU2Nyb2xsT2Zmc2V0ID09IHRo
aXMtPnNjcm9sbE9mZnNldCgpKSB7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAg
ICAgICBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uKTsK
KyNlbmRpZgogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgYXV0byBwcmV2aW91c1Njcm9s
bFR5cGUgPSBjdXJyZW50U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNj
cm9sbFR5cGUpOwogCi0gICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xs
UG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBzY3JvbGxUeXBlLCBjbGFt
cGluZykpCisgICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY2xhbXBlZFNjcm9s
bFBvc2l0aW9uLCBzY3JvbGxUeXBlLCBjbGFtcGluZykpCiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0
V2l0aG91dEFuaW1hdGlvbihjbGFtcGVkU2Nyb2xsT2Zmc2V0LCBjbGFtcGluZyk7CiAgICAgc2V0
U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9u
KTsKIApAQCAtMjY2MSw2ICsyNjc1LDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zm
c2V0V2l0aEFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCwgU2Nyb2xsCiAgICAg
U2Nyb2xsT2Zmc2V0IG5ld1Njcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5n
OjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQob2Zmc2V0KSA6IG9mZnNldDsKICAgICBpZiAo
Y3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Oklu
Tm9uTmF0aXZlQW5pbWF0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1h
dGlvbnMoKTsKKworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAobmV3U2Ny
b2xsT2Zmc2V0ID09IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBjaGVja1Njcm9sbGVu
ZEV2ZW50UG9zaXRpb24obmV3U2Nyb2xsT2Zmc2V0KTsKKyNlbmRpZgorCiAgICAgaWYgKG5ld1Nj
cm9sbE9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKICAgICAgICAgU2Nyb2xsYWJsZUFy
ZWE6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihuZXdTY3JvbGxPZmZzZXQpOwogCkBAIC0y
NzcwLDYgKzI3OTAsMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xs
UG9zaXRpb24mIHBvc2l0aW9uKQogICAgIGlmIChFbGVtZW50KiBlbGVtZW50ID0gcmVuZGVyZXIo
KS5lbGVtZW50KCkpCiAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkuYWRkUGVuZGluZ1Njcm9s
bEV2ZW50VGFyZ2V0KCplbGVtZW50KTsKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykK
KyAgICBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24obV9zY3JvbGxQb3NpdGlvbik7CisjZW5k
aWYKKwogICAgIGlmIChzY3JvbGxzT3ZlcmZsb3coKSkKICAgICAgICAgdmlldy5mcmFtZVZpZXco
KS5kaWRDaGFuZ2VTY3JvbGxPZmZzZXQoKTsKIApAQCAtMjgxNSwxMiArMjgzOSwxMyBAQCBib29s
IFJlbmRlckxheWVyOjphbGxvd3NDdXJyZW50U2Nyb2xsKCkgY29uc3QKICAgICByZXR1cm4gYm94
LT5oYXNIb3Jpem9udGFsT3ZlcmZsb3coKSB8fCBib3gtPmhhc1ZlcnRpY2FsT3ZlcmZsb3coKTsK
IH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRS
ZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWRlRml4ZWQsIGNvbnN0IFNjcm9sbFJlY3RUb1Zp
c2libGVPcHRpb25zJiBvcHRpb25zLCBBdXRvc2Nyb2xsU3RhdHVzIGF1dG9zY3JvbGxTdGF0dXMp
Cit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3Qm
IGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3QgU2Nyb2xsUmVjdFRvVmlzaWJs
ZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJMYXllciAiIDw8IHRoaXMgPDwgIiBzY3JvbGxSZWN0VG9WaXNpYmxlICIgPDwgYWJz
b2x1dGVSZWN0KTsKIAogICAgIFJlbmRlckxheWVyKiBwYXJlbnRMYXllciA9IG51bGxwdHI7CiAg
ICAgTGF5b3V0UmVjdCBuZXdSZWN0ID0gYWJzb2x1dGVSZWN0OworICAgIGJvb2wgYXV0b3Njcm9s
bE5vdEluUHJvZ3Jlc3MgPSAhcmVuZGVyZXIoKS5mcmFtZSgpLmV2ZW50SGFuZGxlcigpLmF1dG9z
Y3JvbGxJblByb2dyZXNzKCk7CiAKICAgICAvLyBXZSBtYXkgZW5kIHVwIHByb3BhZ2F0aW5nIGEg
c2Nyb2xsIGV2ZW50LiBJdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBzdXNwZW5kIGV2ZW50cyB1bnRp
bCAKICAgICAvLyB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbiBzaW5jZSB0aGV5IGNvdWxkIGRlbGV0
ZSB0aGUgbGF5ZXIgb3IgdGhlIGxheWVyJ3MgcmVuZGVyZXIoKS4KQEAgLTI4NDYsOCArMjg3MSw4
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVj
dCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkCiAgICAgICAgIFNjcm9sbE9mZnNldCBjbGFtcGVk
U2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkgKyB0b0ludFNp
emUocm91bmRlZEludFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkpOwogICAgICAgICBpZiAo
Y2xhbXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSB8fCBjdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSAhPSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pIHsK
ICAgICAgICAgICAgIFNjcm9sbE9mZnNldCBvbGRTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQo
KTsKLSAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBhdXRvc2Nyb2xsU3RhdHVzID09IEF1dG9z
Y3JvbGxTdGF0dXM6Ok5vdEluUHJvZ3Jlc3MgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMu
YmVoYXZpb3IsIGJveC0+ZWxlbWVudCgpKTsKLSAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBhbmltYXRlZCk7CisgICAg
ICAgICAgICBib29sIGFuaW1hdGVkID0gYXV0b3Njcm9sbE5vdEluUHJvZ3Jlc3MgJiYgdXNlU21v
b3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZpb3IsIGJveC0+ZWxlbWVudCgpKTsKKyAgICAgICAg
ICAgIHNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Ny
b2xsT2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCwgYW5pbWF0ZWQsIGF1dG9zY3JvbGxOb3RJblByb2dyZXNzKTsKICAgICAgICAgICAgIElu
dFNpemUgc2Nyb2xsT2Zmc2V0RGlmZmVyZW5jZSA9IGNsYW1wZWRTY3JvbGxPZmZzZXQgLSBvbGRT
Y3JvbGxPZmZzZXQ7CiAgICAgICAgICAgICBsb2NhbEV4cG9zZVJlY3QubW92ZSgtc2Nyb2xsT2Zm
c2V0RGlmZmVyZW5jZSk7CiAgICAgICAgICAgICBuZXdSZWN0ID0gTGF5b3V0UmVjdChib3gtPmxv
Y2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKEZsb2F0UmVjdChsb2NhbEV4cG9zZVJlY3QpKSwg
VXNlVHJhbnNmb3JtcykuYm91bmRpbmdCb3goKSk7CkBAIC0yODczLDggKzI4OTgsOCBAQCB2b2lk
IFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29s
dXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uID0gc2Ny
b2xsUG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKEludFBvaW50KCksIEludFBvaW50KGZyYW1l
Vmlldy5jb250ZW50c1NpemUoKSkpOwogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQg
d2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CiAgICAgICAgICAg
ICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUw
NTkKLSAgICAgICAgICAgICAgICBib29sIGFuaW1hdGVkID0gYXV0b3Njcm9sbFN0YXR1cyA9PSBB
dXRvc2Nyb2xsU3RhdHVzOjpOb3RJblByb2dyZXNzICYmIG93bmVyRWxlbWVudC0+Y29udGVudERv
Y3VtZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZpb3IsIG93bmVyRWxl
bWVudC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKLSAgICAgICAgICAg
ICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkLCBhbmltYXRlZCk7CisgICAgICAgICAgICAgICAgYm9vbCBhbmltYXRl
ZCA9IGF1dG9zY3JvbGxOb3RJblByb2dyZXNzICYmIG93bmVyRWxlbWVudC0+Y29udGVudERvY3Vt
ZW50KCkgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZpb3IsIG93bmVyRWxlbWVu
dC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAg
ICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIFNjcm9sbENsYW1w
aW5nOjpDbGFtcGVkLCBhbmltYXRlZCwgYXV0b3Njcm9sbE5vdEluUHJvZ3Jlc3MpOwogCiAgICAg
ICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyA9
PSBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfHwgZnJhbWVWaWV3LnNhZmVU
b1Byb3BhZ2F0ZVNjcm9sbFRvUGFyZW50KCkpIHsKICAgICAgICAgICAgICAgICAgICAgcGFyZW50
TGF5ZXIgPSBvd25lckVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCk7CkBAIC0y
OTE1LDggKzI5NDAsOCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNv
bnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAgICAgICAg
IFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsUG9zaXRpb24gPSByb3VuZGVkSW50UG9pbnQocmV2
ZWFsUmVjdC5sb2NhdGlvbigpKS5jb25zdHJhaW5lZEJldHdlZW4obWluU2Nyb2xsUG9zaXRpb24s
IG1heFNjcm9sbFBvc2l0aW9uKTsKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdl
IHVzZSBkb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50KCk/CiAgICAgICAgICAgICAgICAgLy8g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKLSAgICAg
ICAgICAgICAgICBib29sIGFuaW1hdGVkID0gYXV0b3Njcm9sbFN0YXR1cyA9PSBBdXRvc2Nyb2xs
U3RhdHVzOjpOb3RJblByb2dyZXNzICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2
aW9yLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpOwotICAgICAgICAg
ICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihjbGFtcGVkU2Nyb2xsUG9zaXRpb24s
IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBhbmltYXRlZCk7CisgICAgICAgICAgICAgICAgYm9v
bCBhbmltYXRlZCA9IGF1dG9zY3JvbGxOb3RJblByb2dyZXNzICYmIHVzZVNtb290aFNjcm9sbGlu
ZyhvcHRpb25zLmJlaGF2aW9yLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50
KCkpOworICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihjbGFtcGVk
U2Nyb2xsUG9zaXRpb24sIFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBhbmltYXRlZCwgYXV0b3Nj
cm9sbE5vdEluUHJvZ3Jlc3MpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBUaGlz
IGlzIHRoZSBvdXRlcm1vc3QgdmlldyBvZiBhIHdlYiBwYWdlLCBzbyBhZnRlciBzY3JvbGxpbmcg
dGhpcyB2aWV3IHdlCkBAIC0zMDU1LDcgKzMwODAsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckxheWVy
OjpnZXRSZWN0VG9FeHBvc2UoY29uc3QgTGF5b3V0UmVjdCYgdmlzaWJsZVJlY3QsIGNvbnN0IExh
eQogdm9pZCBSZW5kZXJMYXllcjo6YXV0b3Njcm9sbChjb25zdCBJbnRQb2ludCYgcG9zaXRpb25J
bldpbmRvdykKIHsKICAgICBJbnRQb2ludCBjdXJyZW50RG9jdW1lbnRQb3NpdGlvbiA9IHJlbmRl
cmVyKCkudmlldygpLmZyYW1lVmlldygpLndpbmRvd1RvQ29udGVudHMocG9zaXRpb25JbldpbmRv
dyk7Ci0gICAgc2Nyb2xsUmVjdFRvVmlzaWJsZShMYXlvdXRSZWN0KGN1cnJlbnREb2N1bWVudFBv
c2l0aW9uLCBMYXlvdXRTaXplKDEsIDEpKSwgZmFsc2UsIHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6
UmV2ZWFsLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGlu
Zzo6WWVzIH0sIEF1dG9zY3JvbGxTdGF0dXM6OkluUHJvZ3Jlc3MpOworICAgIHNjcm9sbFJlY3RU
b1Zpc2libGUoTGF5b3V0UmVjdChjdXJyZW50RG9jdW1lbnRQb3NpdGlvbiwgTGF5b3V0U2l6ZSgx
LCAxKSksIGZhbHNlLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgU2Nyb2xsQWxpZ25t
ZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZO
ZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcyB9KTsKIH0KIAogYm9v
bCBSZW5kZXJMYXllcjo6Y2FuUmVzaXplKCkgY29uc3QKQEAgLTcwMTAsNiArNzAzNSwzNiBAQCB2
b2lkIFJlbmRlckxheWVyOjppbnZhbGlkYXRlRXZlbnRSZWdpb24oKQogI2VuZGlmCiB9CiAKKyNp
ZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lkIFJlbmRlckxheWVyOjpzYXZlU2Nyb2xs
ZW5kRXZlbnRQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAg
aWYgKCFyZW5kZXJlcigpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9maXJlU2Nyb2xsZW5kRXZlbnRBdFBvc2l0aW9uID0gcG9z
aXRpb247Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNoZWNrU2Nyb2xsZW5kRXZlbnRQb3NpdGlv
bihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCit7CisgICAgaWYgKCFtX2ZpcmVTY3Jv
bGxlbmRFdmVudEF0UG9zaXRpb24gfHwgbV9maXJlU2Nyb2xsZW5kRXZlbnRBdFBvc2l0aW9uLnZh
bHVlKCkgIT0gcG9zaXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChFbGVtZW50KiBl
bGVtZW50ID0gcmVuZGVyZXIoKS5lbGVtZW50KCkpCisgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50
KCkuYWRkUGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0KCplbGVtZW50KTsKKworICAgIG1fZmly
ZVNjcm9sbGVuZEV2ZW50QXRQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKK30KKwordm9pZCBSZW5k
ZXJMYXllcjo6Zm9yY2VTY3JvbGxlbmQoKQoreworICAgIGlmICghcmVuZGVyZXIoKS5zZXR0aW5n
cygpLm92ZXJzY3JvbGxFdmVudHNFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChFbGVtZW50KiBlbGVtZW50ID0gcmVuZGVyZXIoKS5lbGVtZW50KCkpCisgICAgICAgIGVsZW1l
bnQtPmRvY3VtZW50KCkuYWRkUGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0KCplbGVtZW50KTsK
K30KKyNlbmRpZgorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYgdHMs
IENsaXBSZWN0c1R5cGUgY2xpcFJlY3RzVHlwZSkKIHsKICAgICBzd2l0Y2ggKGNsaXBSZWN0c1R5
cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggOTZkMzllZjRi
Zi4uN2NkZTg2ZWQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAg
LTQ1MSw3ICs0NTEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjcm9sbFRvWFBvc2l0aW9uKGlu
dCB4LCBTY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVk
LCBib29sIGFuaW1hdGVkID0gZmFsc2UpOwogICAgIHZvaWQgc2Nyb2xsVG9ZUG9zaXRpb24oaW50
IHksIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQs
IGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSk7Ci0gICAgdm9pZCBzY3JvbGxUb1Bvc2l0aW9uKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFt
cGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRlZCA9IGZhbHNlKTsKKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBp
bmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRlZCA9IGZhbHNlLCBib29s
IHNhdmVTY3JvbGxlbmRQb3NpdGlvbiA9IHRydWUpOwogCiAgICAgLy8gVGhlc2UgYXJlIG9ubHkg
dXNlZCBieSBtYXJxdWVlLgogICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4KSB7IHNjcm9s
bFRvT2Zmc2V0KFNjcm9sbE9mZnNldCh4LCBzY3JvbGxPZmZzZXQoKS55KCkpLCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIFNjcm9sbENsYW1waW5nOjpVbmNsYW1wZWQpOyB9CkBAIC00NjIsOSAr
NDYyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBhdmFpbGFibGVDb250ZW50U2l6ZUNoYW5nZWQo
QXZhaWxhYmxlU2l6ZUNoYW5nZVJlYXNvbikgb3ZlcnJpZGU7CiAKLSAgICBlbnVtIEF1dG9zY3Jv
bGxTdGF0dXMgeyBOb3RJblByb2dyZXNzLCBJblByb2dyZXNzIH07CiAgICAgLy8gImFic29sdXRl
UmVjdCIgaXMgaW4gc2NhbGVkIGRvY3VtZW50IGNvb3JkaW5hdGVzLgotICAgIHZvaWQgc2Nyb2xs
UmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWRl
Rml4ZWQsIGNvbnN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zJiwgQXV0b3Njcm9sbFN0YXR1
cyA9IEF1dG9zY3JvbGxTdGF0dXM6Ok5vdEluUHJvZ3Jlc3MpOworICAgIHZvaWQgc2Nyb2xsUmVj
dFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWRlRml4
ZWQsIGNvbnN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zJik7CiAKICAgICBib29sIHNjcm9s
bHNPdmVyZmxvdygpIGNvbnN0OwogICAgIGJvb2wgaGFzU2Nyb2xsYWJsZUhvcml6b250YWxPdmVy
ZmxvdygpIGNvbnN0OwpAQCAtOTIzLDYgKzkyMiwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGlu
dmFsaWRhdGVFdmVudFJlZ2lvbigpOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
ICAgIHZvaWQgc2F2ZVNjcm9sbGVuZEV2ZW50UG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24m
KSBmaW5hbDsKKyAgICB2b2lkIGNoZWNrU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYpIGZpbmFsOworICAgIHZvaWQgZm9yY2VTY3JvbGxlbmQoKSBmaW5hbDsKKyNl
bmRpZgorCiBwcml2YXRlOgogCiAgICAgdm9pZCBzZXROZXh0U2libGluZyhSZW5kZXJMYXllciog
bmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CkBAIC0xMzUzLDYgKzEzNTgsMTAgQEAgcHJpdmF0ZToK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJMYXllckZpbHRlcnM+IG1fZmlsdGVyczsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyTGF5ZXJCYWNraW5nPiBtX2JhY2tpbmc7CisKKyNpZiBF
TkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgT3B0aW9uYWw8U2Nyb2xsUG9zaXRpb24+IG1f
ZmlyZVNjcm9sbGVuZEV2ZW50QXRQb3NpdGlvbjsKKyNlbmRpZgogICAgIAogICAgIFBhaW50RnJl
cXVlbmN5VHJhY2tlciBtX3BhaW50RnJlcXVlbmN5VHJhY2tlcjsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQx
N2Y2OTBjY2EuLjc3ODcxZWNlNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDMt
MDkgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLDqWTDqXJpYyBXYW5nJ3Mg
cGF0Y2guCisKKyAgICAgICAgQWRkIEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUy4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAyMDIwLTAzLTE2ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIGJpdCBtb3JlIFVJSGl0VGVz
dGluZyBsb2dnaW5nLCBhbmQgbWFrZSBpdCBwb3NzaWJsZSB0byBkdW1wIEV2ZW50UmVnaW9ucyBm
cm9tIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKaW5kZXggY2ZiYjcyOTUxMy4uMTA2YjVjNGEwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CkBAIC0yOTYsNiArMjk2LDggQEAgRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMgPSA7CiBFTkFCTEVf
T1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIID0gJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RP
VUNIXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0hf
Y29jb2F0b3VjaCA9IEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0g7CiAKK0VOQUJMRV9P
VkVSU0NST0xMX0VWRU5UUyA9IEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUzsKKwogRU5BQkxFX1BB
WU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QSUNUVVJF
X0lOX1BJQ1RVUkVfQVBJID0gJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSV8kKFdLX1BM
QVRGT1JNX05BTUUpKTsKQEAgLTQxNiw0ICs0MTgsNCBAQCBFTkFCTEVfV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAogRU5BQkxFX1hT
TFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNG
T1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZ
X1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBM
RV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxF
X0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNI
RV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05U
RU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklD
X0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19Q
QUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQ
RURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5B
QkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFM
SVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZF
TF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJF
X0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQ
VV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAk
KEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNU
T1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lP
U19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklY
RVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19H
RVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAk
KEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVf
TUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxF
TUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFC
TEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJ
VkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFM
SURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMp
ICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9SRVFV
RVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5B
QkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9J
TlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9N
RURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9S
RVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hf
RVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0Vf
Q09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVT
T1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAk
KEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVf
VVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVf
VkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFU
SU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1F
TlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChF
TkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVS
X1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChF
TkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NS
WVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
KSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9S
TVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElU
WV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9B
VFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVf
UEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVO
VF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFU
SU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19H
UkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJ
TlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RP
UlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVE
X09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJM
RV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElT
VF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElB
KSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxf
MikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9B
UEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVf
UFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9S
X1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1Nf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9V
VF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVT
KSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FD
WV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VT
VFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChF
TkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVO
QUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01F
RElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1F
TlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxF
X05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZF
X1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElE
QVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAk
KEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX09WRVJTQ1JPTExfRVZF
TlRTKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQo
RU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VS
VkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJf
QkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJF
Q09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JL
RVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVM
RVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFC
TEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9N
RVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVP
KSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0sp
ICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklW
RVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJB
Q1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9X
RUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQlhSKSAk
KEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVf
V0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJM
RV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggM2M5YWIwMzNhYi4uNjQ1OWFkMTBlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xNTY0LDYgKzE1
NjQsMTQgQEAgQXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6CiAgIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIk1hcCBIVE1MIGF0dHJpYnV0ZXMgd2lkdGgvaGVpZ2h0
IHRvIHRoZSBkZWZhdWx0IGFzcGVjdCByYXRpbyBvZiA8aW1nPiIKICAgY2F0ZWdvcnk6IGV4cGVy
aW1lbnRhbAogCitPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBkZWZh
dWx0VmFsdWU6IGZhbHNlCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiT3ZlcnNjcm9sbCBldmVudHMi
CisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSB0aGUgb25zY3JvbGxlbmQgYW5k
IHNjcm9sbGVuZCBldmVudHMiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKKyAgY29uZGl0aW9u
OiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisKICMgRm9yIGludGVybmFsIGZlYXR1cmVzOgog
IyBUaGUgdHlwZSBzaG91bGQgYmUgYm9vbGVhbi4KICMgWW91IG11c3QgcHJvdmlkZSBhIGh1bWFu
UmVhZGFibGVOYW1lIGFuZCBodW1hblJlYWRhYmxlRGVzY3JpcHRpb24gZm9yIGFsbCBkZWJ1ZyBm
ZWF0dXJlcy4gVGhleQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDQwOWY5NDRlMGEu
LjBlNjZjZjEwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAyMC0wMy0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBhcnNpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiBGcsOpZMOp
cmljIFdhbmcncyBwYXRjaC4KKworICAgICAgICBBZGQgb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQg
V2ViUHJlZmVyZW5jZSBzZXR0aW5nLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAo
K1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IG92ZXJzY3JvbGxFdmVudHNFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNl
dE92ZXJzY3JvbGxFdmVudHNFbmFibGVkOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorCiAyMDIwLTAz
LTE1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIG1vc3Qg
b2YgVGV4dEl0ZXJhdG9yIG9mZiBvZiBsaXZlIHJhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwppbmRleCBjZmJiNzI5NTEzLi4xMDZiNWM0YTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwpAQCAtMjk2LDYgKzI5Niw4IEBAIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTID0gOwog
RU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCA9ICQoRU5BQkxFX09WRVJGTE9XX1NDUk9M
TElOR19UT1VDSF8kKFdLX0NPQ09BX1RPVUNIKSk7CiBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5H
X1RPVUNIX2NvY29hdG91Y2ggPSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIOwogCitF
TkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFMgPSBFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFM7CisKIEVO
QUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVf
UElDVFVSRV9JTl9QSUNUVVJFX0FQSSA9ICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUElf
JChXS19QTEFURk9STV9OQU1FKSk7CkBAIC00MTYsNCArNDE4LDQgQEAgRU5BQkxFX1dJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVO
QUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNE
X1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUND
RVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQ
UExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFC
TEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAk
KEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFC
TEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JP
WF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NT
U19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJM
RV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NT
U19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVf
Q1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09Q
KSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9E
RVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRF
UlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5f
UElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVO
QUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVf
SU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVO
QUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5B
QkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9S
X1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5B
QkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJM
RV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQ
VFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNT
SU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01F
VEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUp
ICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQ
RUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElM
RV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5f
Q0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1F
TlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NL
KSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9S
RU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09M
VVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChF
TkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9T
QU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9T
RVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVB
QkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1T
X0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVD
VElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQo
RU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQo
RU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNF
U19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElP
TlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dF
QkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJH
TDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9BUElfU1RB
VElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxF
X1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9U
UkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBM
RV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxF
X0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChF
TkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxF
X0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hf
REVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1Nf
Q09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVf
Q1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1Nf
U0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NT
U19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkg
JChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRF
RF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJT
X0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFC
TEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lO
U1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFC
TEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJM
RV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJM
RV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVf
TUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRV
UkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lP
TikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRF
Ul9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAk
KEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVD
VUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVf
UkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NB
TlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9PVkVSU0NS
T0xMX0VWRU5UUykgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExV
R0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0la
RV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVf
UlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VS
VkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJ
Q0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9T
WU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcp
ICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxF
X1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJM
RV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVP
X1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVf
V0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJE
X0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChF
TkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9X
RUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQo
RU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykg
JChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCmluZGV4IDc3YjM5ODk1MDIuLjg1ZjEzNTY1ZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaApAQCAtMjEwLDYgKzIxMCw3IEBACiAjZGVmaW5lIFdlYktpdENTU1NoYWRvd1BhcnRz
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDU1NTaGFkb3dQYXJ0c0VuYWJsZWQiCiAjZGVm
aW5lIFdlYktpdExheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdExheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVk
IgogI2RlZmluZSBXZWJLaXRXZWJTUUxFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFdlYlNR
TEVuYWJsZWQiCisjZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVkIgogCiAjaWYgIVRBUkdFVF9PU19J
UEhPTkUKIC8vIFRoZXNlIGFyZSBwcml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBi
ZSB1c2luZyB0aGUgY292ZXIgbWV0aG9kcyBhbmQgYmVjYXVzZSB0aGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDAyNzkzOTQz
MDguLmM0N2FhMWMwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtNzE0LDYgKzcxNCw5IEBAIHB1YmxpYzoKICAgICAgICAg
QE5PLCBXZWJLaXRBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZFByZWZl
cmVuY2VLZXksCiAgICAgICAgIEBOTywgV2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAgICAgICAgIEBZRVMsIFdlYktpdERlYnVnTmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtz
UHJlZmVyZW5jZUtleSwKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIEBO
TywgV2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWRQcmVmZXJlbmNlS2V5LAorI2VuZGlmCiAg
ICAgICAgIG5pbF07CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTM2ODAsNiArMzY4
MywxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3Nl
bGYgX3NldEJvb2xWYWx1ZTp3ZWJTUUxFbmFibGVkIGZvcktleTpXZWJLaXRXZWJTUUxFbmFibGVk
UHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJPT0wpb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQKK3sK
KyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRPdmVyc2Nyb2xsRXZlbnRz
RW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldE92ZXJzY3JvbGxFdmVudHNF
bmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5
OldlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIFdlYlByZWZlcmVuY2VzIChXZWJJbnRlcm5hbCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oCmluZGV4IGE4NDU0OWQ0YWIuLjdmZjczMTlkODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNjg4
LDYgKzY4OCw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hh
bmdlZEludGVybmFsTm90aWZpY2F0aW9uIFdFQktJVF9ERVBSCiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBhc3luY0NsaXBib2FyZEFQSUVuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBsaW5rUHJlbG9hZFJlc3BvbnNpdmVJbWFnZXNFbmFibGVkOwogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgYXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZDsKIAogI2lm
IFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHF1aWNrTG9va0Rv
Y3VtZW50U2F2aW5nRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCA0ZDg5ZDM2YjE4Li44Nzk0MjE0YjQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0zMDA2LDYgKzMwMDYsOSBAQCBzdGF0aWMg
Ym9vbCBuZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAgICAgc2V0dGluZ3Muc2V0
Q1NTT01WaWV3U2Nyb2xsaW5nQVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgQ1NTT01WaWV3U2Nyb2xs
aW5nQVBJRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Ntb290aFNjcm9sbGlu
Z0VuYWJsZWQoW3ByZWZlcmVuY2VzIENTU09NVmlld1Ntb290aFNjcm9sbGluZ0VuYWJsZWRdKTsK
ICAgICBzZXR0aW5ncy5zZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dChbcHJlZmVyZW5jZXMgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRd
KTsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgc2V0dGluZ3Muc2V0T3ZlcnNj
cm9sbEV2ZW50c0VuYWJsZWQoW3ByZWZlcmVuY2VzIG92ZXJzY3JvbGxFdmVudHNFbmFibGVkXSk7
CisjZW5kaWYKIAogICAgIHN3aXRjaCAoW3ByZWZlcmVuY2VzIHN0b3JhZ2VCbG9ja2luZ1BvbGlj
eV0pIHsKICAgICBjYXNlIFdlYkFsbG93QWxsU3RvcmFnZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5n
ZUxvZwppbmRleCBmOTg5ODA2MmVmLi4wZTliODlmMDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDMtMDkgIENhdGhpZSBDaGVuICA8Y2F0aGll
Y2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsIGV2
ZW50cyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDg4MDIKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAg
ICAgICAgQmFzZWQgb24gRnLDqWTDqXJpYyBXYW5nJ3MgcGF0Y2guCisKKyAgICAgICAgQWRkIG92
ZXJzY3JvbGxFdmVudHNFbmFibGVkIFdlYlByZWZlcmVuY2Ugc2V0dGluZy4KKworICAgICAgICAq
IEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGw6CisgICAgICAgICogV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MpOgorICAgICAg
ICAoV2ViUHJlZmVyZW5jZXM6Om92ZXJzY3JvbGxFdmVudHNFbmFibGVkKToKKyAgICAgICAgKFdl
YlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCk6CisgICAgICAgICogV2Vi
UHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6CisKIDIwMjAtMDMtMTIgIHlvdWVubiBmYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VyZSBhIHByZWZsaWdodCBmYWls
cyBpZiByZXNwb25zZSBoZWFkZXJzIGFyZSBpbnZhbGlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlk
bAppbmRleCBkZmZkOTRkZDg2Li42NWNmM2FkOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5p
ZGwKQEAgLTI2NSw0ICsyNjUsNyBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTgg
OiBJV2ViUHJlZmVyZW5jZXNQcml2YXRlNwogewogICAgIEhSRVNVTFQgYWxsb3dUb3BOYXZpZ2F0
aW9uVG9EYXRhVVJMcyhbb3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwogICAgIEhSRVNVTFQg
c2V0QWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyhbaW5dIEJPT0wgZW5hYmxlZCk7CisgICAg
SFJFU1VMVCBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKyAg
ICBIUkVTVUxUIHNldE92ZXJzY3JvbGxFdmVudHNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsK
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAppbmRleCAxN2JjZjliZTE4Li4wNGFlYjZjN2JhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMjI3LDMgKzIy
Nyw1IEBACiAjZGVmaW5lIFdlYktpdEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRF
bmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhl
aWdodEVuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXkg
IldlYktpdFdlYlNRTEVuYWJsZWQiCisKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0Vu
YWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCBkZDI5ZTkyMzZjLi4x
ODRiMmM4YjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJl
bmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3Bw
CkBAIC0zNTQsNiArMzU0LDggQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1
bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIo
V2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisg
ICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktpdE92ZXJzY3JvbGxF
dmVudHNFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBkZWZh
dWx0U2V0dGluZ3MgPSBkZWZhdWx0czsKICNlbmRpZgogfQpAQCAtMjQ3MCw2ICsyNDcyLDIwIEBA
IEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldFdlYlNRTEVuYWJsZWQoQk9PTCBlbmFibGVkKQog
ICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpvdmVyc2Nyb2xs
RXZlbnRzRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkK
KyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktl
eShXZWJLaXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVy
biBTX09LOworfQorCitIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsRXZlbnRz
RW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAgc2V0Qm9vbFZhbHVlKFdlYktpdE92ZXJzY3Jv
bGxFdmVudHNFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7
Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVS
THMoX091dF8gQk9PTCogYWxsb3dBY2Nlc3MpCiB7CiAgICAgaWYgKCFhbGxvd0FjY2VzcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oCmluZGV4IGEzMWJhMDNhODIuLjcw
OThlZTExOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVu
Y2VzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAt
MzA3LDYgKzMwNyw4IEBAIHB1YmxpYzoKICAgICAvLyBJV2ViUHJlZmVyZW5jZXNQcml2YXRlOAog
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhbGxvd1RvcE5hdmlnYXRpb25U
b0RhdGFVUkxzKF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgc2V0QWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyhCT09MKTsKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQoX091dF8g
Qk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRPdmVyc2Ny
b2xsRXZlbnRzRW5hYmxlZChCT09MKTsKIAogICAgIC8vIFdlYlByZWZlcmVuY2VzCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggZDcwNTNlYzMyMC4uMWU4NmNlNDViNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTU2NjgsNiArNTY2OCwxMSBAQCBIUkVT
VUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBu
b3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy5zZXRBc3BlY3RS
YXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxlZCghIWVuYWJsZWQpOwogCisgICAgaHIg
PSBwcmVmc1ByaXZhdGUtPm92ZXJzY3JvbGxFdmVudHNFbmFibGVkKCZlbmFibGVkKTsKKyAgICBp
ZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLnNldE92ZXJz
Y3JvbGxFdmVudHNFbmFibGVkKCEhZW5hYmxlZCk7CisKICAgICByZXR1cm4gU19PSzsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlIGIvU291cmNlL2Nt
YWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCmluZGV4IGI1OTE5NjUxMTkuLjkzNjY1YTE3ZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQorKysgYi9Tb3VyY2Uv
Y21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKQEAgLTE4MSw2ICsxODEsNyBAQCBtYWNybyhXRUJL
SVRfT1BUSU9OX0JFR0lOKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9PRkZTQ1JF
RU5fQ0FOVkFTICJUb2dnbGUgT2Zmc2NyZWVuQ2FudmFzIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQog
ICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgIlRvZ2ds
ZSBPcmllbnRhdGlvbiBFdmVudHMgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09Q
VElPTl9ERUZJTkUoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCAiVG9nZ2xlIGFjY2Vs
ZXJhdGVkIHNjcm9sbGluZyBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFMgIlRvZ2dsZSBvdmVyc2Nyb2xsIGV2ZW50
cyIgUFJJVkFURSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUEFZTUVOVF9S
RVFVRVNUICJUb2dnbGUgUGF5bWVudCBSZXF1ZXN0IHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAg
IFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9QREZLSVRfUExVR0lOICJUb2dnbGUgUERGS2l0
IHBsdWdpbiBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShF
TkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSAiVG9nZ2xlIFBpY3R1cmUtaW4tUGljdHVyZSBB
UEkgc3VwcG9ydCIgUFJJVkFURSBPRkYpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNDY3ZDgzN2E5Zi4uYTY1MTllOTdlOSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDIwLTAzLTA5ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbCBldmVudHMgcGFyc2luZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODAyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIEZyw6lkw6lyaWMg
V2FuZydzIHBhdGNoLgorCisgICAgICAgIERlYWwgd2l0aCBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxl
ZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAg
KFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW06CisgICAgICAgIChlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyk6CisgICAgICAgIChzZXRX
ZWJQcmVmZXJlbmNlc0ZvclRlc3RPcHRpb25zKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAyMC0wMy0xNiAgSnVzdGluIE1pY2hhdWQg
IDxqdXN0aW5fbWljaGF1ZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHBlcnNvbmFsIGVtYWls
IHRvIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb250cmlidXRvcnMuanNv
bgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCmluZGV4IDI5MDYwNmEyNTUuLmEzMTIy
MTVhZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAgLTE1Niw2ICsxNTYs
OCBAQCBUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVS
TCwgY29uc3Qgc3RkOjpzdHJpbmcmIGFic29sdQogICAgICAgICAgICAgZW5hYmxlQXNwZWN0UmF0
aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodCA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2
YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRh
VVJMcyIpCiAgICAgICAgICAgICBhbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzID0gcGFyc2VC
b29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJl
eHBlcmltZW50YWw6T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQiKQorICAgICAgICAgICAgZW5hYmxl
T3ZlcnNjcm9sbEV2ZW50cyA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAg
ICAgICAgIHBhaXJTdGFydCA9IHBhaXJFbmQgKyAxOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0T3B0aW9ucy5oCmluZGV4IGFlNGJhNGFkNWQuLjAxY2YzNDYwYTAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaApAQCAtNTgsNiArNTgsNyBAQCBzdHJ1Y3QgVGVzdE9wdGlvbnMgewog
ICAgIGJvb2wgZW5hYmxlQXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodCB7IGZhbHNl
IH07CiAgICAgYm9vbCBlbmFibGVXZWJTUUwgeyB0cnVlIH07CiAgICAgYm9vbCBhbGxvd1RvcE5h
dmlnYXRpb25Ub0RhdGFVUkxzIHsgdHJ1ZSB9OworICAgIGJvb2wgZW5hYmxlT3ZlcnNjcm9sbEV2
ZW50cyB7IGZhbHNlIH07CiAgICAgc3RkOjpzdHJpbmcganNjT3B0aW9uczsKICAgICBzdGQ6OnN0
cmluZyBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGI2ZmUyYTU3OTYuLmJjOGYwMmMxOWQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTg4Niw2ICs4
ODYsNyBAQCBzdGF0aWMgdm9pZCBlbmFibGVFeHBlcmltZW50YWxGZWF0dXJlcyhXZWJQcmVmZXJl
bmNlcyogcHJlZmVyZW5jZXMpCiAgICAgW3ByZWZlcmVuY2VzIHNldENTU1NoYWRvd1BhcnRzRW5h
YmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRo
QW5kSGVpZ2h0RW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkOllFU107CisgICAgW3ByZWZlcmVuY2VzIHNldE92ZXJzY3JvbGxF
dmVudHNFbmFibGVkOllFU107CiB9CiAKIC8vIENhbGxlZCBiZWZvcmUgZWFjaCB0ZXN0LgpAQCAt
MTA0NCw2ICsxMDQ1LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0
aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBwcmVmZXJlbmNlcy5sYXlvdXRG
b3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZCA9IG9wdGlvbnMubGF5b3V0Rm9ybWF0
dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQ7CiAgICAgcHJlZmVyZW5jZXMuYXNwZWN0UmF0
aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQgPSBvcHRpb25zLmVuYWJsZUFzcGVjdFJh
dGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHQ7CiAgICAgcHJlZmVyZW5jZXMuYWxsb3dUb3BOYXZp
Z2F0aW9uVG9EYXRhVVJMcyA9IG9wdGlvbnMuYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMczsK
KyAgICBwcmVmZXJlbmNlcy5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxl
T3ZlcnNjcm9sbEV2ZW50czsKIH0KIAogLy8gQ2FsbGVkIG9uY2Ugb24gRHVtcFJlbmRlclRyZWUg
c3RhcnR1cC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlz
dC5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCA3NjNh
YTJlODMyLi4zNDgxNGMzM2I2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
RmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0
LnBtCkBAIC0xMzgsNiArMTM4LDcgQEAgbXkgKAogICAgICRvZmZzY3JlZW5DYW52YXNTdXBwb3J0
LAogICAgICRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQsCiAgICAgJG92ZXJmbG93U2Nyb2xsaW5n
VG91Y2hTdXBwb3J0LAorICAgICRvdmVyc2Nyb2xsRXZlbnRzU3VwcG9ydCwKICAgICAkcGF5bWVu
dFJlcXVlc3RTdXBwb3J0LAogICAgICRwZGZraXRQbHVnaW5TdXBwb3J0LAogICAgICRwaWN0dXJl
SW5QaWN0dXJlQVBJU3VwcG9ydCwKQEAgLTQ2NCw2ICs0NjUsOSBAQCBteSBAZmVhdHVyZXMgPSAo
CiAgICAgeyBvcHRpb24gPT4gIm92ZXJmbG93LXNjcm9sbGluZy10b3VjaCIsIGRlc2MgPT4gIlRv
Z2dsZSBhY2NlbGVyYXRlZCBzY3JvbGxpbmcgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0giLCB2YWx1ZSA9PiBcJG92ZXJmbG93U2Nyb2xs
aW5nVG91Y2hTdXBwb3J0IH0sCiAKKyAgICB7IG9wdGlvbiA9PiAib3ZlcnNjcm9sbC1ldmVudHMi
LCBkZXNjID0+ICJFbmFibGUgT3ZlcnNjcm9sbCBFdmVudHMgc3VwcG9ydCIsCisgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUyIsIHZhbHVlID0+IFwkb3ZlcnNjcm9sbEV2
ZW50c1N1cHBvcnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICJwYXltZW50LXJlcXVlc3QiLCBkZXNj
ID0+ICJUb2dnbGUgUGF5bWVudCBSZXF1ZXN0IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUIiwgdmFsdWUgPT4gXCRwYXltZW50UmVxdWVzdFN1cHBvcnQg
fSwKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggY2ZiYjcyOTUxMy4uMTA2YjVjNGEwYSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0yOTYsNiArMjk2LDggQEAgRU5BQkxFX09GRlNDUkVFTl9D
QU5WQVMgPSA7CiBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIID0gJChFTkFCTEVfT1ZF
UkZMT1dfU0NST0xMSU5HX1RPVUNIXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIEVOQUJMRV9PVkVSRkxP
V19TQ1JPTExJTkdfVE9VQ0hfY29jb2F0b3VjaCA9IEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdf
VE9VQ0g7CiAKK0VOQUJMRV9PVkVSU0NST0xMX0VWRU5UUyA9IEVOQUJMRV9PVkVSU0NST0xMX0VW
RU5UUzsKKwogRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7
CiAKIEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJID0gJChFTkFCTEVfUElDVFVSRV9JTl9Q
SUNUVVJFX0FQSV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKQEAgLTQxNiw0ICs0MTgsNCBAQCBFTkFC
TEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVDsKIAogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0g
JChFTkFCTEVfM0RfVFJBTlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAk
KEVOQUJMRV9BQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9O
X1Y0KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05f
TUFOSUZFU1QpICQoRU5BQkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJ
T05TKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9DT05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVO
QUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykg
JChFTkFCTEVfQ1NTX0NPTklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJ
T04pICQoRU5BQkxFX0NTU19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkg
JChFTkFCTEVfQ1NTX1NFTEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JE
KSAkKEVOQUJMRV9DU1NfVFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVO
QUJMRV9DX0xPT1ApICQoRU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFM
VUUpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04p
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVO
QUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChF
TkFCTEVfRklMVEVSU19MRVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
UElDVFVSRV9JTl9QSUNUVVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJT
KSAkKEVOQUJMRV9JTlNQRUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JT
RVJWRVIpICQoRU5BQkxFX0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZ
X0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFO
QUdFUikgJChFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJF
U1MpICQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9NRURJQV9DQVBUVVJFKSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxF
X01FRElBX1NFU1NJT04pICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikg
JChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NV
UlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdP
UktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hF
X1NUQUxFX1dISUxFX1JFVkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X09GRlNDUkVFTl9DQU5WQVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChF
TkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9Q
T0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChF
TkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcp
ICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1Qp
ICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVO
QUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9O
VU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNI
X0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9I
QU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJM
RV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNF
X0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykg
JChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVf
V0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRI
TikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQo
RU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQo
RU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9W
NCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01B
TklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9O
UykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFC
TEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQo
RU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9O
KSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQo
RU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkg
JChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFC
TEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVF
KSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAk
KEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFC
TEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5B
QkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJ
Q1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykg
JChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VS
VkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVO
VFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9D
U1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFH
RVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNT
KSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVf
TUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9N
RURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQo
RU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJT
T1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JL
X0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9T
VEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9P
RkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5B
QkxFX09WRVJTQ1JPTExfRVZFTlRTKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxF
X1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NV
RkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChF
TkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAk
KEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdF
KSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAk
KEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChF
TkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFC
TEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRf
QVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FM
TCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9O
VFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChF
TkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVO
KSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklW
RVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJB
Q1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUp
ICQoRU5BQkxFX1dFQlhSKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJM
RV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hT
TFQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393839</attachid>
            <date>2020-03-18 05:53:31 -0700</date>
            <delta_ts>2020-07-21 10:06:40 -0700</delta_ts>
            <desc>scrollend-userscroll-on-Mac-for-ews</desc>
            <filename>scrollend-mac-for-ews.diff</filename>
            <type>text/plain</type>
            <size>117306</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBjYmZmNDc3YjU4Li4xNGY0
Mjk1ZDcxIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjAtMDMtMDkgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAg
ICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLD
qWTDqXJpYyBXYW5nJ3MgcGF0Y2guCisKKyAgICAgICAgQWRkIEVOQUJMRV9PVkVSU0NST0xMX0VW
RU5UUyB3aGljaCBpcyBvZmYgYnkgZGVmYXVsdC4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZToKKwogMjAyMC0wMy0xNiAgS2VpdGggUm9sbGluICA8a3JvbGxp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIFdlYktpdFN5c3RlbUlu
dGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggZDhmMjRkYzliNS4uYjNlM2Q2Mjc4
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDMtMDkg
IENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAgICAgICBSZXZpZXdlZCBieSBG
csOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLDqWTDqXJpYyBXYW5nJ3MgcGF0
Y2guCisKKyAgICAgICAgQWRkIEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUy4KKworICAgICAgICAq
IENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDIwLTAzLTE2ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gSlNNYXBJ
dGVyYXRvciBhbmQgSlNTZXRJdGVyYXRvciBhcmUgQ2VsbFR5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwppbmRleCBjZmJiNzI5NTEzLi4xMDZiNWM0YTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0yOTYsNiArMjk2LDggQEAgRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMgPSA7CiBFTkFC
TEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIID0gJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5H
X1RPVUNIXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9V
Q0hfY29jb2F0b3VjaCA9IEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0g7CiAKK0VOQUJM
RV9PVkVSU0NST0xMX0VWRU5UUyA9IEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUzsKKwogRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVCA9IEVOQUJMRV9QQVlNRU5UX1JFUVVFU1Q7CiAKIEVOQUJMRV9QSUNU
VVJFX0lOX1BJQ1RVUkVfQVBJID0gJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSV8kKFdL
X1BMQVRGT1JNX05BTUUpKTsKQEAgLTQxNiw0ICs0MTgsNCBAQCBFTkFCTEVfV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUID0gRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVDsKIAogRU5BQkxF
X1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJB
TlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJ
QklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5B
QkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9D
QUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9D
T05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NP
TklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NT
U19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NF
TEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1Nf
VFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQo
RU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RB
VEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19M
RVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNU
VVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQ
RUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxF
X0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVf
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVf
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01B
Q19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJF
KSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04p
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJf
RUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VM
QVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JF
VkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5W
QVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfUEFZTUVOVF9S
RVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQo
RU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9U
RV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElP
Tl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRC
T1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJ
Q0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVf
UkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJ
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9O
KSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFC
TEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VO
VEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VM
RU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykg
JChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJ
VkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikg
JChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNU
SUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VC
X0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5T
Rk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJ
TElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BB
WV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQ
TEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJM
RV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FD
SEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09O
VEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNP
UkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05J
Q19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxF
Q1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZ
UEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVO
QUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRB
TElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01F
RElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVW
RUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVS
RV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9H
UFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01P
TlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykg
JChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVD
VE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9J
T1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xF
R0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNf
R0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkg
JChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VM
RU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5B
QkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFU
SVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZB
TElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFT
KSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX09WRVJTQ1JPTExf
RVZFTlRTKSAkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4p
ICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVO
QUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09C
U0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJC
RVJfQkFORElORykgJChFTkFCTEVfU0FOREJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJf
UFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9X
T1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRI
RVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
VEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChF
TkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNF
Ul9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJB
Q0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJE
UklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5U
RVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQlhS
KSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFC
TEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVO
QUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IGI0NjdhNDdiM2MuLjQ0OTNhZWI3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjIgQEAK
KzIwMjAtMDMtMTggIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb24gTWFjCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGRlYWxzIHdpdGgg
dGhlIHVzZXIgc2Nyb2xsaW5nIG9uIE1hYzogd2hlZWwgc2Nyb2xsaW5nLCBrZXlib2FyZCBzY3Jv
bGxpbmcsIGF1dG9zY3JvbGwoZHJhZyBzY3JvbGxpbmcpLgorICAgICAgICBXaGVlbCBzY3JvbGxp
bmc6IEJlc2lkZXMgdXNlciBzY3JvbGwsIGl0IG1pZ2h0IGdlbmVyYXRlIG1vbWVudHVtIHNjcm9s
bGluZywgUnViYmVyQmFuZCwgYW5kIHNjcm9sbFNuYXAuIFNvIGFkZAorICAgICAgICBtX2RldGVj
dFNjcm9sbGVuZFRpbWVyIHRvIGRldGVjdCB3aGVuIGRvZXMgdGhlIHNjcm9sbGluZyBlbmQuCisg
ICAgICAgIEtleWJvYXJkIHNjcm9sbGluZzogSGFuZGxlZCBieSBTY3JvbGxBbmltYXRvck1hYy4g
Rm9yIEZyYW1lVmlldywgdGhlIHNjcm9sbGluZyBpcyBhbmltYXRlZCwgc28gc2F2ZSB0aGUgcG9z
aXRpb24gZmlyc3QsCisgICAgICAgIHRoZW4gY2hlY2sgdGhlIHBvc2l0aW9uIHdoZW4gaXQgYWN0
dWFsbHkgc2Nyb2xscy4gRm9yIFJlbmRlckxheWVyLCBpdCBpcyBpbnN0YW50LCBzbyBub3RpZnkg
c2Nyb2xsIGVuZC4KKyAgICAgICAgQXV0b3Njcm9sbDogTm90aWZ5IHNjcm9sbCBlbmQgd2hlbiBh
dXRvc2Nyb2xsIHRpbWVyIGlzIHN0b3BwZWQuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6Om5vdGlmeVNjcm9sbERpZEVuZCk6IE5vdGlmeSB0aGUgY3VycmVu
dCBzY3JvbGxpbmcgZW5kcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlT
Y3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpub3RpZnlTY3JvbGxEaWRF
bmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpub3RpZnlT
Y3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6bm90aWZ5U2Nyb2xs
RGlkRW5kKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNhdmVTY3JvbGxlbmRFdmVudFBvc2l0
aW9uIGNvbnN0KTogU2F2ZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIGZpcmUgc2Nyb2xsZW5kIGV2
ZW50LgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Q29udHJvbGxlckNsaWVudDo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbENvbnRyb2xsZXI6OlNjcm9sbENvbnRyb2xsZXIpOiBBZGQgbV9kZXRlY3RTY3JvbGxlbmRU
aW1lciB0byBkZXRlY3Qgd2hlbiB0aGUgd2hlZWwgc2Nyb2xsaW5nIGVuZHMuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogU3RhcnQgdGhlIHRp
bWVyIGF0IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQgcGhyYXNlLCBhbmQgc3RvcCBpdAor
ICAgICAgICBhdCBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuIHBocmFzZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25h
cCk6IER1cmluZyBTY3JvbGxTbmFwLCBzdGFydCB0aGUgdGltZXIgYXQgVXNlclNjcm9sbEVuZAor
ICAgICAgICBzdGF0dXMsIGFuZCBzdG9wIGl0IGF0IFVzZXJTY3JvbGxCZWdpbiBvciBVc2VyU2Ny
b2xsaW5nIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0YXJ0
RGV0ZWN0U2Nyb2xsZW5kVGltZXIpOiBTdGFydCB0aGUgdGltZXIsIHJlcGVhdGluZyAxLzYwIHMK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0b3BEZXRlY3RTY3JvbGxlbmRU
aW1lcik6IFN0b3AgdGhlIHRpbWVyIGFuZCBub3RpZnlTY3JvbGxEaWRFbmQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTY3JvbGxlbmRUaW1lckZpcmVkKTogSWYg
UnViYmVyQmFuZCwgbW9tZW50dW1TY3JvbGwgYW5kIHNjcm9sbFNuYXAgaXMgbm90IGluIHByb2dy
ZXNzLCBzdG9wIHRoZSB0aW1lci4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKTogRm9yIGtleWJvYXJk
IHNjcm9sbGluZywgaWYgaXQncyBpbnN0YW50IHNjcm9sbGluZyBub3RpZnlTY3JvbGxEaWRFbmQs
IGlmIGl0J3MKKyAgICAgICAgYW5pbWF0ZWQgc2Nyb2xsaW5nIHNhdmVTY3JvbGxlbmRFdmVudFBv
c2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVNjcm9s
bERpZEVuZCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCk6IFB1dCB0aGUgdGFyZ2V0
IHRvIHRoZSBsaXN0IHdoZW4gYXV0b3Njcm9sbCBzdG9wcy4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0b3BBdXRvc2Nyb2xs
KTogRGVsZXRlZC4KKworMjAyMC0wMy0xNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbGVuZCBldmVudCBvZiBwcm9n
cmFtbWF0aWMgc2Nyb2xsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDkxMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTdXBwb3J0IHNjcm9sbGVuZCBldmVudCBmb3IgcHJvZ3JhbW1hdGljIHNjcm9s
bGluZy4gU2F2ZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIHdoZW4gc3RhcnRpbmcKKyAgICAgICAgYSBz
Y3JvbGwgKGluc3RhbnQgLyBhbmltYXRlZCkuIENvbXBhcmUgdGhlIGN1cnJlbnQgc2Nyb2xsIHBv
c2l0aW9uIHdpdGggdGhlIHNhdmUgb25lLCB3aGVuCisgICAgICAgIFJlbmRlckxheWVyL1Njcm9s
bFZpZXcgYWN0dWFsbHkgc2Nyb2xscy4gSWYgdGhleSBhcmUgc2FtZSwgcHV0IHRoZSB0YXJnZXQg
dG8gYSBsaXN0IGluIGRvY3VtZW50LgorICAgICAgICBUaGUgdGFyZ2V0cyBpbiB0aGUgbGlzdCB3
b3VsZCBkaXNwYXRjaCBzY3JvbGxlbmQgZXZlbnRzLgorCisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb21tb25UZWFyZG93bik6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkUGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0KTog
QXBwZW5kIHRoZSB0YXJnZXRzIHRvIG1fcGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0TGlzdC4K
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpydW5TY3JvbGxTdGVwcyk6IERpc3BhdGNoIHNj
cm9sbGVuZCBldmVudCBmb3IgZWFjaCB0YXJnZXQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
IEFkZCBtX3BlbmRpbmdTY3JvbGxlbmRFdmVudFRhcmdldExpc3Qgd2hpY2gga2VlcHMgdGhlIHNj
cm9sbGVuZCBldmVudCB0YXJnZXRzLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24pOiBBZGQgc2F2ZVNj
cm9sbGVuZFBvc2l0aW9uIHRvIGluZGljYXRlIHRoZSBwb3NpdGlvbiBzaG91bGQgYmUgc2F2ZWQg
Zm9yIHNjcm9sbGVuZCBldmVudCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbik6IGNoZWNrU2Nyb2xsZW5kRXZlbnRQb3NpdGlv
biBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGRvbid0IGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2F2ZVNjcm9sbGVuZEV2ZW50UG9zaXRpb24pOiBTYXZlIHRoZSBzY3JvbGwg
cG9zaXRpb24sIGEgc2Nyb2xsZW5kIGV2ZW50IHdvdWxkIGJlIGZpcmVkIGF0IHRoaXMgcG9zaXRp
b24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNoZWNrU2Nyb2xsZW5kRXZlbnRQb3Np
dGlvbik6IElmIHBvc2l0aW9uIGlzIGVxdWFsIHRvIHRoZSBzYXZlZCBvbmUsIGFkZCB0aGUgdGFy
Z2V0IHRvIHRoZSBzY3JvbGxlbmQgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
Zm9yY2VTY3JvbGxlbmQpOiBBZGQgdGhlIHRhcmdldCB0byB0aGUgbGlzdCB3aXRob3V0IGNoZWNr
aW5nIGl0cyBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKTogSWYgdGhlIGFuaW1hdGlvbiBpcyBp
bnRlcnJ1cHRlZCwgY2FsbCBmb3JjZVNjcm9sbGVuZCgpIHRvIGZpcmUgc2Nyb2xsZW5kIGV2ZW50
IHdpdGhvdXQgY2hlY2tpbmcgdGhlIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0aW9uU21vb3RoOjphbmltYXRpb25UaW1lckZpcmVkKTogV2hlbiB0aGUgYW5pbWF0aW9u
IGVuZHMgbmF0dXJhbCwgY2FsbCBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24uCisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3
OjpzY3JvbGxUbyk6IGNoZWNrU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbiB3aGVuIHNjcm9sbFBvc2l0
aW9uIGNoYW5nZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3Np
dGlvbik6IHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uIGZvciBwcm9ncmFtbWF0aWMgc2Nyb2xs
aW5nLiBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24gd2hlbiB0aGUgcG9zaXRpb24gZG9lc24n
dCBjaGFuZ2UuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOiBBZGQgc2F2ZVNjcm9s
bGVuZFBvc2l0aW9uIGZsYWcuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzYXZlU2Nyb2xsZW5kRXZlbnRQb3Np
dGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmNoZWNrU2Ny
b2xsZW5kRXZlbnRQb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OmZvcmNlU2Nyb2xsZW5kKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldFNjcm9sbFBvc2l0aW9u
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpzY3JvbGxUb1lQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6c2V0U2Nyb2xsUG9zaXRpb24pOiBSZXBsYWNlIHNjcm9sbFRvUG9zaXRpb24gd2l0aCBz
ZXRTY3JvbGxQb3NpdGlvbiB0byBjb25zaXN0ZW50IHdpdGggRnJhbWVWaWV3IGludGVyZmFjZXMu
IHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uIGZvciBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KTogY2hlY2tTY3Jv
bGxlbmRFdmVudFBvc2l0aW9uIHdoZW4gc2Nyb2xsIHBvc2l0aW9uIGRvZXNuJ3QgY2hhbmdlLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlv
bik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKTogY2hl
Y2tTY3JvbGxlbmRFdmVudFBvc2l0aW9uIHdoZW4gdGhlIHNjcm9sbFBvc2l0aW9uIGNoYW5nZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IEF1
dG9zY3JvbGxTdGF0dXMgaXMgYXZhaWxhYmxlIGJ5IGV2ZW50SGFuZGxlciwgc28gbm8gbmVlZCB0
byBhZGQgYSBmdW5jdGlvbiB2YXJpYWJsZSBmb3IgaXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6YXV0b3Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Ny
b2xsVG9Qb3NpdGlvbik6IERlbGV0ZWQuIFJlcGxhY2VkIGJ5IHNjcm9sbFRvUG9zaXRpb24uCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisKKzIwMjAtMDMtMDkgIENhdGhpZSBD
aGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBv
dmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmlj
IFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLDqWTDqXJpYyBXYW5nJ3MgcGF0Y2guCisKKyAg
ICAgICAgUGFyc2Ugb25vdmVyc2Nyb2xsL3Njcm9sbGVuZCBhdHRyaWJ1dGUgYW5kIG92ZXJzY3Jv
bGwvb3ZlcnNjcm9sbCBldmVudCBuYW1lLgorCisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29y
ZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGRvbS9FdmVudE5hbWVzLmg6CisgICAgICAgICog
ZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEVsZW1lbnQ6OmNyZWF0ZUV2ZW50SGFuZGxlck5hbWVNYXApOgorICAgICAgICAq
IHBhZ2UvU2V0dGluZ3MueWFtbDoKKwogMjAyMC0wMy0xNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgU2FmYXJpIGRvZXNuJ3QgaW5zZXJ0IG1ETlMgY2FuZGlk
YXRlcyB0byBTRFAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKaW5kZXggY2ZiYjcyOTUxMy4uMTA2YjVjNGEwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKQEAgLTI5Niw2ICsyOTYsOCBAQCBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyA9IDsKIEVO
QUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggPSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJ
TkdfVE9VQ0hfJChXS19DT0NPQV9UT1VDSCkpOwogRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19U
T1VDSF9jb2NvYXRvdWNoID0gRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSDsKIAorRU5B
QkxFX09WRVJTQ1JPTExfRVZFTlRTID0gRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTOworCiBFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BJ
Q1RVUkVfSU5fUElDVFVSRV9BUEkgPSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJXyQo
V0tfUExBVEZPUk1fTkFNRSkpOwpAQCAtNDE2LDQgKzQxOCw0IEBAIEVOQUJMRV9XSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUOwogCiBFTkFC
TEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9U
UkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBM
RV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxF
X0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChF
TkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxF
X0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hf
REVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1Nf
Q09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVf
Q1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1Nf
U0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NT
U19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkg
JChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVf
REFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRF
RF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJT
X0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJ
Q1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFC
TEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVY
RURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lO
U1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFC
TEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJM
RV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9Q
UkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJM
RV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVf
TUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRV
UkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lP
TikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRF
Ul9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAk
KEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVD
VUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVf
UkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NB
TlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5U
X1JFUVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykg
JChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVN
T1RFX0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVU
SU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FO
REJPWF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VS
VklDRV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJM
RV9SRVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19B
UEkpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJ
T04pICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVO
QUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVO
QUJMRV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVT
RU5UQVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNf
RUxFTUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05T
KSAkKEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJE
UklWRVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wy
KSAkKEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQlhSKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJ
U1RJQ1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9X
RUJfQ1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJB
TlNGT1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJ
QklMSVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVf
UEFZX1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9B
UFBMRV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5B
QkxFX0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9D
QUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9D
T05URU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NP
TklDX0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NT
U19QQUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NF
TEVDVE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1Nf
VFlQRURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQo
RU5BQkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RB
VEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURf
TUVESUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19M
RVZFTF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNU
VVJFX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0dQVV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KSAkKEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQ
RUNUT1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxF
X0lPU19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVf
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJF
RklYRVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVf
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01B
Q19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJF
KSAkKEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04p
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJf
RUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChF
TkFCTEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VM
QVRJVkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JF
VkFMSURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5W
QVMpICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfT1ZFUlNDUk9M
TF9FVkVOVFMpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJ
TikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQo
RU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVf
T0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09V
UkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JV
QkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZF
Ul9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNF
X1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lO
VEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9V
U0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVf
VklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dF
QkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9J
TlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5B
QkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VC
WFIpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQo
RU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwppbmRleCA3Zjg1YTBjZmE4Li5kYTk0OTZlMTljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGln
YWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBh
cnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
ODgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBC
YXNlZCBvbiBGcsOpZMOpcmljIFdhbmcncyBwYXRjaC4KKworICAgICAgICBBZGQgRU5BQkxFX09W
RVJTQ1JPTExfRVZFTlRTLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisKIDIwMjAtMDMtMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggY2ZiYjcyOTUxMy4uMTA2YjVjNGEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMjk2LDYg
KzI5Niw4IEBAIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTID0gOwogRU5BQkxFX09WRVJGTE9XX1ND
Uk9MTElOR19UT1VDSCA9ICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSF8kKFdLX0NP
Q09BX1RPVUNIKSk7CiBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIX2NvY29hdG91Y2gg
PSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIOwogCitFTkFCTEVfT1ZFUlNDUk9MTF9F
VkVOVFMgPSBFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFM7CisKIEVOQUJMRV9QQVlNRU5UX1JFUVVF
U1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJF
X0FQSSA9ICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUElfJChXS19QTEFURk9STV9OQU1F
KSk7CkBAIC00MTYsNCArNDE4LDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9
IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxF
X1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9JU09MQVRF
RF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Yz
KSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJ
T05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5U
X0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9O
SU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9GSUxURVJJ
TkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFL
KSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFESUVOVFMp
ICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJ
KSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0
KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVO
QUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9EQVJLX01P
REVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
KSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJM
RV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikgJChFTkFC
TEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkpICQoRU5B
QkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9X
T1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSU5T
UEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRS
WSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9F
VkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJM
RV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBU
RURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVO
VFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElBX1NUUkVB
TSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5B
QkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRP
Ul9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JFVkFMSURB
VElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRFKSAkKEVO
QUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9P
VkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFC
TEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNf
U1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAk
KEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkp
ICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNB
R0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMp
ICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAk
KEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVO
QUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZH
X0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVY
VF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1Rf
QUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9G
T05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAk
KEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JF
RU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRF
UkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQ
VSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5B
QkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVf
WFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNPTEFURURf
VFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WMykg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9O
X1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNITUVOVF9F
TEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklO
RykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklMVEVSSU5H
KSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykg
JChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElFTlRTKSAk
KEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkg
JChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkg
JChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkgJChFTkFC
TEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFSS19NT0RF
X0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkg
JChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVf
RVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NFU1MpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09S
S0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0lOU1BF
Q1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkp
ICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RVUkVfRVZF
TlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9STUFUVElO
R19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVf
TEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVE
X01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRT
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxFX01FRElB
X0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9TVFJFQU0p
ICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJM
RV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1Jf
U1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZBTElEQVRJ
T04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkgJChFTkFC
TEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFCTEVfT1ZF
UkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUykgJChFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QT0lO
VEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQo
RU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikgJChFTkFC
TEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJTkcpICQo
RU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQo
RU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJM
RV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxF
X1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1C
RVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RPVUNIX0VW
RU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5E
TEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVf
VklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9W
SURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01PVVNFX0lO
VEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykgJChF
TkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wpICQoRU5B
QkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFCTEVfV0VC
X0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9BVVRITikg
JChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCAxODgyYTllZmZlLi4zN2U4MDEz
MmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRp
bk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oCkBAIC0zMDQsNiArMzA0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3Jv
KG1hdGNoaW5nRWxlbWVudEluRmxhdFRyZWUpIFwKICAgICBtYWNybyhtZWRpYVN0cmVhbVRyYWNr
Q29uc3RyYWludHMpIFwKICAgICBtYWNybyhvcGVuRGF0YWJhc2UpIFwKKyAgICBtYWNybyhvbm92
ZXJzY3JvbGwpIFwKKyAgICBtYWNybyhvbnNjcm9sbGVuZCkgXAogICAgIG1hY3JvKG9udG91Y2hj
YW5jZWwpIFwKICAgICBtYWNybyhvbnRvdWNoZW5kKSBcCiAgICAgbWFjcm8ob250b3VjaG1vdmUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDYxZGJhNzRiM2QuLjViZTRiODBiYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzk5LDYgKzc5OSwxMCBAQCB2b2lkIERvY3VtZW50
Ojpjb21tb25UZWFyZG93bigpCiAKICAgICBtX3BlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3Qg
PSBudWxscHRyOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIG1fcGVuZGlu
Z1Njcm9sbGVuZEV2ZW50VGFyZ2V0TGlzdCA9IG51bGxwdHI7CisjZW5kaWYKKwogICAgIHdoaWxl
ICghbV90aW1lbGluZXMuY29tcHV0ZXNFbXB0eSgpKQogICAgICAgICBtX3RpbWVsaW5lcy5iZWdp
bigpLT5kZXRhY2hGcm9tRG9jdW1lbnQoKTsKICAgICBtX3RpbWVsaW5lID0gbnVsbHB0cjsKQEAg
LTQwNjYsNiArNDA3MCwyMyBAQCB2b2lkIERvY3VtZW50OjphZGRQZW5kaW5nU2Nyb2xsRXZlbnRU
YXJnZXQoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHRhcmdldHMuYXBwZW5kKHRhcmdldCk7
CiB9CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lkIERvY3VtZW50OjphZGRQ
ZW5kaW5nU2Nyb2xsZW5kRXZlbnRUYXJnZXQoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQoreworICAg
IGlmICghbV9wZW5kaW5nU2Nyb2xsZW5kRXZlbnRUYXJnZXRMaXN0KQorICAgICAgICBtX3BlbmRp
bmdTY3JvbGxlbmRFdmVudFRhcmdldExpc3QgPSBtYWtlVW5pcXVlPFBlbmRpbmdTY3JvbGxFdmVu
dFRhcmdldExpc3Q+KCk7CisKKyAgICBhdXRvJiB0YXJnZXRzID0gbV9wZW5kaW5nU2Nyb2xsZW5k
RXZlbnRUYXJnZXRMaXN0LT50YXJnZXRzOworICAgIGlmICh0YXJnZXRzLmZpbmRNYXRjaGluZyhb
Jl0gKGF1dG8mIGVudHJ5KSB7IHJldHVybiBlbnRyeS5wdHIoKSA9PSAmdGFyZ2V0OyB9KSAhPSBu
b3RGb3VuZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHRhcmdldHMuaXNFbXB0eSgpKQor
ICAgICAgICBzY2hlZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRlKCk7CisKKyAgICB0YXJnZXRzLmFw
cGVuZCh0YXJnZXQpOworfQorI2VuZGlmCisKIHZvaWQgRG9jdW1lbnQ6OnNldE5lZWRzVmlzdWFs
Vmlld3BvcnRTY3JvbGxFdmVudCgpCiB7CiAgICAgaWYgKCFtX25lZWRzVmlzdWFsVmlld3BvcnRT
Y3JvbGxFdmVudCkKQEAgLTQwOTEsNiArNDExMiwxOCBAQCB2b2lkIERvY3VtZW50OjpydW5TY3Jv
bGxTdGVwcygpCiAgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb21XaW5kb3coKSkKICAgICAg
ICAgICAgIHdpbmRvdy0+dmlzdWFsVmlld3BvcnQoKS5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6
OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICB9CisKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVO
VFMpCisgICAgLy8gRGVhbCB3aXRoIHNjcm9sbGVuZCBldmVudC4KKyAgICBpZiAobV9wZW5kaW5n
U2Nyb2xsZW5kRXZlbnRUYXJnZXRMaXN0ICYmICFtX3BlbmRpbmdTY3JvbGxlbmRFdmVudFRhcmdl
dExpc3QtPnRhcmdldHMuaXNFbXB0eSgpKSB7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShFdmVu
dHMsIHN0cmVhbSA8PCAiRG9jdW1lbnQiIDw8IHRoaXMgPDwgInNlbmRpbmcgc2Nyb2xsZW5kIGV2
ZW50cyB0byBwZW5kaW5nIHNjcm9sbCBldmVudCB0YXJnZXRzIik7CisgICAgICAgIGF1dG8gY3Vy
cmVudFNjcm9sbGVuZFRhcmdldHMgPSBXVEZNb3ZlKG1fcGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFy
Z2V0TGlzdC0+dGFyZ2V0cyk7CisgICAgICAgIGZvciAoYXV0byYgdGFyZ2V0IDogY3VycmVudFNj
cm9sbGVuZFRhcmdldHMpIHsKKyAgICAgICAgICAgIGF1dG8gYnViYmxlcyA9IHRhcmdldC0+aXNE
b2N1bWVudE5vZGUoKSA/IEV2ZW50OjpDYW5CdWJibGU6OlllcyA6IEV2ZW50OjpDYW5CdWJibGU6
Ok5vOworICAgICAgICAgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZl
bnROYW1lcygpLnNjcm9sbGVuZEV2ZW50LCBidWJibGVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpO
bykpOworICAgICAgICB9CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFkZEF1
ZGlvUHJvZHVjZXIoTWVkaWFQcm9kdWNlciYgYXVkaW9Qcm9kdWNlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggNTU5YTk4MzhiNi4uOTI0MmQ1NDE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTEzNjAsNiArMTM2MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJ1blJlc2l6ZVN0ZXBzKCk7CiAK
ICAgICB2b2lkIGFkZFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldChDb250YWluZXJOb2RlJik7Cisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgYWRkUGVuZGluZ1Njcm9sbGVu
ZEV2ZW50VGFyZ2V0KENvbnRhaW5lck5vZGUmKTsKKyNlbmRpZgogICAgIHZvaWQgc2V0TmVlZHNW
aXN1YWxWaWV3cG9ydFNjcm9sbEV2ZW50KCk7CiAgICAgdm9pZCBydW5TY3JvbGxTdGVwcygpOwog
CkBAIC0yMDM5LDYgKzIwNDIsOSBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFBlbmRpbmdTY3Jv
bGxFdmVudFRhcmdldExpc3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdTY3JvbGxFdmVu
dFRhcmdldExpc3Q+IG1fcGVuZGluZ1Njcm9sbEV2ZW50VGFyZ2V0TGlzdDsKKyNpZiBFTkFCTEUo
T1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdTY3JvbGxFdmVu
dFRhcmdldExpc3Q+IG1fcGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0TGlzdDsKKyNlbmRpZgog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBIYXNoU2V0PEhUTUxNZWRpYUVsZW1lbnQq
PiBtX21lZGlhU3RyZWFtU3RhdGVDaGFuZ2VFbGVtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5o
CmluZGV4IDVjZWVlNmY2ODEuLmU0ZGY0YzRiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudE5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaApA
QCAtMTkxLDYgKzE5MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhvcmllbnRh
dGlvbmNoYW5nZSkgXAogICAgIG1hY3JvKG92ZXJjb25zdHJhaW5lZCkgXAogICAgIG1hY3JvKG92
ZXJmbG93Y2hhbmdlZCkgXAorICAgIG1hY3JvKG92ZXJzY3JvbGwpIFwKICAgICBtYWNybyhwYWdl
aGlkZSkgXAogICAgIG1hY3JvKHBhZ2VzaG93KSBcCiAgICAgbWFjcm8ocGFzdGUpIFwKQEAgLTIy
Nyw2ICsyMjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ocmVzdWx0KSBcCiAg
ICAgbWFjcm8ocmVzdW1lKSBcCiAgICAgbWFjcm8oc2Nyb2xsKSBcCisgICAgbWFjcm8oc2Nyb2xs
ZW5kKSBcCiAgICAgbWFjcm8oc2VhcmNoKSBcCiAgICAgbWFjcm8oc2VjdXJpdHlwb2xpY3l2aW9s
YXRpb24pIFwKICAgICBtYWNybyhzZWVrZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9HbG9iYWxF
dmVudEhhbmRsZXJzLmlkbAppbmRleCA3NzBhYTljM2E3Li4xZjI3NjUzNGY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsCkBAIC0xMzIsNCArMTMyLDggQEAK
ICAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9TU9VU0VfRk9SQ0VfRVZFTlRTXSBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0bW91c2Vmb3JjZWRvd247CiAgICAgW05vdEVudW1l
cmFibGUsIENvbmRpdGlvbmFsPU1PVVNFX0ZPUkNFX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFu
ZGxlciBvbndlYmtpdG1vdXNlZm9yY2V3aWxsYmVnaW47CiAgICAgW05vdEVudW1lcmFibGUsIENv
bmRpdGlvbmFsPU1PVVNFX0ZPUkNFX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndl
YmtpdG1vdXNlZm9yY2V1cDsKKworICAgIC8vIEV2ZW50IGhhbmRsZXJzIGZyb20gT3ZlcnNjcm9s
bCBFdmVudHMgQVBJIChodHRwczovL3dpY2cuZ2l0aHViLmlvL292ZXJzY3JvbGwtc2Nyb2xsZW5k
LWV2ZW50cy8pCisgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPU9WRVJTQ1JPTExfRVZF
TlRTLCBFbmFibGVkQnlTZXR0aW5nPU92ZXJzY3JvbGxFdmVudHNdIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb25vdmVyc2Nyb2xsOworICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1PVkVS
U0NST0xMX0VWRU5UUywgRW5hYmxlZEJ5U2V0dGluZz1PdmVyc2Nyb2xsRXZlbnRzXSBhdHRyaWJ1
dGUgRXZlbnRIYW5kbGVyIG9uc2Nyb2xsZW5kOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4KaW5kZXggZGNkODM3OGQ5NS4uMDk5ZmZiODIyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTI2Nyw2ICsyNjcsNyBAQCBv
bm1vdXNld2hlZWwKIG9ub25saW5lCiBvbm9mZmxpbmUKIG9ub3JpZW50YXRpb25jaGFuZ2UKK29u
b3ZlcnNjcm9sbAogb25wYWdlaGlkZQogb25wYWdlc2hvdwogb25wYXN0ZQpAQCAtMjg3LDYgKzI4
OCw3IEBAIG9ucmF0ZWNoYW5nZQogb25yZXNldAogb25yZXNpemUKIG9uc2Nyb2xsCitvbnNjcm9s
bGVuZAogb25zZWFyY2gKIG9uc2Vla2VkCiBvbnNlZWtpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAKaW5kZXggMzJlZDRhZDMxYi4uYWU1OWFjMTJmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5jcHAKQEAgLTI4NCw2ICsyODQsNyBAQCBIVE1MRWxlbWVudDo6RXZlbnRIYW5k
bGVyTmFtZU1hcCBIVE1MRWxlbWVudDo6Y3JlYXRlRXZlbnRIYW5kbGVyTmFtZU1hcCgpCiAgICAg
ICAgICZvbm1vdXNlb3ZlckF0dHIuZ2V0KCksCiAgICAgICAgICZvbm1vdXNldXBBdHRyLmdldCgp
LAogICAgICAgICAmb25tb3VzZXdoZWVsQXR0ci5nZXQoKSwKKyAgICAgICAgJm9ub3ZlcnNjcm9s
bEF0dHIuZ2V0KCksCiAgICAgICAgICZvbnBhc3RlQXR0ci5nZXQoKSwKICAgICAgICAgJm9ucGF1
c2VBdHRyLmdldCgpLAogICAgICAgICAmb25wbGF5QXR0ci5nZXQoKSwKQEAgLTMwMSw2ICszMDIs
NyBAQCBIVE1MRWxlbWVudDo6RXZlbnRIYW5kbGVyTmFtZU1hcCBIVE1MRWxlbWVudDo6Y3JlYXRl
RXZlbnRIYW5kbGVyTmFtZU1hcCgpCiAgICAgICAgICZvbnJlc2V0QXR0ci5nZXQoKSwKICAgICAg
ICAgJm9ucmVzaXplQXR0ci5nZXQoKSwKICAgICAgICAgJm9uc2Nyb2xsQXR0ci5nZXQoKSwKKyAg
ICAgICAgJm9uc2Nyb2xsZW5kQXR0ci5nZXQoKSwKICAgICAgICAgJm9uc2VhcmNoQXR0ci5nZXQo
KSwKICAgICAgICAgJm9uc2Vla2VkQXR0ci5nZXQoKSwKICAgICAgICAgJm9uc2Vla2luZ0F0dHIu
Z2V0KCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAppbmRl
eCBhYjI1NWRkMGI3Li45M2E3MTI3NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9s
bGVyOjpyZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKQogICAgICAgICBpZiAocGFn
ZSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgbV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFj
dG9yKCkpCiAgICAgICAgICAgICBwYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IobV9jdXJyZW50SXRl
bS0+cGFnZVNjYWxlRmFjdG9yKCkgKiBwYWdlLT52aWV3U2NhbGVGYWN0b3IoKSwgZGVzaXJlZFNj
cm9sbFBvc2l0aW9uKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xs
UG9zaXRpb24oZGVzaXJlZFNjcm9sbFBvc2l0aW9uKTsKKyAgICAgICAgICAgIHZpZXctPnNldFNj
cm9sbFBvc2l0aW9uKGRlc2lyZWRTY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1w
ZWQsIGZhbHNlLCBmYWxzZSk7CiAKICAgICAgICAgLy8gSWYgdGhlIHNjcm9sbCBwb3NpdGlvbiBk
b2Vzbid0IGhhdmUgdG8gYmUgY2xhbXBlZCwgY29uc2lkZXIgaXQgc3VjY2Vzc2Z1bGx5IHJlc3Rv
cmVkLgogICAgICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggNTNmMTc5OGU4Yy4uMmRhZDI5NDUxOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMjI3NSw3ICsyMjc1LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9s
bEVsZW1lbnRUb1JlY3QoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKICAgICBzZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludChib3VuZHMueCgpIC0gY2VudGVyaW5n
T2Zmc2V0WCAtIHJlY3QueCgpLCBib3VuZHMueSgpIC0gY2VudGVyaW5nT2Zmc2V0WSAtIHJlY3Qu
eSgpKSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29s
IGFuaW1hdGVkKQordm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wg
YW5pbWF0ZWQsIGJvb2wgc2F2ZVNjcm9sbGVuZFBvc2l0aW9uKQogewogICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAi
IDw8IHNjcm9sbFBvc2l0aW9uIDw8ICIgLCBjbGVhcmluZyBhbmNob3IiKTsKIApAQCAtMjI5MSw3
ICsyMjkxLDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2wKICAgICBpZiAoYW5pbWF0ZWQpCiAg
ICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRp
b24oc2Nyb2xsUG9zaXRpb24pLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBjbGFtcGluZyk7CiAgICAg
ZWxzZQotICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlv
biwgY2xhbXBpbmcpOworICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3Jv
bGxQb3NpdGlvbiwgY2xhbXBpbmcsIGFuaW1hdGVkLCBzYXZlU2Nyb2xsZW5kUG9zaXRpb24pOwog
CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUob2xkU2Nyb2xsVHlwZSk7CiB9CkBAIC0zNjE0LDEy
ICszNjE0LDQ4IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24o
Y29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbFR5CiAKICAgICBpZiAoY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0aXZl
QW5pbWF0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsK
KworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAob2Zmc2V0ID09IHRoaXMt
PnNjcm9sbE9mZnNldCgpKQorICAgICAgICBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24oc2Ny
b2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG9mZnNldCkpOworI2VuZGlmCisKICAgICBpZiAob2Zmc2V0
ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQogICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xs
VG9PZmZzZXRXaXRoQW5pbWF0aW9uKG9mZnNldCk7CiAKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlw
ZShwcmV2aW91c1Njcm9sbFR5cGUpOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRT
KQordm9pZCBGcmFtZVZpZXc6OnNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIWZyYW1lKCkuc2V0dGluZ3MoKS5vdmVy
c2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2ZpcmVTY3Jv
bGxlbmRFdmVudEF0UG9zaXRpb24gPSBwb3NpdGlvbjsKK30KKwordm9pZCBGcmFtZVZpZXc6OmNo
ZWNrU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24p
Cit7CisgICAgaWYgKCFtX2ZpcmVTY3JvbGxlbmRFdmVudEF0UG9zaXRpb24gfHwgbV9maXJlU2Ny
b2xsZW5kRXZlbnRBdFBvc2l0aW9uLnZhbHVlKCkgIT0gcG9zaXRpb24pCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCisg
ICAgICAgIGRvY3VtZW50LT5hZGRQZW5kaW5nU2Nyb2xsZW5kRXZlbnRUYXJnZXQoKmRvY3VtZW50
KTsKKworICAgIG1fZmlyZVNjcm9sbGVuZEV2ZW50QXRQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsK
K30KKwordm9pZCBGcmFtZVZpZXc6OmZvcmNlU2Nyb2xsZW5kKCkKK3sKKyAgICBpZiAoIWZyYW1l
KCkuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpKQorICAg
ICAgICBkb2N1bWVudC0+YWRkUGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0KCpkb2N1bWVudCk7
Cit9CisjZW5kaWYKKwogZmxvYXQgRnJhbWVWaWV3OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRD
b250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBpZiAoZ3JhbnVsYXJpdHkgIT0gU2Ny
b2xsQnlQYWdlIHx8IG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAppbmRleCBjMjJlNGU1OGMxLi5kNWQwMzhiYjRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKQEAgLTIyNSw3ICsyMjUsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rml4ZWRWaXNpYmxlQ29u
dGVudFJlY3QoY29uc3QgSW50UmVjdCYpIGZpbmFsOwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbENs
YW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSkg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBT
Y3JvbGxQb3NpdGlvbiYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQs
IGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgYm9vbCBzYXZlU2Nyb2xsZW5kUG9zaXRpb24gPSB0cnVl
KSBmaW5hbDsKICAgICB2b2lkIHJlc3RvcmVTY3JvbGxiYXIoKTsKICAgICB2b2lkIHNjaGVkdWxl
U2Nyb2xsVG9Gb2N1c2VkRWxlbWVudChTZWxlY3Rpb25SZXZlYWxNb2RlKTsKICAgICB2b2lkIHNj
cm9sbFRvRm9jdXNlZEVsZW1lbnRJbW1lZGlhdGVseUlmTmVlZGVkKCk7CkBAIC02NTgsNiArNjU4
LDEyIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaW5VcGRhdGVFbWJlZGRlZE9iamVjdHMoKSBjb25z
dCB7IHJldHVybiBtX2luVXBkYXRlRW1iZWRkZWRPYmplY3RzOyB9CiAKKyNpZiBFTkFCTEUoT1ZF
UlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBzYXZlU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihjb25z
dCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIHZvaWQgY2hlY2tTY3JvbGxlbmRFdmVudFBv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmluYWw7CisgICAgdm9pZCBmb3JjZVNjcm9s
bGVuZCgpIGZpbmFsOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBib29sIHNjcm9sbENvbnRl
bnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJl
Y3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogICAgIHZvaWQgc2Ny
b2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSBmaW5hbDsKQEAg
LTg5Myw2ICs4OTksMTAgQEAgcHJpdmF0ZToKIAogICAgIFBhZ2luYXRpb24gbV9wYWdpbmF0aW9u
OwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIE9wdGlvbmFsPFNjcm9sbFBv
c2l0aW9uPiBtX2ZpcmVTY3JvbGxlbmRFdmVudEF0UG9zaXRpb247CisjZW5kaWYKKwogICAgIGVu
dW0gY2xhc3MgVmlld3BvcnRSZW5kZXJlclR5cGUgOiB1aW50OF90IHsgTm9uZSwgRG9jdW1lbnQs
IEJvZHkgfTsKICAgICBWaWV3cG9ydFJlbmRlcmVyVHlwZSBtX3ZpZXdwb3J0UmVuZGVyZXJUeXBl
IHsgVmlld3BvcnRSZW5kZXJlclR5cGU6Ok5vbmUgfTsKICAgICBTY3JvbGxQaW5uaW5nQmVoYXZp
b3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3IgeyBEb05vdFBpbiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCmluZGV4IDI1YThlYWJkNDcuLjA3ZTUxNmU1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLnlhbWwKQEAgLTkxNiw2ICs5MTYsMTAgQEAgaXNMb2dnZWRJbkFQSUVuYWJsZWQ6CiBl
bnRlcktleUhpbnRFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQogCitvdmVyc2Nyb2xsRXZlbnRz
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKyAgY29uZGl0aW9uYWw6IE9WRVJTQ1JPTExfRVZF
TlRTCisKIGxlZ2FjeUdldFVzZXJNZWRpYUVuYWJsZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAgIGNv
bmRpdGlvbmFsOiBNRURJQV9TVFJFQU0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggZWQ3MjAz
Njc0My4uZjcyOGM4NGI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTg4MCw2ICs4ODAs
MjkgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXBvcnRTeW5jaHJvbm91c1Nj
cm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b24KICAgICAgICAgbV9wYWdlLT5wZXJmb3JtYW5j
ZUxvZ2dpbmdDbGllbnQoKS0+bG9nU2Nyb2xsaW5nRXZlbnQoUGVyZm9ybWFuY2VMb2dnaW5nQ2xp
ZW50OjpTY3JvbGxpbmdFdmVudDo6U3dpdGNoZWRTY3JvbGxpbmdNb2RlLCB0aW1lc3RhbXAsIHJl
YXNvbnMudG9SYXcoKSk7CiB9CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lk
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Om5vdGlmeVNjcm9sbERpZEVuZChTY3JvbGxpbmdO
b2RlSUQgc2Nyb2xsaW5nTm9kZUlEKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisK
KyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZnJhbWVWaWV3
ID0gZnJhbWVWaWV3Rm9yU2Nyb2xsaW5nTm9kZShzY3JvbGxpbmdOb2RlSUQpOworICAgIGlmICgh
ZnJhbWVWaWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoc2Nyb2xsaW5nTm9kZUlEID09
IGZyYW1lVmlldy0+c2Nyb2xsaW5nTm9kZUlEKCkpIHsKKyAgICAgICAgZnJhbWVWaWV3LT5mb3Jj
ZVNjcm9sbGVuZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gT3ZlcmZsb3ct
c2Nyb2xsIGFyZWEuCisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5z
Y3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQoc2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAg
c2Nyb2xsYWJsZUFyZWEtPmZvcmNlU2Nyb2xsZW5kKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaAppbmRleCA2ZGEyZTgzMTQ2Li5iNjhlNmU3NjcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5oCkBAIC02OCw2ICs2OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBvcnRFeHBvc2VkVW5m
aWxsZWRBcmVhKE1vbm90b25pY1RpbWUsIHVuc2lnbmVkIHVuZmlsbGVkQXJlYSk7CiAgICAgdm9p
ZCByZXBvcnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1RpbWUs
IE9wdGlvblNldDxTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbj4pOwogCisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbm90aWZ5U2Nyb2xsRGlk
RW5kKFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAg
IFdFQkNPUkVfRVhQT1JUIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSopOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAppbmRleCAwNTEzZmU3ODc2Li5iNmE0NTRjM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTExNiw2ICsxMTYs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxEaWRFbmQoU2Nyb2xsaW5nTm9kZUlEKSB7IH0K
KyNlbmRpZgorCiAgICAgLy8gRm9yY2UgYWxsIHNjcm9sbCBsYXllciBwb3NpdGlvbiB1cGRhdGVz
IHRvIGhhcHBlbiBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMoYm9vbCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCA3MTkx
YTM3NjIzLi41OWNlOTJkMWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCkBAIC0xMTEsNiArMTExLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFzb24oV2hl
ZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRU
ZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIHsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1ZFUlND
Uk9MTF9FVkVOVFMpCisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZChTY3JvbGxp
bmdOb2RlSUQpIHsgfQorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBXRUJDT1JF
X0VYUE9SVCB2aXJ0dWFsIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Ny
b2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgPSAw
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJl
YWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAppbmRleCA4MTBhZmQ0NDMxLi4xYWI2ZjBjZTc2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xs
aW5nVHJlZS5jcHAKQEAgLTIyNSw2ICsyMjUsMTggQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWU6OnJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdoZWUK
IAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lkIFRocmVhZGVk
U2Nyb2xsaW5nVHJlZTo6bm90aWZ5U2Nyb2xsRGlkRW5kKFNjcm9sbGluZ05vZGVJRCBub2RlSUQp
Cit7CisgICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgICAgICByZXR1cm47CisK
KyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV9z
Y3JvbGxpbmdDb29yZGluYXRvciwgbm9kZUlEXSB7CisgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yLT5ub3RpZnlTY3JvbGxEaWRFbmQobm9kZUlEKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KSAmJiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXggMDVkZGM1Y2QwMy4u
MzIxZDFkNzZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTcwLDYgKzcwLDEwIEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29uKFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50
VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgRU5BQkxF
KE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5kKFNjcm9sbGlu
Z05vZGVJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZv
aWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlELCB1bnNp
Z25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCmluZGV4IGY1ZDRk
ZTU4N2YuLjZkMTViYzZiMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVNYWMuaApAQCAtNzksNiArNzksMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3BT
bmFwUnViYmVyYmFuZFRpbWVyKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGp1c3RTY3JvbGxQb3Np
dGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKIAorI2lmIEVOQUJMRShPVkVSU0NS
T0xMX0VWRU5UUykKKyAgICB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgpIG92ZXJyaWRlOworI2Vu
ZGlmCisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIEZsb2F0UG9pbnQgc2Nyb2xs
T2Zmc2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxPbkF4aXMo
U2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBkZWx0YSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IDhkNDhlNmQ0NDguLjM1M2U5
YjI1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFj
Lm1tCkBAIC0yNTMsNiArMjUzLDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVE
ZWxlZ2F0ZU1hYzo6YWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzCiAgICAgaW1t
ZWRpYXRlU2Nyb2xsQnkoY29uc3RyYWluZWRQb3NpdGlvbiAtIHNjcm9sbFBvc2l0aW9uKTsKIH0K
IAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYzo6bm90aWZ5U2Nyb2xsRGlkRW5kKCkKK3sKKyAgICBzY3JvbGxp
bmdUcmVlKCkubm90aWZ5U2Nyb2xsRGlkRW5kKHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdOb2Rl
SUQoKSk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiBGbG9hdFBv
aW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNjcm9sbE9mZnNldCgp
IGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9u
U21vb3RoLmNwcAppbmRleCAyY2E1NzhhMzBmLi45MjVkNGMwZWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKQEAgLTgwLDYgKzgw
LDExIEBAIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzY3JvbGwoY29uc3QgRmxvYXRQb2lu
dCYgcG9zaXRpb24pCiAKIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3RoOjpzdG9wKCkKIHsKKyNp
ZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgaWYgKG1fYW5pbWF0aW9uVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5mb3JjZVNjcm9sbGVuZCgpOworI2Vu
ZGlmCisKICAgICBtX2FuaW1hdGlvblRpbWVyLnN0b3AoKTsKICAgICBtX3Njcm9sbGFibGVBcmVh
LnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1h
dGlvbik7CiB9CkBAIC00MTAsOCArNDE1LDEyIEBAIHZvaWQgU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
OjphbmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgIGlmIChjb250aW51ZUFuaW1hdGlvbikKICAg
ICAgICAgc3RhcnROZXh0VGltZXIoc3RkOjptYXgobWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRh
VG9OZXh0RnJhbWUpKTsKLSAgICBlbHNlCisgICAgZWxzZSB7CiAgICAgICAgIG1fc2Nyb2xsYWJs
ZUFyZWEuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdElu
QW5pbWF0aW9uKTsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIG1fc2Ny
b2xsYWJsZUFyZWEuY2hlY2tTY3JvbGxlbmRFdmVudFBvc2l0aW9uKG1fc2Nyb2xsYWJsZUFyZWEu
c2Nyb2xsUG9zaXRpb24oKSk7CisjZW5kaWYKKyAgICB9CiAKICAgICBtX25vdGlmeVBvc2l0aW9u
Q2hhbmdlZEZ1bmN0aW9uKEZsb2F0UG9pbnQobV9ob3Jpem9udGFsRGF0YS5jdXJyZW50UG9zaXRp
b24sIG1fdmVydGljYWxEYXRhLmN1cnJlbnRQb3NpdGlvbikpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDBmYzcyOWU5MTIuLmI5NjI4MDUxNjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTE4OCw2
ICsxODgsMTMgQEAgdm9pZCBTY3JvbGxBbmltYXRvcjo6c2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQogICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZv
ck9mZnNldCgpOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBTY3Jv
bGxBbmltYXRvcjo6c2F2ZVNjcm9sbGVuZEV2ZW50UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24pIGNvbnN0Cit7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5zYXZlU2Nyb2xsZW5kRXZl
bnRQb3NpdGlvbihyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKTsKK30KKyNlbmRpZgorCiB2b2lk
IFNjcm9sbEFuaW1hdG9yOjp1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKQog
ewogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsQW5pbWF0b3IuaAppbmRleCA5YjdjMDliNjkwLi45NDE4YjJhMTJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTg3LDYgKzg3LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgY29u
c3QgRmxvYXRQb2ludCYgY3VycmVudFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50
UG9zaXRpb247IH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2b2lkIHNh
dmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyNlbmRp
ZgorCiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcAppbmRleCAyZmQxNWY3YjMwLi5lMDE4ZTI5MmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDg2LDYgKzQ4NiwxMCBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBuZXdQb3NpdGlvbikKIAogICAgIG1f
c2Nyb2xsUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VW
RU5UUykKKyAgICBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24obV9zY3JvbGxQb3NpdGlvbik7
CisjZW5kaWYKKwogICAgIGlmIChzY3JvbGxiYXJzU3VwcHJlc3NlZCgpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTUxMyw3ICs1MTcsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OmNvbXBsZXRlVXBkYXRl
c0FmdGVyU2Nyb2xsVG8oY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgdXBkYXRlQ29t
cG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpOwogfQogCi12b2lkIFNjcm9sbFZpZXc6OnNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Ny
b2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wvKiBhbmltYXRlZCovKQordm9pZCBTY3JvbGxWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24s
IFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29sLyogYW5pbWF0ZWQqLywgYm9vbCBzYXZlU2Ny
b2xsZW5kUG9zaXRpb24pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFt
IDw8ICJTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsK
IApAQCAtNTI1LDEzICs1MjksMjMgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNjcm9sbEMKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAorICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9
PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pCisgICAgICAgIHNj
cm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOworCiAgICAgU2Nyb2xsUG9zaXRpb24g
bmV3U2Nyb2xsUG9zaXRpb24gPSAoIWRlbGVnYXRlc1Njcm9sbGluZygpICYmIGNsYW1waW5nID09
IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSA/IGFkanVzdFNjcm9sbFBvc2l0aW9uV2l0aGluUmFu
Z2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9zaXRpb247CisjaWYgRU5BQkxFKE9WRVJTQ1JP
TExfRVZFTlRTKQorICAgIGlmIChzYXZlU2Nyb2xsZW5kUG9zaXRpb24pCisgICAgICAgIHNhdmVT
Y3JvbGxlbmRFdmVudFBvc2l0aW9uKG5ld1Njcm9sbFBvc2l0aW9uKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHNhdmVTY3JvbGxlbmRQb3NpdGlvbik7CisjZW5kaWYKIAotICAgIGlmICgoIWRl
bGVnYXRlc1Njcm9sbGluZygpIHx8IGN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6
VXNlcikgJiYgY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6Ok5vdEluQW5pbWF0aW9uICYmIG5ld1Njcm9sbFBvc2l0aW9uID09IHRoaXMtPnNjcm9s
bFBvc2l0aW9uKCkpCisgICAgaWYgKCghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgfHwgY3VycmVudFNj
cm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKSAmJiBjdXJyZW50U2Nyb2xsQmVoYXZpb3JT
dGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24gJiYgbmV3U2Ny
b2xsUG9zaXRpb24gPT0gdGhpcy0+c2Nyb2xsUG9zaXRpb24oKSkgeworI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKKyAgICAgICAgY2hlY2tTY3JvbGxlbmRFdmVudFBvc2l0aW9uKG5ld1Nj
cm9sbFBvc2l0aW9uKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoY3VycmVu
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluTm9uTmF0
aXZlQW5pbWF0aW9uKQotICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMo
KTsKKyAgICB9CiAKICAgICBpZiAoIXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShuZXdTY3Jv
bGxQb3NpdGlvbiwgY3VycmVudFNjcm9sbFR5cGUoKSwgY2xhbXBpbmcpKQogICAgICAgICB1cGRh
dGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuaAppbmRleCA0Y2MyYmI0YzBiLi5kZWFjYmIxZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5oCkBAIC0yNjEsNyArMjYxLDcgQEAgcHVibGljOgogICAgIFNjcm9sbFBv
c2l0aW9uIGNhY2hlZFNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3Jv
bGxQb3NpdGlvbjsgfQogCiAgICAgLy8gRnVuY3Rpb25zIGZvciBzY3JvbGxpbmcgdGhlIHZpZXcu
Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9u
JiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYm9vbCBhbmltYXRl
ZCA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Ny
b2xsUG9zaXRpb24mLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBi
b29sIGFuaW1hdGVkID0gZmFsc2UsIGJvb2wgc2F2ZVNjcm9sbGVuZFBvc2l0aW9uID0gdHJ1ZSk7
CiAKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUmIHMpIHsgcmV0dXJuIHNldFNjcm9s
bFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKCkgKyBzKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuaAppbmRleCBmZGRkZjJmOWJlLi5mYWI4Y2JiMzNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKQEAgLTM0Myw2ICszNDMsMTIgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3Jv
bGxiYXJPbkxlZnQoKSBjb25zdCA9IDA7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMp
CisgICAgdmlydHVhbCB2b2lkIHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGNoZWNrU2Nyb2xsZW5kRXZlbnRQb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBmb3JjZVNj
cm9sbGVuZCgpIHsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBT
Y3JvbGxhYmxlQXJlYSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflNjcm9sbGFibGVB
cmVhKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9s
bGVyLmgKaW5kZXggNjk2MDdjZGNhOS4uMmE3NzJjMjNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaApAQCAtNzgsNiArNzgsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91bmRzSWZO
ZWNlc3NhcnkoKSA9IDA7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5kKCkgeyB9CisjZW5kaWYKKwogICAg
IHZpcnR1YWwgdm9pZCBkZWZlcldoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkZvclJlYXNvbihXaGVl
bEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRl
c3RNb25pdG9yOjpEZWZlclJlYXNvbikgY29uc3QgeyAvKiBEbyBub3RoaW5nICovIH0KICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlV2hlZWxFdmVudFRlc3RDb21wbGV0aW9uRGVmZXJyYWxGb3JSZWFz
b24oV2hlZWxFdmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVs
RXZlbnRUZXN0TW9uaXRvcjo6RGVmZXJSZWFzb24pIGNvbnN0IHsgLyogRG8gbm90aGluZyAqLyB9
CiAKQEAgLTE3Miw2ICsxNzYsMTEgQEAgcHJpdmF0ZToKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBzdGFydERldGVjdFNjcm9sbGVuZFRp
bWVyKCk7CisgICAgdm9pZCBzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsKKyAgICB2b2lkIGRl
dGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKTsKKyNlbmRpZgogICAgIFNjcm9sbENvbnRyb2xsZXJD
bGllbnQmIG1fY2xpZW50OwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTk4LDYgKzIwNywxMCBA
QCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5U
UykKKyAgICBSdW5Mb29wOjpUaW1lcjxTY3JvbGxDb250cm9sbGVyPiBtX2RldGVjdFNjcm9sbGVu
ZFRpbWVyOworI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCBtX2luU2Nyb2xs
R2VzdHVyZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyB7
IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29u
dHJvbGxlci5tbQppbmRleCAzNTYwYmFiZjI5Li4zM2RlNzNhZDRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KQEAgLTkzLDYgKzkz
LDkgQEAgU2Nyb2xsQ29udHJvbGxlcjo6U2Nyb2xsQ29udHJvbGxlcihTY3JvbGxDb250cm9sbGVy
Q2xpZW50JiBjbGllbnQpCiAgICAgLCBtX3N0YXRlbGVzc1NuYXBUcmFuc2l0aW9uVGltZXIoUnVu
TG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmU2Nyb2xsQ29udHJvbGxlcjo6c3RhdGVsZXNzU25hcFRy
YW5zaXRpb25UaW1lckZpcmVkKQogICAgICwgbV9zY3JvbGxTbmFwVGltZXIoUnVuTG9vcDo6Y3Vy
cmVudCgpLCB0aGlzLCAmU2Nyb2xsQ29udHJvbGxlcjo6c2Nyb2xsU25hcFRpbWVyRmlyZWQpCiAj
ZW5kaWYKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgLCBtX2RldGVjdFNjcm9s
bGVuZFRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJlNjcm9sbENvbnRyb2xsZXI6OmRl
dGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQpCisjZW5kaWYKIHsKIH0KIApAQCAtMTIxLDEyICsxMjQs
MTcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgbV9vdmVyZmxvd1Njcm9sbERlbHRh
ID0gRmxvYXRTaXplKCk7CiAKICAgICAgICAgc3RvcFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKLQor
I2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAgc3RvcERldGVjdFNjcm9sbGVu
ZFRpbWVyKCk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgaWYg
KHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVuZGVkKSB7CiAg
ICAgICAgIHNuYXBSdWJiZXJCYW5kKCk7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
ICAgICAgICBzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCkBAIC01MjksMTIgKzUzNywxOCBAQCBib29sIFNjcm9sbENvbnRy
b2xsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmCiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpVc2VyU2Nyb2xsQmVnaW46CiAgICAg
Y2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpVc2VyU2Nyb2xsaW5nOgogICAgICAgICBzdG9wU2Nyb2xs
U25hcFRpbWVyKCk7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBzdG9w
RGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsKKyNlbmRpZgogICAgICAgICBtX3Njcm9sbFNuYXBTdGF0
ZS0+dHJhbnNpdGlvblRvVXNlckludGVyYWN0aW9uU3RhdGUoKTsKICAgICAgICAgbV9kcmFnRW5k
ZWRTY3JvbGxpbmdWZWxvY2l0eSA9IC13aGVlbEV2ZW50LnNjcm9sbGluZ1ZlbG9jaXR5KCk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2hlZWxFdmVudFN0YXR1czo6VXNlclNjcm9sbEVuZDoK
ICAgICAgICAgbV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5zaXRpb25Ub1NuYXBBbmltYXRpb25TdGF0
ZShtX2NsaWVudC5zY3JvbGxFeHRlbnQoKSwgbV9jbGllbnQudmlld3BvcnRTaXplKCksIG1fY2xp
ZW50LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVudC5zY3JvbGxPZmZzZXQoKSk7CiAgICAgICAg
IHN0YXJ0U2Nyb2xsU25hcFRpbWVyKCk7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
ICAgICAgICBzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBXaGVlbEV2ZW50U3RhdHVzOjpJbmVydGlhbFNjcm9sbEJlZ2luOgogICAg
ICAgICBtX3Njcm9sbFNuYXBTdGF0ZS0+dHJhbnNpdGlvblRvR2xpZGVBbmltYXRpb25TdGF0ZSht
X2NsaWVudC5zY3JvbGxFeHRlbnQoKSwgbV9jbGllbnQudmlld3BvcnRTaXplKCksIG1fY2xpZW50
LnBhZ2VTY2FsZUZhY3RvcigpLCBtX2NsaWVudC5zY3JvbGxPZmZzZXQoKSwgbV9kcmFnRW5kZWRT
Y3JvbGxpbmdWZWxvY2l0eSwgRmxvYXRTaXplKC13aGVlbEV2ZW50LmRlbHRhWCgpLCAtd2hlZWxF
dmVudC5kZWx0YVkoKSkpOwpAQCAtNjc5LDYgKzY5Myw0MiBAQCB2b2lkIFNjcm9sbENvbnRyb2xs
ZXI6OnNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzRm9yT2Zmc2V0KGludCB4LCBpbnQgeSkKIH0K
ICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBTY3JvbGxDb250
cm9sbGVyOjpzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCkKK3sKKyAgICBpZiAobV9kZXRlY3RT
Y3JvbGxlbmRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RldGVj
dFNjcm9sbGVuZFRpbWVyLnN0YXJ0UmVwZWF0aW5nKDFfcyAvIDYwLik7Cit9CisKK3ZvaWQgU2Ny
b2xsQ29udHJvbGxlcjo6c3RvcERldGVjdFNjcm9sbGVuZFRpbWVyKCkKK3sKKyAgICBpZiAoIW1f
ZGV0ZWN0U2Nyb2xsZW5kVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9jbGllbnQubm90aWZ5U2Nyb2xsRGlkRW5kKCk7CisgICAgbV9kZXRlY3RTY3JvbGxlbmRUaW1l
ci5zdG9wKCk7Cit9CisKK3ZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6ZGV0ZWN0U2Nyb2xsZW5kVGlt
ZXJGaXJlZCgpCit7CisgICAgaWYgKGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSkKKyAgICAgICAg
cmV0dXJuOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGlmIChtX21vbWVudHVtU2Nyb2xsSW5Q
cm9ncmVzcykKKyAgICAgICAgcmV0dXJuOworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisg
ICAgaWYgKG1fc2Nyb2xsU25hcFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKyNl
bmRpZgorI2VuZGlmCisKKyAgICBzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JB
TkRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5oCmluZGV4IDg3OTVjZjgxNWEuLjIyYTBkYzI2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCkBAIC0xNTQsNiArMTU0LDEwIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBpc0FscmVhZHlQaW5uZWRJbkRpcmVjdGlvbk9mR2VzdHVyZShjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxFdmVudEF4aXMpIGNvbnN0OwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpICYmIChFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQ
KSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpKQorICAgIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5k
KCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIGJvb2wgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VM
b2FkOwogICAgIGJvb2wgbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGU7CiAgICAgSW50UmVjdCBt
X3Zpc2libGVTY3JvbGxlclRodW1iUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBhNDE1MjU0MjBjLi5lMTQ5MWE0YzI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
CkBAIC03NjEsMTEgKzc2MSwxNiBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwoU2Ny
b2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaQogewogICAgIG1f
aGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IHRydWU7CiAKLSAgICBpZiAoIXNjcm9sbEFuaW1h
dGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSB8fCAhbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxBbmltYXRv
ckVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50
YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKTsKLQotICAgIGlmIChncmFudWxh
cml0eSA9PSBTY3JvbGxCeVBpeGVsKQotICAgICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6OnNj
cm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxpZXIpOworICAgIGlm
ICghc2Nyb2xsQW5pbWF0aW9uRW5hYmxlZEZvclN5c3RlbSgpIHx8ICFtX3Njcm9sbGFibGVBcmVh
LnNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIHx8IGdyYW51bGFyaXR5ID09IFNjcm9sbEJ5UGl4ZWwp
IHsKKyAgICAgICAgaWYgKFNjcm9sbEFuaW1hdG9yOjpzY3JvbGwob3JpZW50YXRpb24sIGdyYW51
bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKSkgeworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5U
UykKKyAgICAgICAgICAgIC8vIFNlbmQgc3JvbGxlbmQgZXZlbnQgaWYgdGhlIHNjcm9sbCBhcHBs
aWVkIGltbWVkaWF0ZWx5LgorICAgICAgICAgICAgbm90aWZ5U2Nyb2xsRGlkRW5kKCk7CisjZW5k
aWYKKyAgICAgICAgICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBGbG9hdFBvaW50IGN1cnJlbnRQb3NpdGlv
biA9IHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpOwogICAgIEZsb2F0U2l6ZSBkZWx0YTsKQEAgLTc3
NSw4ICs3ODAsMTIgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcmkKICAgICAgICAgZGVsdGEuc2V0
SGVpZ2h0KHN0ZXAgKiBtdWx0aXBsaWVyKTsKIAogICAgIEZsb2F0UG9pbnQgbmV3UG9zaXRpb24g
PSBGbG9hdFBvaW50KGN1cnJlbnRQb3NpdGlvbiArIGRlbHRhKS5jb25zdHJhaW5lZEJldHdlZW4o
bV9zY3JvbGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKSwgbV9zY3JvbGxhYmxlQXJl
YS5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7Ci0gICAgaWYgKGN1cnJlbnRQb3NpdGlvbiA9PSBu
ZXdQb3NpdGlvbikKKyAgICBpZiAoY3VycmVudFBvc2l0aW9uID09IG5ld1Bvc2l0aW9uKSB7Cisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBub3RpZnlTY3JvbGxEaWRFbmQo
KTsKKyNlbmRpZgogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgaWYgKFttX3Nj
cm9sbEFuaW1hdGlvbkhlbHBlciBfaXNBbmltYXRpbmddKSB7CiAgICAgICAgIE5TUG9pbnQgdGFy
Z2V0T3JpZ2luID0gW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIHRhcmdldE9yaWdpbl07CkBAIC03
ODcsNiArNzk2LDkgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcmkKICAgICB9CiAKICAgICBMT0df
V0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGwgIiA8PCAiIGZyb20gIiA8PCBjdXJyZW50UG9zaXRpb24gPDwgIiB0byAiIDw8IG5ld1Bvc2l0
aW9uKTsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgU2Nyb2xsQW5pbWF0b3I6
OnNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKG5ld1Bvc2l0aW9uKTsKKyNlbmRpZgogICAgIFtt
X3Njcm9sbEFuaW1hdGlvbkhlbHBlciBzY3JvbGxUb1BvaW50Om5ld1Bvc2l0aW9uXTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTEzNjksNiArMTM4MSwxMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9y
TWFjOjppbW1lZGlhdGVTY3JvbGxCeShjb25zdCBGbG9hdFNpemUmIGRlbHRhKQogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpICYmIChFTkFCTEUoQ1NTX1NDUk9MTF9T
TkFQKSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpKQordm9pZCBTY3JvbGxBbmltYXRvck1hYzo6
bm90aWZ5U2Nyb2xsRGlkRW5kKCkKK3sKKyAgICBtX3Njcm9sbGFibGVBcmVhLmZvcmNlU2Nyb2xs
ZW5kKCk7Cit9CisjZW5kaWYKKwogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRlU2Nyb2xs
ZXJTdHlsZSgpCiB7CiAgICAgaWYgKFttX3Njcm9sbGVySW1wUGFpciBvdmVybGF5U2Nyb2xsZXJT
dGF0ZUlzTG9ja2VkXSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRl
eCA0MGJhMWFlMjE3Li5hYmIyYmYwZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcApAQCAtNjAyLDcgKzYwMiw3IEBAIHZvaWQgUmVuZGVyQm94OjpzZXRTY3JvbGxQb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2NyCiAgICAg
aWYgKCFoYXNPdmVyZmxvd0NsaXAoKSB8fCAhbGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAg
IHNldHVwV2hlZWxFdmVudE1vbml0b3IoKmxheWVyKCkpOwotICAgIGxheWVyKCktPnNjcm9sbFRv
UG9zaXRpb24ocG9zaXRpb24sIHNjcm9sbFR5cGUsIGNsYW1waW5nLCBhbmltYXRlZCk7CisgICAg
bGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRpb24sIHNjcm9sbFR5cGUsIGNsYW1waW5n
LCBhbmltYXRlZCk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxJ
bnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29u
c3QKQEAgLTk1Nyw2ICs5NTcsMTYgQEAgUmVuZGVyQm94KiBSZW5kZXJCb3g6OmZpbmRBdXRvc2Ny
b2xsYWJsZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHJldHVybiBpczxSZW5kZXJCb3g+
KHJlbmRlcmVyKSA/IGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpIDogbnVsbHB0cjsKIH0K
IAordm9pZCBSZW5kZXJCb3g6OnN0b3BBdXRvc2Nyb2xsKCkKK3sKKyNpZiBFTkFCTEUoT1ZFUlND
Uk9MTF9FVkVOVFMpCisgICAgaWYgKGlzUmVuZGVyVmlldygpICYmIGZyYW1lKCkudmlldygpKQor
ICAgICAgICBmcmFtZSgpLnZpZXcoKS0+Zm9yY2VTY3JvbGxlbmQoKTsKKyAgICBlbHNlIGlmIChs
YXllcigpKQorICAgICAgICBsYXllcigpLT5mb3JjZVNjcm9sbGVuZCgpOworI2VuZGlmCit9CisK
IHZvaWQgUmVuZGVyQm94OjpwYW5TY3JvbGwoY29uc3QgSW50UG9pbnQmIHNvdXJjZSkKIHsKICAg
ICBpZiAobGF5ZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBjNjZl
YTVlNzczLi4xOTQ0Yjc2OWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBA
IC00NzEsNyArNDcxLDcgQEAgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5BdXRvc2Nyb2xsKCkgY29u
c3Q7CiAgICAgSW50U2l6ZSBjYWxjdWxhdGVBdXRvc2Nyb2xsRGlyZWN0aW9uKGNvbnN0IEludFBv
aW50JiB3aW5kb3dQb2ludCkgY29uc3Q7CiAgICAgc3RhdGljIFJlbmRlckJveCogZmluZEF1dG9z
Y3JvbGxhYmxlKFJlbmRlck9iamVjdCopOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQXV0b3Njcm9s
bCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wQXV0b3Njcm9sbCgpOwogICAgIHZpcnR1YWwg
dm9pZCBwYW5TY3JvbGwoY29uc3QgSW50UG9pbnQmKTsKIAogICAgIGJvb2wgaGFzVmVydGljYWxT
Y3JvbGxiYXJXaXRoQXV0b0JlaGF2aW9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAppbmRleCBmYmYzNjA5YzAwLi40ZTcyOTYyZmI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI2MDMsMjEgKzI2MDMsMzAgQEAg
dm9pZCBSZW5kZXJMYXllcjo6YXBwbHlQb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb25JZk5lZWRlZCgp
CiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwgU2Nyb2xsVHlwZSBz
Y3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZywgYm9vbCBhbmltYXRlZCkKIHsKICAg
ICBTY3JvbGxQb3NpdGlvbiBwb3NpdGlvbih4LCBtX3Njcm9sbFBvc2l0aW9uLnkoKSk7Ci0gICAg
c2Nyb2xsVG9Qb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcsIGFuaW1hdGVk
KTsKKyAgICBzZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcs
IGFuaW1hdGVkKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsVG9ZUG9zaXRpb24oaW50
IHksIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIGJvb2wg
YW5pbWF0ZWQpCiB7CiAgICAgU2Nyb2xsUG9zaXRpb24gcG9zaXRpb24obV9zY3JvbGxQb3NpdGlv
bi54KCksIHkpOwotICAgIHNjcm9sbFRvUG9zaXRpb24ocG9zaXRpb24sIHNjcm9sbFR5cGUsIGNs
YW1waW5nLCBhbmltYXRlZCk7CisgICAgc2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRpb24sIHNjcm9s
bFR5cGUsIGNsYW1waW5nLCBhbmltYXRlZCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9s
bFRvUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBTY3JvbGxUeXBlIHNj
cm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29sIGFuaW1hdGVkKQordm9pZCBS
ZW5kZXJMYXllcjo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0
aW9uLCBTY3JvbGxUeXBlIHNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBib29s
IGFuaW1hdGVkLCBib29sIHNhdmVTY3JvbGxlbmRQb3NpdGlvbikKIHsKKyAgICBhdXRvIG9mZnNl
dCA9IHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihwb3NpdGlvbik7CisgICAgU2Nyb2xsT2Zmc2V0
IG5ld1Njcm9sbE9mZnNldCA9IGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkID8g
Y2xhbXBTY3JvbGxPZmZzZXQob2Zmc2V0KSA6IG9mZnNldDsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9M
TF9FVkVOVFMpCisgICAgaWYgKHNhdmVTY3JvbGxlbmRQb3NpdGlvbikKKyAgICAgICAgc2F2ZVNj
cm9sbGVuZEV2ZW50UG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KG5ld1Njcm9sbE9m
ZnNldCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2F2ZVNjcm9sbGVuZFBvc2l0aW9uKTsK
KyNlbmRpZgorCiAgICAgaWYgKGFuaW1hdGVkKQotICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhB
bmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwg
Y2xhbXBpbmcpOworICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Nyb2xs
T2Zmc2V0LCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CiAgICAgZWxzZQotICAgICAgICBzY3JvbGxU
b09mZnNldChzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBj
bGFtcGluZyk7CisgICAgICAgIHNjcm9sbFRvT2Zmc2V0KG5ld1Njcm9sbE9mZnNldCwgc2Nyb2xs
VHlwZSwgY2xhbXBpbmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Ny
b2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjY0
MCwxMyArMjY0OSwxOCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBT
Y3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBzYwogICAgICAgICBzY3JvbGxB
bmltYXRvcigpLmNhbmNlbEFuaW1hdGlvbnMoKTsKIAogICAgIFNjcm9sbE9mZnNldCBjbGFtcGVk
U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFt
cFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQpIDogc2Nyb2xsT2Zmc2V0OwotICAgIGlmIChjbGFt
cGVkU2Nyb2xsT2Zmc2V0ID09IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgIFNjcm9sbFBvc2l0
aW9uIGNsYW1wZWRTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFt
cGVkU2Nyb2xsT2Zmc2V0KTsKKyAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5z
Y3JvbGxPZmZzZXQoKSkgeworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAg
Y2hlY2tTY3JvbGxlbmRFdmVudFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CisjZW5k
aWYKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBl
ID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxU
eXBlKTsKIAotICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNjcm9sbFBvc2l0
aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcp
KQorICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNsYW1wZWRTY3JvbGxQb3Np
dGlvbiwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpKQogICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhv
dXRBbmltYXRpb24oY2xhbXBlZFNjcm9sbE9mZnNldCwgY2xhbXBpbmcpOwogICAgIHNldFNjcm9s
bEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAK
QEAgLTI2NjEsNiArMjY3NSwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNjcm9sbAogICAgIFNjcm9s
bE9mZnNldCBuZXdTY3JvbGxPZmZzZXQgPSBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xh
bXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KG9mZnNldCkgOiBvZmZzZXQ7CiAgICAgaWYgKGN1cnJl
bnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5h
dGl2ZUFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5jYW5jZWxBbmltYXRpb25z
KCk7CisKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgaWYgKG5ld1Njcm9sbE9m
ZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAgICAgICAgY2hlY2tTY3JvbGxlbmRFdmVu
dFBvc2l0aW9uKG5ld1Njcm9sbE9mZnNldCk7CisjZW5kaWYKKwogICAgIGlmIChuZXdTY3JvbGxP
ZmZzZXQgIT0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCkpCiAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Nyb2xsT2Zmc2V0KTsKIApAQCAtMjc3MCw2
ICsyNzkwLDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0
aW9uJiBwb3NpdGlvbikKICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IHJlbmRlcmVyKCkuZWxl
bWVudCgpKQogICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZFBlbmRpbmdTY3JvbGxFdmVu
dFRhcmdldCgqZWxlbWVudCk7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAg
Y2hlY2tTY3JvbGxlbmRFdmVudFBvc2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24pOworI2VuZGlmCisK
ICAgICBpZiAoc2Nyb2xsc092ZXJmbG93KCkpCiAgICAgICAgIHZpZXcuZnJhbWVWaWV3KCkuZGlk
Q2hhbmdlU2Nyb2xsT2Zmc2V0KCk7CiAKQEAgLTI4MTUsMTIgKzI4MzksMTMgQEAgYm9vbCBSZW5k
ZXJMYXllcjo6YWxsb3dzQ3VycmVudFNjcm9sbCgpIGNvbnN0CiAgICAgcmV0dXJuIGJveC0+aGFz
SG9yaXpvbnRhbE92ZXJmbG93KCkgfHwgYm94LT5oYXNWZXJ0aWNhbE92ZXJmbG93KCk7CiB9CiAK
LXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYg
YWJzb2x1dGVSZWN0LCBib29sIGluc2lkZUZpeGVkLCBjb25zdCBTY3JvbGxSZWN0VG9WaXNpYmxl
T3B0aW9ucyYgb3B0aW9ucywgQXV0b3Njcm9sbFN0YXR1cyBhdXRvc2Nyb2xsU3RhdHVzKQordm9p
ZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNv
bHV0ZVJlY3QsIGJvb2wgaW5zaWRlRml4ZWQsIGNvbnN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRp
b25zJiBvcHRpb25zKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8
PCAiTGF5ZXIgIiA8PCB0aGlzIDw8ICIgc2Nyb2xsUmVjdFRvVmlzaWJsZSAiIDw8IGFic29sdXRl
UmVjdCk7CiAKICAgICBSZW5kZXJMYXllciogcGFyZW50TGF5ZXIgPSBudWxscHRyOwogICAgIExh
eW91dFJlY3QgbmV3UmVjdCA9IGFic29sdXRlUmVjdDsKKyAgICBib29sIGF1dG9zY3JvbGxOb3RJ
blByb2dyZXNzID0gIXJlbmRlcmVyKCkuZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5hdXRvc2Nyb2xs
SW5Qcm9ncmVzcygpOwogCiAgICAgLy8gV2UgbWF5IGVuZCB1cCBwcm9wYWdhdGluZyBhIHNjcm9s
bCBldmVudC4gSXQgaXMgaW1wb3J0YW50IHRoYXQgd2Ugc3VzcGVuZCBldmVudHMgdW50aWwgCiAg
ICAgLy8gdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24gc2luY2UgdGhleSBjb3VsZCBkZWxldGUgdGhl
IGxheWVyIG9yIHRoZSBsYXllcidzIHJlbmRlcmVyKCkuCkBAIC0yODQ2LDggKzI4NzEsOCBAQCB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFi
c29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9s
bE9mZnNldCA9IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCgpICsgdG9JbnRTaXplKHJv
dW5kZWRJbnRSZWN0KHJldmVhbFJlY3QpLmxvY2F0aW9uKCkpKTsKICAgICAgICAgaWYgKGNsYW1w
ZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkgfHwgY3VycmVudFNjcm9sbEJlaGF2aW9y
U3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKSB7CiAgICAg
ICAgICAgICBTY3JvbGxPZmZzZXQgb2xkU2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7Ci0g
ICAgICAgICAgICBib29sIGFuaW1hdGVkID0gYXV0b3Njcm9sbFN0YXR1cyA9PSBBdXRvc2Nyb2xs
U3RhdHVzOjpOb3RJblByb2dyZXNzICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2
aW9yLCBib3gtPmVsZW1lbnQoKSk7Ci0gICAgICAgICAgICBzY3JvbGxUb1Bvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOworICAgICAgICAg
ICAgYm9vbCBhbmltYXRlZCA9IGF1dG9zY3JvbGxOb3RJblByb2dyZXNzICYmIHVzZVNtb290aFNj
cm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCBib3gtPmVsZW1lbnQoKSk7CisgICAgICAgICAgICBz
ZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbkZyb21PZmZzZXQoY2xhbXBlZFNjcm9sbE9m
ZnNldCksIFNjcm9sbFR5cGU6OlByb2dyYW1tYXRpYywgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQs
IGFuaW1hdGVkLCBhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyk7CiAgICAgICAgICAgICBJbnRTaXpl
IHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFtcGVkU2Nyb2xsT2Zmc2V0IC0gb2xkU2Nyb2xs
T2Zmc2V0OwogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0Lm1vdmUoLXNjcm9sbE9mZnNldERp
ZmZlcmVuY2UpOwogICAgICAgICAgICAgbmV3UmVjdCA9IExheW91dFJlY3QoYm94LT5sb2NhbFRv
QWJzb2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobG9jYWxFeHBvc2VSZWN0KSksIFVzZVRy
YW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwpAQCAtMjg3Myw4ICsyODk4LDggQEAgdm9pZCBSZW5k
ZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJl
Y3QsIGJvb2wgaW5zaWQKICAgICAgICAgICAgICAgICBzY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBv
c2l0aW9uLmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgpLCBJbnRQb2ludChmcmFtZVZpZXcu
Y29udGVudHNTaXplKCkpKTsKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHVz
ZSBjb250ZW50RG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPwogICAgICAgICAgICAgICAg
IC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5Ci0g
ICAgICAgICAgICAgICAgYm9vbCBhbmltYXRlZCA9IGF1dG9zY3JvbGxTdGF0dXMgPT0gQXV0b3Nj
cm9sbFN0YXR1czo6Tm90SW5Qcm9ncmVzcyAmJiBvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVu
dCgpICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCBvd25lckVsZW1lbnQt
PmNvbnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSk7Ci0gICAgICAgICAgICAgICAg
ZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxDbGFtcGlu
Zzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOworICAgICAgICAgICAgICAgIGJvb2wgYW5pbWF0ZWQgPSBh
dXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyAmJiBvd25lckVsZW1lbnQtPmNvbnRlbnREb2N1bWVudCgp
ICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJlaGF2aW9yLCBvd25lckVsZW1lbnQtPmNv
bnRlbnREb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgZnJh
bWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uLCBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCwgYW5pbWF0ZWQsIGF1dG9zY3JvbGxOb3RJblByb2dyZXNzKTsKIAogICAgICAgICAg
ICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgPT0gU2hv
dWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmlldy5zYWZlVG9Qcm9w
YWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhcmVudExheWVy
ID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOwpAQCAtMjkxNSw4
ICsyOTQwLDggQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBM
YXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgICAgICAgICBTY3Jv
bGxPZmZzZXQgY2xhbXBlZFNjcm9sbFBvc2l0aW9uID0gcm91bmRlZEludFBvaW50KHJldmVhbFJl
Y3QubG9jYXRpb24oKSkuY29uc3RyYWluZWRCZXR3ZWVuKG1pblNjcm9sbFBvc2l0aW9uLCBtYXhT
Y3JvbGxQb3NpdGlvbik7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSB1c2Ug
ZG9jdW1lbnQoKS0+c2Nyb2xsaW5nRWxlbWVudCgpPwogICAgICAgICAgICAgICAgIC8vIFNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MDU5Ci0gICAgICAgICAg
ICAgICAgYm9vbCBhbmltYXRlZCA9IGF1dG9zY3JvbGxTdGF0dXMgPT0gQXV0b3Njcm9sbFN0YXR1
czo6Tm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwg
cmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsKLSAgICAgICAgICAgICAg
ICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbFBvc2l0aW9uLCBTY3Jv
bGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOworICAgICAgICAgICAgICAgIGJvb2wgYW5p
bWF0ZWQgPSBhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0
aW9ucy5iZWhhdmlvciwgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKTsK
KyAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9s
bFBvc2l0aW9uLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQsIGF1dG9zY3JvbGxO
b3RJblByb2dyZXNzKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVGhpcyBpcyB0
aGUgb3V0ZXJtb3N0IHZpZXcgb2YgYSB3ZWIgcGFnZSwgc28gYWZ0ZXIgc2Nyb2xsaW5nIHRoaXMg
dmlldyB3ZQpAQCAtMzA1NSw3ICszMDgwLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0
UmVjdFRvRXhwb3NlKGNvbnN0IExheW91dFJlY3QmIHZpc2libGVSZWN0LCBjb25zdCBMYXkKIHZv
aWQgUmVuZGVyTGF5ZXI6OmF1dG9zY3JvbGwoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uSW5XaW5k
b3cpCiB7CiAgICAgSW50UG9pbnQgY3VycmVudERvY3VtZW50UG9zaXRpb24gPSByZW5kZXJlcigp
LnZpZXcoKS5mcmFtZVZpZXcoKS53aW5kb3dUb0NvbnRlbnRzKHBvc2l0aW9uSW5XaW5kb3cpOwot
ICAgIHNjcm9sbFJlY3RUb1Zpc2libGUoTGF5b3V0UmVjdChjdXJyZW50RG9jdW1lbnRQb3NpdGlv
biwgTGF5b3V0U2l6ZSgxLCAxKSksIGZhbHNlLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVh
bCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6
OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Olll
cyB9LCBBdXRvc2Nyb2xsU3RhdHVzOjpJblByb2dyZXNzKTsKKyAgICBzY3JvbGxSZWN0VG9WaXNp
YmxlKExheW91dFJlY3QoY3VycmVudERvY3VtZW50UG9zaXRpb24sIExheW91dFNpemUoMSwgMSkp
LCBmYWxzZSwgeyBTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6
YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVk
LCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfSk7CiB9CiAKIGJvb2wgUmVu
ZGVyTGF5ZXI6OmNhblJlc2l6ZSgpIGNvbnN0CkBAIC03MDEwLDYgKzcwMzUsMzYgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6aW52YWxpZGF0ZUV2ZW50UmVnaW9uKCkKICNlbmRpZgogfQogCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBSZW5kZXJMYXllcjo6c2F2ZVNjcm9sbGVuZEV2
ZW50UG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICgh
cmVuZGVyZXIoKS5zZXR0aW5ncygpLm92ZXJzY3JvbGxFdmVudHNFbmFibGVkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fZmlyZVNjcm9sbGVuZEV2ZW50QXRQb3NpdGlvbiA9IHBvc2l0aW9u
OworfQorCit2b2lkIFJlbmRlckxheWVyOjpjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24oY29u
c3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uKQoreworICAgIGlmICghbV9maXJlU2Nyb2xsZW5k
RXZlbnRBdFBvc2l0aW9uIHx8IG1fZmlyZVNjcm9sbGVuZEV2ZW50QXRQb3NpdGlvbi52YWx1ZSgp
ICE9IHBvc2l0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoRWxlbWVudCogZWxlbWVu
dCA9IHJlbmRlcmVyKCkuZWxlbWVudCgpKQorICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFk
ZFBlbmRpbmdTY3JvbGxlbmRFdmVudFRhcmdldCgqZWxlbWVudCk7CisKKyAgICBtX2ZpcmVTY3Jv
bGxlbmRFdmVudEF0UG9zaXRpb24gPSBXVEY6Om51bGxvcHQ7Cit9CisKK3ZvaWQgUmVuZGVyTGF5
ZXI6OmZvcmNlU2Nyb2xsZW5kKCkKK3sKKyAgICBpZiAoIXJlbmRlcmVyKCkuc2V0dGluZ3MoKS5v
dmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoRWxl
bWVudCogZWxlbWVudCA9IHJlbmRlcmVyKCkuZWxlbWVudCgpKQorICAgICAgICBlbGVtZW50LT5k
b2N1bWVudCgpLmFkZFBlbmRpbmdTY3JvbGxlbmRFdmVudFRhcmdldCgqZWxlbWVudCk7Cit9Cisj
ZW5kaWYKKwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBDbGlw
UmVjdHNUeXBlIGNsaXBSZWN0c1R5cGUpCiB7CiAgICAgc3dpdGNoIChjbGlwUmVjdHNUeXBlKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDk2ZDM5ZWY0YmYuLjdj
ZGU4NmVkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC00NTEs
NyArNDUxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzY3JvbGxUb1hQb3NpdGlvbihpbnQgeCwg
U2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYm9v
bCBhbmltYXRlZCA9IGZhbHNlKTsKICAgICB2b2lkIHNjcm9sbFRvWVBvc2l0aW9uKGludCB5LCBT
Y3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkLCBib29s
IGFuaW1hdGVkID0gZmFsc2UpOwotICAgIHZvaWQgc2Nyb2xsVG9Qb3NpdGlvbihjb25zdCBTY3Jv
bGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6
OkNsYW1wZWQsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSk7CisgICAgdm9pZCBzZXRTY3JvbGxQb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYsIFNjcm9sbFR5cGUsIFNjcm9sbENsYW1waW5nID0g
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGJvb2wgYW5pbWF0ZWQgPSBmYWxzZSwgYm9vbCBzYXZl
U2Nyb2xsZW5kUG9zaXRpb24gPSB0cnVlKTsKIAogICAgIC8vIFRoZXNlIGFyZSBvbmx5IHVzZWQg
YnkgbWFycXVlZS4KICAgICB2b2lkIHNjcm9sbFRvWE9mZnNldChpbnQgeCkgeyBzY3JvbGxUb09m
ZnNldChTY3JvbGxPZmZzZXQoeCwgc2Nyb2xsT2Zmc2V0KCkueSgpKSwgU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6VW5jbGFtcGVkKTsgfQpAQCAtNDYyLDkgKzQ2Miw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYXZhaWxhYmxlQ29udGVudFNpemVDaGFuZ2VkKEF2YWls
YWJsZVNpemVDaGFuZ2VSZWFzb24pIG92ZXJyaWRlOwogCi0gICAgZW51bSBBdXRvc2Nyb2xsU3Rh
dHVzIHsgTm90SW5Qcm9ncmVzcywgSW5Qcm9ncmVzcyB9OwogICAgIC8vICJhYnNvbHV0ZVJlY3Qi
IGlzIGluIHNjYWxlZCBkb2N1bWVudCBjb29yZGluYXRlcy4KLSAgICB2b2lkIHNjcm9sbFJlY3RU
b1Zpc2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkZUZpeGVk
LCBjb25zdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyYsIEF1dG9zY3JvbGxTdGF0dXMgPSBB
dXRvc2Nyb2xsU3RhdHVzOjpOb3RJblByb2dyZXNzKTsKKyAgICB2b2lkIHNjcm9sbFJlY3RUb1Zp
c2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkZUZpeGVkLCBj
b25zdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyYpOwogCiAgICAgYm9vbCBzY3JvbGxzT3Zl
cmZsb3coKSBjb25zdDsKICAgICBib29sIGhhc1Njcm9sbGFibGVIb3Jpem9udGFsT3ZlcmZsb3co
KSBjb25zdDsKQEAgLTkyMyw2ICs5MjIsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbnZhbGlk
YXRlRXZlbnRSZWdpb24oKTsKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2
b2lkIHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgZmlu
YWw7CisgICAgdm9pZCBjaGVja1Njcm9sbGVuZEV2ZW50UG9zaXRpb24oY29uc3QgU2Nyb2xsUG9z
aXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIGZvcmNlU2Nyb2xsZW5kKCkgZmluYWw7CisjZW5kaWYK
KwogcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0TmV4dFNpYmxpbmcoUmVuZGVyTGF5ZXIqIG5leHQp
IHsgbV9uZXh0ID0gbmV4dDsgfQpAQCAtMTM1Myw2ICsxMzU4LDEwIEBAIHByaXZhdGU6CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyTGF5ZXJGaWx0ZXJzPiBtX2ZpbHRlcnM7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbmRlckxheWVyQmFja2luZz4gbV9iYWNraW5nOworCisjaWYgRU5BQkxF
KE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIE9wdGlvbmFsPFNjcm9sbFBvc2l0aW9uPiBtX2ZpcmVT
Y3JvbGxlbmRFdmVudEF0UG9zaXRpb247CisjZW5kaWYKICAgICAKICAgICBQYWludEZyZXF1ZW5j
eVRyYWNrZXIgbV9wYWludEZyZXF1ZW5jeVRyYWNrZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0MTdmNjkw
Y2NhLi43Nzg3MWVjZTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTAzLTA5ICBD
YXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3Igb3ZlcnNjcm9sbCBldmVudHMgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLD
qWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIEZyw6lkw6lyaWMgV2FuZydzIHBhdGNo
LgorCisgICAgICAgIEFkZCBFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFMuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMC0wMy0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBiaXQgbW9yZSBVSUhpdFRlc3Rpbmcg
bG9nZ2luZywgYW5kIG1ha2UgaXQgcG9zc2libGUgdG8gZHVtcCBFdmVudFJlZ2lvbnMgZnJvbSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCmluZGV4IGNmYmI3Mjk1MTMuLjEwNmI1YzRhMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAt
Mjk2LDYgKzI5Niw4IEBAIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTID0gOwogRU5BQkxFX09WRVJG
TE9XX1NDUk9MTElOR19UT1VDSCA9ICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSF8k
KFdLX0NPQ09BX1RPVUNIKSk7CiBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIX2NvY29h
dG91Y2ggPSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIOwogCitFTkFCTEVfT1ZFUlND
Uk9MTF9FVkVOVFMgPSBFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFM7CisKIEVOQUJMRV9QQVlNRU5U
X1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBFTkFCTEVfUElDVFVSRV9JTl9Q
SUNUVVJFX0FQSSA9ICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUElfJChXS19QTEFURk9S
TV9OQU1FKSk7CkBAIC00MTYsNCArNDE4LDQgQEAgRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7CiAKIEVOQUJMRV9YU0xUID0g
RU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1RSQU5TRk9STVMp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQUNDRVNTSUJJTElUWV9J
U09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNT
SU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkgJChFTkFCTEVfQVBQTEVfUEFZ
X1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklGRVNUKSAkKEVOQUJMRV9BVFRB
Q0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykgJChFTkFCTEVfQ0FDSEVfUEFS
VElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ09OVEVOVF9G
SUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9O
X0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19DT05JQ19HUkFE
SUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUEFJTlRJ
TkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5BQkxFX0NTU19TRUxFQ1RPUlNf
TEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChFTkFCTEVfQ1NTX1RZUEVEX09N
KSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ19MT09QKSAkKEVOQUJMRV9E
QVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAkKEVOQUJMRV9EQVRBTElTVF9F
TEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAk
KEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMikg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkp
ICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9HUFVfUFJP
Q0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFC
TEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChFTkFCTEVfSU5TUEVDVE9SX1RF
TEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVSKSAkKEVOQUJMRV9JT1NfR0VT
VFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMpICQoRU5BQkxFX0xBWU9VVF9G
T1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAk
KEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpICQoRU5BQkxFX0xFR0FDWV9F
TkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAkKEVOQUJMRV9NQUNfR0VTVFVS
RV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfQ0FQVFVSRSkgJChFTkFC
TEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJQV9TRVNTSU9OKSAkKEVOQUJM
RV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FRElB
X1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQp
ICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05B
VklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NQRUNVTEFUSVZFX1JF
VkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFMRV9XSElMRV9SRVZBTElEQVRF
KSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFTKSAkKEVO
QUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkg
JChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9Q
VUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVD
VE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFf
UVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VS
Q0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVO
U0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRS
T0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNF
KSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFC
TEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFC
TEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJT
RUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklB
VElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZV
TExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxF
X1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VD
SF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxF
X1dFQkdQVSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChF
TkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8p
ICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChF
TkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFOU0ZPUk1TKSAk
KEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lCSUxJVFlfSVNP
TEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lP
Tl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQUExFX1BBWV9T
RVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFCTEVfQVRUQUNI
TUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NBQ0hFX1BBUlRJ
VElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NPTlRFTlRfRklM
VEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9C
UkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09OSUNfR1JBRElF
TlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1BBSU5USU5H
X0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xF
VkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19UWVBFRF9PTSkg
JChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChFTkFCTEVfREFS
S19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFUQUxJU1RfRUxF
TUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChF
TkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xFVkVMXzIpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJKSAk
KEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfR1BVX1BST0NF
U1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Vf
SU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChF
TkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxF
X0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BFQ1RPUl9URUxF
TUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVfSU9TX0dFU1RV
UkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9MQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChF
TkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9MRUdBQ1lfRU5D
UllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFDX0dFU1RVUkVf
RVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUpICQoRU5BQkxF
X01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikgJChFTkFCTEVf
TUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRURJQV9T
VFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAk
KEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJ
R0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxBVElWRV9SRVZB
TElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVWQUxJREFURSkg
JChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUykgJChFTkFC
TEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUykg
JChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJM
RV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVP
VEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxFX1JFU0laRV9PQlNFUlZFUikg
JChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChFTkFCTEVfUlVCQkVSX0JBTkRJ
TkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFCTEVfU0VSVkVSX1BSRUNPTk5F
Q1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxFX1NFUlZJQ0VfV09SS0VSKSAk
KEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQo
RU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTEVQSE9O
RV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RP
VUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1VTRVJfTUVTU0FH
RV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAkKEVOQUJMRV9WSURFTykgJChF
TkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVO
QUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChFTkFCTEVfV0VCRFJJVkVSX01P
VVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9O
UykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCR0wp
ICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVOQUJMRV9XRUJYUikgJChFTkFC
TEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9B
VVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VCX1JUQykgJChFTkFCTEVfV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDNjOWFiMDMzYWIuLjY0NTlhZDEwZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTU2NCw2ICsxNTY0LDE0
IEBAIEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkOgogICBodW1hblJl
YWRhYmxlRGVzY3JpcHRpb246ICJNYXAgSFRNTCBhdHRyaWJ1dGVzIHdpZHRoL2hlaWdodCB0byB0
aGUgZGVmYXVsdCBhc3BlY3QgcmF0aW8gb2YgPGltZz4iCiAgIGNhdGVnb3J5OiBleHBlcmltZW50
YWwKIAorT3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgZGVmYXVsdFZh
bHVlOiBmYWxzZQorICBodW1hblJlYWRhYmxlTmFtZTogIk92ZXJzY3JvbGwgZXZlbnRzIgorICBo
dW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgdGhlIG9uc2Nyb2xsZW5kIGFuZCBzY3Jv
bGxlbmQgZXZlbnRzIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCisgIGNvbmRpdGlvbjogRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorCiAjIEZvciBpbnRlcm5hbCBmZWF0dXJlczoKICMgVGhl
IHR5cGUgc2hvdWxkIGJlIGJvb2xlYW4uCiAjIFlvdSBtdXN0IHByb3ZpZGUgYSBodW1hblJlYWRh
YmxlTmFtZSBhbmQgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uIGZvciBhbGwgZGVidWcgZmVhdHVy
ZXMuIFRoZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA0MDlmOTQ0ZTBhLi4wZTY2
Y2YxMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MjAtMDMtMDkgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAgICAgICBSZXZp
ZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLDqWTDqXJpYyBX
YW5nJ3MgcGF0Y2guCisKKyAgICAgICAgQWRkIG92ZXJzY3JvbGxFdmVudHNFbmFibGVkIFdlYlBy
ZWZlcmVuY2Ugc2V0dGluZy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
Lmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2Vi
UHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBvdmVy
c2Nyb2xsRXZlbnRzRW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRPdmVy
c2Nyb2xsRXZlbnRzRW5hYmxlZDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKwogMjAyMC0wMy0xNSAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBtb3N0IG9mIFRl
eHRJdGVyYXRvciBvZmYgb2YgbGl2ZSByYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcK
aW5kZXggY2ZiYjcyOTUxMy4uMTA2YjVjNGEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKQEAgLTI5Niw2ICsyOTYsOCBAQCBFTkFCTEVfT0ZGU0NSRUVOX0NBTlZBUyA9IDsKIEVOQUJM
RV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggPSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdf
VE9VQ0hfJChXS19DT0NPQV9UT1VDSCkpOwogRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VD
SF9jb2NvYXRvdWNoID0gRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSDsKIAorRU5BQkxF
X09WRVJTQ1JPTExfRVZFTlRTID0gRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTOworCiBFTkFCTEVf
UEFZTUVOVF9SRVFVRVNUID0gRU5BQkxFX1BBWU1FTlRfUkVRVUVTVDsKIAogRU5BQkxFX1BJQ1RV
UkVfSU5fUElDVFVSRV9BUEkgPSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RVUkVfQVBJXyQoV0tf
UExBVEZPUk1fTkFNRSkpOwpAQCAtNDE2LDQgKzQxOCw0IEBAIEVOQUJMRV9XSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQgPSBFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUOwogCiBFTkFCTEVf
WFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9UUkFO
U0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FDQ0VTU0lC
SUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJMRV9BUFBMRV9Q
QVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQoRU5BQkxFX0FQ
UExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVTVCkgJChFTkFC
TEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQoRU5BQkxFX0NB
Q0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NP
TlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTU19CT1hfREVD
T1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfQ09O
SUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NT
X1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJMRV9DU1NfU0VM
RUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5BQkxFX0NTU19U
WVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NfTE9PUCkgJChF
TkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChFTkFCTEVfREFU
QUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VOQ1JZUFRFRF9N
RURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9GSUxURVJTX0xF
VkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJFX0lOX1BJQ1RV
UkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVf
R1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9N
T05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUsp
ICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5BQkxFX0lOU1BF
Q1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikgJChFTkFCTEVf
SU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAkKEVOQUJMRV9M
QVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVG
SVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAkKEVOQUJMRV9M
RUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChFTkFCTEVfTUFD
X0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX0NBUFRVUkUp
ICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFfU0VTU0lPTikg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJMRV9NRVRFUl9F
TEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVO
QUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TUEVDVUxB
VElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVfV0hJTEVfUkVW
QUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NSRUVOX0NBTlZB
UykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9QQVlNRU5UX1JF
UVVFU1QpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BPSU5URVJfTE9DSykgJChF
TkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVNT1RF
X0lOU1BFQ1RPUikgJChFTkFCTEVfUkVTSVpFX09CU0VSVkVSKSAkKEVOQUJMRV9SRVNPTFVUSU9O
X01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X1JFU09VUkNFX1VTQUdFKSAkKEVOQUJMRV9SVUJCRVJfQkFORElORykgJChFTkFCTEVfU0FOREJP
WF9FWFRFTlNJT05TKSAkKEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCkgJChFTkFCTEVfU0VSVklD
RV9DT05UUk9MUykgJChFTkFCTEVfU0VSVklDRV9XT1JLRVIpICQoRU5BQkxFX1NIQVJFQUJMRV9S
RVNPVVJDRSkgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1RSRUFNU19BUEkp
ICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04p
ICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVE9VQ0hfRVZFTlRTKSAkKEVOQUJM
RV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKSAkKEVOQUJM
RV9WQVJJQVRJT05fRk9OVFMpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19QUkVTRU5U
QVRJT05fTU9ERSkgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJREVPX1VTRVNfRUxF
TUVOVF9GVUxMU0NSRUVOKSAkKEVOQUJMRV9XRUJEUklWRVJfTU9VU0VfSU5URVJBQ1RJT05TKSAk
KEVOQUJMRV9XRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJEUklW
RVJfVE9VQ0hfSU5URVJBQ1RJT05TKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCR0wyKSAk
KEVOQUJMRV9XRUJHUFUpICQoRU5BQkxFX1dFQlhSKSAkKEVOQUJMRV9XRUJfQVBJX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX0FVVEhOKSAkKEVOQUJMRV9XRUJf
Q1JZUFRPKSAkKEVOQUJMRV9XRUJfUlRDKSAkKEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJH
RVQpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfVFJBTlNG
T1JNUykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpICQoRU5BQkxFX0FQUExFX1BBWSkgJChFTkFCTEVfQVBQTEVfUEFZ
X1NFU1NJT05fVjMpICQoRU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y0KSAkKEVOQUJMRV9BUFBM
RV9QQVlfU0VTU0lPTl9WOSkgJChFTkFCTEVfQVBQTElDQVRJT05fTUFOSUZFU1QpICQoRU5BQkxF
X0FUVEFDSE1FTlRfRUxFTUVOVCkgJChFTkFCTEVfQVZGX0NBUFRJT05TKSAkKEVOQUJMRV9DQUNI
RV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DT05U
RU5UX0ZJTFRFUklORykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09S
QVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX0NPTklD
X0dSQURJRU5UUykgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19Q
QUlOVElOR19BUEkpICQoRU5BQkxFX0NTU19TQ1JPTExfU05BUCkgJChFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQpICQoRU5BQkxFX0NTU19UUkFJTElOR19XT1JEKSAkKEVOQUJMRV9DU1NfVFlQ
RURfT00pICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DX0xPT1ApICQoRU5B
QkxFX0RBUktfTU9ERV9DU1MpICQoRU5BQkxFX0RBVEFDVUVfVkFMVUUpICQoRU5BQkxFX0RBVEFM
SVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04pICQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTikgJChFTkFCTEVfRFJBR19TVVBQT1JUKSAkKEVOQUJMRV9FTkNSWVBURURfTUVE
SUEpICQoRU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFUykgJChFTkFCTEVfRklMVEVSU19MRVZF
TF8yKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfUElDVFVSRV9JTl9QSUNUVVJF
X0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0dQ
VV9QUk9DRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFX0lOX1dPUktFUlMpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9O
VEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAk
KEVOQUJMRV9JTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKSAkKEVOQUJMRV9JTlNQRUNU
T1JfVEVMRU1FVFJZKSAkKEVOQUJMRV9JTlRFUlNFQ1RJT05fT0JTRVJWRVIpICQoRU5BQkxFX0lP
U19HRVNUVVJFX0VWRU5UUykgJChFTkFCTEVfSU9TX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfTEFZ
T1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklY
RVMpICQoRU5BQkxFX0xFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFOQUdFUikgJChFTkFCTEVfTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfTEVUVEVSUFJFU1MpICQoRU5BQkxFX01BQ19H
RVNUVVJFX0VWRU5UUykgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9DQVBUVVJFKSAk
KEVOQUJMRV9NRURJQV9DT05UUk9MU19TQ1JJUFQpICQoRU5BQkxFX01FRElBX1NFU1NJT04pICQo
RU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVf
TUVESUFfU1RSRUFNKSAkKEVOQUJMRV9NRU1PUllfU0FNUExFUikgJChFTkFCTEVfTUVURVJfRUxF
TUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFC
TEVfTkFWSUdBVE9SX1NUQU5EQUxPTkUpICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJ
VkVfUkVWQUxJREFUSU9OKSAkKEVOQUJMRV9ORVRXT1JLX0NBQ0hFX1NUQUxFX1dISUxFX1JFVkFM
SURBVEUpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRlNDUkVFTl9DQU5WQVMp
ICQoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCkgJChFTkFCTEVfT1ZFUlNDUk9MTF9F
VkVOVFMpICQoRU5BQkxFX1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikg
JChFTkFCTEVfUE9JTlRFUl9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JT
RVJWRVIpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNF
X0xPQURfU1RBVElTVElDUykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJF
Ul9CQU5ESU5HKSAkKEVOQUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9Q
UkVDT05ORUNUKSAkKEVOQUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dP
UktFUikgJChFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhF
U0lTKSAkKEVOQUJMRV9TVFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9U
RUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVO
QUJMRV9UT1VDSF9FVkVOVFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VS
X01FU1NBR0VfSEFORExFUlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1ZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFD
SykgJChFTkFCTEVfVklERU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRS
SVZFUl9NT1VTRV9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRF
UkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCWFIp
ICQoRU5BQkxFX1dFQl9BUElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfQVVUSE4pICQoRU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5B
QkxFX1dJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAppbmRleCA3N2IzOTg5NTAyLi44NWYxMzU2NWU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKQEAgLTIxMCw2ICsyMTAsNyBAQAogI2RlZmluZSBXZWJLaXRDU1NTaGFkb3dQYXJ0c0VuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTU2hhZG93UGFydHNFbmFibGVkIgogI2RlZmluZSBX
ZWJLaXRMYXlvdXRGb3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRMYXlvdXRGb3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZCIKICNk
ZWZpbmUgV2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRXZWJTUUxFbmFi
bGVkIgorI2RlZmluZSBXZWJLaXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCIKIAogI2lmICFUQVJHRVRfT1NfSVBIT05F
CiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1c2UgY2FsbGVycyBzaG91bGQgYmUgdXNp
bmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJlY2F1c2UgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAwMjc5Mzk0MzA4Li5j
NDdhYTFjMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW0KQEAgLTcxNCw2ICs3MTQsOSBAQCBwdWJsaWM6CiAgICAgICAgIEBOTywg
V2ViS2l0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWRQcmVmZXJlbmNl
S2V5LAogICAgICAgICBATk8sIFdlYktpdFdlYlNRTEVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAg
ICAgICBAWUVTLCBXZWJLaXREZWJ1Z05lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrc1ByZWZl
cmVuY2VLZXksCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBATk8sIFdl
YktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVkUHJlZmVyZW5jZUtleSwKKyNlbmRpZgogICAgICAg
ICBuaWxdOwogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0zNjgwLDYgKzM2ODMsMTYg
QEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9z
ZXRCb29sVmFsdWU6d2ViU1FMRW5hYmxlZCBmb3JLZXk6V2ViS2l0V2ViU1FMRW5hYmxlZFByZWZl
cmVuY2VLZXldOwogfQogCistIChCT09MKW92ZXJzY3JvbGxFdmVudHNFbmFibGVkCit7CisgICAg
cmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxl
ZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJL
aXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiBAZW5kCiAKIEBp
bXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViSW50ZXJuYWwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApp
bmRleCBhODQ1NDlkNGFiLi43ZmY3MzE5ZDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTY4OCw2ICs2
ODgsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJ
bnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQUgogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
bGlua1ByZWxvYWRSZXNwb25zaXZlSW1hZ2VzRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQ7CiAKICNpZiBUQVJH
RVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBxdWlja0xvb2tEb2N1bWVu
dFNhdmluZ0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KaW5kZXggNGQ4OWQzNmIxOC4uODc5NDIxNGI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzAwNiw2ICszMDA2LDkgQEAgc3RhdGljIGJvb2wg
bmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVpcmsoKQogICAgIHNldHRpbmdzLnNldENTU09N
Vmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZlcmVuY2VzIENTU09NVmlld1Njcm9sbGluZ0FQ
SUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFi
bGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkXSk7CiAgICAg
c2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoW3By
ZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0XSk7Cisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxF
dmVudHNFbmFibGVkKFtwcmVmZXJlbmNlcyBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZF0pOworI2Vu
ZGlmCiAKICAgICBzd2l0Y2ggKFtwcmVmZXJlbmNlcyBzdG9yYWdlQmxvY2tpbmdQb2xpY3ldKSB7
CiAgICAgY2FzZSBXZWJBbGxvd0FsbFN0b3JhZ2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
aW5kZXggZjk4OTgwNjJlZi4uMGU5Yjg5ZjAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTAzLTA5ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbCBldmVudHMg
cGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA4ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAg
IEJhc2VkIG9uIEZyw6lkw6lyaWMgV2FuZydzIHBhdGNoLgorCisgICAgICAgIEFkZCBvdmVyc2Ny
b2xsRXZlbnRzRW5hYmxlZCBXZWJQcmVmZXJlbmNlIHNldHRpbmcuCisKKyAgICAgICAgKiBJbnRl
cmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsOgorICAgICAgICAqIFdlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAgKFdl
YlByZWZlcmVuY2VzOjpvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCk6CisgICAgICAgIChXZWJQcmVm
ZXJlbmNlczo6c2V0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByZWZl
cmVuY2VzLmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpub3Rp
ZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAyMDIwLTAzLTEyICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgYSBwcmVmbGlnaHQgZmFpbHMgaWYg
cmVzcG9uc2UgaGVhZGVycyBhcmUgaW52YWxpZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKaW5k
ZXggZGZmZDk0ZGQ4Ni4uNjVjZjNhZDk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCkBA
IC0yNjUsNCArMjY1LDcgQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlc1ByaXZhdGU4IDogSVdl
YlByZWZlcmVuY2VzUHJpdmF0ZTcKIHsKICAgICBIUkVTVUxUIGFsbG93VG9wTmF2aWdhdGlvblRv
RGF0YVVSTHMoW291dCwgcmV0dmFsXSBCT09MKiBlbmFibGVkKTsKICAgICBIUkVTVUxUIHNldEFs
bG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoW2luXSBCT09MIGVuYWJsZWQpOworICAgIEhSRVNV
TFQgb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKik7CisgICAgSFJF
U1VMVCBzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZChbaW5dIEJPT0wgZW5hYmxlZCk7CisKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKaW5kZXggMTdiY2Y5YmUxOC4uMDRhZWI2YzdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTIyNywzICsyMjcsNSBA
QAogI2RlZmluZSBXZWJLaXRBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5hYmxl
ZFByZWZlcmVuY2VLZXkgIldlYktpdEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRF
bmFibGVkIgogCiAjZGVmaW5lIFdlYktpdFdlYlNRTEVuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJL
aXRXZWJTUUxFbmFibGVkIgorCisjZGVmaW5lIFdlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVk
UHJlZmVyZW5jZUtleSAiV2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggZGQyOWU5MjM2Yy4uMTg0YjJj
OGI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAt
MzU0LDYgKzM1NCw4IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0
dGluZ3MoKQogCiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktp
dFdlYlNRTEVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZhbHNlKTsKIAorICAgIENG
RGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJLaXRPdmVyc2Nyb2xsRXZlbnRz
RW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOworCiAgICAgZGVmYXVsdFNl
dHRpbmdzID0gZGVmYXVsdHM7CiAjZW5kaWYKIH0KQEAgLTI0NzAsNiArMjQ3MiwyMCBAQCBIUkVT
VUxUIFdlYlByZWZlcmVuY2VzOjpzZXRXZWJTUUxFbmFibGVkKEJPT0wgZW5hYmxlZCkKICAgICBy
ZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6b3ZlcnNjcm9sbEV2ZW50
c0VuYWJsZWQoX091dF8gQk9PTCogZW5hYmxlZCkKK3sKKyAgICBpZiAoIWVuYWJsZWQpCisgICAg
ICAgIHJldHVybiBFX1BPSU5URVI7CisgICAgKmVuYWJsZWQgPSBib29sVmFsdWVGb3JLZXkoV2Vi
S2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWRQcmVmZXJlbmNlS2V5KTsKKyAgICByZXR1cm4gU19P
SzsKK30KKworSFJFU1VMVCBXZWJQcmVmZXJlbmNlczo6c2V0T3ZlcnNjcm9sbEV2ZW50c0VuYWJs
ZWQoQk9PTCBlbmFibGVkKQoreworICAgIHNldEJvb2xWYWx1ZShXZWJLaXRPdmVyc2Nyb2xsRXZl
bnRzRW5hYmxlZFByZWZlcmVuY2VLZXksIGVuYWJsZWQpOworICAgIHJldHVybiBTX09LOworfQor
CiBIUkVTVUxUIFdlYlByZWZlcmVuY2VzOjphbGxvd1RvcE5hdmlnYXRpb25Ub0RhdGFVUkxzKF9P
dXRfIEJPT0wqIGFsbG93QWNjZXNzKQogewogICAgIGlmICghYWxsb3dBY2Nlc3MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCBhMzFiYTAzYTgyLi43MDk4ZWUx
MTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKQEAgLTMwNyw2
ICszMDcsOCBAQCBwdWJsaWM6CiAgICAgLy8gSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTgKICAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRh
VVJMcyhfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHNldEFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoQk9PTCk7CisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIG92ZXJzY3JvbGxFdmVudHNFbmFibGVkKF9PdXRfIEJPT0wq
KTsKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0T3ZlcnNjcm9sbEV2
ZW50c0VuYWJsZWQoQk9PTCk7CiAKICAgICAvLyBXZWJQcmVmZXJlbmNlcwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGQ3MDUzZWMzMjAuLjFlODZjZTQ1YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01NjY4LDYgKzU2NjgsMTEgQEAgSFJFU1VMVCBX
ZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0QXNwZWN0UmF0aW9P
ZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJl
ZnNQcml2YXRlLT5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZB
SUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xs
RXZlbnRzRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCBiNTkxOTY1MTE5Li45MzY2NWExN2Y4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtl
L1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0xODEsNiArMTgxLDcgQEAgbWFjcm8oV0VCS0lUX09Q
VElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfT0ZGU0NSRUVOX0NB
TlZBUyAiVG9nZ2xlIE9mZnNjcmVlbkNhbnZhcyBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBX
RUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTICJUb2dnbGUgT3Jp
ZW50YXRpb24gRXZlbnRzIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggIlRvZ2dsZSBhY2NlbGVyYXRl
ZCBzY3JvbGxpbmcgc3VwcG9ydCIgUFJJVkFURSBPRkYpCisgICAgV0VCS0lUX09QVElPTl9ERUZJ
TkUoRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTICJUb2dnbGUgb3ZlcnNjcm9sbCBldmVudHMiIFBS
SVZBVEUgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1BBWU1FTlRfUkVRVUVT
VCAiVG9nZ2xlIFBheW1lbnQgUmVxdWVzdCBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJL
SVRfT1BUSU9OX0RFRklORShFTkFCTEVfUERGS0lUX1BMVUdJTiAiVG9nZ2xlIFBERktpdCBwbHVn
aW4gc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X1BJQ1RVUkVfSU5fUElDVFVSRV9BUEkgIlRvZ2dsZSBQaWN0dXJlLWluLVBpY3R1cmUgQVBJIHN1
cHBvcnQiIFBSSVZBVEUgT0ZGKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDQ2N2Q4MzdhOWYuLmE2NTE5ZTk3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0w
My0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgwMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiBGcsOpZMOpcmljIFdhbmcn
cyBwYXRjaC4KKworICAgICAgICBEZWFsIHdpdGggb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChUZXN0
T3B0aW9uczo6VGVzdE9wdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgor
ICAgICAgICAoZW5hYmxlRXhwZXJpbWVudGFsRmVhdHVyZXMpOgorICAgICAgICAoc2V0V2ViUHJl
ZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0Zl
YXR1cmVMaXN0LnBtOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMjAtMDMtMTYgIEp1c3RpbiBNaWNoYXVkICA8anVz
dGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBwZXJzb25hbCBlbWFpbCB0byBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29udHJpYnV0b3JzLmpzb24KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRleCAyOTA2MDZhMjU1Li5hMzEyMjE1YWQz
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCkBAIC0xNTYsNiArMTU2LDggQEAg
VGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNv
bnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAgICAgICAgICAgIGVuYWJsZUFzcGVjdFJhdGlvT2ZJ
bWdGcm9tV2lkdGhBbmRIZWlnaHQgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUp
OwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMi
KQogICAgICAgICAgICAgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyA9IHBhcnNlQm9vbGVh
blRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJp
bWVudGFsOk92ZXJzY3JvbGxFdmVudHNFbmFibGVkIikKKyAgICAgICAgICAgIGVuYWJsZU92ZXJz
Y3JvbGxFdmVudHMgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAg
ICBwYWlyU3RhcnQgPSBwYWlyRW5kICsgMTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuaAppbmRleCBhZTRiYTRhZDVkLi4wMWNmMzQ2MGEwIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmgKQEAgLTU4LDYgKzU4LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBi
b29sIGVuYWJsZUFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgZW5hYmxlV2ViU1FMIHsgdHJ1ZSB9OwogICAgIGJvb2wgYWxsb3dUb3BOYXZpZ2F0
aW9uVG9EYXRhVVJMcyB7IHRydWUgfTsKKyAgICBib29sIGVuYWJsZU92ZXJzY3JvbGxFdmVudHMg
eyBmYWxzZSB9OwogICAgIHN0ZDo6c3RyaW5nIGpzY09wdGlvbnM7CiAgICAgc3RkOjpzdHJpbmcg
YWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBiNmZlMmE1Nzk2Li5iYzhmMDJjMTlkIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC04ODYsNiArODg2LDcg
QEAgc3RhdGljIHZvaWQgZW5hYmxlRXhwZXJpbWVudGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5jZXMq
IHByZWZlcmVuY2VzKQogICAgIFtwcmVmZXJlbmNlcyBzZXRDU1NTaGFkb3dQYXJ0c0VuYWJsZWQ6
WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhl
aWdodEVuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Ny
b2xsaW5nRW5hYmxlZDpZRVNdOworICAgIFtwcmVmZXJlbmNlcyBzZXRPdmVyc2Nyb2xsRXZlbnRz
RW5hYmxlZDpZRVNdOwogfQogCiAvLyBDYWxsZWQgYmVmb3JlIGVhY2ggdGVzdC4KQEAgLTEwNDQs
NiArMTA0NSw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMo
Y29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMubGF5b3V0Rm9ybWF0
dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJsZWQgPSBvcHRpb25zLmxheW91dEZvcm1hdHRpbmdD
b250ZXh0SW50ZWdyYXRpb25FbmFibGVkOwogICAgIHByZWZlcmVuY2VzLmFzcGVjdFJhdGlvT2ZJ
bWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkID0gb3B0aW9ucy5lbmFibGVBc3BlY3RSYXRpb09m
SW1nRnJvbVdpZHRoQW5kSGVpZ2h0OwogICAgIHByZWZlcmVuY2VzLmFsbG93VG9wTmF2aWdhdGlv
blRvRGF0YVVSTHMgPSBvcHRpb25zLmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHM7CisgICAg
cHJlZmVyZW5jZXMub3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU92ZXJz
Y3JvbGxFdmVudHM7CiB9CiAKIC8vIENhbGxlZCBvbmNlIG9uIER1bXBSZW5kZXJUcmVlIHN0YXJ0
dXAuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0g
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggNzYzYWEyZTgz
Mi4uMzQ4MTRjMzNiNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1
cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpA
QCAtMTM4LDYgKzEzOCw3IEBAIG15ICgKICAgICAkb2Zmc2NyZWVuQ2FudmFzU3VwcG9ydCwKICAg
ICAkb3JpZW50YXRpb25FdmVudHNTdXBwb3J0LAogICAgICRvdmVyZmxvd1Njcm9sbGluZ1RvdWNo
U3VwcG9ydCwKKyAgICAkb3ZlcnNjcm9sbEV2ZW50c1N1cHBvcnQsCiAgICAgJHBheW1lbnRSZXF1
ZXN0U3VwcG9ydCwKICAgICAkcGRma2l0UGx1Z2luU3VwcG9ydCwKICAgICAkcGljdHVyZUluUGlj
dHVyZUFQSVN1cHBvcnQsCkBAIC00NjQsNiArNDY1LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAg
IHsgb3B0aW9uID0+ICJvdmVyZmxvdy1zY3JvbGxpbmctdG91Y2giLCBkZXNjID0+ICJUb2dnbGUg
YWNjZWxlcmF0ZWQgc2Nyb2xsaW5nIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
T1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIIiwgdmFsdWUgPT4gXCRvdmVyZmxvd1Njcm9sbGluZ1Rv
dWNoU3VwcG9ydCB9LAogCisgICAgeyBvcHRpb24gPT4gIm92ZXJzY3JvbGwtZXZlbnRzIiwgZGVz
YyA9PiAiRW5hYmxlIE92ZXJzY3JvbGwgRXZlbnRzIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFMiLCB2YWx1ZSA9PiBcJG92ZXJzY3JvbGxFdmVudHNT
dXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAicGF5bWVudC1yZXF1ZXN0IiwgZGVzYyA9PiAi
VG9nZ2xlIFBheW1lbnQgUmVxdWVzdCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVCIsIHZhbHVlID0+IFwkcGF5bWVudFJlcXVlc3RTdXBwb3J0IH0sCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IGNmYmI3Mjk1MTMuLjEwNmI1YzRhMGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwpAQCAtMjk2LDYgKzI5Niw4IEBAIEVOQUJMRV9PRkZTQ1JFRU5fQ0FOVkFT
ID0gOwogRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCA9ICQoRU5BQkxFX09WRVJGTE9X
X1NDUk9MTElOR19UT1VDSF8kKFdLX0NPQ09BX1RPVUNIKSk7CiBFTkFCTEVfT1ZFUkZMT1dfU0NS
T0xMSU5HX1RPVUNIX2NvY29hdG91Y2ggPSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNI
OwogCitFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFMgPSBFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFM7
CisKIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgPSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUOwogCiBF
TkFCTEVfUElDVFVSRV9JTl9QSUNUVVJFX0FQSSA9ICQoRU5BQkxFX1BJQ1RVUkVfSU5fUElDVFVS
RV9BUElfJChXS19QTEFURk9STV9OQU1FKSk7CkBAIC00MTYsNCArNDE4LDQgQEAgRU5BQkxFX1dJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCA9IEVOQUJMRV9XSVJFTEVTU19QTEFZQkFDS19UQVJHRVQ7
CiAKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFXzNEX1RSQU5TRk9STVMpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKSAkKEVOQUJMRV9BUFBMRV9QQVkpICQoRU5B
QkxFX0FQUExFX1BBWV9TRVNTSU9OX1YzKSAkKEVOQUJMRV9BUFBMRV9QQVlfU0VTU0lPTl9WNCkg
JChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjkpICQoRU5BQkxFX0FQUExJQ0FUSU9OX01BTklG
RVNUKSAkKEVOQUJMRV9BVFRBQ0hNRU5UX0VMRU1FTlQpICQoRU5BQkxFX0FWRl9DQVBUSU9OUykg
JChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykg
JChFTkFCTEVfQ09OVEVOVF9GSUxURVJJTkcpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVf
Q1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5B
QkxFX0NTU19DT05JQ19HUkFESUVOVFMpICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAk
KEVOQUJMRV9DU1NfUEFJTlRJTkdfQVBJKSAkKEVOQUJMRV9DU1NfU0NST0xMX1NOQVApICQoRU5B
QkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0KSAkKEVOQUJMRV9DU1NfVFJBSUxJTkdfV09SRCkgJChF
TkFCTEVfQ1NTX1RZUEVEX09NKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVf
Q19MT09QKSAkKEVOQUJMRV9EQVJLX01PREVfQ1NTKSAkKEVOQUJMRV9EQVRBQ1VFX1ZBTFVFKSAk
KEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OKSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RSQUdfU1VQUE9SVCkgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FWFBFUklNRU5UQUxfRkVBVFVSRVMpICQoRU5BQkxF
X0ZJTFRFUlNfTEVWRUxfMikgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX1BJQ1RV
UkVfSU5fUElDVFVSRV9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9HUFVfUFJPQ0VTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRV9JTl9XT1JLRVJTKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVM
T0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSykgJChFTkFCTEVfSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykgJChF
TkFCTEVfSU5TUEVDVE9SX1RFTEVNRVRSWSkgJChFTkFCTEVfSU5URVJTRUNUSU9OX09CU0VSVkVS
KSAkKEVOQUJMRV9JT1NfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX0lPU19UT1VDSF9FVkVOVFMp
ICQoRU5BQkxFX0xBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpICQoRU5BQkxFX0xFR0FDWV9DU1Nf
VkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIp
ICQoRU5BQkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0xFVFRFUlBSRVNTKSAk
KEVOQUJMRV9NQUNfR0VTVFVSRV9FVkVOVFMpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVE
SUFfQ0FQVFVSRSkgJChFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NSSVBUKSAkKEVOQUJMRV9NRURJ
QV9TRVNTSU9OKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX01FRElBX1NUUkVBTSkgJChFTkFCTEVfTUVNT1JZX1NBTVBMRVIpICQoRU5B
QkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1Jf
U0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9TVEFOREFMT05FKSAkKEVOQUJMRV9ORVRXT1JLX0NB
Q0hFX1NQRUNVTEFUSVZFX1JFVkFMSURBVElPTikgJChFTkFCTEVfTkVUV09SS19DQUNIRV9TVEFM
RV9XSElMRV9SRVZBTElEQVRFKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZT
Q1JFRU5fQ0FOVkFTKSAkKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0gpICQoRU5BQkxF
X1BBWU1FTlRfUkVRVUVTVCkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUE9JTlRF
Ul9MT0NLKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVO
QUJMRV9SRU1PVEVfSU5TUEVDVE9SKSAkKEVOQUJMRV9SRVNJWkVfT0JTRVJWRVIpICQoRU5BQkxF
X1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElD
UykgJChFTkFCTEVfUkVTT1VSQ0VfVVNBR0UpICQoRU5BQkxFX1JVQkJFUl9CQU5ESU5HKSAkKEVO
QUJMRV9TQU5EQk9YX0VYVEVOU0lPTlMpICQoRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUKSAkKEVO
QUJMRV9TRVJWSUNFX0NPTlRST0xTKSAkKEVOQUJMRV9TRVJWSUNFX1dPUktFUikgJChFTkFCTEVf
U0hBUkVBQkxFX1JFU09VUkNFKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9T
VFJFQU1TX0FQSSkgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URUxFUEhPTkVfTlVNQkVS
X0RFVEVDVElPTikgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9UT1VDSF9FVkVO
VFMpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9VU0VSX01FU1NBR0VfSEFORExF
UlMpICQoRU5BQkxFX1ZBUklBVElPTl9GT05UUykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklE
RU9fVVNFU19FTEVNRU5UX0ZVTExTQ1JFRU4pICQoRU5BQkxFX1dFQkRSSVZFUl9NT1VTRV9JTlRF
UkFDVElPTlMpICQoRU5BQkxFX1dFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpICQoRU5B
QkxFX1dFQkRSSVZFUl9UT1VDSF9JTlRFUkFDVElPTlMpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJM
RV9XRUJHTDIpICQoRU5BQkxFX1dFQkdQVSkgJChFTkFCTEVfV0VCWFIpICQoRU5BQkxFX1dFQl9B
UElfU1RBVElTVElDUykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfQVVUSE4pICQo
RU5BQkxFX1dFQl9DUllQVE8pICQoRU5BQkxFX1dFQl9SVEMpICQoRU5BQkxFX1dJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9UUkFOU0ZPUk1TKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxF
X0FDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJChFTkFCTEVfQVBQTEVfUEFZKSAkKEVOQUJM
RV9BUFBMRV9QQVlfU0VTU0lPTl9WMykgJChFTkFCTEVfQVBQTEVfUEFZX1NFU1NJT05fVjQpICQo
RU5BQkxFX0FQUExFX1BBWV9TRVNTSU9OX1Y5KSAkKEVOQUJMRV9BUFBMSUNBVElPTl9NQU5JRkVT
VCkgJChFTkFCTEVfQVRUQUNITUVOVF9FTEVNRU5UKSAkKEVOQUJMRV9BVkZfQ0FQVElPTlMpICQo
RU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NPTlRFTlRfRklMVEVSSU5HKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NT
U19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJM
RV9DU1NfQ09OSUNfR1JBRElFTlRTKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChF
TkFCTEVfQ1NTX1BBSU5USU5HX0FQSSkgJChFTkFCTEVfQ1NTX1NDUk9MTF9TTkFQKSAkKEVOQUJM
RV9DU1NfU0VMRUNUT1JTX0xFVkVMNCkgJChFTkFCTEVfQ1NTX1RSQUlMSU5HX1dPUkQpICQoRU5B
QkxFX0NTU19UWVBFRF9PTSkgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0Nf
TE9PUCkgJChFTkFCTEVfREFSS19NT0RFX0NTUykgJChFTkFCTEVfREFUQUNVRV9WQUxVRSkgJChF
TkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTikgJChFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9EUkFHX1NVUFBPUlQpICQoRU5BQkxFX0VO
Q1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAkKEVOQUJMRV9G
SUxURVJTX0xFVkVMXzIpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9QSUNUVVJF
X0lOX1BJQ1RVUkVfQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikg
JChFTkFCTEVfR1BVX1BST0NFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikg
JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX1dFRUspICQoRU5BQkxFX0lOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpICQoRU5B
QkxFX0lOU1BFQ1RPUl9URUxFTUVUUlkpICQoRU5BQkxFX0lOVEVSU0VDVElPTl9PQlNFUlZFUikg
JChFTkFCTEVfSU9TX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9JT1NfVE9VQ0hfRVZFTlRTKSAk
KEVOQUJMRV9MQVlPVVRfRk9STUFUVElOR19DT05URVhUKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZF
TkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKSAk
KEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9MRVRURVJQUkVTUykgJChF
TkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElB
X0NBUFRVUkUpICQoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCkgJChFTkFCTEVfTUVESUFf
U0VTU0lPTikgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KSAkKEVOQUJMRV9NRURJQV9TVFJFQU0pICQoRU5BQkxFX01FTU9SWV9TQU1QTEVSKSAkKEVOQUJM
RV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1ND
QUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfU1RBTkRBTE9ORSkgJChFTkFCTEVfTkVUV09SS19DQUNI
RV9TUEVDVUxBVElWRV9SRVZBTElEQVRJT04pICQoRU5BQkxFX05FVFdPUktfQ0FDSEVfU1RBTEVf
V0hJTEVfUkVWQUxJREFURSkgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGU0NS
RUVOX0NBTlZBUykgJChFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIKSAkKEVOQUJMRV9P
VkVSU0NST0xMX0VWRU5UUykgJChFTkFCTEVfUEFZTUVOVF9SRVFVRVNUKSAkKEVOQUJMRV9QREZL
SVRfUExVR0lOKSAkKEVOQUJMRV9QT0lOVEVSX0xPQ0spICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhf
TElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFTU9URV9JTlNQRUNUT1IpICQoRU5BQkxF
X1JFU0laRV9PQlNFUlZFUikgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFC
TEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAkKEVOQUJMRV9SRVNPVVJDRV9VU0FHRSkgJChF
TkFCTEVfUlVCQkVSX0JBTkRJTkcpICQoRU5BQkxFX1NBTkRCT1hfRVhURU5TSU9OUykgJChFTkFC
TEVfU0VSVkVSX1BSRUNPTk5FQ1QpICQoRU5BQkxFX1NFUlZJQ0VfQ09OVFJPTFMpICQoRU5BQkxF
X1NFUlZJQ0VfV09SS0VSKSAkKEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UpICQoRU5BQkxFX1NQ
RUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NUUkVBTVNfQVBJKSAkKEVOQUJMRV9TVkdfRk9OVFMp
ICQoRU5BQkxFX1RFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAkKEVOQUJMRV9URVhUX0FVVE9T
SVpJTkcpICQoRU5BQkxFX1RPVUNIX0VWRU5UUykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQo
RU5BQkxFX1VTRVJfTUVTU0FHRV9IQU5ETEVSUykgJChFTkFCTEVfVkFSSUFUSU9OX0ZPTlRTKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fUFJFU0VOVEFUSU9OX01PREUpICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSURFT19VU0VTX0VMRU1FTlRfRlVMTFNDUkVFTikgJChF
TkFCTEVfV0VCRFJJVkVSX01PVVNFX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX0tF
WUJPQVJEX0lOVEVSQUNUSU9OUykgJChFTkFCTEVfV0VCRFJJVkVSX1RPVUNIX0lOVEVSQUNUSU9O
UykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQkdMMikgJChFTkFCTEVfV0VCR1BVKSAkKEVO
QUJMRV9XRUJYUikgJChFTkFCTEVfV0VCX0FQSV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9BVVRITikgJChFTkFCTEVfV0VCX0NSWVBUTykgJChFTkFCTEVfV0VC
X1JUQykgJChFTkFCTEVfV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAkKEVOQUJMRV9YU0xUKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393841</attachid>
            <date>2020-03-18 05:54:00 -0700</date>
            <delta_ts>2020-07-21 10:08:01 -0700</delta_ts>
            <desc>scrollend-userscroll-on-Mac-for-review</desc>
            <filename>scrollend-mac-for-review.diff</filename>
            <type>text/plain</type>
            <size>20386</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNDcxOTExZjg0Li40NDkzYWViNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTQgQEAKKzIwMjAtMDMtMTggIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb24gTWFjCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGRl
YWxzIHdpdGggdGhlIHVzZXIgc2Nyb2xsaW5nIG9uIE1hYzogd2hlZWwgc2Nyb2xsaW5nLCBrZXli
b2FyZCBzY3JvbGxpbmcsIGF1dG9zY3JvbGwoZHJhZyBzY3JvbGxpbmcpLgorICAgICAgICBXaGVl
bCBzY3JvbGxpbmc6IEJlc2lkZXMgdXNlciBzY3JvbGwsIGl0IG1pZ2h0IGdlbmVyYXRlIG1vbWVu
dHVtIHNjcm9sbGluZywgUnViYmVyQmFuZCwgYW5kIHNjcm9sbFNuYXAuIFNvIGFkZAorICAgICAg
ICBtX2RldGVjdFNjcm9sbGVuZFRpbWVyIHRvIGRldGVjdCB3aGVuIGRvZXMgdGhlIHNjcm9sbGlu
ZyBlbmQuCisgICAgICAgIEtleWJvYXJkIHNjcm9sbGluZzogSGFuZGxlZCBieSBTY3JvbGxBbmlt
YXRvck1hYy4gRm9yIEZyYW1lVmlldywgdGhlIHNjcm9sbGluZyBpcyBhbmltYXRlZCwgc28gc2F2
ZSB0aGUgcG9zaXRpb24gZmlyc3QsCisgICAgICAgIHRoZW4gY2hlY2sgdGhlIHBvc2l0aW9uIHdo
ZW4gaXQgYWN0dWFsbHkgc2Nyb2xscy4gRm9yIFJlbmRlckxheWVyLCBpdCBpcyBpbnN0YW50LCBz
byBub3RpZnkgc2Nyb2xsIGVuZC4KKyAgICAgICAgQXV0b3Njcm9sbDogTm90aWZ5IHNjcm9sbCBl
bmQgd2hlbiBhdXRvc2Nyb2xsIHRpbWVyIGlzIHN0b3BwZWQuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Om5vdGlmeVNjcm9sbERpZEVuZCk6IE5vdGlmeSB0
aGUgY3VycmVudCBzY3JvbGxpbmcgZW5kcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
Ojpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpub3RpZnlT
Y3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVl
Ojpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6bm90
aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNhdmVTY3JvbGxlbmRF
dmVudFBvc2l0aW9uIGNvbnN0KTogU2F2ZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIHRvIGZpcmUgc2Ny
b2xsZW5kIGV2ZW50LgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAg
ICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQ29udHJvbGxlckNsaWVudDo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OlNjcm9sbENvbnRyb2xsZXIpOiBBZGQgbV9kZXRlY3RT
Y3JvbGxlbmRUaW1lciB0byBkZXRlY3Qgd2hlbiB0aGUgd2hlZWwgc2Nyb2xsaW5nIGVuZHMuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogU3Rh
cnQgdGhlIHRpbWVyIGF0IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQgcGhyYXNlLCBhbmQg
c3RvcCBpdAorICAgICAgICBhdCBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUJlZ2FuIHBocmFzZS4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnByb2Nlc3NXaGVlbEV2ZW50Rm9y
U2Nyb2xsU25hcCk6IER1cmluZyBTY3JvbGxTbmFwLCBzdGFydCB0aGUgdGltZXIgYXQgVXNlclNj
cm9sbEVuZAorICAgICAgICBzdGF0dXMsIGFuZCBzdG9wIGl0IGF0IFVzZXJTY3JvbGxCZWdpbiBv
ciBVc2VyU2Nyb2xsaW5nIHN0YXR1cy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xs
ZXI6OnN0YXJ0RGV0ZWN0U2Nyb2xsZW5kVGltZXIpOiBTdGFydCB0aGUgdGltZXIsIHJlcGVhdGlu
ZyAxLzYwIHMKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0b3BEZXRlY3RT
Y3JvbGxlbmRUaW1lcik6IFN0b3AgdGhlIHRpbWVyIGFuZCBub3RpZnlTY3JvbGxEaWRFbmQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTY3JvbGxlbmRUaW1lckZp
cmVkKTogSWYgUnViYmVyQmFuZCwgbW9tZW50dW1TY3JvbGwgYW5kIHNjcm9sbFNuYXAgaXMgbm90
IGluIHByb2dyZXNzLCBzdG9wIHRoZSB0aW1lci4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKTogRm9y
IGtleWJvYXJkIHNjcm9sbGluZywgaWYgaXQncyBpbnN0YW50IHNjcm9sbGluZyBub3RpZnlTY3Jv
bGxEaWRFbmQsIGlmIGl0J3MKKyAgICAgICAgYW5pbWF0ZWQgc2Nyb2xsaW5nIHNhdmVTY3JvbGxl
bmRFdmVudFBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om5v
dGlmeVNjcm9sbERpZEVuZCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCk6IFB1dCB0
aGUgdGFyZ2V0IHRvIHRoZSBsaXN0IHdoZW4gYXV0b3Njcm9sbCBzdG9wcy4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0b3BB
dXRvc2Nyb2xsKTogRGVsZXRlZC4KKwogMjAyMC0wMy0xNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVj
aGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbGVuZCBldmVu
dCBvZiBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGVk
NzIwMzY3NDMuLmY3MjhjODRiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC04ODAsNiAr
ODgwLDI5IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6cmVwb3J0U3luY2hyb25v
dXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uCiAgICAgICAgIG1fcGFnZS0+cGVyZm9y
bWFuY2VMb2dnaW5nQ2xpZW50KCktPmxvZ1Njcm9sbGluZ0V2ZW50KFBlcmZvcm1hbmNlTG9nZ2lu
Z0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQ6OlN3aXRjaGVkU2Nyb2xsaW5nTW9kZSwgdGltZXN0YW1w
LCByZWFzb25zLnRvUmF3KCkpOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
dm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlTY3JvbGxEaWRFbmQoU2Nyb2xs
aW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGZyYW1l
VmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoc2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBp
ZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjcm9sbGluZ05vZGVJ
RCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAgICAgIGZyYW1lVmlldy0+
Zm9yY2VTY3JvbGxlbmQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIE92ZXJm
bG93LXNjcm9sbCBhcmVhLgorICAgIGlmIChhdXRvKiBzY3JvbGxhYmxlQXJlYSA9IGZyYW1lVmll
dy0+c2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxMYXllcklEKHNjcm9sbGluZ05vZGVJRCkpCisgICAg
ICAgIHNjcm9sbGFibGVBcmVhLT5mb3JjZVNjcm9sbGVuZCgpOworfQorI2VuZGlmCisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgKaW5kZXggNmRhMmU4MzE0Ni4uYjY4ZTZlNzY3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaApAQCAtNjgsNiArNjgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcmVwb3J0RXhwb3Nl
ZFVuZmlsbGVkQXJlYShNb25vdG9uaWNUaW1lLCB1bnNpZ25lZCB1bmZpbGxlZEFyZWEpOwogICAg
IHZvaWQgcmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uaWNU
aW1lLCBPcHRpb25TZXQ8U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb24+KTsKIAorI2lmIEVOQUJM
RShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG5vdGlmeVNjcm9s
bERpZEVuZChTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworI2VuZGlmCisKIHByb3RlY3RlZDoK
ICAgICBXRUJDT1JFX0VYUE9SVCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmgKaW5kZXggMDUxM2ZlNzg3Ni4uYjZhNDU0YzNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0xMTYsNiAr
MTE2LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5U
UykKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5kKFNjcm9sbGluZ05vZGVJRCkg
eyB9CisjZW5kaWYKKwogICAgIC8vIEZvcmNlIGFsbCBzY3JvbGwgbGF5ZXIgcG9zaXRpb24gdXBk
YXRlcyB0byBoYXBwZW4gb24gdGhlIG1haW4gdGhyZWFkLgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0Rm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRhdGVzKGJvb2wpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXgg
NzE5MWEzNzYyMy4uNTljZTkyZDFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMTExLDYgKzExMSwxMCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29u
KFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2
ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxEaWRFbmQoU2Ny
b2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdl
KFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
ID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggODEwYWZkNDQzMS4uMWFiNmYwY2U3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwCkBAIC0yMjUsNiArMjI1LDE4IEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxp
bmdUcmVlOjpyZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihX
aGVlCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6Om5vdGlmeVNjcm9sbERpZEVuZChTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQoreworICAgIGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtzY3JvbGxpbmdDb29yZGluYXRvciA9
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IsIG5vZGVJRF0geworICAgICAgICBzY3JvbGxpbmdDb29y
ZGluYXRvci0+bm90aWZ5U2Nyb2xsRGlkRW5kKG5vZGVJRCk7CisgICAgfSk7Cit9CisjZW5kaWYK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9M
TElORykgJiYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDA1ZGRjNWNk
MDMuLjMyMWQxZDc2YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC03MCw2ICs3MCwxMCBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNv
bihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxF
dmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZChTY3Jv
bGxpbmdOb2RlSUQpIG92ZXJyaWRlOworI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICAg
ICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCwg
dW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92ZXJyaWRlOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaAppbmRleCBm
NWQ0ZGU1ODdmLi42ZDE1YmM2YjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZURlbGVnYXRlTWFjLmgKQEAgLTc5LDYgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
dG9wU25hcFJ1YmJlcmJhbmRUaW1lcigpIG92ZXJyaWRlOwogICAgIHZvaWQgYWRqdXN0U2Nyb2xs
UG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCkgb3ZlcnJpZGU7CiAKKyNpZiBFTkFCTEUoT1ZF
UlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBub3RpZnlTY3JvbGxEaWRFbmQoKSBvdmVycmlkZTsK
KyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBGbG9hdFBvaW50IHNj
cm9sbE9mZnNldCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaW1tZWRpYXRlU2Nyb2xsT25B
eGlzKFNjcm9sbEV2ZW50QXhpcywgZmxvYXQgZGVsdGEpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRleCA4ZDQ4ZTZkNDQ4Li4z
NTNlOWIyNTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZU1hYy5tbQpAQCAtMjUzLDYgKzI1MywxMyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVNYWM6OmFkanVzdFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2VzcwogICAg
IGltbWVkaWF0ZVNjcm9sbEJ5KGNvbnN0cmFpbmVkUG9zaXRpb24gLSBzY3JvbGxQb3NpdGlvbik7
CiB9CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lkIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Om5vdGlmeVNjcm9sbERpZEVuZCgpCit7CisgICAgc2Ny
b2xsaW5nVHJlZSgpLm5vdGlmeVNjcm9sbERpZEVuZChzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsaW5n
Tm9kZUlEKCkpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogRmxv
YXRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpzY3JvbGxPZmZz
ZXQoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3Bw
CmluZGV4IDBmYzcyOWU5MTIuLmI5NjI4MDUxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTE4OCw2ICsxODgsMTMgQEAgdm9pZCBTY3JvbGxBbmlt
YXRvcjo6c2V0Q3VycmVudFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQogICAg
IHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNldCgpOwogfQogCisjaWYgRU5BQkxF
KE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBTY3JvbGxBbmltYXRvcjo6c2F2ZVNjcm9sbGVuZEV2
ZW50UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pIGNvbnN0Cit7CisgICAgbV9z
Y3JvbGxhYmxlQXJlYS5zYXZlU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihyb3VuZGVkSW50UG9pbnQo
cG9zaXRpb24pKTsKK30KKyNlbmRpZgorCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjp1cGRhdGVBY3Rp
dmVTY3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKQogewogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NO
QVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA5YjdjMDli
NjkwLi45NDE4YjJhMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
LmgKQEAgLTg3LDYgKzg3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRQb3NpdGlv
bihjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgY29uc3QgRmxvYXRQb2ludCYgY3VycmVudFBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UG9zaXRpb247IH0KIAorI2lmIEVOQUJMRShP
VkVSU0NST0xMX0VWRU5UUykKKyAgICB2b2lkIHNhdmVTY3JvbGxlbmRFdmVudFBvc2l0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGNhbmNl
bEFuaW1hdGlvbnMoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5oCmluZGV4IDY5NjA3Y2RjYTkuLjJhNzcyYzIzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTc4LDYgKzc4LDEwIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVj
ZXNzYXJ5KCkgPSAwOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgpIHsgfQorI2VuZGlmCisKICAgICB2
aXJ0dWFsIHZvaWQgZGVmZXJXaGVlbEV2ZW50VGVzdENvbXBsZXRpb25Gb3JSZWFzb24oV2hlZWxF
dmVudFRlc3RNb25pdG9yOjpTY3JvbGxhYmxlQXJlYUlkZW50aWZpZXIsIFdoZWVsRXZlbnRUZXN0
TW9uaXRvcjo6RGVmZXJSZWFzb24pIGNvbnN0IHsgLyogRG8gbm90aGluZyAqLyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlbW92ZVdoZWVsRXZlbnRUZXN0Q29tcGxldGlvbkRlZmVycmFsRm9yUmVhc29u
KFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2
ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBjb25zdCB7IC8qIERvIG5vdGhpbmcgKi8gfQog
CkBAIC0xNzIsNiArMTc2LDExIEBAIHByaXZhdGU6CiAjZW5kaWYKICNlbmRpZgogCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgc3RhcnREZXRlY3RTY3JvbGxlbmRUaW1l
cigpOworICAgIHZvaWQgc3RvcERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisgICAgdm9pZCBkZXRl
Y3RTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisjZW5kaWYKICAgICBTY3JvbGxDb250cm9sbGVyQ2xp
ZW50JiBtX2NsaWVudDsKIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE5OCw2ICsyMDcsMTAgQEAg
cHJpdmF0ZToKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMp
CisgICAgUnVuTG9vcDo6VGltZXI8U2Nyb2xsQ29udHJvbGxlcj4gbV9kZXRlY3RTY3JvbGxlbmRU
aW1lcjsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgbV9pblNjcm9sbEdl
c3R1cmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xs
Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIubW0KaW5kZXggMzU2MGJhYmYyOS4uMzNkZTczYWQ0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tCkBAIC05Myw2ICs5Myw5
IEBAIFNjcm9sbENvbnRyb2xsZXI6OlNjcm9sbENvbnRyb2xsZXIoU2Nyb2xsQ29udHJvbGxlckNs
aWVudCYgY2xpZW50KQogICAgICwgbV9zdGF0ZWxlc3NTbmFwVHJhbnNpdGlvblRpbWVyKFJ1bkxv
b3A6OmN1cnJlbnQoKSwgdGhpcywgJlNjcm9sbENvbnRyb2xsZXI6OnN0YXRlbGVzc1NuYXBUcmFu
c2l0aW9uVGltZXJGaXJlZCkKICAgICAsIG1fc2Nyb2xsU25hcFRpbWVyKFJ1bkxvb3A6OmN1cnJl
bnQoKSwgdGhpcywgJlNjcm9sbENvbnRyb2xsZXI6OnNjcm9sbFNuYXBUaW1lckZpcmVkKQogI2Vu
ZGlmCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICwgbV9kZXRlY3RTY3JvbGxl
bmRUaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZTY3JvbGxDb250cm9sbGVyOjpkZXRl
Y3RTY3JvbGxlbmRUaW1lckZpcmVkKQorI2VuZGlmCiB7CiB9CiAKQEAgLTEyMSwxMiArMTI0LDE3
IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgIG1fb3ZlcmZsb3dTY3JvbGxEZWx0YSA9
IEZsb2F0U2l6ZSgpOwogCiAgICAgICAgIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVyKCk7Ci0KKyNp
ZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIHN0b3BEZXRlY3RTY3JvbGxlbmRU
aW1lcigpOworI2VuZGlmCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmICh3
aGVlbEV2ZW50LnBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCkgewogICAg
ICAgICBzbmFwUnViYmVyQmFuZCgpOworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAg
ICAgICAgc3RhcnREZXRlY3RTY3JvbGxlbmRUaW1lcigpOworI2VuZGlmCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIApAQCAtNTI5LDEyICs1MzcsMTggQEAgYm9vbCBTY3JvbGxDb250cm9s
bGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JgogICAgIGNhc2UgV2hlZWxFdmVudFN0YXR1czo6VXNlclNjcm9sbEJlZ2luOgogICAgIGNh
c2UgV2hlZWxFdmVudFN0YXR1czo6VXNlclNjcm9sbGluZzoKICAgICAgICAgc3RvcFNjcm9sbFNu
YXBUaW1lcigpOworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAgc3RvcERl
dGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAgICAgICAgbV9zY3JvbGxTbmFwU3RhdGUt
PnRyYW5zaXRpb25Ub1VzZXJJbnRlcmFjdGlvblN0YXRlKCk7CiAgICAgICAgIG1fZHJhZ0VuZGVk
U2Nyb2xsaW5nVmVsb2NpdHkgPSAtd2hlZWxFdmVudC5zY3JvbGxpbmdWZWxvY2l0eSgpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFdoZWVsRXZlbnRTdGF0dXM6OlVzZXJTY3JvbGxFbmQ6CiAg
ICAgICAgIG1fc2Nyb2xsU25hcFN0YXRlLT50cmFuc2l0aW9uVG9TbmFwQW5pbWF0aW9uU3RhdGUo
bV9jbGllbnQuc2Nyb2xsRXh0ZW50KCksIG1fY2xpZW50LnZpZXdwb3J0U2l6ZSgpLCBtX2NsaWVu
dC5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCkpOwogICAgICAgICBz
dGFydFNjcm9sbFNuYXBUaW1lcigpOworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAg
ICAgICAgc3RhcnREZXRlY3RTY3JvbGxlbmRUaW1lcigpOworI2VuZGlmCiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgV2hlZWxFdmVudFN0YXR1czo6SW5lcnRpYWxTY3JvbGxCZWdpbjoKICAgICAg
ICAgbV9zY3JvbGxTbmFwU3RhdGUtPnRyYW5zaXRpb25Ub0dsaWRlQW5pbWF0aW9uU3RhdGUobV9j
bGllbnQuc2Nyb2xsRXh0ZW50KCksIG1fY2xpZW50LnZpZXdwb3J0U2l6ZSgpLCBtX2NsaWVudC5w
YWdlU2NhbGVGYWN0b3IoKSwgbV9jbGllbnQuc2Nyb2xsT2Zmc2V0KCksIG1fZHJhZ0VuZGVkU2Ny
b2xsaW5nVmVsb2NpdHksIEZsb2F0U2l6ZSgtd2hlZWxFdmVudC5kZWx0YVgoKSwgLXdoZWVsRXZl
bnQuZGVsdGFZKCkpKTsKQEAgLTY3OSw2ICs2OTMsNDIgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVy
OjpzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlc0Zvck9mZnNldChpbnQgeCwgaW50IHkpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xsQ29udHJv
bGxlcjo6c3RhcnREZXRlY3RTY3JvbGxlbmRUaW1lcigpCit7CisgICAgaWYgKG1fZGV0ZWN0U2Ny
b2xsZW5kVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kZXRlY3RT
Y3JvbGxlbmRUaW1lci5zdGFydFJlcGVhdGluZygxX3MgLyA2MC4pOworfQorCit2b2lkIFNjcm9s
bENvbnRyb2xsZXI6OnN0b3BEZXRlY3RTY3JvbGxlbmRUaW1lcigpCit7CisgICAgaWYgKCFtX2Rl
dGVjdFNjcm9sbGVuZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
Y2xpZW50Lm5vdGlmeVNjcm9sbERpZEVuZCgpOworICAgIG1fZGV0ZWN0U2Nyb2xsZW5kVGltZXIu
c3RvcCgpOworfQorCit2b2lkIFNjcm9sbENvbnRyb2xsZXI6OmRldGVjdFNjcm9sbGVuZFRpbWVy
RmlyZWQoKQoreworICAgIGlmIChpc1J1YmJlckJhbmRJblByb2dyZXNzKCkpCisgICAgICAgIHJl
dHVybjsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9tb21lbnR1bVNjcm9sbEluUHJv
Z3Jlc3MpCisgICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQorICAg
IGlmIChtX3Njcm9sbFNuYXBUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisjZW5k
aWYKKyNlbmRpZgorCisgICAgc3RvcERldGVjdFNjcm9sbGVuZFRpbWVyKCk7Cit9CisjZW5kaWYK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFJVQkJFUl9CQU5E
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
aAppbmRleCA4Nzk1Y2Y4MTVhLi4yMmEwZGMyNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtMTU0LDYgKzE1NCwxMCBAQCBwcml2
YXRlOgogICAgIGJvb2wgaXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rpb25PZkdlc3R1cmUoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsRXZlbnRBeGlzKSBjb25zdDsKICNlbmRpZgogCisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAoRU5BQkxFKENTU19TQ1JPTExfU05BUCkg
fHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkKKyAgICB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgp
IG92ZXJyaWRlOworI2VuZGlmCisKICAgICBib29sIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9h
ZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlOwogICAgIEludFJlY3QgbV92
aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggYTQxNTI1NDIwYy4uZTE0OTFhNGMyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpA
QCAtNzYxLDExICs3NjEsMTYgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9s
bGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcmkKIHsKICAgICBtX2hh
dmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQgPSB0cnVlOwogCi0gICAgaWYgKCFzY3JvbGxBbmltYXRp
b25FbmFibGVkRm9yU3lzdGVtKCkgfHwgIW1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JF
bmFibGVkKCkpCi0gICAgICAgIHJldHVybiBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0
aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlwbGllcik7Ci0KLSAgICBpZiAoZ3JhbnVsYXJp
dHkgPT0gU2Nyb2xsQnlQaXhlbCkKLSAgICAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3Jv
bGwob3JpZW50YXRpb24sIGdyYW51bGFyaXR5LCBzdGVwLCBtdWx0aXBsaWVyKTsKKyAgICBpZiAo
IXNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSB8fCAhbV9zY3JvbGxhYmxlQXJlYS5z
Y3JvbGxBbmltYXRvckVuYWJsZWQoKSB8fCBncmFudWxhcml0eSA9PSBTY3JvbGxCeVBpeGVsKSB7
CisgICAgICAgIGlmIChTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxh
cml0eSwgc3RlcCwgbXVsdGlwbGllcikpIHsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMp
CisgICAgICAgICAgICAvLyBTZW5kIHNyb2xsZW5kIGV2ZW50IGlmIHRoZSBzY3JvbGwgYXBwbGll
ZCBpbW1lZGlhdGVseS4KKyAgICAgICAgICAgIG5vdGlmeVNjcm9sbERpZEVuZCgpOworI2VuZGlm
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgRmxvYXRQb2ludCBjdXJyZW50UG9zaXRpb24g
PSB0aGlzLT5jdXJyZW50UG9zaXRpb24oKTsKICAgICBGbG9hdFNpemUgZGVsdGE7CkBAIC03NzUs
OCArNzgwLDEyIEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpCiAgICAgICAgIGRlbHRhLnNldEhl
aWdodChzdGVwICogbXVsdGlwbGllcik7CiAKICAgICBGbG9hdFBvaW50IG5ld1Bvc2l0aW9uID0g
RmxvYXRQb2ludChjdXJyZW50UG9zaXRpb24gKyBkZWx0YSkuY29uc3RyYWluZWRCZXR3ZWVuKG1f
c2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCksIG1fc2Nyb2xsYWJsZUFyZWEu
bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkpOwotICAgIGlmIChjdXJyZW50UG9zaXRpb24gPT0gbmV3
UG9zaXRpb24pCisgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiA9PSBuZXdQb3NpdGlvbikgeworI2lm
IEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAgbm90aWZ5U2Nyb2xsRGlkRW5kKCk7
CisjZW5kaWYKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIGlmIChbbV9zY3Jv
bGxBbmltYXRpb25IZWxwZXIgX2lzQW5pbWF0aW5nXSkgewogICAgICAgICBOU1BvaW50IHRhcmdl
dE9yaWdpbiA9IFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciB0YXJnZXRPcmlnaW5dOwpAQCAtNzg3
LDYgKzc5Niw5IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmll
bnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpCiAgICAgfQogCiAgICAgTE9HX1dJ
VEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xs
ICIgPDwgIiBmcm9tICIgPDwgY3VycmVudFBvc2l0aW9uIDw8ICIgdG8gIiA8PCBuZXdQb3NpdGlv
bik7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIFNjcm9sbEFuaW1hdG9yOjpz
YXZlU2Nyb2xsZW5kRXZlbnRQb3NpdGlvbihuZXdQb3NpdGlvbik7CisjZW5kaWYKICAgICBbbV9z
Y3JvbGxBbmltYXRpb25IZWxwZXIgc2Nyb2xsVG9Qb2ludDpuZXdQb3NpdGlvbl07CiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC0xMzY5LDYgKzEzODEsMTMgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6aW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKIH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAoRU5BQkxFKENTU19TQ1JPTExfU05B
UCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om5v
dGlmeVNjcm9sbERpZEVuZCgpCit7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5mb3JjZVNjcm9sbGVu
ZCgpOworfQorI2VuZGlmCisKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnVwZGF0ZVNjcm9sbGVy
U3R5bGUoKQogewogICAgIGlmIChbbV9zY3JvbGxlckltcFBhaXIgb3ZlcmxheVNjcm9sbGVyU3Rh
dGVJc0xvY2tlZF0pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXgg
NjljNzdiMmJjZS4uYWJiMmJmMGRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKQEAgLTk1Nyw2ICs5NTcsMTYgQEAgUmVuZGVyQm94KiBSZW5kZXJCb3g6OmZpbmRBdXRv
c2Nyb2xsYWJsZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHJldHVybiBpczxSZW5kZXJC
b3g+KHJlbmRlcmVyKSA/IGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpIDogbnVsbHB0cjsK
IH0KIAordm9pZCBSZW5kZXJCb3g6OnN0b3BBdXRvc2Nyb2xsKCkKK3sKKyNpZiBFTkFCTEUoT1ZF
UlNDUk9MTF9FVkVOVFMpCisgICAgaWYgKGlzUmVuZGVyVmlldygpICYmIGZyYW1lKCkudmlldygp
KQorICAgICAgICBmcmFtZSgpLnZpZXcoKS0+Zm9yY2VTY3JvbGxlbmQoKTsKKyAgICBlbHNlIGlm
IChsYXllcigpKQorICAgICAgICBsYXllcigpLT5mb3JjZVNjcm9sbGVuZCgpOworI2VuZGlmCit9
CisKIHZvaWQgUmVuZGVyQm94OjpwYW5TY3JvbGwoY29uc3QgSW50UG9pbnQmIHNvdXJjZSkKIHsK
ICAgICBpZiAobGF5ZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBj
NjZlYTVlNzczLi4xOTQ0Yjc2OWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5o
CkBAIC00NzEsNyArNDcxLDcgQEAgb3ZlcnJpZGU7CiAgICAgYm9vbCBjYW5BdXRvc2Nyb2xsKCkg
Y29uc3Q7CiAgICAgSW50U2l6ZSBjYWxjdWxhdGVBdXRvc2Nyb2xsRGlyZWN0aW9uKGNvbnN0IElu
dFBvaW50JiB3aW5kb3dQb2ludCkgY29uc3Q7CiAgICAgc3RhdGljIFJlbmRlckJveCogZmluZEF1
dG9zY3JvbGxhYmxlKFJlbmRlck9iamVjdCopOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQXV0b3Nj
cm9sbCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wQXV0b3Njcm9sbCgpOwogICAgIHZpcnR1
YWwgdm9pZCBwYW5TY3JvbGwoY29uc3QgSW50UG9pbnQmKTsKIAogICAgIGJvb2wgaGFzVmVydGlj
YWxTY3JvbGxiYXJXaXRoQXV0b0JlaGF2aW9yKCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404830</attachid>
            <date>2020-07-21 10:06:40 -0700</date>
            <delta_ts>2020-07-29 06:27:26 -0700</delta_ts>
            <desc>scrollend-userscroll-on-Mac-for-ews</desc>
            <filename>scrollend-mac-for-ews-002.diff</filename>
            <type>text/plain</type>
            <size>85699</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlNjBiMjhhNjJmLi5lNTZm
MjQyNDk2IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjAtMDQtMDkgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAg
ICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLD
qWTDqXJpYyBXYW5nJ3MgcGF0Y2guCisKKyAgICAgICAgQWRkIEVOQUJMRV9PVkVSU0NST0xMX0VW
RU5UUyB3aGljaCBpcyBvZmYgYnkgZGVmYXVsdC4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZToKKwogMjAyMC0wNy0xMCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2
YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0VNRV1bT3Bl
bkNETV0gSW1wbGVtZW50IE9wZW5DRE0gc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQzY2NhM2YyNzUuLjRkYWE3
ZTcwYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wNy0yMSAgQ2F0aGllIENoZW4gIDxj
YXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbGVu
ZCBldmVudCBvZiB1c2VyIHNjcm9sbGluZyBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB1c2VyIHNjcm9sbGluZyB0ZXN0IGZvciBzY3Jv
bGxlbmQgZXZlbnQuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFu
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9y
LXN0YXRlbGVzcy13aGVlbC1zY3JvbGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1zY3JvbGwuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci13aGVl
bC1zY3JvbGwtd2l0aC1zdGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUuaHRtbDog
QWRkZWQuCisKIDIwMjAtMDctMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCBza2lwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9wZXJhdGlvbnMuaHR0cHMuaHRtbCBpbiBEZWJ1Zy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjN2Y3NzFjN2EuLmVmY2RjY2Y4MzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTcyLDcgKzE3MiwxNSBAQCBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXBy
aXZhY3kvIFsgU2tpcCBdCiBmYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyIFsgU2tpcCBd
CiAKICMgT25seSBpT1MgaGFzIGFuIGltcGxlbWVudGF0aW9uIG9mIFVJU2NyaXB0Q29udHJvbGxl
cjo6c2VuZEV2ZW50U3RyZWFtKCkuCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ldmVudHMvc2Nyb2xsaW5nIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZXZlbnQtZmlyZWQtdG8tZG9jdW1l
bnQuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWV2ZW50LWZpcmVkLXRvLWVsZW1lbnQtd2l0aC1vdmVy
c2Nyb2xsLWJlaGF2aW9yLmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by1zY3Jv
bGxlZC1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1maXJlZC10by13aW5kb3cu
aHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRz
L3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtYWZ0ZXItc25hcC5odG1sIFsgU2tpcCBd
CitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Nj
cm9sbGVuZC1ldmVudC1maXJlZC10by1kb2N1bWVudC5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVu
dC1maXJlZC10by1lbGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlvci5odG1sIFsgU2tpcCBd
CitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Nj
cm9sbGVuZC1ldmVudC1maXJlZC10by1zY3JvbGxlZC1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KK2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xs
ZW5kLWV2ZW50LWZpcmVkLXRvLXdpbmRvdy5odG1sIFsgU2tpcCBdCiAKICMgVGhpcyB0ZXN0IG9u
bHkgbWFrZXMgc2Vuc2Ugb24gTWFjCiBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1zdWJ0aXRs
ZS1yZXNpemUuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1ydWJiZXJiYW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjg4ZWIxY2Q1NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1m
b3ItcnViYmVyYmFuZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIFRlc3QgZm9y
IHJ1YmJlci1iYW5kIHNjcm9sbGluZyBzY3JvbGxlbmQgZXZlbnQuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1ydWJiZXJiYW5k
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWI1ZmMzYjIzZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVu
dC1mb3ItcnViYmVyYmFuZC5odG1sCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0Vu
YWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgICN0
YXJnZXREaXYgeworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0
OiAyMDBweDsKKyAgICAgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgIH0KKyAgICAg
ICAgI2lubmVyRGl2IHsKKyAgICAgICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGhl
aWdodDogNDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgc3R5
bGU9Im1hcmdpbjowIiBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdiBpZD0idGFyZ2V0RGl2
Ij4KKyAgICAgICAgPGRpdiBpZD0iaW5uZXJEaXYiPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK3ZhciB0YXJn
ZXRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldERpdicpOworCitmdW5jdGlv
biBmaW5pc2hlZChtZXNzYWdlKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIp
LmlubmVyVGV4dCA9IG1lc3NhZ2UgKyAiXG4iOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIG9uU2Nyb2xs
RW5kKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUgfHwgIWV2ZW50LmJ1YmJsZXMp
IHsKKyAgICAgICAgZmluaXNoZWQoIkZBSUwsIGZvciBkb2N1bWVudCBzY3JvbGxlbmQgZXZlbnQg
Y2FuY2VsYWJsZSBzaG91bGQgYmUgZmFsc2UgYW5kIGJ1YmJsZSBzaG91bGUgYmUgdHJ1ZS4iKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciBzY3JvbGxlbmRfcG9zaXRpb24gPSB3
aW5kb3cuc2Nyb2xsWTsKKyAgICBpZiAoc2Nyb2xsZW5kX3Bvc2l0aW9uICE9IDApCisgICAgICAg
IGZpbmlzaGVkKCJGQUlMLCB3aW5kb3cgZGlkIG5vdCBzY3JvbGwuIik7CisKKyAgICBzZXRUaW1l
b3V0KCgpID0+IHsKKyAgICAgICAgaWYgKHNjcm9sbGVuZF9wb3NpdGlvbiA9PSB3aW5kb3cuc2Ny
b2xsWSkKKyAgICAgICAgICAgIGZpbmlzaGVkKCJQQVNTIFRlc3QgZm9yIHJ1YmJlci1iYW5kIHNj
cm9sbGluZyBzY3JvbGxlbmQgZXZlbnQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZp
bmlzaGVkKCJGQUlMLCB3aW5kb3cncyBzY3JvbGwgcG9zaXRpb24gc2hvdWxkbid0IGNoYW5nZSBh
ZnRlciBnZXR0aW5nIHNjcm9sbGVuZCBldmVudC4iKTsKKyAgICB9LCAzMDApOworfQorCitmdW5j
dGlvbiBvblVuZXhwZWN0ZWRTY3JvbGxFbmQoKSB7CisgICAgZmluaXNoZWQoIkZBSUwsIHRhcmdl
dF9kaXYgZ290IHVuZXhwZWN0ZWQgc2Nyb2xsZW5kIGV2ZW50Iik7Cit9CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIGZpbmlzaGVkKCJGQUlMLCBldmVudFNlbmRlciBvciB0ZXN0UnVubmVy
IGFyZSBub3Qgc3VwcG9ydGVkLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisK
KyAgICAvLyBNYWtlIHN1cmUgdGhhdCBubyBzY3JvbGxlbmQgZXZlbnQgaXMgc2VudCB0byB0YXJn
ZXRfZGl2LgorICAgIHRhcmdldF9kaXYuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwgb25V
bmV4cGVjdGVkU2Nyb2xsRW5kKTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xs
ZW5kIiwgb25TY3JvbGxFbmQpOworCisgICAgLy8gVGVzdCB3aGVlbCBldmVudCB3aXRoIHN0YXRl
cyBzY3JvbGwuCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAwLCAxMDApOworICAgIGV2
ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAxLCAiYmVnYW4iLCAibm9uZSIpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCA1LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMSwg
ImNoYW5nZWQiLCAibm9uZSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAiZW5kZWQiLCAibm9uZSIpOworfQorPC9zY3JpcHQ+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Ny
b2xsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVu
dC1mb3Itc3RhdGVsZXNzLXdoZWVsLXNjcm9sbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uN2U1ZDFjMzI1OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itc3RhdGVsZXNzLXdoZWVs
LXNjcm9sbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIFRlc3QgZm9yIHN0YXRl
bGVzcyB3aGVlbCBzY3JvbGxpbmcgc2Nyb2xsZW5kIGV2ZW50LgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1z
Y3JvbGwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3It
c3RhdGVsZXNzLXdoZWVsLXNjcm9sbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLmNiMWM2MGMxNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1zY3JvbGwuaHRtbApA
QCAtMCwwICsxLDc3IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAjdGFyZ2V0RGl2IHsKKyAgICAgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBv
dmVyZmxvdzogc2Nyb2xsOworICAgICAgICB9CisKKyAgICAgICAgI2lubmVyRGl2IHsKKyAgICAg
ICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAgICAg
IH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9Im1hcmdpbjowIiBvbmxvYWQ9
cnVuVGVzdCgpPgorICAgIDxkaXYgaWQ9InRhcmdldERpdiI+CisgICAgICAgIDxkaXYgaWQ9Imlu
bmVyRGl2Ij4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0ibG9nIj48
L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+Cit2YXIgdGFyZ2V0X2RpdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsKKworZnVuY3Rpb24gZmluaXNoZWQobWVzc2FnZSkgewor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5lclRleHQgPSBtZXNzYWdlICsg
IlxuIjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBvblNjcm9sbEVuZChldmVudCkgeworICAgIGlmIChl
dmVudC5jYW5jZWxhYmxlIHx8IGV2ZW50LmJ1YmJsZXMpIHsKKyAgICAgICAgZmluaXNoZWQoIkZB
SUwsIGNhbmNlbGFibGUgYW5kIGJ1YmJsZXMgb2YgYW4gZWxlbWVudCBzY3JvbGxlbmQgZXZlbnQg
c2hvdWxkIGJlIGZhbHNlLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdmFyIHNj
cm9sbGVuZF9wb3NpdGlvbiA9IHRhcmdldF9kaXYuc2Nyb2xsVG9wOworICAgIGlmIChzY3JvbGxl
bmRfcG9zaXRpb24gPD0gMCkKKyAgICAgICAgZmluaXNoZWQoIkZBSUwsIHRhcmdldF9kaXYgZGlk
IG5vdCBzY3JvbGwuIik7CisKKyAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgaWYgKHNj
cm9sbGVuZF9wb3NpdGlvbiA9PSB0YXJnZXRfZGl2LnNjcm9sbFRvcCkKKyAgICAgICAgICAgIGZp
bmlzaGVkKCJQQVNTIFRlc3QgZm9yIHN0YXRlbGVzcyB3aGVlbCBzY3JvbGxpbmcgc2Nyb2xsZW5k
IGV2ZW50LiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmaW5pc2hlZCgiRkFJTCwgdGFy
Z2V0X2RpdidzIHNjcm9sbCBwb3NpdGlvbiBzaG91bGRuJ3QgY2hhbmdlIGFmdGVyIGdldHRpbmcg
c2Nyb2xsZW5kIGV2ZW50LiIpOworICAgIH0sIDMwMCk7Cit9CisKK2Z1bmN0aW9uIG9uVW5leHBl
Y3RlZFNjcm9sbEVuZCgpIHsKKyAgICBmaW5pc2hlZCgiRkFJTCwgd2luZG93IGdvdCB1bmV4cGVj
dGVkIHNjcm9sbGVuZCBldmVudCIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlm
ICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBm
aW5pc2hlZCgiRkFJTCwgZXZlbnRTZW5kZXIgb3IgdGVzdFJ1bm5lciBhcmUgbm90IHN1cHBvcnRl
ZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgLy8gTWFrZSBzdXJl
IHRoYXQgbm8gc2Nyb2xsZW5kIGV2ZW50IGlzIHNlbnQgdG8gd2luZG93LgorICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLCBvblVuZXhwZWN0ZWRTY3JvbGxFbmQpOworICAg
IHRhcmdldF9kaXYuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwgb25TY3JvbGxFbmQpOwor
CisgICAgLy8gVGVzdCB3aGVlbCBldmVudCB3aXRoIHN0YXRlbGVzcyBzY3JvbGwuCisgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMjAsIDIwKTsKKyAgICBldmVudFNlbmRlci5tb25pdG9yV2hl
ZWxFdmVudHMoKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICJub25lIiwgIm5vbmUiKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTIwLCAibm9uZSIsICJub25l
Iik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0yMCwgIm5vbmUiLCAibm9uZSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAibm9uZSIsICJub25lIik7Cit9Cis8
L3NjcmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVsLXNjcm9s
bC13aXRoLXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9s
bGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBlZmQ3ZWJhMGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVs
LXNjcm9sbC13aXRoLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgdGVz
dCBmb3Igd2hlZWwgc2Nyb2xsaW5nIHNjcm9sbGVuZCBldmVudC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci13aGVlbC1zY3JvbGwtd2l0
aC1zdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZv
ci13aGVlbC1zY3JvbGwtd2l0aC1zdGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLmJmNjMzOGQ5NDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVsLXNjcm9sbC13aXRoLXN0YXRlLmh0
bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgI3RhcmdldERpdiB7CisgICAgICAg
ICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAg
ICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgfQorCisgICAgICAgICNpbm5lckRpdiB7Cisg
ICAgICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAg
ICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25s
b2FkPXJ1blRlc3QoKT4KKyAgICA8ZGl2IGlkPSJ0YXJnZXREaXYiPgorICAgICAgICA8ZGl2IGlk
PSJpbm5lckRpdiI+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9Imxv
ZyI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorICAgIHZhciB0YXJnZXRfZGl2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldERpdicpOworCisgICAgZnVuY3Rpb24gZmluaXNoZWQo
bWVzc2FnZSkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJU
ZXh0ID0gbWVzc2FnZSArICJcbiI7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IG9uU2Nyb2xsRW5kKGV2ZW50KSB7CisgICAgICAgIGlmIChldmVudC5jYW5jZWxhYmxlIHx8IGV2
ZW50LmJ1YmJsZXMpIHsKKyAgICAgICAgICAgIGZpbmlzaGVkKCJGQUlMLCBjYW5jZWxhYmxlIGFu
ZCBidWJibGVzIG9mIGFuIGVsZW1lbnQgc2Nyb2xsZW5kIGV2ZW50IHNob3VsZCBiZSBmYWxzZS4i
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBzY3JvbGxl
bmRfcG9zaXRpb24gPSB0YXJnZXRfZGl2LnNjcm9sbFRvcDsKKyAgICAgICAgaWYgKHNjcm9sbGVu
ZF9wb3NpdGlvbiA8PSAwKSB7CisgICAgICAgICAgICBmaW5pc2hlZCgiRkFJTCwgdGFyZ2V0X2Rp
diBkaWQgbm90IHNjcm9sbC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgaWYgKHNjcm9sbGVuZF9wb3Np
dGlvbiA9PSB0YXJnZXRfZGl2LnNjcm9sbFRvcCkKKyAgICAgICAgICAgICAgICBmaW5pc2hlZCgi
UEFTUyB0ZXN0IGZvciB3aGVlbCBzY3JvbGxpbmcgc2Nyb2xsZW5kIGV2ZW50LiIpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZpbmlzaGVkKCJGQUlMLCB0YXJnZXQgc2Nyb2xs
IHBvc2l0aW9uIHNob3VsZG4ndCBjaGFuZ2UgYWZ0ZXIgZ2V0dGluZyBzY3JvbGxlbmQgZXZlbnQu
Iik7CisgICAgICAgIH0sIDMwMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25VbmV4cGVjdGVk
U2Nyb2xsRW5kKCkgeworICAgICAgICBmaW5pc2hlZCgiRkFJTCwgd2luZG93IGdvdCB1bmV4cGVj
dGVkIHNjcm9sbGVuZCBldmVudCIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CisgICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgZmluaXNoZWQoIkZBSUwsIGV2ZW50U2VuZGVyIG9yIHRlc3RSdW5uZXIg
YXJlIG5vdCBzdXBwb3J0LiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCisgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIHNjcm9sbGVuZCBldmVu
dCBpcyBzZW50IHRvIHdpbmRvdy4KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNj
cm9sbGVuZCIsIG9uVW5leHBlY3RlZFNjcm9sbEVuZCk7CisgICAgICAgIHRhcmdldF9kaXYuYWRk
RXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwgb25TY3JvbGxFbmQpOworCisgICAgICAgIC8vIFRl
c3Qgd2hlZWwgZXZlbnQgd2l0aCBzdGF0ZXMgc2Nyb2xsLgorICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbygyMCwgMjApOworICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVu
dHMoKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAiYmVnYW4iLCAibm9uZSIpOworICAgICAgICBldmVudFNlbmRlci5t
b3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwg
Im5vbmUiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImNoYW5n
ZWQiLCAibm9uZSIpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgImVuZGVkIiwgIm5vbmUiKTsKKyAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAibm9u
ZSIsICJiZWdpbiIpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJub25lIiwgImNvbnRpbnVlIik7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAi
bm9uZSIsICJlbmQiKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAzZjRjNjYxOTE5Li45NjQy
ZjFjYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0w
NC0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgwMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiBGcsOpZMOpcmljIFdhbmcn
cyBwYXRjaC4KKworICAgICAgICBBZGQgRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMjAtMDct
MDkgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MjYyMzAyKTogSVRNTEtpdCBkZWJ1Z2dhYmxlcyBpbiBsaXN0aW5ncyBhcmUgbWlzc2luZyBhIHRp
dGxlLCB1c2UgVVVJRCBpbnN0ZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI4MGMzOWE5MzAuLjRiM2I4Y2U3OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMjAtMDctMjEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb2YgdXNl
ciBzY3JvbGxpbmcgb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDg4MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIwMjAtMDctMTAgIFhh
YmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1N0cmVhbWVyXVtFTUVdW09wZW5DRE1dIEltcGxlbWVudCBPcGVuQ0RNIHN1cHBvcnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBmODZlYjBhMWI4Li5jYTk5YzZjMDY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC0zNjUsNiArMzY1LDEwIEBACiAj
ZGVmaW5lIEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggMQogI2VuZGlmCiAKKyNpZiAh
ZGVmaW5lZChFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9PVkVSU0NS
T0xMX0VWRU5UUyAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVF
U1QpCiAjZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgMQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZmNhYzUyMTA2OS4uNjFjZGQ5M2RiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNCBAQAor
MjAyMC0wNy0yMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbGVuZCBldmVudCBvZiB1c2VyIHNjcm9sbGluZyBvbiBN
YWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgx
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggc3VwcG9ydHMgc2Nyb2xsZW5kIGV2ZW50cyBmb3IgdGhlIGZvbGxvd2luZyB1c2VyIHNj
cm9sbHMgb24gTWFjLgorICAgICAgICAxLiBXaGVlbCBldmVudCBzY3JvbGw6IEZvciB3aGVlbCBl
dmVudCB3aXRoIHN0YXRlLCBub3Qgb25seSBpdCBnZW5lcmF0ZXMgdXNlciBzY3JvbGxpbmcsIGJ1
dCBhbHNvIGl0IG1pZ2h0CisgICAgICAgIGdlbmVyYXRlIG1vbWVudHVtIHNjcm9sbGluZywgUnVi
YmVyQmFuZCwgb3IgdHJpZ2dlciBzY3JvbGxTbmFwLiBJbiBvcmRlciB0byBkZXRlY3QgdGhlIGVu
ZCBvZiBhbGwgdGhlc2Ugc2Nyb2xsIGFjdGlvbnMsCisgICAgICAgIHdlIHN0YXJ0IGEgcmVwZWF0
aW5nIHRpbWVyIChtX2RldGVjdFNjcm9sbGVuZFRpbWVyKSB3aGVuIGdldHMgdGhlIFVzZXJTY3Jv
bGxFbmQgc3RhdHVzLiBBbmQgZmlyZSBzY3JvbGxlbmQgZXZlbnRzCisgICAgICAgIHdoZW4gYWxs
IHRoZSBzY3JvbGwgYWN0aW9ucyBzdG9wLiBGb3Igc3RhdGVsZXNzIHdoZWVsIGV2ZW50IHdoaWNo
IGlzIGdlbmVyYXRlZCBieSBtb3VzZSwgc2Nyb2xsZW5kIGNvdWxkbid0IGJlIGRldGVjdGVkCisg
ICAgICAgIGJ5IHdoZWVsIGV2ZW50cyBzdGF0ZSwgc28gd2Ugc3RhcnQgYSBvbmUtc2hvdCB0aW1l
ciAobV9kZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmRUaW1lcikuIElmIG5vIG5ldyBzdGF0ZWxlc3Mg
d2hlZWwgc2Nyb2xsCisgICAgICAgIGdlbmVyYXRlZCBpbiA3NTBtcywgZmlyZSBzY3JvbGxlbmQg
ZXZlbnQuCisgICAgICAgIDIuIFNjcm9sbGJhciBzY3JvbGw6IEZvciBwcmVzc2luZyBzY3JvbGxi
YXIgc2Nyb2xsaW5nLCBpdCdzIHRyaWdnZXJlZCBieSBtX3Njcm9sbFRpbWVyLiBTbyBmaXJlIHNj
cm9sbGVuZCBldmVudCB3aGVuCisgICAgICAgIG1fc2Nyb2xsVGltZXIgZmlyZXMgb3Igc3RvcHMu
IEZvciBkcmFnZ2luZyB0aHVtYiBzY3JvbGxpbmcsIGl0J3MgdHJpZ2dlcmVkIGJ5IG1vdXNlIG1v
dmUuIFNvIGZpcmUgc2Nyb2xsZW5kIGV2ZW50IHdoZW4KKyAgICAgICAgbW91c2UgdXAuCisgICAg
ICAgIDMuIEtleWJvYXJkIHNjcm9sbDogVGhlIHNjcm9sbCBhY3Rpb24gZW5kIGlzIHNldCB0byBS
ZW5kZXJMYXllcjo6c2Nyb2xsIG9yIFNjcm9sbFZpZXc6OnNjcm9sbC4KKyAgICAgICAgNC4gRHJh
Z2dpbmcgc2Nyb2xsOiBUaGUgbW91c2UgZHJhZ2dpbmcgc2Nyb2xsIGlzIHRyaWdnZXJlZCBieSBt
X2F1dG9zY3JvbGxUaW1lciBpbiBBdXRvc2Nyb2xsQ29udHJvbGxlci4gU28gZmlyZSBzY3JvbGxl
bmQKKyAgICAgICAgZXZlbnQgd2hlbiBtX2F1dG9zY3JvbGxUaW1lciBlbmRzLCBpdCB3aWxsIGNh
bGwgUmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbC4KKworICAgICAgICBTb21lIHVzZXIgc2Nyb2xs
IGFjdGlvbnMgbWlnaHQgbm90IGFjdHVhbGx5IGdlbmVyYXRlIHNjcm9sbGluZywgZm9yIGluc3Rh
bmNlLCBwcmVzc2luZyBvbiB0aGUgc2Nyb2xsYmFyIHRodW1iLiBBbmQgRnJhbWVWaWV3CisgICAg
ICAgIHNjcm9sbCBpcyBhc3luY2hyb25vdXMsIHNvIHRoZSBzY3JvbGxlbmQgZXZlbnRzIHNob3Vs
ZCBiZSBmaXJlZCB3aGVuIHNjcm9sbCBwb3NpdGlvbiBhY3R1YWxseSBjaGFuZ2VkIG5vdCB3aGVu
IHNjcm9sbCBhY3Rpb25zCisgICAgICAgIHN0b3AuIFNvIGN1cnJlbnQgYXBwcm9hY2ggaXMgdGhh
dCBTY3JvbGxhYmxlQXJlYSByZXN0b3JlcyB0aGUgcmVxdWVzdGVkIHVzZXIgc2Nyb2xsIHBvc2l0
aW9ucyB3aGljaCBpbmRpY2F0ZSB0aGF0IGl0IHdpbGwgc2Nyb2xsLiAKKyAgICAgICAgV2hlbiB0
aGUgYWJvdmUgc2Nyb2xsIGFjdGlvbnMgc3RvcCwgbm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgp
IGlzIGNhbGxlZCBhbmQgd2lsbCBzZXQgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uIHRy
dWUuCisgICAgICAgIEFmdGVyIHRoYXQsIFNjcm9sbGFibGVBcmVhIHdpbGwgY2hlY2tVc2VyU2Ny
b2xsRW5kUG9zaXRpb24gd2hlbiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGFjdHVhbGx5IGNoYW5nZWQu
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVy
YmFuZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9y
LXN0YXRlbGVzcy13aGVlbC1zY3JvbGwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMv
c2Nyb2xsZW5kLWV2ZW50LWZvci13aGVlbC1zY3JvbGwtd2l0aC1zdGF0ZS5odG1sCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbW1v
blRlYXJkb3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRQZW5kaW5nU2Nyb2xs
RW5kRXZlbnRUYXJnZXQpOiBBcHBlbmQgdGhlIHRhcmdldHMgdG8gbV9wZW5kaW5nU2Nyb2xsRW5k
RXZlbnRUYXJnZXRMaXN0LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJ1blNjcm9sbFN0
ZXBzKTogRGlzcGF0Y2ggc2Nyb2xsZW5kIGV2ZW50IGZvciBlYWNoIHRhcmdldC4KKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDogQWRkIG1fcGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlzdCB3
aGljaCBrZWVwcyB0aGUgc2Nyb2xsZW5kIGV2ZW50IHRhcmdldHMuCisgICAgICAgICogcGFnZS9E
T01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxUbyBjb25z
dCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKTogRm9yIEZyYW1lVmlldyBz
Y3JvbGwgaXMgYXN5bmNocm9ub3VzLCB3ZSBzYXZlIG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3Np
dGlvbiwKKyAgICAgICAgdGhlbiBjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbiB3aGVuIEZyYW1l
VmlldyBhY3R1YWxseSBzY3JvbGxzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjphZGRQ
ZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQpOiBBZGQgRG9jdW1lbnQgdG8gbV9wZW5kaW5nU2Ny
b2xsZW5kRXZlbnRUYXJnZXRMaXN0IGluIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKTogU3RvcmVzIHRoZSB1c2Vy
IHNjcm9sbCBwb3NpdGlvbiwgc28gdGhhdCBpdCBjYW4gY2hlY2sgaXQgd2hlbiB1c2VyIHNjcm9s
bGluZyBmaW5pc2hlcy4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bm90aWZ5VXNlclNj
cm9sbEFjdGlvbkVuZCk6IE5vdGlmeSB0aGUgc2Nyb2xsIGFjdGlvbiBoYXMgZW5kZWQsIHdlIGNh
biBzdGFydCB0byBjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbigpLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3OjpjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbik6IENvbXBhcmUgY3VycmVu
dCBzY3JvbGwgcG9zaXRpb24gYW5kIG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbiwgaWYg
dGhleSBhcmUgc2FtZQorICAgICAgICB3aGljaCBpbmRpY2F0ZXMgdGhhdCB0aGUgc2Nyb2xsIGVu
ZHMuIFRoZW4gYWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KCkuCisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6Om5vdGlmeVNjcm9sbERpZEVuZCk6IE5vdGlmeSB0aGUgY3VycmVudCBzY3JvbGwgZW5kcy4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0
by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y2FuSGFuZGxlV2hlZWxF
dmVudCBjb25zdCk6IFRoZSBzdGF0ZWxlc3Mgd2hlZWwgZXZlbnQgZG9lc24ndCB0cmlnZ2VyIHJ1
YmJlci1iYW5kLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om5vdGlmeVNj
cm9sbERpZEVuZCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Ny
b2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpub3RpZnlTY3JvbGxE
aWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGgu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yOjppc1Njcm9sbEFuaW1hdGlvbkhlbHBlckluUHJvZ3Jl
c3MpOiBUbyBpbmRpY2F0ZSB0aGF0IFNjcm9sbEFuaW1hdGlvbkhlbHBlciBpcyBpbiBwcm9ncmVz
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OnNjcm9sbFRvKTogY2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24oKSB3aGVu
IG1fc2Nyb2xsUG9zaXRpb24gYWN0dWFsbHkgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKTogc2V0UmVxdWVzdGluZ1VzZXJTY3JvbGxQb3Np
dGlvbiBmb3IgdXNlciBzY3JvbGxzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Ny
b2xsKTogS2V5Ym9hcmQgc2Nyb2xsIHNjcm9sbGVuZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Ny
b2xsT2Zmc2V0RnJvbUFuaW1hdGlvbik6IHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24g
Zm9yIHVzZXIgc2Nyb2xscy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmFkZFBlbmRpbmdTY3JvbGxFbmRFdmVu
dFRhcmdldCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldFJl
cXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGFibGVBcmVhOjpub3RpZnlVc2VyU2Nyb2xsQWN0aW9uRW5kKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24pOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsYmFyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCk6IG5vdGlmeVVzZXJTY3JvbGxBY3Rp
b25FbmQgaWYgbV9zY3JvbGxUaW1lciBpcyBub3QgYWN0aXZlLgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsYmFyOjpzdG9wVGltZXJJZk5lZWRlZCk6IG5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQg
d2hlbiBtX3Njcm9sbFRpbWVyIHN0b3BwZWQKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xpZW50
Ojpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9T
Y3JvbGxDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6
aGFuZGxlV2hlZWxFdmVudCk6IFN0YXJ0IHRoZSB0aW1lciBhdCBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUVuZGVkIHBocmFzZSwgYW5kIHN0b3AgaXQKKyAgICAgICAgYXQgUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2VCZWdhbiBwaHJhc2UuIHNjaGVkdWxlRGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kIGlm
IGl0J3Mgc3RhdGVsZXNzIHNjcm9sbCBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXI6OnNjaGVkdWxlRGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kKTogQ2FsbCBzdGFydE9u
ZVNob3QgNzUwbXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RT
dGF0ZWxlc3NTY3JvbGxlbmRUaW1lckZpcmVkKTogQ2FsbCBzdGFydERldGVjdFNjcm9sbGVuZFRp
bWVyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c3RhcnREZXRlY3RTY3Jv
bGxlbmRUaW1lcik6IFN0YXJ0IHRoZSB0aW1lciwgcmVwZWF0aW5nIDEvNjAgcworICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c3RvcERldGVjdFNjcm9sbGVuZFRpbWVyKTogU3Rv
cCB0aGUgdGltZXIgYW5kIG5vdGlmeVNjcm9sbERpZEVuZC4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbENvbnRyb2xsZXI6OmRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQpOiBJZiBSdWJiZXJCYW5k
LCBtb21lbnR1bVNjcm9sbCBhbmQgc2Nyb2xsU25hcCBpcyBub3QgaW4gcHJvZ3Jlc3MsIHN0b3Ag
dGhlIHRpbWVyLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwpOiBTYXZlIG1fcmVxdWVzdGluZ1Njcm9s
bFBvc2l0aW9uIGZvciBGcmFtZVZpZXcgbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgc2Nyb2xsLiBt
X3JlcXVlc3RpbmdTY3JvbGxQb3NpdGlvbgorICAgICAgICBpcyB1c2VkIHRvIGRldGVjdCBpZiBT
Y3JvbGxBbmltYXRpb25IZWxwZXIgZW5kcy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yTWFjOjppc1Njcm9sbEFuaW1hdGlvbkhlbHBlckluUHJvZ3Jlc3MpOiBJZiBjdXJyZW50IHNj
cm9sbCBwb3NpdGlvbiBlcXVhbHMgdG8gbV9yZXF1ZXN0aW5nU2Nyb2xsUG9zaXRpb24sIGl0IG1l
YW5zCisgICAgICAgIFNjcm9sbEFuaW1hdGlvbkhlbHBlciBoYXMgZW5kZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OnN0b3BBdXRvc2Nyb2xsKTogbm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCBmb3IgZHJh
Z2dpbmcgc2Nyb2xsLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6c3RvcEF1dG9zY3JvbGwpOiBEZWxldGVkLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2V0U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNj
cm9sbFRvT2Zmc2V0KTogc2V0UmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbiBmb3IgdXNlciBz
Y3JvbGxzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKTogY2hlY2tV
c2VyU2Nyb2xsRW5kUG9zaXRpb24gd2hlbiBSZW5kZXJMYXllciBzY3JvbGwgcG9zaXRpb24gYWN0
dWFsbHkgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0
VG9WaXNpYmxlKTogVGhlIHNjcm9sbFR5cGUgaW4gRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
biBpcyBhbHdheXMgcHJvZ3JhbW1hdGljLCBzbyB3ZSBuZWVkIHRvCisgICAgICAgIHNldFJlcXVl
c3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gZm9yIHVzZXIgc2Nyb2xscyBoZXJlLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbCk6IG5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQg
Zm9yIEtleWJvYXJkIHNjcm9sLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgor
CisyMDIwLTA0LTA5ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbCBldmVudHMgcGFyc2luZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODAyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIEZyw6lkw6ly
aWMgV2FuZydzIHBhdGNoLgorCisgICAgICAgIFBhcnNlIG9ub3ZlcnNjcm9sbC9zY3JvbGxlbmQg
YXR0cmlidXRlIGFuZCBvdmVyc2Nyb2xsL292ZXJzY3JvbGwgZXZlbnQgbmFtZS4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1l
cy5oOgorICAgICAgICAqIGRvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbDoKKyAgICAgICAgKiBo
dG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpjcmVhdGVFdmVudEhhbmRsZXJOYW1l
TWFwKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisKIDIwMjAtMDctMTAgIFphbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtGbG9hdHNdIE5vcm1h
bCBmbG93IGVsZW1lbnQgdGhhdCBlc3RhYmxpc2hlcyBhIG5ldyBibG9jayBmb3JtYXR0aW5nIGNv
bnRleHQgbXVzdCBub3Qgb3ZlcmxhcCB0aGUgbWFyZ2luIGJveCBvZiBhbnkgZmxvYXRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZwppbmRleCA4NGRjZDVlYzE5Li45ODYwNDdiMTA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNC0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVu
QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRz
IHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAg
ICBCYXNlZCBvbiBGcsOpZMOpcmljIFdhbmcncyBwYXRjaC4KKworICAgICAgICBBZGQgRU5BQkxF
X09WRVJTQ1JPTExfRVZFTlRTLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisKIDIwMjAtMDctMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgogCiAgICAgICAgIE11bHRpcGxleCB0aGUgSElEIGFuZCBHYW1lQ29udHJvbGxlciBn
YW1lcGFkIHByb3ZpZGVycyBvbiBNYWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggYWMzOTY2N2RjZC4uYWI2NDJjOWQwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApA
QCAtMzIwLDYgKzMyMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtYXRjaGlu
Z0VsZW1lbnRJbkZsYXRUcmVlKSBcCiAgICAgbWFjcm8obWVkaWFTdHJlYW1UcmFja0NvbnN0cmFp
bnRzKSBcCiAgICAgbWFjcm8ob3BlbkRhdGFiYXNlKSBcCisgICAgbWFjcm8ob25vdmVyc2Nyb2xs
KSBcCisgICAgbWFjcm8ob25zY3JvbGxlbmQpIFwKICAgICBtYWNybyhvbnRvdWNoY2FuY2VsKSBc
CiAgICAgbWFjcm8ob250b3VjaGVuZCkgXAogICAgIG1hY3JvKG9udG91Y2htb3ZlKSBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCA1YjYyZTJkOTYwLi40MzlmMWQwNjI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTgwNyw2ICs4MDcsMTAgQEAgdm9pZCBEb2N1bWVudDo6Y29tbW9u
VGVhcmRvd24oKQogICAgIGlmIChtX3RpbWVsaW5lc0NvbnRyb2xsZXIpCiAgICAgICAgIG1fdGlt
ZWxpbmVzQ29udHJvbGxlci0+ZGV0YWNoRnJvbURvY3VtZW50KCk7CiAKKyNpZiBFTkFCTEUoT1ZF
UlNDUk9MTF9FVkVOVFMpCisgICAgbV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0ID0g
bnVsbHB0cjsKKyNlbmRpZgorCiAgICAgbV90aW1lbGluZSA9IG51bGxwdHI7CiB9CiAKQEAgLTQx
MDksNiArNDExMywyNiBAQCB2b2lkIERvY3VtZW50OjphZGRQZW5kaW5nU2Nyb2xsRXZlbnRUYXJn
ZXQoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHRhcmdldHMuYXBwZW5kKHRhcmdldCk7CiB9
CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lkIERvY3VtZW50OjphZGRQZW5k
aW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQoreworICAgIGlm
ICghc2V0dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoIW1fcGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlzdCkKKyAgICAgICAg
bV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0ID0gbWFrZVVuaXF1ZTxQZW5kaW5nU2Ny
b2xsRXZlbnRUYXJnZXRMaXN0PigpOworCisgICAgYXV0byYgdGFyZ2V0cyA9IG1fcGVuZGluZ1Nj
cm9sbEVuZEV2ZW50VGFyZ2V0TGlzdC0+dGFyZ2V0czsKKyAgICBpZiAodGFyZ2V0cy5maW5kTWF0
Y2hpbmcoWyZdIChhdXRvJiBlbnRyeSkgeyByZXR1cm4gZW50cnkucHRyKCkgPT0gJnRhcmdldDsg
fSkgIT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0YXJnZXRzLmlzRW1w
dHkoKSkKKyAgICAgICAgc2NoZWR1bGVUaW1lZFJlbmRlcmluZ1VwZGF0ZSgpOworCisgICAgdGFy
Z2V0cy5hcHBlbmQodGFyZ2V0KTsKK30KKyNlbmRpZgorCiB2b2lkIERvY3VtZW50OjpzZXROZWVk
c1Zpc3VhbFZpZXdwb3J0U2Nyb2xsRXZlbnQoKQogewogICAgIGlmICghbV9uZWVkc1Zpc3VhbFZp
ZXdwb3J0U2Nyb2xsRXZlbnQpCkBAIC00MTM0LDYgKzQxNTgsMTggQEAgdm9pZCBEb2N1bWVudDo6
cnVuU2Nyb2xsU3RlcHMoKQogICAgICAgICBpZiAoYXV0byogd2luZG93ID0gZG9tV2luZG93KCkp
CiAgICAgICAgICAgICB3aW5kb3ctPnZpc3VhbFZpZXdwb3J0KCkuZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zY3JvbGxFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8s
IEV2ZW50OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAgICAgfQorCisjaWYgRU5BQkxFKE9WRVJTQ1JP
TExfRVZFTlRTKQorICAgIC8vIERlYWwgd2l0aCBzY3JvbGxlbmQgZXZlbnQuCisgICAgaWYgKG1f
cGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlzdCAmJiAhbV9wZW5kaW5nU2Nyb2xsRW5kRXZl
bnRUYXJnZXRMaXN0LT50YXJnZXRzLmlzRW1wdHkoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJF
QU0oRXZlbnRzLCBzdHJlYW0gPDwgIkRvY3VtZW50IiA8PCB0aGlzIDw8ICJzZW5kaW5nIHNjcm9s
bGVuZCBldmVudHMgdG8gcGVuZGluZyBzY3JvbGwgZXZlbnQgdGFyZ2V0cyIpOworICAgICAgICBh
dXRvIGN1cnJlbnRTY3JvbGxFbmRUYXJnZXRzID0gV1RGTW92ZShtX3BlbmRpbmdTY3JvbGxFbmRF
dmVudFRhcmdldExpc3QtPnRhcmdldHMpOworICAgICAgICBmb3IgKGF1dG8mIHRhcmdldCA6IGN1
cnJlbnRTY3JvbGxFbmRUYXJnZXRzKSB7CisgICAgICAgICAgICBhdXRvIGJ1YmJsZXMgPSB0YXJn
ZXQtPmlzRG9jdW1lbnROb2RlKCkgPyBFdmVudDo6Q2FuQnViYmxlOjpZZXMgOiBFdmVudDo6Q2Fu
QnViYmxlOjpObzsKKyAgICAgICAgICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zY3JvbGxlbmRFdmVudCwgYnViYmxlcywgRXZlbnQ6OklzQ2FuY2Vs
YWJsZTo6Tm8pKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIERvY3VtZW50
OjphZGRBdWRpb1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImIGF1ZGlvUHJvZHVjZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IGJiNTQ5NzAwZWUuLmNhYWZiMjhkYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCkBAIC0xMzgxLDYgKzEzODEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBydW5SZXNpemVTdGVw
cygpOwogCiAgICAgdm9pZCBhZGRQZW5kaW5nU2Nyb2xsRXZlbnRUYXJnZXQoQ29udGFpbmVyTm9k
ZSYpOworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2b2lkIGFkZFBlbmRpbmdT
Y3JvbGxFbmRFdmVudFRhcmdldChDb250YWluZXJOb2RlJik7CisjZW5kaWYKICAgICB2b2lkIHNl
dE5lZWRzVmlzdWFsVmlld3BvcnRTY3JvbGxFdmVudCgpOwogICAgIHZvaWQgcnVuU2Nyb2xsU3Rl
cHMoKTsKIApAQCAtMjA4Miw2ICsyMDg1LDkgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBQZW5k
aW5nU2Nyb2xsRXZlbnRUYXJnZXRMaXN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nU2Ny
b2xsRXZlbnRUYXJnZXRMaXN0PiBtX3BlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3Q7CisjaWYg
RU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nU2Ny
b2xsRXZlbnRUYXJnZXRMaXN0PiBtX3BlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdldExpc3Q7Cisj
ZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgSGFzaFNldDxIVE1MTWVkaWFF
bGVtZW50Kj4gbV9tZWRpYVN0cmVhbVN0YXRlQ2hhbmdlRWxlbWVudHM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50
TmFtZXMuaAppbmRleCAyODM1MzI4ZjMyLi43MzNjMDVmMTI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmgKQEAgLTE5MSw2ICsxOTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8o
b3JpZW50YXRpb25jaGFuZ2UpIFwKICAgICBtYWNybyhvdmVyY29uc3RyYWluZWQpIFwKICAgICBt
YWNybyhvdmVyZmxvd2NoYW5nZWQpIFwKKyAgICBtYWNybyhvdmVyc2Nyb2xsKSBcCiAgICAgbWFj
cm8ocGFnZWhpZGUpIFwKICAgICBtYWNybyhwYWdlc2hvdykgXAogICAgIG1hY3JvKHBhc3RlKSBc
CkBAIC0yMjcsNiArMjI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHJlc3Vs
dCkgXAogICAgIG1hY3JvKHJlc3VtZSkgXAogICAgIG1hY3JvKHNjcm9sbCkgXAorICAgIG1hY3Jv
KHNjcm9sbGVuZCkgXAogICAgIG1hY3JvKHNlYXJjaCkgXAogICAgIG1hY3JvKHNlY3VyaXR5cG9s
aWN5dmlvbGF0aW9uKSBcCiAgICAgbWFjcm8oc2Vla2VkKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
R2xvYmFsRXZlbnRIYW5kbGVycy5pZGwKaW5kZXggNzcwYWE5YzNhNy4uMWYyNzY1MzRmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbApAQCAtMTMyLDQgKzEz
Miw4IEBACiAgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPU1PVVNFX0ZPUkNFX0VWRU5U
U10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdG1vdXNlZm9yY2Vkb3duOwogICAgIFtO
b3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1NT1VTRV9GT1JDRV9FVkVOVFNdIGF0dHJpYnV0ZSBF
dmVudEhhbmRsZXIgb253ZWJraXRtb3VzZWZvcmNld2lsbGJlZ2luOwogICAgIFtOb3RFbnVtZXJh
YmxlLCBDb25kaXRpb25hbD1NT1VTRV9GT1JDRV9FVkVOVFNdIGF0dHJpYnV0ZSBFdmVudEhhbmRs
ZXIgb253ZWJraXRtb3VzZWZvcmNldXA7CisKKyAgICAvLyBFdmVudCBoYW5kbGVycyBmcm9tIE92
ZXJzY3JvbGwgRXZlbnRzIEFQSSAoaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLXNj
cm9sbGVuZC1ldmVudHMvKQorICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1PVkVSU0NS
T0xMX0VWRU5UUywgRW5hYmxlZEJ5U2V0dGluZz1PdmVyc2Nyb2xsRXZlbnRzXSBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9ub3ZlcnNjcm9sbDsKKyAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9u
YWw9T1ZFUlNDUk9MTF9FVkVOVFMsIEVuYWJsZWRCeVNldHRpbmc9T3ZlcnNjcm9sbEV2ZW50c10g
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnNjcm9sbGVuZDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IGNiMzA0OTA0MDguLmU4OGNkODg5ZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0yNjgsNiArMjY4
LDcgQEAgb25tb3VzZXdoZWVsCiBvbm9ubGluZQogb25vZmZsaW5lCiBvbm9yaWVudGF0aW9uY2hh
bmdlCitvbm92ZXJzY3JvbGwKIG9ucGFnZWhpZGUKIG9ucGFnZXNob3cKIG9ucGFzdGUKQEAgLTI4
OCw2ICsyODksNyBAQCBvbnJhdGVjaGFuZ2UKIG9ucmVzZXQKIG9ucmVzaXplCiBvbnNjcm9sbAor
b25zY3JvbGxlbmQKIG9uc2VhcmNoCiBvbnNlZWtlZAogb25zZWVraW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCmluZGV4IDY5OTE2ZWU2MDguLjkwMjg1ZDEwNWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0yOTAsNiArMjkwLDcgQEAgSFRNTEVsZW1lbnQ6OkV2
ZW50SGFuZGxlck5hbWVNYXAgSFRNTEVsZW1lbnQ6OmNyZWF0ZUV2ZW50SGFuZGxlck5hbWVNYXAo
KQogICAgICAgICAmb25tb3VzZW92ZXJBdHRyLmdldCgpLAogICAgICAgICAmb25tb3VzZXVwQXR0
ci5nZXQoKSwKICAgICAgICAgJm9ubW91c2V3aGVlbEF0dHIuZ2V0KCksCisgICAgICAgICZvbm92
ZXJzY3JvbGxBdHRyLmdldCgpLAogICAgICAgICAmb25wYXN0ZUF0dHIuZ2V0KCksCiAgICAgICAg
ICZvbnBhdXNlQXR0ci5nZXQoKSwKICAgICAgICAgJm9ucGxheUF0dHIuZ2V0KCksCkBAIC0zMDcs
NiArMzA4LDcgQEAgSFRNTEVsZW1lbnQ6OkV2ZW50SGFuZGxlck5hbWVNYXAgSFRNTEVsZW1lbnQ6
OmNyZWF0ZUV2ZW50SGFuZGxlck5hbWVNYXAoKQogICAgICAgICAmb25yZXNldEF0dHIuZ2V0KCks
CiAgICAgICAgICZvbnJlc2l6ZUF0dHIuZ2V0KCksCiAgICAgICAgICZvbnNjcm9sbEF0dHIuZ2V0
KCksCisgICAgICAgICZvbnNjcm9sbGVuZEF0dHIuZ2V0KCksCiAgICAgICAgICZvbnNlYXJjaEF0
dHIuZ2V0KCksCiAgICAgICAgICZvbnNlZWtlZEF0dHIuZ2V0KCksCiAgICAgICAgICZvbnNlZWtp
bmdBdHRyLmdldCgpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDE4YjM4MDkxZmEu
LmJiYjczN2Y3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE2OTQsNyArMTY5
NCwxMCBAQCB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBv
cHRpb25zLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZwogCiAgICAgLy8gVGhpcyBpcyBhbiBvcHRp
bWl6YXRpb24gZm9yIHRoZSBjb21tb24gY2FzZSBvZiBzY3JvbGxpbmcgdG8gKDAsIDApIHdoZW4g
dGhlIHNjcm9sbGVyIGlzIGFscmVhZHkgYXQgdGhlIG9yaWdpbi4KICAgICAvLyBJZiBhbiBhbmlt
YXRlZCBzY3JvbGwgaXMgaW4gcHJvZ3Jlc3MsIHRoaXMgb3B0aW1pemF0aW9uIGlzIHNraXBwZWQg
dG8gZW5zdXJlIHRoYXQgdGhlIGFuaW1hdGVkIHNjcm9sbCBpcyByZWFsbHkgc3RvcHBlZC4KLSAg
ICBpZiAodmlldy0+Y3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZp
b3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uICYmICFzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgp
ICYmICFzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQ
b3NpdGlvbigpID09IEludFBvaW50KDAsIDApKQorICAgIGlmICh2aWV3LT5jdXJyZW50U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24K
KyAgICAgICAgJiYgIXNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkKKyAgICAgICAgJiYgIXNj
cm9sbFRvT3B0aW9ucy50b3AudmFsdWUoKQorICAgICAgICAmJiB2aWV3LT5jb250ZW50c1Njcm9s
bFBvc2l0aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRv
Y3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDUxMjdiNDkwZjQuLmNkYmM2ZmQwMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTIyODYsMTAgKzIyODYsMTIgQEAgdm9pZCBGcmFtZVZp
ZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlv
biwgU2Nyb2xsQ2wKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBh
Z2UgJiYgcGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsQW5p
bWF0b3IoKS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS0+d2hlZWxFdmVudFRlc3RNb25p
dG9yKCkpOworCisgICAgU2Nyb2xsUG9zaXRpb24gbmV3U2Nyb2xsUG9zaXRpb24gPSAoIWRlbGVn
YXRlc1Njcm9sbGluZygpICYmIGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSA/
IGFkanVzdFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xs
UG9zaXRpb247CiAgICAgaWYgKGFuaW1hdGVkID09IEFuaW1hdGVkU2Nyb2xsOjpZZXMpCi0gICAg
ICAgIHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24o
c2Nyb2xsUG9zaXRpb24pLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBjbGFtcGluZyk7CisgICAgICAg
IHNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24obmV3
U2Nyb2xsUG9zaXRpb24pLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBjbGFtcGluZyk7CiAgICAgZWxz
ZQotICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwg
Y2xhbXBpbmcpOworICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihuZXdTY3Jv
bGxQb3NpdGlvbiwgY2xhbXBpbmcsIGFuaW1hdGVkKTsKIAogICAgIHNldEN1cnJlbnRTY3JvbGxU
eXBlKG9sZFNjcm9sbFR5cGUpOwogfQpAQCAtMzczMSw2ICszNzMzLDUyIEBAIHZvaWQgRnJhbWVW
aWV3OjpzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZz
ZXQsIFNjcm9sbFR5CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBl
KTsKIH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgRnJhbWVWaWV3Ojph
ZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKQoreworICAgIGlmIChEb2N1bWVudCogZG9j
dW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT5hZGRQZW5kaW5n
U2Nyb2xsRW5kRXZlbnRUYXJnZXQoKmRvY3VtZW50KTsKK30KKwordm9pZCBGcmFtZVZpZXc6OnNl
dFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0
aW9uKQoreworICAgIGlmICghZnJhbWUoKS5zZXR0aW5ncygpLm92ZXJzY3JvbGxFdmVudHNFbmFi
bGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3Np
dGlvbiA9IHBvc2l0aW9uOworfQorCit2b2lkIEZyYW1lVmlldzo6bm90aWZ5VXNlclNjcm9sbEFj
dGlvbkVuZCgpCit7CisgICAgaWYgKCFmcmFtZSgpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50
c0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pc1VzZXJTY3JvbGxBY3Rpb25F
bmQgPSB0cnVlOworICAgIGNoZWNrVXNlclNjcm9sbEVuZFBvc2l0aW9uKCk7Cit9CisKK3ZvaWQg
RnJhbWVWaWV3OjpjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbigpCit7CisgICAgaWYgKCFmcmFt
ZSgpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKHNjcm9sbEFuaW1hdG9yKCkuaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblBy
b2dyZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9yZXF1ZXN0aW5nVXNlclNj
cm9sbFBvc2l0aW9uKSB7CisgICAgICAgIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gZmFsc2U7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1faXNVc2VyU2Nyb2xsQWN0aW9u
RW5kIHx8IG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbi52YWx1ZSgpICE9IHNjcm9sbFBv
c2l0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGFkZFBlbmRpbmdTY3JvbGxFbmRFdmVu
dFRhcmdldCgpOworICAgIG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbiA9IFdURjo6bnVs
bG9wdDsKKyAgICBtX2lzVXNlclNjcm9sbEFjdGlvbkVuZCA9IGZhbHNlOworfQorI2VuZGlmCisK
IGZsb2F0IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZvckZpeGVkQ29udGVudChmbG9hdCBz
dGVwLCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGFnZSB8fCBv
cmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
aW5kZXggOWViMTk1ZGQ4Ni4uNDg4YTUwNjE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBA
IC02NzAsNiArNjcwLDE0IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9u
KCkgY29uc3QgZmluYWw7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdm9p
ZCBhZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKSBmaW5hbDsKKworICAgIHZvaWQgc2V0
UmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFs
OworICAgIHZvaWQgbm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgpIGZpbmFsOworICAgIHZvaWQg
Y2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24oKSBmaW5hbDsKKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IEZyYW1lVmlldyhGcmFtZSYpOwogCkBAIC05MTIsNiArOTIwLDExIEBAIHBy
aXZhdGU6CiAKICAgICBQYWdpbmF0aW9uIG1fcGFnaW5hdGlvbjsKIAorI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKKyAgICBPcHRpb25hbDxTY3JvbGxQb3NpdGlvbj4gbV9yZXF1ZXN0aW5n
VXNlclNjcm9sbFBvc2l0aW9uOworICAgIGJvb2wgbV9pc1VzZXJTY3JvbGxBY3Rpb25FbmQgeyBm
YWxzZSB9OworI2VuZGlmCisKICAgICBlbnVtIGNsYXNzIFZpZXdwb3J0UmVuZGVyZXJUeXBlIDog
dWludDhfdCB7IE5vbmUsIERvY3VtZW50LCBCb2R5IH07CiAgICAgVmlld3BvcnRSZW5kZXJlclR5
cGUgbV92aWV3cG9ydFJlbmRlcmVyVHlwZSB7IFZpZXdwb3J0UmVuZGVyZXJUeXBlOjpOb25lIH07
CiAgICAgU2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yIHsgRG9O
b3RQaW4gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAyMmM5ZjZhYjIzLi44NjQ4
ZWNmZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC05MzQsNiArOTM0LDEwIEBA
IGlzTG9nZ2VkSW5BUElFbmFibGVkOgogZW50ZXJLZXlIaW50RW5hYmxlZDoKICAgaW5pdGlhbDog
ZmFsc2UKIAorb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisgIGNv
bmRpdGlvbmFsOiBPVkVSU0NST0xMX0VWRU5UUworCiBsZWdhY3lHZXRVc2VyTWVkaWFFbmFibGVk
OgogICBpbml0aWFsOiBmYWxzZQogICBjb25kaXRpb25hbDogTUVESUFfU1RSRUFNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCmluZGV4IDYwZmI2Zjc5OTkuLmMyNzkzZDUyMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC05NDYsNiArOTQ2LDI5IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6cmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uCiAg
ICAgICAgIG1fcGFnZS0+cGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50KCktPmxvZ1Njcm9sbGluZ0V2
ZW50KFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQ6OlN3aXRjaGVkU2Ny
b2xsaW5nTW9kZSwgdGltZXN0YW1wLCByZWFzb25zLnRvUmF3KCkpOwogfQogCisjaWYgRU5BQkxF
KE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3Rp
ZnlTY3JvbGxEaWRFbmQoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoc2Ny
b2xsaW5nTm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHNjcm9sbGluZ05vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7
CisgICAgICAgIGZyYW1lVmlldy0+YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAg
ICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhRm9y
U2Nyb2xsaW5nTm9kZUlEKHNjcm9sbGluZ05vZGVJRCkpCisgICAgICAgIHNjcm9sbGFibGVBcmVh
LT5hZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5oCmluZGV4IGVkOTYwNTZiNmIuLmZjNjgwZGJlMWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmgKQEAgLTcxLDYgKzcxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcG9ydEV4cG9zZWRV
bmZpbGxlZEFyZWEoTW9ub3RvbmljVGltZSwgdW5zaWduZWQgdW5maWxsZWRBcmVhKTsKICAgICB2
b2lkIHJlcG9ydFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0NoYW5nZWQoTW9ub3RvbmljVGlt
ZSwgT3B0aW9uU2V0PFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uPik7CiAKKyNpZiBFTkFCTEUo
T1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlTY3JvbGxE
aWRFbmQoU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oCmluZGV4IDk2MzZjMGViYzUuLmE1NmUyN2Q4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTIxLDYgKzEy
MSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShT
Y3JvbGxpbmdOb2RlSUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSB7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3Jv
bGxEaWRFbmQoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAgICAgLy8gRm9yY2UgYWxs
IHNjcm9sbCBsYXllciBwb3NpdGlvbiB1cGRhdGVzIHRvIGhhcHBlbiBvbiB0aGUgbWFpbiB0aHJl
YWQuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5
ZXJQb3NpdGlvblVwZGF0ZXMoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAzMTg1ZDliYjg4Li44MzllMGIyZDFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xNTIsNiAr
MTUyLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShTY3JvbGxp
bmdOb2RlSUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSB7IH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxEaWRF
bmQoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlk
Q2hhbmdlKFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVy
dGljYWwpID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGMyYjFhOTk3
MjUuLmNhMDExMDc0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTE0NCw3ICsxNDQs
NyBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjYW5IYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IC8vIFdlIGFsd2F5cyBydWJiZXItYmFuZCB0aGUgbGF0Y2hlZCBub2RlLCBvciB0aGUgcm9vdCBu
b2RlLgotICAgIGlmIChpc0xhdGNoZWROb2RlKCkgfHwgaXNSb290Tm9kZSgpKQorICAgIGlmIChp
c0xhdGNoZWROb2RlKCkgfHwgKGlzUm9vdE5vZGUoKSAmJiAod2hlZWxFdmVudC5waGFzZSgpICE9
IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSB8fCB3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2Uo
KSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgCiAgICAgcmV0dXJuIGV2ZW50Q2FuU2Nyb2xsQ29udGVudHMod2hlZWxFdmVudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcAppbmRleCBjNjdjOTJlNjllLi41YTYzNzFiY2JlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAK
QEAgLTMyNyw2ICszMjcsMTggQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlE
aWRSZWZyZXNoKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICNlbmRpZgogfQogCisjaWYg
RU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om5v
dGlmeVNjcm9sbERpZEVuZChTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQoreworICAgIGlmICghbV9z
Y3JvbGxpbmdDb29yZGluYXRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFtzY3JvbGxpbmdDb29yZGluYXRvciA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3IsIG5vZGVJRF0geworICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+bm90aWZ5U2Nyb2xs
RGlkRW5kKG5vZGVJRCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgRU5BQkxFKFNDUk9M
TElOR19USFJFQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Ro
cmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDMyZGQ1YmM3YWYuLmVmZWI1MDNiZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5oCkBAIC03Miw2ICs3MiwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjdXJyZW50U25h
cFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250
YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5kKFNjcm9sbGluZ05v
ZGVJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIHZvaWQgcmVwb3J0RXhwb3NlZFVuZmlsbGVk
QXJlYShNb25vdG9uaWNUaW1lLCB1bnNpZ25lZCB1bmZpbGxlZEFyZWEpIG92ZXJyaWRlOwogICAg
IHZvaWQgcmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uaWNU
aW1lLCBPcHRpb25TZXQ8U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb24+KSBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKaW5kZXggZWFl
MDkzYjFlZi4uY2JhNmUzNzdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYy5oCkBAIC04Miw2ICs4MiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
U3RvcFJ1YmJlcmJhbmRTbmFwQW5pbWF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBhZGp1c3RTY3Jv
bGxQb3NpdGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSBmaW5hbDsKIAorI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKKyAgICB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgpIG92ZXJyaWRlOwor
I2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIEZsb2F0UG9pbnQgc2Ny
b2xsT2Zmc2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxPbkF4
aXMoU2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBkZWx0YSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IDE4ODY3Zjk3ZTMuLjcw
NjcwYjBlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjLm1tCkBAIC0zMzEsNiArMzMxLDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYzo6YWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzCiAgICAg
aW1tZWRpYXRlU2Nyb2xsQnkoY29uc3RyYWluZWRQb3NpdGlvbiAtIHNjcm9sbFBvc2l0aW9uKTsK
IH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6bm90aWZ5U2Nyb2xsRGlkRW5kKCkKK3sKKyAgICBzY3Jv
bGxpbmdUcmVlKCkubm90aWZ5U2Nyb2xsRGlkRW5kKHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdO
b2RlSUQoKSk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiBGbG9h
dFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNjcm9sbE9mZnNl
dCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
aW9uU21vb3RoLmNwcAppbmRleCAyY2E1NzhhMzBmLi41ZWZlZjk2MmIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKQEAgLTI4LDcg
KzI4LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9u
U21vb3RoLmgiCiAKKyNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
ICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggMWMwODBjYmE5YS4u
NDAzYmZjMGFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cApAQCAtMzA3LDUgKzMwNyw0IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250
YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKIHsKICAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Nj
cm9sbC0+dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKIH0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKaW5kZXggMWU0ZjQ5MjM0
Mi4uMmI2ZWRmYTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9yLmgiCiAj
aW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpIHx8IEVO
QUJMRShDU1NfU0NST0xMX1NOQVApCiAjaW5jbHVkZSAiU2Nyb2xsQ29udHJvbGxlci5oIgpAQCAt
MTMxLDYgKzEzMiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgaG9yaXpvbnRhbFNj
cm9sbGJhclN0YXRlRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0K
ICAgICB2aXJ0dWFsIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGluZygpIGNv
bnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VW
RU5UUykKKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNz
KCkgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVz
dE1vbml0b3IoUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBt
X3doZWVsRXZlbnRUZXN0TW9uaXRvciA9IHRlc3RNb25pdG9yOyB9CiAKICNpZiAoRU5BQkxFKENT
U19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkgJiYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2NDk0YzlmZTUyLi4w
ZTIyMjlmM2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDg3
LDYgKzQ4NywxMCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0
aW9uJiBuZXdQb3NpdGlvbikKIAogICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsK
IAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBjaGVja1VzZXJTY3JvbGxFbmRQ
b3NpdGlvbigpOworI2VuZGlmCisKICAgICBpZiAoc2Nyb2xsYmFyc1N1cHByZXNzZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC01MTQsNyArNTE4LDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojpjb21w
bGV0ZVVwZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogICAg
IHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKTsKIH0KIAotdm9pZCBTY3Jv
bGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9z
aXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBBbmltYXRlZFNjcm9sbC8qIGFuaW1hdGVk
Ki8pCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0
aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIEFuaW1hdGVkU2Ny
b2xsIC8qIGFuaW1hdGVkKi8pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9u
KTsKIApAQCAtNTM3LDE0ICs1NDEsMjMgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNjcm9sbEMKICAgICAg
ICAgdXBkYXRlU2Nyb2xsYmFycyhuZXdTY3JvbGxQb3NpdGlvbik7CiAKICAgICBzZXRTY3JvbGxC
ZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworCisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIGlmIChjdXJyZW50U2Nyb2xsVHlwZSgp
ID09IFNjcm9sbFR5cGU6OlVzZXIpCisgICAgICAgIHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9z
aXRpb24obmV3U2Nyb2xsUG9zaXRpb24pOworI2VuZGlmCiB9CiAKIGJvb2wgU2Nyb2xsVmlldzo6
c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5KQogewotICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICByZXR1cm4gcGxh
dGZvcm1TY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7Ci0KLSAgICByZXR1cm4gU2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICBib29sIHNjcm9s
bGVkID0gcGxhdGZvcm1XaWRnZXQoKSA/IHBsYXRmb3JtU2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVs
YXJpdHkpIDogU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsK
KyAgICBpZiAoc2Nyb2xsZWQpIHsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAg
ICAgIG5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFNjcm9sbFZpZXc6Omxv
Z2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwCmluZGV4IDVjZDI5N2NmODYuLmZjMTkyZWZiN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogCisjaW5jbHVkZSAiQ29udGFp
bmVyTm9kZS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCkBAIC0yMzQsMTAgKzIzNSwxNCBA
QCB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKGNvbnN0
IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zm
c2V0RnJvbUFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsKICAgICBTY3Jv
bGxQb3NpdGlvbiBwb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpOwot
ICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocG9zaXRpb24sIGN1cnJlbnRTY3Jv
bGxUeXBlKCkpKQotICAgICAgICByZXR1cm47CiAKLSAgICBzY3JvbGxQb3NpdGlvbkNoYW5nZWQo
cG9zaXRpb24pOworICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9u
LCBjdXJyZW50U2Nyb2xsVHlwZSgpKSkKKyAgICAgICAgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBv
c2l0aW9uKTsKKworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoY3VycmVu
dFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKQorICAgICAgICBzZXRSZXF1ZXN0aW5n
VXNlclNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGFi
bGVBcmVhOjp3aWxsU3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCmluZGV4IDZhZWU5YWM4YWUuLjRjZTZkYjVjNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMzcsNiArMzcsNyBAQCBjbGFzcyBUZXh0
U3RyZWFtOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENvbnRhaW5lck5vZGU7CiBj
bGFzcyBGbG9hdFBvaW50OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTGF5b3V0UG9p
bnQ7CkBAIC0zNTgsNiArMzU5LDE0IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIFN0cmlu
ZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExf
RVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBhZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQo
KSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9u
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVVzZXJT
Y3JvbGxBY3Rpb25FbmQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tVc2VyU2Nyb2xsRW5k
UG9zaXRpb24oKSB7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQg
U2Nyb2xsYWJsZUFyZWEoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5TY3JvbGxhYmxl
QXJlYSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKaW5kZXggYTZiNTgwNzM4
OS4uZTBjYTE0YzQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0x
NTcsNiArMTU3LDEwIEBAIHZvaWQgU2Nyb2xsYmFyOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIFdpZGdlCiB2b2lkIFNjcm9sbGJhcjo6
YXV0b3Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIGF1dG9zY3JvbGxQcmVzc2VkUGFydCh0aGVt
ZSgpLmF1dG9zY3JvbGxUaW1lckRlbGF5KCkpOworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5U
UykKKyAgICBpZiAoIW1fc2Nyb2xsVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9zY3JvbGxh
YmxlQXJlYS5ub3RpZnlVc2VyU2Nyb2xsQWN0aW9uRW5kKCk7CisjZW5kaWYKIH0KIAogc3RhdGlj
IGJvb2wgdGh1bWJVbmRlck1vdXNlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQpAQCAtMjE1LDYgKzIx
OSwxMCBAQCB2b2lkIFNjcm9sbGJhcjo6c3RvcFRpbWVySWZOZWVkZWQoKQogewogICAgIGlmICht
X3Njcm9sbFRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fc2Nyb2xsVGltZXIuc3RvcCgpOwor
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIG1fc2Nyb2xsYWJsZUFyZWEubm90
aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgpOworI2VuZGlmCiB9CiAKIFNjcm9sbERpcmVjdGlvbiBT
Y3JvbGxiYXI6OnByZXNzZWRQYXJ0U2Nyb2xsRGlyZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAppbmRleCA1MmYyOTUzMWMzLi44
ZjlkOTdjNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xs
Q29udHJvbGxlci5oCkBAIC05MSw2ICs5MSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGFkanVzdFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpID0gMDsKICNlbmRpZgog
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlT
Y3JvbGxEaWRFbmQoKSB7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRlZmVyV2hlZWxF
dmVudFRlc3RDb21wbGV0aW9uRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBj
b25zdCB7IC8qIERvIG5vdGhpbmcgKi8gfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXaGVlbEV2
ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6
OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJl
YXNvbikgY29uc3QgeyAvKiBEbyBub3RoaW5nICovIH0KIApAQCAtMTkzLDYgKzE5NywxMyBAQCBw
cml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykK
KyAgICB2b2lkIHNjaGVkdWxlRGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kKCk7CisgICAgdm9pZCBk
ZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgdm9pZCBzdGFydERldGVj
dFNjcm9sbGVuZFRpbWVyKCk7CisgICAgdm9pZCBzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsK
KyAgICB2b2lkIGRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKTsKKyNlbmRpZgogICAgIFNjcm9s
bENvbnRyb2xsZXJDbGllbnQmIG1fY2xpZW50OwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjE5
LDYgKzIzMCwxMiBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKKyAgICAvLyBGSVhNRTogc2Nyb2xsU25hcCBhbmQgc2Nyb2xsZW5kIGNh
biBzaGFyZSB0aGUgc2FtZSB0aW1lciBmb3Igc3RhdGVsZXNzIHNjcm9sbC4KKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVu
ZFRpbWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IG1fZGV0
ZWN0U2Nyb2xsZW5kVGltZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29s
IG1faW5TY3JvbGxHZXN0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW9tZW50dW1TY3JvbGxJ
blByb2dyZXNzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGZmZWM0NDU0NGIuLjEyMDJkMmFhN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpA
QCAtMTQ4LDEyICsxNDgsMTcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgbV9vdmVy
Zmxvd1Njcm9sbERlbHRhID0gRmxvYXRTaXplKCk7CiAKICAgICAgICAgc3RvcFNuYXBSdWJiZXJi
YW5kVGltZXIoKTsKLQorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAgc3Rv
cERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUVuZGVkKSB7CiAgICAgICAgIHNuYXBSdWJiZXJCYW5kKCk7CisjaWYgRU5BQkxFKE9WRVJT
Q1JPTExfRVZFTlRTKQorICAgICAgICBzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5k
aWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xNjYsNiArMTcxLDExIEBAIGJv
b2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyNpZiBF
TkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQ
bGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUgJiYgd2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkg
PT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKQorICAgICAgICBzY2hlZHVsZURldGVjdFN0
YXRlbGVzc1Njcm9sbGVuZCgpOworI2VuZGlmCisKICAgICBmbG9hdCBkZWx0YVggPSBtX292ZXJm
bG93U2Nyb2xsRGVsdGEud2lkdGgoKTsKICAgICBmbG9hdCBkZWx0YVkgPSBtX292ZXJmbG93U2Ny
b2xsRGVsdGEuaGVpZ2h0KCk7CiAKQEAgLTg1MSw2ICs4NjEsNjQgQEAgdm9pZCBTY3JvbGxDb250
cm9sbGVyOjpzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlc0Zvck9mZnNldChpbnQgeCwgaW50IHkp
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xs
Q29udHJvbGxlcjo6c2NoZWR1bGVEZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmQoKQoreworICAgIGlm
IChtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVyKSB7CisgICAgICAgIG1fZGV0ZWN0U3Rh
dGVsZXNzU2Nyb2xsZW5kVGltZXItPnN0b3AoKTsKKyAgICAgICAgbV9kZXRlY3RTdGF0ZWxlc3NT
Y3JvbGxlbmRUaW1lciA9IG51bGxwdHI7CisgICAgfQorICAgIHN0YXRpYyBjb25zdCBTZWNvbmRz
IHN0YXRlbGVzc1Njcm9sbEVuZERlbGF5ID0gNzUwX21zOworICAgIG1fZGV0ZWN0U3RhdGVsZXNz
U2Nyb2xsZW5kVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBk
ZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9kZXRl
Y3RTdGF0ZWxlc3NTY3JvbGxlbmRUaW1lci0+c3RhcnRPbmVTaG90KHN0YXRlbGVzc1Njcm9sbEVu
ZERlbGF5KTsKK30KKwordm9pZCBTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTdGF0ZWxlc3NTY3Jv
bGxlbmRUaW1lckZpcmVkKCkKK3sKKyAgICBtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVy
ID0gbnVsbHB0cjsKKyAgICBtX2NsaWVudC5ub3RpZnlTY3JvbGxEaWRFbmQoKTsKK30KKwordm9p
ZCBTY3JvbGxDb250cm9sbGVyOjpzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCkKK3sKKyAgICBp
ZiAobV9kZXRlY3RTY3JvbGxlbmRUaW1lcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGV0ZWN0
U2Nyb2xsZW5kVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBk
ZXRlY3RTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9kZXRlY3RTY3JvbGxl
bmRUaW1lci0+c3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsKK30KKwordm9pZCBTY3JvbGxDb250
cm9sbGVyOjpzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKQoreworICAgIGlmICghbV9kZXRlY3RT
Y3JvbGxlbmRUaW1lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQubm90aWZ5U2Ny
b2xsRGlkRW5kKCk7CisgICAgbV9kZXRlY3RTY3JvbGxlbmRUaW1lci0+c3RvcCgpOworICAgIG1f
ZGV0ZWN0U2Nyb2xsZW5kVGltZXIgPSBudWxscHRyOworfQorCit2b2lkIFNjcm9sbENvbnRyb2xs
ZXI6OmRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKQoreworICAgIGlmIChpc1J1YmJlckJhbmRJ
blByb2dyZXNzKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBp
ZiAobV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgIHJldHVybjsKKyNpZiBFTkFC
TEUoQ1NTX1NDUk9MTF9TTkFQKQorICAgIGlmIChtX3Njcm9sbFNuYXBUaW1lcikKKyAgICAgICAg
cmV0dXJuOworI2VuZGlmCisjZW5kaWYKKworICAgIHN0b3BEZXRlY3RTY3JvbGxlbmRUaW1lcigp
OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShSVUJCRVJfQkFORElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmgKaW5kZXggNjJiMmJkMjk5OS4uZDk1ZDg4OTUwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0MSw2ICsx
NDEsMTAgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgaG9yaXpvbnRhbFNjcm9sbGJhclN0YXRlRm9y
VGVzdGluZygpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRl
Rm9yVGVzdGluZygpIGNvbnN0IGZpbmFsOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRT
KQorICAgIGJvb2wgaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkgb3ZlcnJpZGU7
CisjZW5kaWYKKwogICAgIC8vIFNjcm9sbENvbnRyb2xsZXJDbGllbnQuCiAjaWYgRU5BQkxFKFJV
QkJFUl9CQU5ESU5HKQogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOwpA
QCAtMTU3LDkgKzE2MSwxNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBbHJlYWR5UGlubmVkSW5E
aXJlY3Rpb25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsRXZlbnRB
eGlzKSBjb25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAo
RU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkKKyAgICB2
b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBib29sIG1f
aGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxl
VXBkYXRlOwogICAgIEludFJlY3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IG1fcmVxdWVz
dGluZ1Njcm9sbFBvc2l0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
aW5kZXggNWY2NTMwM2NlYS4uZjMxYjkyNjQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNzgzLDExICs3ODMsMTIgQEAgYm9v
bCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0
aW9uLCBTY3JvbGxHcmFudWxhcmkKIHsKICAgICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQg
PSB0cnVlOwogCi0gICAgaWYgKCFzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgfHwg
IW1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkpCi0gICAgICAgIHJldHVy
biBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwg
bXVsdGlwbGllcik7Ci0KLSAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlQaXhlbCkKKyAg
ICBpZiAoIXNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSB8fCAhbV9zY3JvbGxhYmxl
QXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSB8fCBncmFudWxhcml0eSA9PSBTY3JvbGxCeVBp
eGVsKSB7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBtX3JlcXVlc3Rp
bmdTY3JvbGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKKyNlbmRpZgogICAgICAgICByZXR1cm4g
U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11
bHRpcGxpZXIpOworICAgIH0KIAogICAgIEZsb2F0UG9pbnQgY3VycmVudFBvc2l0aW9uID0gdGhp
cy0+Y3VycmVudFBvc2l0aW9uKCk7CiAgICAgRmxvYXRTaXplIGRlbHRhOwpAQCAtODEwLDYgKzgx
MSw5IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlv
biBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwgIiA8PCAiIGZyb20g
IiA8PCBjdXJyZW50UG9zaXRpb24gPDwgIiB0byAiIDw8IG5ld1Bvc2l0aW9uKTsKICAgICBbbV9z
Y3JvbGxBbmltYXRpb25IZWxwZXIgc2Nyb2xsVG9Qb2ludDpuZXdQb3NpdGlvbl07CisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIG1fcmVxdWVzdGluZ1Njcm9sbFBvc2l0aW9uID0g
bmV3UG9zaXRpb247CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTIxLDYgKzky
NSwxNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlhdGVTY3JvbGxUb1Bvc2l0aW9u
Rm9yU2Nyb2xsQW5pbWF0aW9uKGNvbnN0IEZsb2F0UAogICAgIGltbWVkaWF0ZVNjcm9sbFRvUG9z
aXRpb24obmV3UG9zaXRpb24pOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
Ym9vbCBTY3JvbGxBbmltYXRvck1hYzo6aXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNz
KCkKK3sKKyAgICBpZiAobV9yZXF1ZXN0aW5nU2Nyb2xsUG9zaXRpb24gJiYgc2Nyb2xsYWJsZUFy
ZWEoKS5zY3JvbGxQb3NpdGlvbigpICE9IHJvdW5kZWRJbnRQb2ludChtX3JlcXVlc3RpbmdTY3Jv
bGxQb3NpdGlvbi52YWx1ZSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX3JlcXVl
c3RpbmdTY3JvbGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisjZW5kaWYKKwogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5UG9zaXRpb25DaGFuZ2Vk
KGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiB7CiAgICAgbm90aWZ5Q29udGVudEFyZWFTY3JvbGxl
ZChkZWx0YSk7CkBAIC0xNDQ3LDYgKzE0NjIsMTMgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6
aW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAoRU5BQkxFKENTU19TQ1JPTExfU05BUCkg
fHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlm
eVNjcm9sbERpZEVuZCgpCit7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5hZGRQZW5kaW5nU2Nyb2xs
RW5kRXZlbnRUYXJnZXQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1
cGRhdGVTY3JvbGxlclN0eWxlKCkKIHsKICAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJs
YXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCmluZGV4IDAzMzdjMDBjNjcuLjgzMjA0NzI0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCkBAIC05ODksNiArOTg5LDE2IEBAIFJlbmRlckJveCogUmVuZGVy
Qm94OjpmaW5kQXV0b3Njcm9sbGFibGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1
cm4gaXM8UmVuZGVyQm94PihyZW5kZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVy
KSA6IG51bGxwdHI7CiB9CiAKK3ZvaWQgUmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCgpCit7Cisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIGlmIChpc1JlbmRlclZpZXcoKSAmJiBm
cmFtZSgpLnZpZXcoKSkKKyAgICAgICAgZnJhbWUoKS52aWV3KCktPm5vdGlmeVVzZXJTY3JvbGxB
Y3Rpb25FbmQoKTsKKyAgICBlbHNlIGlmIChsYXllcigpKQorICAgICAgICBsYXllcigpLT5ub3Rp
ZnlVc2VyU2Nyb2xsQWN0aW9uRW5kKCk7CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJCb3g6OnBh
blNjcm9sbChjb25zdCBJbnRQb2ludCYgc291cmNlKQogewogICAgIGlmIChsYXllcigpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGQwODdkM2Y2NGYuLjNlMjU2ZGFhMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQ3Myw3ICs0NzMsNyBAQCBv
dmVycmlkZTsKICAgICBib29sIGNhbkF1dG9zY3JvbGwoKSBjb25zdDsKICAgICBJbnRTaXplIGNh
bGN1bGF0ZUF1dG9zY3JvbGxEaXJlY3Rpb24oY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBj
b25zdDsKICAgICBzdGF0aWMgUmVuZGVyQm94KiBmaW5kQXV0b3Njcm9sbGFibGUoUmVuZGVyT2Jq
ZWN0Kik7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCk7CiAgICAgdmlydHVhbCB2b2lkIHBhblNjcm9sbChjb25z
dCBJbnRQb2ludCYpOwogCiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcldpdGhBdXRvQmVo
YXZpb3IoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IDRlNzE3NDUwNjIuLjFkMDYxMGNmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcApAQCAtMjU5MCwxMCArMjU5MCwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpz
Y3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZwogCiB2b2lkIFJlbmRlckxheWVyOjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQ
b3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcg
Y2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVkKQogeworICAgIGF1dG8gb2Zmc2V0ID0g
c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICBTY3JvbGxPZmZzZXQgbmV3
U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFt
cFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OwogICAgIGlmIChhbmltYXRlZCA9PSBBbmlt
YXRlZFNjcm9sbDo6WWVzKQotICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Ny
b2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwor
ICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Nyb2xsT2Zmc2V0LCBzY3Jv
bGxUeXBlLCBjbGFtcGluZyk7CiAgICAgZWxzZQotICAgICAgICBzY3JvbGxUb09mZnNldChzY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7Cisg
ICAgICAgIHNjcm9sbFRvT2Zmc2V0KG5ld1Njcm9sbE9mZnNldCwgc2Nyb2xsVHlwZSwgY2xhbXBp
bmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNv
bnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjYxOCwxNiArMjYyMCwy
MiBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQm
IHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBzYwogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNh
bmNlbEFuaW1hdGlvbnMoKTsKIAogICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0
ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNl
dChzY3JvbGxPZmZzZXQpIDogc2Nyb2xsT2Zmc2V0OworICAgIFNjcm9sbFBvc2l0aW9uIGNsYW1w
ZWRTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xs
T2Zmc2V0KTsKICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZz
ZXQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBj
dXJyZW50U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUp
OwogCi0gICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25G
cm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBzY3JvbGxUeXBlLCBjbGFtcGluZykpCisg
ICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY2xhbXBlZFNjcm9sbFBvc2l0aW9u
LCBzY3JvbGxUeXBlLCBjbGFtcGluZykpCiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFu
aW1hdGlvbihjbGFtcGVkU2Nyb2xsT2Zmc2V0LCBjbGFtcGluZyk7Ci0gICAgc2V0U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAorI2lm
IEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoY3VycmVudFNjcm9sbFR5cGUoKSA9
PSBTY3JvbGxUeXBlOjpVc2VyKQorICAgICAgICBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0
aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CisjZW5kaWYKKworICAgIHNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAgICAgc2V0
Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0KIApAQCAtMjc0OCw2ICsy
NzU2LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9u
JiBwb3NpdGlvbikKICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IHJlbmRlcmVyKCkuZWxlbWVu
dCgpKQogICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZFBlbmRpbmdTY3JvbGxFdmVudFRh
cmdldCgqZWxlbWVudCk7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgY2hl
Y2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24oKTsKKyNlbmRpZgorCiAgICAgaWYgKHNjcm9sbHNPdmVy
ZmxvdygpKQogICAgICAgICB2aWV3LmZyYW1lVmlldygpLmRpZENoYW5nZVNjcm9sbE9mZnNldCgp
OwogCkBAIC0yODAwLDcgKzI4MTIsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9W
aXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgIExh
eW91dFJlY3QgbmV3UmVjdCA9IGFic29sdXRlUmVjdDsKICAgICBGcmFtZVZpZXcmIGZyYW1lVmll
dyA9IHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpOwogICAgIGF1dG8qIHBhcmVudExheWVy
ID0gZW5jbG9zaW5nQ29udGFpbmluZ0Jsb2NrTGF5ZXIoKnRoaXMsIENyb3NzRnJhbWVCb3VuZGFy
aWVzOjpObyk7Ci0gICAgYm9vbCBhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyA9ICFyZW5kZXJlcigp
LmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuYXV0b3Njcm9sbEluUHJvZ3Jlc3MoKTsKKyAgICBib29s
IGF1dG9zY3JvbGxJblByb2dyZXNzID0gcmVuZGVyZXIoKS5mcmFtZSgpLmV2ZW50SGFuZGxlcigp
LmF1dG9zY3JvbGxJblByb2dyZXNzKCk7CiAKICAgICBpZiAoYWxsb3dzQ3VycmVudFNjcm9sbCgp
KSB7CiAgICAgICAgIC8vIERvbid0IHNjcm9sbCB0byByZXZlYWwgYW4gb3ZlcmZsb3cgbGF5ZXIg
dGhhdCBpcyByZXN0cmljdGVkIGJ5IHRoZSAtd2Via2l0LWxpbmUtY2xhbXAgcHJvcGVydHkuCkBA
IC0yODIwLDkgKzI4MzIsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJs
ZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgaWYg
KGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkgfHwgY3VycmVudFNjcm9sbEJl
aGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKSB7
CiAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgb2xkU2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0
KCk7CiAgICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xs
OjpObzsKLSAgICAgICAgICAgIGlmIChhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9v
dGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgYm94LT5lbGVtZW50KCkpKQorICAgICAgICAg
ICAgaWYgKCFhdXRvc2Nyb2xsSW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9u
cy5iZWhhdmlvciwgYm94LT5lbGVtZW50KCkpKQogICAgICAgICAgICAgICAgIGFuaW1hdGVkID0g
QW5pbWF0ZWRTY3JvbGw6OlllczsKLSAgICAgICAgICAgIHNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOworICAgICAgICAg
ICAgc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3Jv
bGxPZmZzZXQpLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwg
YW5pbWF0ZWQpOworICAgICAgICAgICAgaWYgKGF1dG9zY3JvbGxJblByb2dyZXNzKQorICAgICAg
ICAgICAgICAgIHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbE9m
ZnNldCk7CiAgICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFt
cGVkU2Nyb2xsT2Zmc2V0IC0gb2xkU2Nyb2xsT2Zmc2V0OwogICAgICAgICAgICAgbG9jYWxFeHBv
c2VSZWN0Lm1vdmUoLXNjcm9sbE9mZnNldERpZmZlcmVuY2UpOwogICAgICAgICAgICAgbmV3UmVj
dCA9IExheW91dFJlY3QoYm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJl
Y3QobG9jYWxFeHBvc2VSZWN0KSksIFVzZVRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwpAQCAt
Mjg0OSwxMSArMjg2MywxMyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxl
KGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdF
bGVtZW50KCk/CiAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKICAgICAgICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBh
bmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpObzsKLSAgICAgICAgICAgICAgICBpZiAoYXV0b3Nj
cm9sbE5vdEluUHJvZ3Jlc3MKKyAgICAgICAgICAgICAgICBpZiAoIWF1dG9zY3JvbGxJblByb2dy
ZXNzCiAgICAgICAgICAgICAgICAgICAgICYmIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50
KCkKICAgICAgICAgICAgICAgICAgICAgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVo
YXZpb3IsIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgp
KSkKICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQgPSBBbmltYXRlZFNjcm9sbDo6WWVzOwog
ICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlv
biwgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgICAgICBp
ZiAoYXV0b3Njcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lVmlldy5z
ZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKIAogICAgICAg
ICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgPT0g
U2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmlldy5zYWZlVG9Q
cm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRv
KiBlbmNsb3NpbmdMYXllciA9IG93bmVyRWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5
ZXIoKSkKQEAgLTI4OTYsOSArMjkxMiwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0
VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGlu
Z0VsZW1lbnQoKT8KICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQogICAgICAgICAgICAgICAgIEFuaW1hdGVkU2Nyb2xs
IGFuaW1hdGVkID0gQW5pbWF0ZWRTY3JvbGw6Ok5vOwotICAgICAgICAgICAgICAgIGlmIChhdXRv
c2Nyb2xsTm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlv
ciwgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKSkKKyAgICAgICAgICAg
ICAgICBpZiAoIWF1dG9zY3JvbGxJblByb2dyZXNzICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRp
b25zLmJlaGF2aW9yLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpKQog
ICAgICAgICAgICAgICAgICAgICBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpZZXM7CiAgICAg
ICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3Np
dGlvbiwgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgICAg
ICBpZiAoYXV0b3Njcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lVmll
dy5zZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCB2
aWV3IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlzIHZpZXcgd2UKQEAgLTQx
NTcsNyArNDE3NSwxMyBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9s
cyhIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEludFBvaW50JgogCiBib29sIFJlbmRlckxh
eWVyOjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIpCiB7Ci0gICAgcmV0dXJuIFNjcm9sbGFibGVB
cmVhOjpzY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGllcik7CisgICAgaWYg
KFNjcm9sbGFibGVBcmVhOjpzY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGll
cikpIHsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIG5vdGlmeVVzZXJT
Y3JvbGxBY3Rpb25FbmQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpwYWludChHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QsIGNvbnN0IExheW91
dFNpemUmIHN1YnBpeGVsT2Zmc2V0LCBPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhh
dmlvciwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290LCBPcHRpb25TZXQ8UGFpbnRMYXll
ckZsYWc+IHBhaW50RmxhZ3MsIFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpY3kgcGFpbnRQb2xpY3ks
IEV2ZW50UmVnaW9uQ29udGV4dCogZXZlbnRSZWdpb25Db250ZXh0KQpAQCAtNzAzNiw2ICs3MDYw
LDUyIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVFdmVudFJlZ2lvbihFdmVudFJlZ2lv
bkludmFsaWRhdGlvblJlYXNvbiByZWFzb24pCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKK3ZvaWQgUmVuZGVyTGF5ZXI6OmFkZFBlbmRpbmdTY3JvbGxFbmRFdmVu
dFRhcmdldCgpCit7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSByZW5kZXJlcigpLmVsZW1l
bnQoKSkKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5hZGRQZW5kaW5nU2Nyb2xsRW5kRXZl
bnRUYXJnZXQoKmVsZW1lbnQpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpzZXRSZXF1ZXN0aW5n
VXNlclNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBpZiAoIXJlbmRlcmVyKCkuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3JlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gPSBw
b3NpdGlvbjsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6bm90aWZ5VXNlclNjcm9sbEFjdGlvbkVu
ZCgpCit7CisgICAgaWYgKCFyZW5kZXJlcigpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0Vu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjcm9sbEFuaW1hdG9yKCkuaXNT
Y3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gdHJ1ZTsKKyAgICBjaGVja1VzZXJTY3JvbGxFbmRQ
b3NpdGlvbigpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpjaGVja1VzZXJTY3JvbGxFbmRQb3Np
dGlvbigpCit7CisgICAgaWYgKCFyZW5kZXJlcigpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50
c0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JlcXVlc3RpbmdVc2Vy
U2Nyb2xsUG9zaXRpb24pIHsKKyAgICAgICAgbV9pc1VzZXJTY3JvbGxBY3Rpb25FbmQgPSBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9pc1VzZXJTY3JvbGxBY3Rp
b25FbmQgfHwgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uLnZhbHVlKCkgIT0gc2Nyb2xs
UG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYWRkUGVuZGluZ1Njcm9sbEVuZEV2
ZW50VGFyZ2V0KCk7CisgICAgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uID0gV1RGOjpu
dWxsb3B0OworICAgIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gZmFsc2U7Cit9CisjZW5kaWYK
KwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBDbGlwUmVjdHNU
eXBlIGNsaXBSZWN0c1R5cGUpCiB7CiAgICAgc3dpdGNoIChjbGlwUmVjdHNUeXBlKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDVmNTRkMGVjM2IuLjJmMzQwNDY2
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC05MzIsNiArOTMy
LDE0IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmlu
YWw7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBhZGRQZW5kaW5n
U2Nyb2xsRW5kRXZlbnRUYXJnZXQoKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UmVxdWVzdGluZ1Vz
ZXJTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIHZvaWQg
bm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgpIGZpbmFsOworICAgIHZvaWQgY2hlY2tVc2VyU2Ny
b2xsRW5kUG9zaXRpb24oKSBmaW5hbDsKKyNlbmRpZgorCiBwcml2YXRlOgogCiAgICAgdm9pZCBz
ZXROZXh0U2libGluZyhSZW5kZXJMYXllciogbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CkBAIC0x
MzcxLDYgKzEzNzksMTEgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJM
YXllckZpbHRlcnM+IG1fZmlsdGVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyTGF5ZXJC
YWNraW5nPiBtX2JhY2tpbmc7CisKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAg
T3B0aW9uYWw8U2Nyb2xsUG9zaXRpb24+IG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbjsK
KyAgICBib29sIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kIHsgZmFsc2UgfTsKKyNlbmRpZgogICAg
IAogICAgIFBhaW50RnJlcXVlbmN5VHJhY2tlciBtX3BhaW50RnJlcXVlbmN5VHJhY2tlcjsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDJmMWI3ZTUxMTkuLjc4MDdlOTA0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjAtMDQtMDkgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAg
ICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLD
qWTDqXJpYyBXYW5nJ3MgcGF0Y2guCisKKyAgICAgICAgQWRkIEVOQUJMRV9PVkVSU0NST0xMX0VW
RU5UUy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAyMDIwLTA3LTEwICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBGbHVzaCB0aGUgY2Fpcm8gc3VyZmFjZSBhZnRlciBwYWludGluZyB3aGVuIHVzaW5nIHNvZnR3
YXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1s
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBlMDRjYWRj
YTJkLi44OGQwZGIyYjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlh
bWwKQEAgLTE2MjEsNiArMTYyMSwxNCBAQCBBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVp
Z2h0RW5hYmxlZDoKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiTWFwIEhUTUwgYXR0cmli
dXRlcyB3aWR0aC9oZWlnaHQgdG8gdGhlIGRlZmF1bHQgYXNwZWN0IHJhdGlvIG9mIDxpbWc+Igog
ICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKK092ZXJzY3JvbGxFdmVudHNFbmFibGVkOgorICB0
eXBlOiBib29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJP
dmVyc2Nyb2xsIGV2ZW50cyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHRo
ZSBvbnNjcm9sbGVuZCBhbmQgc2Nyb2xsZW5kIGV2ZW50cyIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1l
bnRhbAorICBjb25kaXRpb246IEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKwogIyBGb3IgaW50
ZXJuYWwgZmVhdHVyZXM6CiAjIFRoZSB0eXBlIHNob3VsZCBiZSBib29sZWFuLgogIyBZb3UgbXVz
dCBwcm92aWRlIGEgaHVtYW5SZWFkYWJsZU5hbWUgYW5kIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlv
biBmb3IgYWxsIGRlYnVnIGZlYXR1cmVzLiBUaGV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
aW5kZXggMWE2MTYwZTNiMC4uNjc3YmFlMWI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA0LTA5ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbCBldmVudHMg
cGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA4ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAg
IEJhc2VkIG9uIEZyw6lkw6lyaWMgV2FuZydzIHBhdGNoLgorCisgICAgICAgIEFkZCBvdmVyc2Ny
b2xsRXZlbnRzRW5hYmxlZCBXZWJQcmVmZXJlbmNlIHNldHRpbmcuCisKKyAgICAgICAgKiBDb25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW06CisgICAgICAgIChbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAo
LVtXZWJQcmVmZXJlbmNlcyBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZF0pOgorICAgICAgICAoLVtX
ZWJQcmVmZXJlbmNlcyBzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZDpdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmll
dy5tbToKKwogMjAyMC0wNy0wOSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OKHIyMTcyNDgpOiBBU1NFUlRfTk9UX1JFQUNIRUQoKSBpbiB0b1dlYkZy
YW1lTG9hZFR5cGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYmRhYTVjNzIwOS4uZTkyMmFi
M2IzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yMTIsNiArMjEyLDcgQEAKICNkZWZpbmUg
V2ViS2l0Q1NTU2hhZG93UGFydHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU1NoYWRv
d1BhcnRzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRl
Z3JhdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TGF5b3V0Rm9ybWF0dGluZ0NvbnRl
eHRJbnRlZ3JhdGlvbkVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFdlYlNRTEVuYWJsZWRQcmVmZXJl
bmNlS2V5IEAiV2ViS2l0V2ViU1FMRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEV2
ZW50c0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQi
CiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogLy8gVGhlc2UgYXJlIHByaXZhdGUgYm90aCBiZWNh
dXNlIGNhbGxlcnMgc2hvdWxkIGJlIHVzaW5nIHRoZSBjb3ZlciBtZXRob2RzIGFuZCBiZWNhdXNl
IHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0KaW5kZXggODY4YmM2MTBjOC4uODA1NGFjZWYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC03MTYsNiArNzE2LDkg
QEAgcHVibGljOgogICAgICAgICBATk8sIFdlYktpdERlYnVnSW5BcHBCcm93c2VyUHJpdmFjeUVu
YWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdEFzcGVjdFJhdGlvT2ZJbWdG
cm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQCh3ZWJTUUxF
bmFibGVkKSwgV2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXksCisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBATk8sIFdlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFi
bGVkUHJlZmVyZW5jZUtleSwKKyNlbmRpZgogICAgICAgICBuaWxdOwogCiAjaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCkBAIC0zNzAxLDYgKzM3MDQsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFz
c0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6d2ViU1FMRW5hYmxl
ZCBmb3JLZXk6V2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09M
KW92ZXJzY3JvbGxFdmVudHNFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVG
b3JLZXk6V2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwor
LSAodm9pZClzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3Nl
bGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxl
ZFByZWZlcmVuY2VLZXldOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJl
bmNlcyAoV2ViSW50ZXJuYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0ZmE3MzgzZDYzLi5iODMzZjk2
Y2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTY5NCw2ICs2OTQsNyBAQCBleHRlcm4gTlNTdHJpbmcg
KldlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJL
SVRfREVQUgogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXN5bmNDbGlwYm9hcmRBUElFbmFi
bGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGlua1ByZWxvYWRSZXNwb25zaXZlSW1h
Z2VzRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFzcGVjdFJhdGlvT2ZJbWdG
cm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgb3Zl
cnNjcm9sbEV2ZW50c0VuYWJsZWQ7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBxdWlja0xvb2tEb2N1bWVudFNhdmluZ0VuYWJsZWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggODVkNjk0M2UzNi4uZmU1
ZDhhN2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpA
QCAtMzE4NCw2ICszMTg0LDkgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2Fk
aW5nUXVpcmsoKQogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQo
W3ByZWZlcmVuY2VzIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5n
cy5zZXRDU1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZp
ZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0XSk7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZF
TlRTKQorICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxFdmVudHNFbmFibGVkKFtwcmVmZXJlbmNl
cyBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZF0pOworI2VuZGlmCiAKICAgICBzd2l0Y2ggKFtwcmVm
ZXJlbmNlcyBzdG9yYWdlQmxvY2tpbmdQb2xpY3ldKSB7CiAgICAgY2FzZSBXZWJBbGxvd0FsbFN0
b3JhZ2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggMjY0NmZiOTI4OS4uYWZjNTk0
M2JkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIw
LTA0LTA5ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbCBldmVudHMgcGFyc2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODAyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIEZyw6lkw6lyaWMgV2Fu
ZydzIHBhdGNoLgorCisgICAgICAgIEFkZCBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCBXZWJQcmVm
ZXJlbmNlIHNldHRpbmcuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1By
aXZhdGUuaWRsOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAg
ICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFs
aXplRGVmYXVsdFNldHRpbmdzKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpvdmVyc2Nyb2xs
RXZlbnRzRW5hYmxlZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6c2V0T3ZlcnNjcm9sbEV2
ZW50c0VuYWJsZWQpOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogV2Vi
Vmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgor
CiAyMDIwLTA3LTA3ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBQ
YXJ0IDIgb2YgU2ltcGxlQ29sb3IgYW5kIFNSR0JBPHVpbnQ4X3Q+IGFyZSBlc3NlbnRpYWxseSB0
aGUgc2FtZSAtIGxldCdzIGNvbnZlcmdlIHRoZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmlu
ZGV4IDlhODc1ZDQ3OWUuLjliMGYwMmFkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApA
QCAtMjY3LDYgKzI2NywxMSBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTggOiBJ
V2ViUHJlZmVyZW5jZXNQcml2YXRlNwogewogICAgIEhSRVNVTFQgYWxsb3dUb3BOYXZpZ2F0aW9u
VG9EYXRhVVJMcyhbb3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgc2V0
QWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyhbaW5dIEJPT0wgZW5hYmxlZCk7CisKICAgICBI
UkVTVUxUIG1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQoW291dCwgcmV0dmFsXSBCT09M
KiBlbmFibGVkKTsKICAgICBIUkVTVUxUIHNldE1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJs
ZWQoW2luXSBCT09MIGVuYWJsZWQpOworCisgICAgSFJFU1VMVCBvdmVyc2Nyb2xsRXZlbnRzRW5h
YmxlZChbb3V0LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldE92ZXJzY3JvbGxFdmVu
dHNFbmFibGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAyYTIxMjFhZGI5Li4x
ZGUyYjYyYjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaApAQCAtMjMxLDMgKzIzMSw1IEBACiAjZGVmaW5lIFdlYktpdEFzcGVj
dFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0
QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQiCiAKICNkZWZpbmUgV2Vi
S2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFdlYlNRTEVuYWJsZWQiCisKKyNk
ZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRP
dmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZl
cmVuY2VzLmNwcAppbmRleCA5M2RlOGEzMjBhLi5kMGI3ZDQzODNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zNTcsNiArMzU3LDggQEAgdm9pZCBX
ZWJQcmVmZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rp
b25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVu
Y2VLZXkpLCBrQ0ZCb29sZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVm
YXVsdHMsIENGU1RSKFdlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVkUHJlZmVyZW5jZUtleSks
IGtDRkJvb2xlYW5GYWxzZSk7CisKICAgICBkZWZhdWx0U2V0dGluZ3MgPSBkZWZhdWx0czsKICNl
bmRpZgogfQpAQCAtMjQ4Nyw2ICsyNDg5LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNl
dFdlYlNRTEVuYWJsZWQoQk9PTCBlbmFibGVkKQogICAgIHJldHVybiBTX09LOwogfQogCitIUkVT
VUxUIFdlYlByZWZlcmVuY2VzOjpvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZChfT3V0XyBCT09MKiBl
bmFibGVkKQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsK
KyAgICAqZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRPdmVyc2Nyb2xsRXZlbnRzRW5h
YmxlZFByZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlBy
ZWZlcmVuY2VzOjpzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZChCT09MIGVuYWJsZWQpCit7Cisg
ICAgc2V0Qm9vbFZhbHVlKFdlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVkUHJlZmVyZW5jZUtl
eSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5j
ZXM6OmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoX091dF8gQk9PTCogYWxsb3dBY2Nlc3Mp
CiB7CiAgICAgaWYgKCFhbGxvd0FjY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVm
ZXJlbmNlcy5oCmluZGV4IDI0MzdiMGU3NjIuLjBiYmM0YmU5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMzA1LDkgKzMwNSwxMyBAQCBwdWJsaWM6CiAg
ICAgLy8gSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTgKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyhfT3V0XyBCT09MKik7CiAg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEFsbG93VG9wTmF2aWdhdGlv
blRvRGF0YVVSTHMoQk9PTCk7CisKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgbW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldE1vZGVyblVucHJlZml4ZWRXZWJBdWRp
b0VuYWJsZWQoQk9PTCk7CiAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
b3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZChCT09MKTsKKwog
ICAgIC8vIFdlYlByZWZlcmVuY2VzCiAKICAgICAvLyBUaGlzIG1ldGhvZCBhY2Nlc3NlcyBhIGRp
ZmZlcmVudCBwcmVmZXJlbmNlIGtleSB0aGFuIGRldmVsb3BlckV4dHJhc0VuYWJsZWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDY3ZmU2NDEzNzUuLmIxYjU1NjQyOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01NjgwLDYgKzU2ODAsMTEgQEAgSFJF
U1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiog
bm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0QXNwZWN0
UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhy
ID0gcHJlZnNQcml2YXRlLT5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgmZW5hYmxlZCk7CisgICAg
aWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRPdmVy
c2Nyb2xsRXZlbnRzRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCA4M2ZjODE3Mjc5Li5kODFjZjc0Y2Y3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNl
L2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0xODUsNiArMTg1LDcgQEAgbWFjcm8oV0VC
S0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfVEhVTkRF
UiAiVG9nZ2xlIEVNRSBWMyBUaHVuZGVyIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJ
VF9PUFRJT05fREVGSU5FKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgIlRvZ2dsZSBPcmllbnRh
dGlvbiBFdmVudHMgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJ
TkUoRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCAiVG9nZ2xlIGFjY2VsZXJhdGVkIHNj
cm9sbGluZyBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShF
TkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFMgIlRvZ2dsZSBvdmVyc2Nyb2xsIGV2ZW50cyIgUFJJVkFU
RSBPTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUEFZTUVOVF9SRVFVRVNUICJU
b2dnbGUgUGF5bWVudCBSZXF1ZXN0IHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9P
UFRJT05fREVGSU5FKEVOQUJMRV9QREZLSVRfUExVR0lOICJUb2dnbGUgUERGS2l0IHBsdWdpbiBz
dXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUEVS
SU9ESUNfTUVNT1JZX01PTklUT1IgIlRvZ2dsZSBwZXJpb2RpY2FsIG1lbW9yeSBtb25pdG9yIHN1
cHBvcnQiIFBSSVZBVEUgT0ZGKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGFmZWZjNTVjOGUuLmNiMTY1MDE5NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0w
NC0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgwMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiBGcsOpZMOpcmljIFdhbmcn
cyBwYXRjaC4KKworICAgICAgICBEZWFsIHdpdGggb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChUZXN0
T3B0aW9uczo6VGVzdE9wdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgor
ICAgICAgICAoZW5hYmxlRXhwZXJpbWVudGFsRmVhdHVyZXMpOgorICAgICAgICAoc2V0V2ViUHJl
ZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0Zl
YXR1cmVMaXN0LnBtOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMjAtMDctMTAgIFhhYmllciBSb2RyaWd1ZXogQ2Fs
dmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXVtFTUVdW09w
ZW5DRE1dIEltcGxlbWVudCBPcGVuQ0RNIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmNwcAppbmRleCBlN2M1ODM2NzgyLi42YjY0YzAyYzllIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdE9wdGlvbnMuY3BwCkBAIC0xNTgsNiArMTU4LDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRp
b25zKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNv
bHUKICAgICAgICAgICAgIGVuYWJsZUFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHQg
PSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChr
ZXkgPT0gImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiKQogICAgICAgICAgICAgYWxsb3dU
b3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1
ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxFdmVu
dHNFbmFibGVkIikKKyAgICAgICAgICAgIGVuYWJsZU92ZXJzY3JvbGxFdmVudHMgPSBwYXJzZUJv
b2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBwYWlyU3RhcnQgPSBwYWlyRW5k
ICsgMTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0
aW9ucy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCBjNWM4Yzg1
OTkyLi4yNzUxMWUyMDViIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0
aW9ucy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTU5LDYg
KzU5LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUFzcGVjdFJhdGlv
T2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViU1FM
IHsgdHJ1ZSB9OwogICAgIGJvb2wgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyB7IHRydWUg
fTsKKyAgICBib29sIGVuYWJsZU92ZXJzY3JvbGxFdmVudHMgeyBmYWxzZSB9OwogICAgIHN0ZDo6
c3RyaW5nIGpzY09wdGlvbnM7CiAgICAgc3RkOjpzdHJpbmcgYWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXM7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpp
bmRleCA4N2MwNGQ5MmZhLi5hMTcyZGY3M2M2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tCkBAIC04ODcsNiArODg3LDcgQEAgc3RhdGljIHZvaWQgZW5hYmxl
RXhwZXJpbWVudGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIFtw
cmVmZXJlbmNlcyBzZXRDU1NTaGFkb3dQYXJ0c0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5j
ZXMgc2V0QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsKICAg
ICBbcHJlZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNdOwor
ICAgIFtwcmVmZXJlbmNlcyBzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZDpZRVNdOwogfQogCiAv
LyBDYWxsZWQgYmVmb3JlIGVhY2ggdGVzdC4KQEAgLTEwNDcsNiArMTA0OCw3IEBAIHN0YXRpYyB2
b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9w
dGlvbnMpCiAgICAgcHJlZmVyZW5jZXMubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlv
bkVuYWJsZWQgPSBvcHRpb25zLmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFi
bGVkOwogICAgIHByZWZlcmVuY2VzLmFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRF
bmFibGVkID0gb3B0aW9ucy5lbmFibGVBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0
OwogICAgIHByZWZlcmVuY2VzLmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMgPSBvcHRpb25z
LmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHM7CisgICAgcHJlZmVyZW5jZXMub3ZlcnNjcm9s
bEV2ZW50c0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU92ZXJzY3JvbGxFdmVudHM7CiB9CiAKIC8v
IENhbGxlZCBvbmNlIG9uIER1bXBSZW5kZXJUcmVlIHN0YXJ0dXAuCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggNTBkY2QwN2Q4OS4uODU2NmY5ZTM2MyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTM3LDYgKzEzNyw3IEBAIG15
ICgKICAgICAkdGh1bmRlclN1cHBvcnQsCiAgICAgJG9yaWVudGF0aW9uRXZlbnRzU3VwcG9ydCwK
ICAgICAkb3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFN1cHBvcnQsCisgICAgJG92ZXJzY3JvbGxFdmVu
dHNTdXBwb3J0LAogICAgICRwYXltZW50UmVxdWVzdFN1cHBvcnQsCiAgICAgJHBkZmtpdFBsdWdp
blN1cHBvcnQsCiAgICAgJHBpY3R1cmVJblBpY3R1cmVBUElTdXBwb3J0LApAQCAtNDU0LDYgKzQ1
NSw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAib3ZlcmZsb3ctc2Nyb2xs
aW5nLXRvdWNoIiwgZGVzYyA9PiAiVG9nZ2xlIGFjY2VsZXJhdGVkIHNjcm9sbGluZyBzdXBwb3J0
IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCIsIHZh
bHVlID0+IFwkb3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9u
ID0+ICJvdmVyc2Nyb2xsLWV2ZW50cyIsIGRlc2MgPT4gIkVuYWJsZSBPdmVyc2Nyb2xsIEV2ZW50
cyBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTIiwg
dmFsdWUgPT4gXCRvdmVyc2Nyb2xsRXZlbnRzU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4g
InBheW1lbnQtcmVxdWVzdCIsIGRlc2MgPT4gIlRvZ2dsZSBQYXltZW50IFJlcXVlc3Qgc3VwcG9y
dCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QQVlNRU5UX1JFUVVFU1QiLCB2YWx1ZSA9PiBc
JHBheW1lbnRSZXF1ZXN0U3VwcG9ydCB9LAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404831</attachid>
            <date>2020-07-21 10:08:01 -0700</date>
            <delta_ts>2020-07-29 06:27:26 -0700</delta_ts>
            <desc>scrollend-userscroll-on-Mac-for-review</desc>
            <filename>scrollend-mac-for-review-002.diff</filename>
            <type>text/plain</type>
            <size>64066</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0M2NjYTNmMjc1Li40ZGFhN2U3MGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MjAtMDctMjEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb2YgdXNlciBzY3JvbGxpbmcgb24gTWFj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdXNl
ciBzY3JvbGxpbmcgdGVzdCBmb3Igc2Nyb2xsZW5kIGV2ZW50LgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXJ1
YmJlcmJhbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3Jv
bGxlbmQtZXZlbnQtZm9yLXJ1YmJlcmJhbmQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1z
dGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3Njcm9sbGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVs
LXNjcm9sbC13aXRoLXN0YXRlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA3LTEwICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vcGVyYXRp
b25zLmh0dHBzLmh0bWwgaW4gRGVidWcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwYzdmNzcxYzdh
Li5lZmNkY2NmODM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3Miw3ICsxNzIsMTUgQEAgaHR0
cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5LyBbIFNraXAgXQogZmFzdC9oYXJuZXNzL3Vp
c2NyaXB0Y29udHJvbGxlciBbIFNraXAgXQogCiAjIE9ubHkgaU9TIGhhcyBhbiBpbXBsZW1lbnRh
dGlvbiBvZiBVSVNjcmlwdENvbnRyb2xsZXI6OnNlbmRFdmVudFN0cmVhbSgpLgotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZyBbIFNraXAgXQoraW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Ny
b2xsLWV2ZW50LWZpcmVkLXRvLWRvY3VtZW50Lmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1ldmVudC1m
aXJlZC10by1lbGVtZW50LXdpdGgtb3ZlcnNjcm9sbC1iZWhhdmlvci5odG1sIFsgU2tpcCBdCitp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJz
Y3JvbGwtZXZlbnQtZmlyZWQtdG8tc2Nyb2xsZWQtZWxlbWVudC5odG1sIFsgU2tpcCBdCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3Jv
bGwtZXZlbnQtZmlyZWQtdG8td2luZG93Lmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZpcmVk
LWFmdGVyLXNuYXAuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZG9jdW1lbnQu
aHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRz
L3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13aXRoLW92ZXJzY3Jv
bGwtYmVoYXZpb3IuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tc2Nyb2xsZWQt
ZWxlbWVudC5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbGVuZC1ldmVudC1maXJlZC10by13aW5kb3cuaHRtbCBb
IFNraXAgXQogCiAjIFRoaXMgdGVzdCBvbmx5IG1ha2VzIHNlbnNlIG9uIE1hYwogZmFzdC9hdHRh
Y2htZW50L2F0dGFjaG1lbnQtc3VidGl0bGUtcmVzaXplLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFu
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQt
Zm9yLXJ1YmJlcmJhbmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAuLjI4OGViMWNkNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXJ1YmJlcmJhbmQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMiBAQAorUEFTUyBUZXN0IGZvciBydWJiZXItYmFuZCBzY3JvbGxpbmcgc2Nyb2xsZW5k
IGV2ZW50LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQt
ZXZlbnQtZm9yLXJ1YmJlcmJhbmQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9s
bGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLmViNWZjM2IyM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXJ1YmJlcmJhbmQuaHRtbApAQCAtMCwwICsx
LDc3IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFs
OkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHN0eWxlPgorICAgICAgICAjdGFyZ2V0RGl2IHsKKyAgICAgICAgICAgIHdpZHRoOiAy
MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBvdmVyZmxvdzog
c2Nyb2xsOworICAgICAgICB9CisgICAgICAgICNpbm5lckRpdiB7CisgICAgICAgICAgICB3aWR0
aDogNDAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICB9CisgICAgPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPSJydW5UZXN0KCki
PgorICAgIDxkaXYgaWQ9InRhcmdldERpdiI+CisgICAgICAgIDxkaXYgaWQ9ImlubmVyRGl2Ij4K
KyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwv
Ym9keT4KKzxzY3JpcHQ+Cit2YXIgdGFyZ2V0X2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0YXJnZXREaXYnKTsKKworZnVuY3Rpb24gZmluaXNoZWQobWVzc2FnZSkgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5lclRleHQgPSBtZXNzYWdlICsgIlxuIjsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorCitmdW5jdGlvbiBvblNjcm9sbEVuZChldmVudCkgeworICAgIGlmIChldmVudC5jYW5j
ZWxhYmxlIHx8ICFldmVudC5idWJibGVzKSB7CisgICAgICAgIGZpbmlzaGVkKCJGQUlMLCBmb3Ig
ZG9jdW1lbnQgc2Nyb2xsZW5kIGV2ZW50IGNhbmNlbGFibGUgc2hvdWxkIGJlIGZhbHNlIGFuZCBi
dWJibGUgc2hvdWxlIGJlIHRydWUuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB2
YXIgc2Nyb2xsZW5kX3Bvc2l0aW9uID0gd2luZG93LnNjcm9sbFk7CisgICAgaWYgKHNjcm9sbGVu
ZF9wb3NpdGlvbiAhPSAwKQorICAgICAgICBmaW5pc2hlZCgiRkFJTCwgd2luZG93IGRpZCBub3Qg
c2Nyb2xsLiIpOworCisgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgIGlmIChzY3JvbGxl
bmRfcG9zaXRpb24gPT0gd2luZG93LnNjcm9sbFkpCisgICAgICAgICAgICBmaW5pc2hlZCgiUEFT
UyBUZXN0IGZvciBydWJiZXItYmFuZCBzY3JvbGxpbmcgc2Nyb2xsZW5kIGV2ZW50LiIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBmaW5pc2hlZCgiRkFJTCwgd2luZG93J3Mgc2Nyb2xsIHBv
c2l0aW9uIHNob3VsZG4ndCBjaGFuZ2UgYWZ0ZXIgZ2V0dGluZyBzY3JvbGxlbmQgZXZlbnQuIik7
CisgICAgfSwgMzAwKTsKK30KKworZnVuY3Rpb24gb25VbmV4cGVjdGVkU2Nyb2xsRW5kKCkgewor
ICAgIGZpbmlzaGVkKCJGQUlMLCB0YXJnZXRfZGl2IGdvdCB1bmV4cGVjdGVkIHNjcm9sbGVuZCBl
dmVudCIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlmICghd2luZG93LmV2ZW50
U2VuZGVyIHx8ICF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBmaW5pc2hlZCgiRkFJTCwg
ZXZlbnRTZW5kZXIgb3IgdGVzdFJ1bm5lciBhcmUgbm90IHN1cHBvcnRlZC4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgLy8gTWFrZSBzdXJlIHRoYXQgbm8gc2Nyb2xs
ZW5kIGV2ZW50IGlzIHNlbnQgdG8gdGFyZ2V0X2Rpdi4KKyAgICB0YXJnZXRfZGl2LmFkZEV2ZW50
TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uVW5leHBlY3RlZFNjcm9sbEVuZCk7CisgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uU2Nyb2xsRW5kKTsKKworICAgIC8vIFRl
c3Qgd2hlZWwgZXZlbnQgd2l0aCBzdGF0ZXMgc2Nyb2xsLgorICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKDEwMCwgMTAwKTsKKyAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
MCwgMSwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgNSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCA1LCAi
Y2hhbmdlZCIsICJub25lIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIDEsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgImVuZGVk
IiwgIm5vbmUiKTsKK30KKzwvc2NyaXB0PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVu
dC1mb3Itc3RhdGVsZXNzLXdoZWVsLXNjcm9sbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1zY3JvbGwtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdlNWQxYzMy
NTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQt
ZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1zY3JvbGwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MiBAQAorUEFTUyBUZXN0IGZvciBzdGF0ZWxlc3Mgd2hlZWwgc2Nyb2xsaW5nIHNjcm9sbGVuZCBl
dmVudC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2
ZW50LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1zY3JvbGwuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jYjFjNjBjMTcyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1zdGF0
ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWwKQEAgLTAsMCArMSw3NyBAQAorPCFET0NUWVBFIGh0bWw+
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAg
I3RhcmdldERpdiB7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWln
aHQ6IDIwMHB4OworICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgfQorCisg
ICAgICAgICNpbm5lckRpdiB7CisgICAgICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgICAg
ICBoZWlnaHQ6IDQwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3QoKT4KKyAgICA8ZGl2IGlkPSJ0YXJnZXRE
aXYiPgorICAgICAgICA8ZGl2IGlkPSJpbm5lckRpdiI+CisgICAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgordmFyIHRh
cmdldF9kaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0RGl2Jyk7CisKK2Z1bmN0
aW9uIGZpbmlzaGVkKG1lc3NhZ2UpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9n
IikuaW5uZXJUZXh0ID0gbWVzc2FnZSArICJcbiI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gb25TY3Jv
bGxFbmQoZXZlbnQpIHsKKyAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSB8fCBldmVudC5idWJibGVz
KSB7CisgICAgICAgIGZpbmlzaGVkKCJGQUlMLCBjYW5jZWxhYmxlIGFuZCBidWJibGVzIG9mIGFu
IGVsZW1lbnQgc2Nyb2xsZW5kIGV2ZW50IHNob3VsZCBiZSBmYWxzZS4iKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIHZhciBzY3JvbGxlbmRfcG9zaXRpb24gPSB0YXJnZXRfZGl2LnNj
cm9sbFRvcDsKKyAgICBpZiAoc2Nyb2xsZW5kX3Bvc2l0aW9uIDw9IDApCisgICAgICAgIGZpbmlz
aGVkKCJGQUlMLCB0YXJnZXRfZGl2IGRpZCBub3Qgc2Nyb2xsLiIpOworCisgICAgc2V0VGltZW91
dCgoKSA9PiB7CisgICAgICAgIGlmIChzY3JvbGxlbmRfcG9zaXRpb24gPT0gdGFyZ2V0X2Rpdi5z
Y3JvbGxUb3ApCisgICAgICAgICAgICBmaW5pc2hlZCgiUEFTUyBUZXN0IGZvciBzdGF0ZWxlc3Mg
d2hlZWwgc2Nyb2xsaW5nIHNjcm9sbGVuZCBldmVudC4iKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgZmluaXNoZWQoIkZBSUwsIHRhcmdldF9kaXYncyBzY3JvbGwgcG9zaXRpb24gc2hvdWxk
bid0IGNoYW5nZSBhZnRlciBnZXR0aW5nIHNjcm9sbGVuZCBldmVudC4iKTsKKyAgICB9LCAzMDAp
OworfQorCitmdW5jdGlvbiBvblVuZXhwZWN0ZWRTY3JvbGxFbmQoKSB7CisgICAgZmluaXNoZWQo
IkZBSUwsIHdpbmRvdyBnb3QgdW5leHBlY3RlZCBzY3JvbGxlbmQgZXZlbnQiKTsKK30KKworZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgZmluaXNoZWQoIkZBSUwsIGV2ZW50U2VuZGVyIG9yIHRl
c3RSdW5uZXIgYXJlIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICAgIC8vIE1ha2Ugc3VyZSB0aGF0IG5vIHNjcm9sbGVuZCBldmVudCBpcyBzZW50
IHRvIHdpbmRvdy4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwgb25V
bmV4cGVjdGVkU2Nyb2xsRW5kKTsKKyAgICB0YXJnZXRfZGl2LmFkZEV2ZW50TGlzdGVuZXIoInNj
cm9sbGVuZCIsIG9uU2Nyb2xsRW5kKTsKKworICAgIC8vIFRlc3Qgd2hlZWwgZXZlbnQgd2l0aCBz
dGF0ZWxlc3Mgc2Nyb2xsLgorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwLCAyMCk7Cisg
ICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAibm9uZSIsICJub25l
Iik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0yMCwgIm5vbmUiLCAibm9uZSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMjAsICJub25lIiwgIm5vbmUiKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgIm5vbmUiLCAibm9uZSIpOworfQorPC9zY3JpcHQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xs
ZW5kLWV2ZW50LWZvci13aGVlbC1zY3JvbGwtd2l0aC1zdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVsLXNjcm9sbC13aXRo
LXN0YXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
Li4wZWZkN2ViYTBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c2Nyb2xsZW5kLWV2ZW50LWZvci13aGVlbC1zY3JvbGwtd2l0aC1zdGF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyIEBACitQQVNTIHRlc3QgZm9yIHdoZWVsIHNjcm9sbGluZyBzY3JvbGxlbmQg
ZXZlbnQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1l
dmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iZjYzMzhkOTQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci13
aGVlbC1zY3JvbGwtd2l0aC1zdGF0ZS5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBo
dG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9s
bGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAg
ICAgICN0YXJnZXREaXYgeworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgIH0K
KworICAgICAgICAjaW5uZXJEaXYgeworICAgICAgICAgICAgd2lkdGg6IDQwMHB4OworICAgICAg
ICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9hZD1ydW5UZXN0KCk+CisgICAgPGRpdiBpZD0idGFy
Z2V0RGl2Ij4KKyAgICAgICAgPGRpdiBpZD0iaW5uZXJEaXYiPgorICAgICAgICA8L2Rpdj4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyAg
ICB2YXIgdGFyZ2V0X2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsK
KworICAgIGZ1bmN0aW9uIGZpbmlzaGVkKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxvZyIpLmlubmVyVGV4dCA9IG1lc3NhZ2UgKyAiXG4iOworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvblNjcm9sbEVuZChldmVudCkgeworICAgICAgICBp
ZiAoZXZlbnQuY2FuY2VsYWJsZSB8fCBldmVudC5idWJibGVzKSB7CisgICAgICAgICAgICBmaW5p
c2hlZCgiRkFJTCwgY2FuY2VsYWJsZSBhbmQgYnViYmxlcyBvZiBhbiBlbGVtZW50IHNjcm9sbGVu
ZCBldmVudCBzaG91bGQgYmUgZmFsc2UuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICB2YXIgc2Nyb2xsZW5kX3Bvc2l0aW9uID0gdGFyZ2V0X2Rpdi5zY3JvbGxU
b3A7CisgICAgICAgIGlmIChzY3JvbGxlbmRfcG9zaXRpb24gPD0gMCkgeworICAgICAgICAgICAg
ZmluaXNoZWQoIkZBSUwsIHRhcmdldF9kaXYgZGlkIG5vdCBzY3JvbGwuIik7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAg
ICAgICAgIGlmIChzY3JvbGxlbmRfcG9zaXRpb24gPT0gdGFyZ2V0X2Rpdi5zY3JvbGxUb3ApCisg
ICAgICAgICAgICAgICAgZmluaXNoZWQoIlBBU1MgdGVzdCBmb3Igd2hlZWwgc2Nyb2xsaW5nIHNj
cm9sbGVuZCBldmVudC4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmaW5p
c2hlZCgiRkFJTCwgdGFyZ2V0IHNjcm9sbCBwb3NpdGlvbiBzaG91bGRuJ3QgY2hhbmdlIGFmdGVy
IGdldHRpbmcgc2Nyb2xsZW5kIGV2ZW50LiIpOworICAgICAgICB9LCAzMDApOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG9uVW5leHBlY3RlZFNjcm9sbEVuZCgpIHsKKyAgICAgICAgZmluaXNoZWQo
IkZBSUwsIHdpbmRvdyBnb3QgdW5leHBlY3RlZCBzY3JvbGxlbmQgZXZlbnQiKTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
ciB8fCAhd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIGZpbmlzaGVkKCJGQUlMLCBl
dmVudFNlbmRlciBvciB0ZXN0UnVubmVyIGFyZSBub3Qgc3VwcG9ydC4iKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICAvLyBNYWtlIHN1
cmUgdGhhdCBubyBzY3JvbGxlbmQgZXZlbnQgaXMgc2VudCB0byB3aW5kb3cuCisgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLCBvblVuZXhwZWN0ZWRTY3JvbGxFbmQp
OworICAgICAgICB0YXJnZXRfZGl2LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uU2Ny
b2xsRW5kKTsKKworICAgICAgICAvLyBUZXN0IHdoZWVsIGV2ZW50IHdpdGggc3RhdGVzIHNjcm9s
bC4KKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAsIDIwKTsKKyAgICAgICAgZXZl
bnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
U2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImJlZ2FuIiwgIm5vbmUi
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAi
bm9uZSIpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIs
ICJub25lIik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtNSwgIm5vbmUiLCAiYmVnaW4iKTsKKyAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAibm9uZSIs
ICJjb250aW51ZSIpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgIm5vbmUiLCAiZW5kIik7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBiODBjMzlhOTMwLi40
YjNiOGNlNzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA3LTIxICBDYXRoaWUgQ2hlbiAg
PGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xs
ZW5kIGV2ZW50IG9mIHVzZXIgc2Nyb2xsaW5nIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgor
CiAyMDIwLTA3LTEwICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bRU1FXVtPcGVuQ0RNXSBJbXBsZW1lbnQgT3BlbkNE
TSBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggZjg2ZWIwYTFi
OC4uY2E5OWM2YzA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVD
b2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtMzY1
LDYgKzM2NSwxMCBAQAogI2RlZmluZSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIIDEK
ICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTKQorI2RlZmlu
ZSBFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFMgMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFC
TEVfUEFZTUVOVF9SRVFVRVNUKQogI2RlZmluZSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUIDEKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGM1ZWQ3Nzk0YzkuLjYxY2RkOTNkYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMTQgQEAKKzIwMjAtMDctMjEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb2YgdXNl
ciBzY3JvbGxpbmcgb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDg4MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIHN1cHBvcnRzIHNjcm9sbGVuZCBldmVudHMgZm9yIHRoZSBm
b2xsb3dpbmcgdXNlciBzY3JvbGxzIG9uIE1hYy4KKyAgICAgICAgMS4gV2hlZWwgZXZlbnQgc2Ny
b2xsOiBGb3Igd2hlZWwgZXZlbnQgd2l0aCBzdGF0ZSwgbm90IG9ubHkgaXQgZ2VuZXJhdGVzIHVz
ZXIgc2Nyb2xsaW5nLCBidXQgYWxzbyBpdCBtaWdodAorICAgICAgICBnZW5lcmF0ZSBtb21lbnR1
bSBzY3JvbGxpbmcsIFJ1YmJlckJhbmQsIG9yIHRyaWdnZXIgc2Nyb2xsU25hcC4gSW4gb3JkZXIg
dG8gZGV0ZWN0IHRoZSBlbmQgb2YgYWxsIHRoZXNlIHNjcm9sbCBhY3Rpb25zLAorICAgICAgICB3
ZSBzdGFydCBhIHJlcGVhdGluZyB0aW1lciAobV9kZXRlY3RTY3JvbGxlbmRUaW1lcikgd2hlbiBn
ZXRzIHRoZSBVc2VyU2Nyb2xsRW5kIHN0YXR1cy4gQW5kIGZpcmUgc2Nyb2xsZW5kIGV2ZW50cwor
ICAgICAgICB3aGVuIGFsbCB0aGUgc2Nyb2xsIGFjdGlvbnMgc3RvcC4gRm9yIHN0YXRlbGVzcyB3
aGVlbCBldmVudCB3aGljaCBpcyBnZW5lcmF0ZWQgYnkgbW91c2UsIHNjcm9sbGVuZCBjb3VsZG4n
dCBiZSBkZXRlY3RlZAorICAgICAgICBieSB3aGVlbCBldmVudHMgc3RhdGUsIHNvIHdlIHN0YXJ0
IGEgb25lLXNob3QgdGltZXIgKG1fZGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kVGltZXIpLiBJZiBu
byBuZXcgc3RhdGVsZXNzIHdoZWVsIHNjcm9sbAorICAgICAgICBnZW5lcmF0ZWQgaW4gNzUwbXMs
IGZpcmUgc2Nyb2xsZW5kIGV2ZW50LgorICAgICAgICAyLiBTY3JvbGxiYXIgc2Nyb2xsOiBGb3Ig
cHJlc3Npbmcgc2Nyb2xsYmFyIHNjcm9sbGluZywgaXQncyB0cmlnZ2VyZWQgYnkgbV9zY3JvbGxU
aW1lci4gU28gZmlyZSBzY3JvbGxlbmQgZXZlbnQgd2hlbgorICAgICAgICBtX3Njcm9sbFRpbWVy
IGZpcmVzIG9yIHN0b3BzLiBGb3IgZHJhZ2dpbmcgdGh1bWIgc2Nyb2xsaW5nLCBpdCdzIHRyaWdn
ZXJlZCBieSBtb3VzZSBtb3ZlLiBTbyBmaXJlIHNjcm9sbGVuZCBldmVudCB3aGVuCisgICAgICAg
IG1vdXNlIHVwLgorICAgICAgICAzLiBLZXlib2FyZCBzY3JvbGw6IFRoZSBzY3JvbGwgYWN0aW9u
IGVuZCBpcyBzZXQgdG8gUmVuZGVyTGF5ZXI6OnNjcm9sbCBvciBTY3JvbGxWaWV3OjpzY3JvbGwu
CisgICAgICAgIDQuIERyYWdnaW5nIHNjcm9sbDogVGhlIG1vdXNlIGRyYWdnaW5nIHNjcm9sbCBp
cyB0cmlnZ2VyZWQgYnkgbV9hdXRvc2Nyb2xsVGltZXIgaW4gQXV0b3Njcm9sbENvbnRyb2xsZXIu
IFNvIGZpcmUgc2Nyb2xsZW5kCisgICAgICAgIGV2ZW50IHdoZW4gbV9hdXRvc2Nyb2xsVGltZXIg
ZW5kcywgaXQgd2lsbCBjYWxsIFJlbmRlckJveDo6c3RvcEF1dG9zY3JvbGwuCisKKyAgICAgICAg
U29tZSB1c2VyIHNjcm9sbCBhY3Rpb25zIG1pZ2h0IG5vdCBhY3R1YWxseSBnZW5lcmF0ZSBzY3Jv
bGxpbmcsIGZvciBpbnN0YW5jZSwgcHJlc3Npbmcgb24gdGhlIHNjcm9sbGJhciB0aHVtYi4gQW5k
IEZyYW1lVmlldworICAgICAgICBzY3JvbGwgaXMgYXN5bmNocm9ub3VzLCBzbyB0aGUgc2Nyb2xs
ZW5kIGV2ZW50cyBzaG91bGQgYmUgZmlyZWQgd2hlbiBzY3JvbGwgcG9zaXRpb24gYWN0dWFsbHkg
Y2hhbmdlZCBub3Qgd2hlbiBzY3JvbGwgYWN0aW9ucworICAgICAgICBzdG9wLiBTbyBjdXJyZW50
IGFwcHJvYWNoIGlzIHRoYXQgU2Nyb2xsYWJsZUFyZWEgcmVzdG9yZXMgdGhlIHJlcXVlc3RlZCB1
c2VyIHNjcm9sbCBwb3NpdGlvbnMgd2hpY2ggaW5kaWNhdGUgdGhhdCBpdCB3aWxsIHNjcm9sbC4g
CisgICAgICAgIFdoZW4gdGhlIGFib3ZlIHNjcm9sbCBhY3Rpb25zIHN0b3AsIG5vdGlmeVVzZXJT
Y3JvbGxBY3Rpb25FbmQoKSBpcyBjYWxsZWQgYW5kIHdpbGwgc2V0IG1fcmVxdWVzdGluZ1VzZXJT
Y3JvbGxQb3NpdGlvbiB0cnVlLgorICAgICAgICBBZnRlciB0aGF0LCBTY3JvbGxhYmxlQXJlYSB3
aWxsIGNoZWNrVXNlclNjcm9sbEVuZFBvc2l0aW9uIHdoZW4gdGhlIHNjcm9sbCBwb3NpdGlvbiBh
Y3R1YWxseSBjaGFuZ2VkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy9zY3JvbGxlbmQt
ZXZlbnQtZm9yLXJ1YmJlcmJhbmQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc2Ny
b2xsZW5kLWV2ZW50LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3Rh
dGUuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojpjb21tb25UZWFyZG93bik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KTogQXBwZW5kIHRoZSB0YXJnZXRzIHRvIG1f
cGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpydW5TY3JvbGxTdGVwcyk6IERpc3BhdGNoIHNjcm9sbGVuZCBldmVudCBmb3IgZWFjaCB0
YXJnZXQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IEFkZCBtX3BlbmRpbmdTY3JvbGxFbmRF
dmVudFRhcmdldExpc3Qgd2hpY2gga2VlcHMgdGhlIHNjcm9sbGVuZCBldmVudCB0YXJnZXRzLgor
ICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
dzo6c2Nyb2xsVG8gY29uc3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0UmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbik6
IEZvciBGcmFtZVZpZXcgc2Nyb2xsIGlzIGFzeW5jaHJvbm91cywgd2Ugc2F2ZSBtX3JlcXVlc3Rp
bmdVc2VyU2Nyb2xsUG9zaXRpb24sCisgICAgICAgIHRoZW4gY2hlY2tVc2VyU2Nyb2xsRW5kUG9z
aXRpb24gd2hlbiBGcmFtZVZpZXcgYWN0dWFsbHkgc2Nyb2xscy4KKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KTogQWRkIERvY3VtZW50
IHRvIG1fcGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0TGlzdCBpbiBEb2N1bWVudC4KKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0UmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbik6
IFN0b3JlcyB0aGUgdXNlciBzY3JvbGwgcG9zaXRpb24sIHNvIHRoYXQgaXQgY2FuIGNoZWNrIGl0
IHdoZW4gdXNlciBzY3JvbGxpbmcgZmluaXNoZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6Om5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQpOiBOb3RpZnkgdGhlIHNjcm9sbCBhY3Rpb24g
aGFzIGVuZGVkLCB3ZSBjYW4gc3RhcnQgdG8gY2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24oKS4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24p
OiBDb21wYXJlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIGFuZCBtX3JlcXVlc3RpbmdVc2VyU2Ny
b2xsUG9zaXRpb24sIGlmIHRoZXkgYXJlIHNhbWUKKyAgICAgICAgd2hpY2ggaW5kaWNhdGVzIHRo
YXQgdGhlIHNjcm9sbCBlbmRzLiBUaGVuIGFkZFBlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdldCgp
LgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlTY3JvbGxEaWRFbmQpOiBOb3RpZnkgdGhlIGN1cnJl
bnQgc2Nyb2xsIGVuZHMuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6bm90aWZ5U2Ny
b2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bm90aWZ5U2Nyb2xsRGlkRW5k
KTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6
OmNhbkhhbmRsZVdoZWVsRXZlbnQgY29uc3QpOiBUaGUgc3RhdGVsZXNzIHdoZWVsIGV2ZW50IGRv
ZXNuJ3QgdHJpZ2dlciBydWJiZXItYmFuZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJl
YWRlZFNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxp
bmdUcmVlOjpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1h
Yzo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0aW9uU21vb3RoLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNj
cm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6aXNTY3JvbGxBbmltYXRp
b25IZWxwZXJJblByb2dyZXNzKTogVG8gaW5kaWNhdGUgdGhhdCBTY3JvbGxBbmltYXRpb25IZWxw
ZXIgaXMgaW4gcHJvZ3Jlc3MuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3JvbGxUbyk6IGNoZWNrVXNlclNjcm9sbEVu
ZFBvc2l0aW9uKCkgd2hlbiBtX3Njcm9sbFBvc2l0aW9uIGFjdHVhbGx5IGNoYW5nZXMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6IHNldFJlcXVlc3Rp
bmdVc2VyU2Nyb2xsUG9zaXRpb24gZm9yIHVzZXIgc2Nyb2xscy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OnNjcm9sbCk6IEtleWJvYXJkIHNjcm9sbCBzY3JvbGxlbmQuCisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24pOiBzZXRSZXF1ZXN0aW5nVXNl
clNjcm9sbFBvc2l0aW9uIGZvciB1c2VyIHNjcm9sbHMuCisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjphZGRQZW5k
aW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGFibGVBcmVhOjpzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6bm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmNoZWNrVXNlclNjcm9s
bEVuZFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOiBub3Rp
ZnlVc2VyU2Nyb2xsQWN0aW9uRW5kIGlmIG1fc2Nyb2xsVGltZXIgaXMgbm90IGFjdGl2ZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhcjo6c3RvcFRpbWVySWZOZWVkZWQpOiBub3RpZnlVc2Vy
U2Nyb2xsQWN0aW9uRW5kIHdoZW4gbV9zY3JvbGxUaW1lciBzdG9wcGVkCisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Q29udHJvbGxlckNsaWVudDo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbENvbnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOiBTdGFydCB0aGUgdGltZXIgYXQgUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCBwaHJhc2UsIGFuZCBzdG9wIGl0CisgICAgICAgIGF0
IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gcGhyYXNlLiBzY2hlZHVsZURldGVjdFN0YXRl
bGVzc1Njcm9sbGVuZCBpZiBpdCdzIHN0YXRlbGVzcyBzY3JvbGwgZXZlbnQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzY2hlZHVsZURldGVjdFN0YXRlbGVzc1Njcm9sbGVu
ZCk6IENhbGwgc3RhcnRPbmVTaG90IDc1MG1zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29u
dHJvbGxlcjo6ZGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kVGltZXJGaXJlZCk6IENhbGwgc3RhcnRE
ZXRlY3RTY3JvbGxlbmRUaW1lci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6
OnN0YXJ0RGV0ZWN0U2Nyb2xsZW5kVGltZXIpOiBTdGFydCB0aGUgdGltZXIsIHJlcGVhdGluZyAx
LzYwIHMKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0b3BEZXRlY3RTY3Jv
bGxlbmRUaW1lcik6IFN0b3AgdGhlIHRpbWVyIGFuZCBub3RpZnlTY3JvbGxEaWRFbmQuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTY3JvbGxlbmRUaW1lckZpcmVk
KTogSWYgUnViYmVyQmFuZCwgbW9tZW50dW1TY3JvbGwgYW5kIHNjcm9sbFNuYXAgaXMgbm90IGlu
IHByb2dyZXNzLCBzdG9wIHRoZSB0aW1lci4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKTogU2F2ZSBt
X3JlcXVlc3RpbmdTY3JvbGxQb3NpdGlvbiBmb3IgRnJhbWVWaWV3IG1fc2Nyb2xsQW5pbWF0aW9u
SGVscGVyIHNjcm9sbC4gbV9yZXF1ZXN0aW5nU2Nyb2xsUG9zaXRpb24KKyAgICAgICAgaXMgdXNl
ZCB0byBkZXRlY3QgaWYgU2Nyb2xsQW5pbWF0aW9uSGVscGVyIGVuZHMuCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6aXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNz
KTogSWYgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gZXF1YWxzIHRvIG1fcmVxdWVzdGluZ1Njcm9s
bFBvc2l0aW9uLCBpdCBtZWFucworICAgICAgICBTY3JvbGxBbmltYXRpb25IZWxwZXIgaGFzIGVu
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVNjcm9sbERp
ZEVuZCk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCk6IG5vdGlmeVVzZXJTY3JvbGxB
Y3Rpb25FbmQgZm9yIGRyYWdnaW5nIHNjcm9sbC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0b3BBdXRvc2Nyb2xsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6IHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9z
aXRpb24gZm9yIHVzZXIgc2Nyb2xscy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
Y3JvbGxUbyk6IGNoZWNrVXNlclNjcm9sbEVuZFBvc2l0aW9uIHdoZW4gUmVuZGVyTGF5ZXIgc2Ny
b2xsIHBvc2l0aW9uIGFjdHVhbGx5IGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IFRoZSBzY3JvbGxUeXBlIGluIEZyYW1lVmlldzo6
c2V0U2Nyb2xsUG9zaXRpb24gaXMgYWx3YXlzIHByb2dyYW1tYXRpYywgc28gd2UgbmVlZCB0bwor
ICAgICAgICBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uIGZvciB1c2VyIHNjcm9sbHMg
aGVyZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGwpOiBub3RpZnlVc2Vy
U2Nyb2xsQWN0aW9uRW5kIGZvciBLZXlib2FyZCBzY3JvbC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaDoKKwogMjAyMC0wNC0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGln
YWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBh
cnNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDViNjJlMmQ5NjAuLjQzOWYxZDA2MjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODA3LDYgKzgwNywxMCBAQCB2b2lkIERvY3Vt
ZW50Ojpjb21tb25UZWFyZG93bigpCiAgICAgaWYgKG1fdGltZWxpbmVzQ29udHJvbGxlcikKICAg
ICAgICAgbV90aW1lbGluZXNDb250cm9sbGVyLT5kZXRhY2hGcm9tRG9jdW1lbnQoKTsKIAorI2lm
IEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBtX3BlbmRpbmdTY3JvbGxFbmRFdmVudFRh
cmdldExpc3QgPSBudWxscHRyOworI2VuZGlmCisKICAgICBtX3RpbWVsaW5lID0gbnVsbHB0cjsK
IH0KIApAQCAtNDEwOSw2ICs0MTEzLDI2IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZFBlbmRpbmdTY3Jv
bGxFdmVudFRhcmdldChDb250YWluZXJOb2RlJiB0YXJnZXQpCiAgICAgdGFyZ2V0cy5hcHBlbmQo
dGFyZ2V0KTsKIH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgRG9jdW1l
bnQ6OmFkZFBlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdldChDb250YWluZXJOb2RlJiB0YXJnZXQp
Cit7CisgICAgaWYgKCFzZXR0aW5ncygpLm92ZXJzY3JvbGxFdmVudHNFbmFibGVkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghbV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0
KQorICAgICAgICBtX3BlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdldExpc3QgPSBtYWtlVW5pcXVl
PFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3Q+KCk7CisKKyAgICBhdXRvJiB0YXJnZXRzID0g
bV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0LT50YXJnZXRzOworICAgIGlmICh0YXJn
ZXRzLmZpbmRNYXRjaGluZyhbJl0gKGF1dG8mIGVudHJ5KSB7IHJldHVybiBlbnRyeS5wdHIoKSA9
PSAmdGFyZ2V0OyB9KSAhPSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHRh
cmdldHMuaXNFbXB0eSgpKQorICAgICAgICBzY2hlZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRlKCk7
CisKKyAgICB0YXJnZXRzLmFwcGVuZCh0YXJnZXQpOworfQorI2VuZGlmCisKIHZvaWQgRG9jdW1l
bnQ6OnNldE5lZWRzVmlzdWFsVmlld3BvcnRTY3JvbGxFdmVudCgpCiB7CiAgICAgaWYgKCFtX25l
ZWRzVmlzdWFsVmlld3BvcnRTY3JvbGxFdmVudCkKQEAgLTQxMzQsNiArNDE1OCwxOCBAQCB2b2lk
IERvY3VtZW50OjpydW5TY3JvbGxTdGVwcygpCiAgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBk
b21XaW5kb3coKSkKICAgICAgICAgICAgIHdpbmRvdy0+dmlzdWFsVmlld3BvcnQoKS5kaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50LCBFdmVudDo6Q2Fu
QnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICB9CisKKyNpZiBFTkFC
TEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgLy8gRGVhbCB3aXRoIHNjcm9sbGVuZCBldmVudC4K
KyAgICBpZiAobV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0ICYmICFtX3BlbmRpbmdT
Y3JvbGxFbmRFdmVudFRhcmdldExpc3QtPnRhcmdldHMuaXNFbXB0eSgpKSB7CisgICAgICAgIExP
R19XSVRIX1NUUkVBTShFdmVudHMsIHN0cmVhbSA8PCAiRG9jdW1lbnQiIDw8IHRoaXMgPDwgInNl
bmRpbmcgc2Nyb2xsZW5kIGV2ZW50cyB0byBwZW5kaW5nIHNjcm9sbCBldmVudCB0YXJnZXRzIik7
CisgICAgICAgIGF1dG8gY3VycmVudFNjcm9sbEVuZFRhcmdldHMgPSBXVEZNb3ZlKG1fcGVuZGlu
Z1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlzdC0+dGFyZ2V0cyk7CisgICAgICAgIGZvciAoYXV0byYg
dGFyZ2V0IDogY3VycmVudFNjcm9sbEVuZFRhcmdldHMpIHsKKyAgICAgICAgICAgIGF1dG8gYnVi
YmxlcyA9IHRhcmdldC0+aXNEb2N1bWVudE5vZGUoKSA/IEV2ZW50OjpDYW5CdWJibGU6OlllcyA6
IEV2ZW50OjpDYW5CdWJibGU6Ok5vOworICAgICAgICAgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNjcm9sbGVuZEV2ZW50LCBidWJibGVzLCBFdmVu
dDo6SXNDYW5jZWxhYmxlOjpObykpOworICAgICAgICB9CisgICAgfQorI2VuZGlmCiB9CiAKIHZv
aWQgRG9jdW1lbnQ6OmFkZEF1ZGlvUHJvZHVjZXIoTWVkaWFQcm9kdWNlciYgYXVkaW9Qcm9kdWNl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYmI1NDk3MDBlZS4uY2FhZmIyOGRhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTEzODEsNiArMTM4MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJ1
blJlc2l6ZVN0ZXBzKCk7CiAKICAgICB2b2lkIGFkZFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldChD
b250YWluZXJOb2RlJik7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQg
YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KENvbnRhaW5lck5vZGUmKTsKKyNlbmRpZgog
ICAgIHZvaWQgc2V0TmVlZHNWaXN1YWxWaWV3cG9ydFNjcm9sbEV2ZW50KCk7CiAgICAgdm9pZCBy
dW5TY3JvbGxTdGVwcygpOwogCkBAIC0yMDgyLDYgKzIwODUsOSBAQCBwcml2YXRlOgogCiAgICAg
c3RydWN0IFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3Q+IG1fcGVuZGluZ1Njcm9sbEV2ZW50VGFyZ2V0
TGlzdDsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgc3RkOjp1bmlxdWVfcHRy
PFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3Q+IG1fcGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFy
Z2V0TGlzdDsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBIYXNoU2V0
PEhUTUxNZWRpYUVsZW1lbnQqPiBtX21lZGlhU3RyZWFtU3RhdGVDaGFuZ2VFbGVtZW50czsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAxOGIzODA5MWZhLi5iYmI3MzdmN2RkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNjk0LDcgKzE2OTQsMTAgQEAgdm9pZCBET01X
aW5kb3c6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xh
bXBpbmcgY2xhbXBpbmcKIAogICAgIC8vIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIGZvciB0aGUg
Y29tbW9uIGNhc2Ugb2Ygc2Nyb2xsaW5nIHRvICgwLCAwKSB3aGVuIHRoZSBzY3JvbGxlciBpcyBh
bHJlYWR5IGF0IHRoZSBvcmlnaW4uCiAgICAgLy8gSWYgYW4gYW5pbWF0ZWQgc2Nyb2xsIGlzIGlu
IHByb2dyZXNzLCB0aGlzIG9wdGltaXphdGlvbiBpcyBza2lwcGVkIHRvIGVuc3VyZSB0aGF0IHRo
ZSBhbmltYXRlZCBzY3JvbGwgaXMgcmVhbGx5IHN0b3BwZWQuCi0gICAgaWYgKHZpZXctPmN1cnJl
bnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFu
aW1hdGlvbiAmJiAhc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRp
b25zLnRvcC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQ
b2ludCgwLCAwKSkKKyAgICBpZiAodmlldy0+Y3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkg
PT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uCisgICAgICAgICYmICFzY3Jv
bGxUb09wdGlvbnMubGVmdC52YWx1ZSgpCisgICAgICAgICYmICFzY3JvbGxUb09wdGlvbnMudG9w
LnZhbHVlKCkKKyAgICAgICAgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQb3NpdGlvbigpID09IElu
dFBvaW50KDAsIDApKQogICAgICAgICByZXR1cm47CiAKICAgICBkb2N1bWVudCgpLT51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCA1MTI3YjQ5MGY0Li5jZGJjNmZkMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCkBAIC0yMjg2LDEwICsyMjg2LDEyIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNjcm9sbENsCiAgICAg
UGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwogICAgIGlmIChwYWdlICYmIHBhZ2UtPmlzTW9u
aXRvcmluZ1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxF
dmVudFRlc3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKKworICAgIFNj
cm9sbFBvc2l0aW9uIG5ld1Njcm9sbFBvc2l0aW9uID0gKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSAm
JiBjbGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgPyBhZGp1c3RTY3JvbGxQb3Np
dGlvbldpdGhpblJhbmdlKHNjcm9sbFBvc2l0aW9uKSA6IHNjcm9sbFBvc2l0aW9uOwogICAgIGlm
IChhbmltYXRlZCA9PSBBbmltYXRlZFNjcm9sbDo6WWVzKQotICAgICAgICBzY3JvbGxUb09mZnNl
dFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwg
Y3VycmVudFNjcm9sbFR5cGUoKSwgY2xhbXBpbmcpOworICAgICAgICBzY3JvbGxUb09mZnNldFdp
dGhBbmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKG5ld1Njcm9sbFBvc2l0aW9uKSwg
Y3VycmVudFNjcm9sbFR5cGUoKSwgY2xhbXBpbmcpOwogICAgIGVsc2UKLSAgICAgICAgU2Nyb2xs
Vmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGNsYW1waW5nKTsKKyAgICAg
ICAgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24obmV3U2Nyb2xsUG9zaXRpb24sIGNsYW1w
aW5nLCBhbmltYXRlZCk7CiAKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShvbGRTY3JvbGxUeXBl
KTsKIH0KQEAgLTM3MzEsNiArMzczMyw1MiBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG9PZmZz
ZXRXaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGxUeQogICAg
IHNldEN1cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CiB9CiAKKyNpZiBFTkFC
TEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lkIEZyYW1lVmlldzo6YWRkUGVuZGluZ1Njcm9sbEVu
ZEV2ZW50VGFyZ2V0KCkKK3sKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUoKS5k
b2N1bWVudCgpKQorICAgICAgICBkb2N1bWVudC0+YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFy
Z2V0KCpkb2N1bWVudCk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpzZXRSZXF1ZXN0aW5nVXNlclNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAo
IWZyYW1lKCkuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3JlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gPSBwb3NpdGlvbjsK
K30KKwordm9pZCBGcmFtZVZpZXc6Om5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQoKQoreworICAg
IGlmICghZnJhbWUoKS5zZXR0aW5ncygpLm92ZXJzY3JvbGxFdmVudHNFbmFibGVkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gdHJ1ZTsKKyAgICBj
aGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbigpOworfQorCit2b2lkIEZyYW1lVmlldzo6Y2hlY2tV
c2VyU2Nyb2xsRW5kUG9zaXRpb24oKQoreworICAgIGlmICghZnJhbWUoKS5zZXR0aW5ncygpLm92
ZXJzY3JvbGxFdmVudHNFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzY3Jv
bGxBbmltYXRvcigpLmlzU2Nyb2xsQW5pbWF0aW9uSGVscGVySW5Qcm9ncmVzcygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIW1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbikgewor
ICAgICAgICBtX2lzVXNlclNjcm9sbEFjdGlvbkVuZCA9IGZhbHNlOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKCFtX2lzVXNlclNjcm9sbEFjdGlvbkVuZCB8fCBtX3JlcXVlc3Rp
bmdVc2VyU2Nyb2xsUG9zaXRpb24udmFsdWUoKSAhPSBzY3JvbGxQb3NpdGlvbigpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKTsKKyAgICBt
X3JlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51bGxvcHQ7CisgICAgbV9pc1Vz
ZXJTY3JvbGxBY3Rpb25FbmQgPSBmYWxzZTsKK30KKyNlbmRpZgorCiBmbG9hdCBGcmFtZVZpZXc6
OmFkanVzdFNjcm9sbFN0ZXBGb3JGaXhlZENvbnRlbnQoZmxvYXQgc3RlcCwgU2Nyb2xsYmFyT3Jp
ZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewog
ICAgIGlmIChncmFudWxhcml0eSAhPSBTY3JvbGxCeVBhZ2UgfHwgb3JpZW50YXRpb24gPT0gSG9y
aXpvbnRhbFNjcm9sbGJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDllYjE5NWRkODYu
LjQ4OGE1MDYxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjcwLDYgKzY3MCwxNCBA
QCBwdWJsaWM6CiAKICAgICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwog
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgYWRkUGVuZGluZ1Njcm9s
bEVuZEV2ZW50VGFyZ2V0KCkgZmluYWw7CisKKyAgICB2b2lkIHNldFJlcXVlc3RpbmdVc2VyU2Ny
b2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlm
eVVzZXJTY3JvbGxBY3Rpb25FbmQoKSBmaW5hbDsKKyAgICB2b2lkIGNoZWNrVXNlclNjcm9sbEVu
ZFBvc2l0aW9uKCkgZmluYWw7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBGcmFt
ZVZpZXcoRnJhbWUmKTsKIApAQCAtOTEyLDYgKzkyMCwxMSBAQCBwcml2YXRlOgogCiAgICAgUGFn
aW5hdGlvbiBtX3BhZ2luYXRpb247CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisg
ICAgT3B0aW9uYWw8U2Nyb2xsUG9zaXRpb24+IG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlv
bjsKKyAgICBib29sIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kIHsgZmFsc2UgfTsKKyNlbmRpZgor
CiAgICAgZW51bSBjbGFzcyBWaWV3cG9ydFJlbmRlcmVyVHlwZSA6IHVpbnQ4X3QgeyBOb25lLCBE
b2N1bWVudCwgQm9keSB9OwogICAgIFZpZXdwb3J0UmVuZGVyZXJUeXBlIG1fdmlld3BvcnRSZW5k
ZXJlclR5cGUgeyBWaWV3cG9ydFJlbmRlcmVyVHlwZTo6Tm9uZSB9OwogICAgIFNjcm9sbFBpbm5p
bmdCZWhhdmlvciBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvciB7IERvTm90UGluIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCmluZGV4IDYwZmI2Zjc5OTkuLmMyNzkzZDUyMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC05NDYsNiArOTQ2LDI5IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6cmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uCiAg
ICAgICAgIG1fcGFnZS0+cGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50KCktPmxvZ1Njcm9sbGluZ0V2
ZW50KFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQ6OlN3aXRjaGVkU2Ny
b2xsaW5nTW9kZSwgdGltZXN0YW1wLCByZWFzb25zLnRvUmF3KCkpOwogfQogCisjaWYgRU5BQkxF
KE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3Rp
ZnlTY3JvbGxEaWRFbmQoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoc2Ny
b2xsaW5nTm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHNjcm9sbGluZ05vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7
CisgICAgICAgIGZyYW1lVmlldy0+YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAg
ICBpZiAoYXV0byogc2Nyb2xsYWJsZUFyZWEgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhRm9y
U2Nyb2xsaW5nTm9kZUlEKHNjcm9sbGluZ05vZGVJRCkpCisgICAgICAgIHNjcm9sbGFibGVBcmVh
LT5hZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5oCmluZGV4IGVkOTYwNTZiNmIuLmZjNjgwZGJlMWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmgKQEAgLTcxLDYgKzcxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcG9ydEV4cG9zZWRV
bmZpbGxlZEFyZWEoTW9ub3RvbmljVGltZSwgdW5zaWduZWQgdW5maWxsZWRBcmVhKTsKICAgICB2
b2lkIHJlcG9ydFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0NoYW5nZWQoTW9ub3RvbmljVGlt
ZSwgT3B0aW9uU2V0PFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uPik7CiAKKyNpZiBFTkFCTEUo
T1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlTY3JvbGxE
aWRFbmQoU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oCmluZGV4IDk2MzZjMGViYzUuLmE1NmUyN2Q4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTIxLDYgKzEy
MSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShT
Y3JvbGxpbmdOb2RlSUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSB7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3Jv
bGxEaWRFbmQoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAgICAgLy8gRm9yY2UgYWxs
IHNjcm9sbCBsYXllciBwb3NpdGlvbiB1cGRhdGVzIHRvIGhhcHBlbiBvbiB0aGUgbWFpbiB0aHJl
YWQuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5
ZXJQb3NpdGlvblVwZGF0ZXMoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAzMTg1ZDliYjg4Li44MzllMGIyZDFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xNTIsNiAr
MTUyLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShTY3JvbGxp
bmdOb2RlSUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSB7IH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxEaWRF
bmQoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlk
Q2hhbmdlKFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVy
dGljYWwpID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGMyYjFhOTk3
MjUuLmNhMDExMDc0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTE0NCw3ICsxNDQs
NyBAQCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjYW5IYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IC8vIFdlIGFsd2F5cyBydWJiZXItYmFuZCB0aGUgbGF0Y2hlZCBub2RlLCBvciB0aGUgcm9vdCBu
b2RlLgotICAgIGlmIChpc0xhdGNoZWROb2RlKCkgfHwgaXNSb290Tm9kZSgpKQorICAgIGlmIChp
c0xhdGNoZWROb2RlKCkgfHwgKGlzUm9vdE5vZGUoKSAmJiAod2hlZWxFdmVudC5waGFzZSgpICE9
IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSB8fCB3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2Uo
KSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgCiAgICAgcmV0dXJuIGV2ZW50Q2FuU2Nyb2xsQ29udGVudHMod2hlZWxFdmVudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcAppbmRleCBjNjdjOTJlNjllLi41YTYzNzFiY2JlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAK
QEAgLTMyNyw2ICszMjcsMTggQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlE
aWRSZWZyZXNoKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICNlbmRpZgogfQogCisjaWYg
RU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om5v
dGlmeVNjcm9sbERpZEVuZChTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQoreworICAgIGlmICghbV9z
Y3JvbGxpbmdDb29yZGluYXRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFtzY3JvbGxpbmdDb29yZGluYXRvciA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3IsIG5vZGVJRF0geworICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+bm90aWZ5U2Nyb2xs
RGlkRW5kKG5vZGVJRCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgRU5BQkxFKFNDUk9M
TElOR19USFJFQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Ro
cmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDMyZGQ1YmM3YWYuLmVmZWI1MDNiZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5oCkBAIC03Miw2ICs3MiwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjdXJyZW50U25h
cFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250
YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5kKFNjcm9sbGluZ05v
ZGVJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIHZvaWQgcmVwb3J0RXhwb3NlZFVuZmlsbGVk
QXJlYShNb25vdG9uaWNUaW1lLCB1bnNpZ25lZCB1bmZpbGxlZEFyZWEpIG92ZXJyaWRlOwogICAg
IHZvaWQgcmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uaWNU
aW1lLCBPcHRpb25TZXQ8U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb24+KSBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKaW5kZXggZWFl
MDkzYjFlZi4uY2JhNmUzNzdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYy5oCkBAIC04Miw2ICs4MiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
U3RvcFJ1YmJlcmJhbmRTbmFwQW5pbWF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBhZGp1c3RTY3Jv
bGxQb3NpdGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSBmaW5hbDsKIAorI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKKyAgICB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgpIG92ZXJyaWRlOwor
I2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIEZsb2F0UG9pbnQgc2Ny
b2xsT2Zmc2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxPbkF4
aXMoU2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBkZWx0YSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IDE4ODY3Zjk3ZTMuLjcw
NjcwYjBlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjLm1tCkBAIC0zMzEsNiArMzMxLDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYzo6YWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzCiAgICAg
aW1tZWRpYXRlU2Nyb2xsQnkoY29uc3RyYWluZWRQb3NpdGlvbiAtIHNjcm9sbFBvc2l0aW9uKTsK
IH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6bm90aWZ5U2Nyb2xsRGlkRW5kKCkKK3sKKyAgICBzY3Jv
bGxpbmdUcmVlKCkubm90aWZ5U2Nyb2xsRGlkRW5kKHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdO
b2RlSUQoKSk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiBGbG9h
dFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNjcm9sbE9mZnNl
dCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
aW9uU21vb3RoLmNwcAppbmRleCAyY2E1NzhhMzBmLi41ZWZlZjk2MmIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKQEAgLTI4LDcg
KzI4LDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9u
U21vb3RoLmgiCiAKKyNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
ICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggMWMwODBjYmE5YS4u
NDAzYmZjMGFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNw
cApAQCAtMzA3LDUgKzMwNyw0IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250
YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKIHsKICAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Nj
cm9sbC0+dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKIH0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKaW5kZXggMWU0ZjQ5MjM0
Mi4uMmI2ZWRmYTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5o
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9yLmgiCiAj
aW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpIHx8IEVO
QUJMRShDU1NfU0NST0xMX1NOQVApCiAjaW5jbHVkZSAiU2Nyb2xsQ29udHJvbGxlci5oIgpAQCAt
MTMxLDYgKzEzMiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgaG9yaXpvbnRhbFNj
cm9sbGJhclN0YXRlRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0K
ICAgICB2aXJ0dWFsIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGluZygpIGNv
bnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VW
RU5UUykKKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNz
KCkgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVz
dE1vbml0b3IoUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBt
X3doZWVsRXZlbnRUZXN0TW9uaXRvciA9IHRlc3RNb25pdG9yOyB9CiAKICNpZiAoRU5BQkxFKENT
U19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkgJiYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2NDk0YzlmZTUyLi4w
ZTIyMjlmM2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDg3
LDYgKzQ4NywxMCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0
aW9uJiBuZXdQb3NpdGlvbikKIAogICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsK
IAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBjaGVja1VzZXJTY3JvbGxFbmRQ
b3NpdGlvbigpOworI2VuZGlmCisKICAgICBpZiAoc2Nyb2xsYmFyc1N1cHByZXNzZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC01MTQsNyArNTE4LDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojpjb21w
bGV0ZVVwZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogICAg
IHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKTsKIH0KIAotdm9pZCBTY3Jv
bGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9z
aXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBBbmltYXRlZFNjcm9sbC8qIGFuaW1hdGVk
Ki8pCit2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0
aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIEFuaW1hdGVkU2Ny
b2xsIC8qIGFuaW1hdGVkKi8pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3Ry
ZWFtIDw8ICJTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9u
KTsKIApAQCAtNTM3LDE0ICs1NDEsMjMgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3Np
dGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNjcm9sbEMKICAgICAg
ICAgdXBkYXRlU2Nyb2xsYmFycyhuZXdTY3JvbGxQb3NpdGlvbik7CiAKICAgICBzZXRTY3JvbGxC
ZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworCisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIGlmIChjdXJyZW50U2Nyb2xsVHlwZSgp
ID09IFNjcm9sbFR5cGU6OlVzZXIpCisgICAgICAgIHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9z
aXRpb24obmV3U2Nyb2xsUG9zaXRpb24pOworI2VuZGlmCiB9CiAKIGJvb2wgU2Nyb2xsVmlldzo6
c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51
bGFyaXR5KQogewotICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICByZXR1cm4gcGxh
dGZvcm1TY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7Ci0KLSAgICByZXR1cm4gU2Nyb2xs
YWJsZUFyZWE6OnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICBib29sIHNjcm9s
bGVkID0gcGxhdGZvcm1XaWRnZXQoKSA/IHBsYXRmb3JtU2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVs
YXJpdHkpIDogU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsK
KyAgICBpZiAoc2Nyb2xsZWQpIHsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAg
ICAgIG5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFNjcm9sbFZpZXc6Omxv
Z2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51
bGFyaXR5IGdyYW51bGFyaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwCmluZGV4IDVjZDI5N2NmODYuLmZjMTkyZWZiN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogCisjaW5jbHVkZSAiQ29udGFp
bmVyTm9kZS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCkBAIC0yMzQsMTAgKzIzNSwxNCBA
QCB2b2lkIFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKGNvbnN0
IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zm
c2V0RnJvbUFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsKICAgICBTY3Jv
bGxQb3NpdGlvbiBwb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpOwot
ICAgIGlmIChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocG9zaXRpb24sIGN1cnJlbnRTY3Jv
bGxUeXBlKCkpKQotICAgICAgICByZXR1cm47CiAKLSAgICBzY3JvbGxQb3NpdGlvbkNoYW5nZWQo
cG9zaXRpb24pOworICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9u
LCBjdXJyZW50U2Nyb2xsVHlwZSgpKSkKKyAgICAgICAgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBv
c2l0aW9uKTsKKworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoY3VycmVu
dFNjcm9sbFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKQorICAgICAgICBzZXRSZXF1ZXN0aW5n
VXNlclNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGFi
bGVBcmVhOjp3aWxsU3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCmluZGV4IDZhZWU5YWM4YWUuLjRjZTZkYjVjNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMzcsNiArMzcsNyBAQCBjbGFzcyBUZXh0
U3RyZWFtOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENvbnRhaW5lck5vZGU7CiBj
bGFzcyBGbG9hdFBvaW50OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTGF5b3V0UG9p
bnQ7CkBAIC0zNTgsNiArMzU5LDE0IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIFN0cmlu
ZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExf
RVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBhZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQo
KSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9u
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVVzZXJT
Y3JvbGxBY3Rpb25FbmQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tVc2VyU2Nyb2xsRW5k
UG9zaXRpb24oKSB7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQg
U2Nyb2xsYWJsZUFyZWEoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5TY3JvbGxhYmxl
QXJlYSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKaW5kZXggYTZiNTgwNzM4
OS4uZTBjYTE0YzQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0x
NTcsNiArMTU3LDEwIEBAIHZvaWQgU2Nyb2xsYmFyOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIFdpZGdlCiB2b2lkIFNjcm9sbGJhcjo6
YXV0b3Njcm9sbFRpbWVyRmlyZWQoKQogewogICAgIGF1dG9zY3JvbGxQcmVzc2VkUGFydCh0aGVt
ZSgpLmF1dG9zY3JvbGxUaW1lckRlbGF5KCkpOworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5U
UykKKyAgICBpZiAoIW1fc2Nyb2xsVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9zY3JvbGxh
YmxlQXJlYS5ub3RpZnlVc2VyU2Nyb2xsQWN0aW9uRW5kKCk7CisjZW5kaWYKIH0KIAogc3RhdGlj
IGJvb2wgdGh1bWJVbmRlck1vdXNlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQpAQCAtMjE1LDYgKzIx
OSwxMCBAQCB2b2lkIFNjcm9sbGJhcjo6c3RvcFRpbWVySWZOZWVkZWQoKQogewogICAgIGlmICht
X3Njcm9sbFRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fc2Nyb2xsVGltZXIuc3RvcCgpOwor
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIG1fc2Nyb2xsYWJsZUFyZWEubm90
aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgpOworI2VuZGlmCiB9CiAKIFNjcm9sbERpcmVjdGlvbiBT
Y3JvbGxiYXI6OnByZXNzZWRQYXJ0U2Nyb2xsRGlyZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAppbmRleCA1MmYyOTUzMWMzLi44
ZjlkOTdjNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xs
Q29udHJvbGxlci5oCkBAIC05MSw2ICs5MSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGFkanVzdFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpID0gMDsKICNlbmRpZgog
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlT
Y3JvbGxEaWRFbmQoKSB7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRlZmVyV2hlZWxF
dmVudFRlc3RDb21wbGV0aW9uRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xs
YWJsZUFyZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBj
b25zdCB7IC8qIERvIG5vdGhpbmcgKi8gfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXaGVlbEV2
ZW50VGVzdENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6
OlNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJl
YXNvbikgY29uc3QgeyAvKiBEbyBub3RoaW5nICovIH0KIApAQCAtMTkzLDYgKzE5NywxMyBAQCBw
cml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykK
KyAgICB2b2lkIHNjaGVkdWxlRGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kKCk7CisgICAgdm9pZCBk
ZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgdm9pZCBzdGFydERldGVj
dFNjcm9sbGVuZFRpbWVyKCk7CisgICAgdm9pZCBzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsK
KyAgICB2b2lkIGRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKTsKKyNlbmRpZgogICAgIFNjcm9s
bENvbnRyb2xsZXJDbGllbnQmIG1fY2xpZW50OwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjE5
LDYgKzIzMCwxMiBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKKyAgICAvLyBGSVhNRTogc2Nyb2xsU25hcCBhbmQgc2Nyb2xsZW5kIGNh
biBzaGFyZSB0aGUgc2FtZSB0aW1lciBmb3Igc3RhdGVsZXNzIHNjcm9sbC4KKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVu
ZFRpbWVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IG1fZGV0
ZWN0U2Nyb2xsZW5kVGltZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29s
IG1faW5TY3JvbGxHZXN0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW9tZW50dW1TY3JvbGxJ
blByb2dyZXNzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TY3JvbGxDb250cm9sbGVyLm1tCmluZGV4IGZmZWM0NDU0NGIuLjEyMDJkMmFhN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpA
QCAtMTQ4LDEyICsxNDgsMTcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgbV9vdmVy
Zmxvd1Njcm9sbERlbHRhID0gRmxvYXRTaXplKCk7CiAKICAgICAgICAgc3RvcFNuYXBSdWJiZXJi
YW5kVGltZXIoKTsKLQorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAgc3Rv
cERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUVuZGVkKSB7CiAgICAgICAgIHNuYXBSdWJiZXJCYW5kKCk7CisjaWYgRU5BQkxFKE9WRVJT
Q1JPTExfRVZFTlRTKQorICAgICAgICBzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5k
aWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xNjYsNiArMTcxLDExIEBAIGJv
b2wgU2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyNpZiBF
TkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQ
bGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUgJiYgd2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkg
PT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKQorICAgICAgICBzY2hlZHVsZURldGVjdFN0
YXRlbGVzc1Njcm9sbGVuZCgpOworI2VuZGlmCisKICAgICBmbG9hdCBkZWx0YVggPSBtX292ZXJm
bG93U2Nyb2xsRGVsdGEud2lkdGgoKTsKICAgICBmbG9hdCBkZWx0YVkgPSBtX292ZXJmbG93U2Ny
b2xsRGVsdGEuaGVpZ2h0KCk7CiAKQEAgLTg1MSw2ICs4NjEsNjQgQEAgdm9pZCBTY3JvbGxDb250
cm9sbGVyOjpzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlc0Zvck9mZnNldChpbnQgeCwgaW50IHkp
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xs
Q29udHJvbGxlcjo6c2NoZWR1bGVEZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmQoKQoreworICAgIGlm
IChtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVyKSB7CisgICAgICAgIG1fZGV0ZWN0U3Rh
dGVsZXNzU2Nyb2xsZW5kVGltZXItPnN0b3AoKTsKKyAgICAgICAgbV9kZXRlY3RTdGF0ZWxlc3NT
Y3JvbGxlbmRUaW1lciA9IG51bGxwdHI7CisgICAgfQorICAgIHN0YXRpYyBjb25zdCBTZWNvbmRz
IHN0YXRlbGVzc1Njcm9sbEVuZERlbGF5ID0gNzUwX21zOworICAgIG1fZGV0ZWN0U3RhdGVsZXNz
U2Nyb2xsZW5kVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBk
ZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9kZXRl
Y3RTdGF0ZWxlc3NTY3JvbGxlbmRUaW1lci0+c3RhcnRPbmVTaG90KHN0YXRlbGVzc1Njcm9sbEVu
ZERlbGF5KTsKK30KKwordm9pZCBTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTdGF0ZWxlc3NTY3Jv
bGxlbmRUaW1lckZpcmVkKCkKK3sKKyAgICBtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVy
ID0gbnVsbHB0cjsKKyAgICBtX2NsaWVudC5ub3RpZnlTY3JvbGxEaWRFbmQoKTsKK30KKwordm9p
ZCBTY3JvbGxDb250cm9sbGVyOjpzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCkKK3sKKyAgICBp
ZiAobV9kZXRlY3RTY3JvbGxlbmRUaW1lcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGV0ZWN0
U2Nyb2xsZW5kVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBk
ZXRlY3RTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9kZXRlY3RTY3JvbGxl
bmRUaW1lci0+c3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsKK30KKwordm9pZCBTY3JvbGxDb250
cm9sbGVyOjpzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKQoreworICAgIGlmICghbV9kZXRlY3RT
Y3JvbGxlbmRUaW1lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQubm90aWZ5U2Ny
b2xsRGlkRW5kKCk7CisgICAgbV9kZXRlY3RTY3JvbGxlbmRUaW1lci0+c3RvcCgpOworICAgIG1f
ZGV0ZWN0U2Nyb2xsZW5kVGltZXIgPSBudWxscHRyOworfQorCit2b2lkIFNjcm9sbENvbnRyb2xs
ZXI6OmRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKQoreworICAgIGlmIChpc1J1YmJlckJhbmRJ
blByb2dyZXNzKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBp
ZiAobV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgIHJldHVybjsKKyNpZiBFTkFC
TEUoQ1NTX1NDUk9MTF9TTkFQKQorICAgIGlmIChtX3Njcm9sbFNuYXBUaW1lcikKKyAgICAgICAg
cmV0dXJuOworI2VuZGlmCisjZW5kaWYKKworICAgIHN0b3BEZXRlY3RTY3JvbGxlbmRUaW1lcigp
OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShSVUJCRVJfQkFORElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmgKaW5kZXggNjJiMmJkMjk5OS4uZDk1ZDg4OTUwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0MSw2ICsx
NDEsMTAgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgaG9yaXpvbnRhbFNjcm9sbGJhclN0YXRlRm9y
VGVzdGluZygpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRl
Rm9yVGVzdGluZygpIGNvbnN0IGZpbmFsOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRT
KQorICAgIGJvb2wgaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkgb3ZlcnJpZGU7
CisjZW5kaWYKKwogICAgIC8vIFNjcm9sbENvbnRyb2xsZXJDbGllbnQuCiAjaWYgRU5BQkxFKFJV
QkJFUl9CQU5ESU5HKQogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOwpA
QCAtMTU3LDkgKzE2MSwxNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBbHJlYWR5UGlubmVkSW5E
aXJlY3Rpb25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsRXZlbnRB
eGlzKSBjb25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAo
RU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkKKyAgICB2
b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBib29sIG1f
aGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxl
VXBkYXRlOwogICAgIEludFJlY3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IG1fcmVxdWVz
dGluZ1Njcm9sbFBvc2l0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
aW5kZXggNWY2NTMwM2NlYS4uZjMxYjkyNjQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNzgzLDExICs3ODMsMTIgQEAgYm9v
bCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0
aW9uLCBTY3JvbGxHcmFudWxhcmkKIHsKICAgICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQg
PSB0cnVlOwogCi0gICAgaWYgKCFzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgfHwg
IW1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkpCi0gICAgICAgIHJldHVy
biBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwg
bXVsdGlwbGllcik7Ci0KLSAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlQaXhlbCkKKyAg
ICBpZiAoIXNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSB8fCAhbV9zY3JvbGxhYmxl
QXJlYS5zY3JvbGxBbmltYXRvckVuYWJsZWQoKSB8fCBncmFudWxhcml0eSA9PSBTY3JvbGxCeVBp
eGVsKSB7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBtX3JlcXVlc3Rp
bmdTY3JvbGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKKyNlbmRpZgogICAgICAgICByZXR1cm4g
U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11
bHRpcGxpZXIpOworICAgIH0KIAogICAgIEZsb2F0UG9pbnQgY3VycmVudFBvc2l0aW9uID0gdGhp
cy0+Y3VycmVudFBvc2l0aW9uKCk7CiAgICAgRmxvYXRTaXplIGRlbHRhOwpAQCAtODEwLDYgKzgx
MSw5IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlv
biBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwgIiA8PCAiIGZyb20g
IiA8PCBjdXJyZW50UG9zaXRpb24gPDwgIiB0byAiIDw8IG5ld1Bvc2l0aW9uKTsKICAgICBbbV9z
Y3JvbGxBbmltYXRpb25IZWxwZXIgc2Nyb2xsVG9Qb2ludDpuZXdQb3NpdGlvbl07CisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIG1fcmVxdWVzdGluZ1Njcm9sbFBvc2l0aW9uID0g
bmV3UG9zaXRpb247CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTIxLDYgKzky
NSwxNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlhdGVTY3JvbGxUb1Bvc2l0aW9u
Rm9yU2Nyb2xsQW5pbWF0aW9uKGNvbnN0IEZsb2F0UAogICAgIGltbWVkaWF0ZVNjcm9sbFRvUG9z
aXRpb24obmV3UG9zaXRpb24pOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
Ym9vbCBTY3JvbGxBbmltYXRvck1hYzo6aXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNz
KCkKK3sKKyAgICBpZiAobV9yZXF1ZXN0aW5nU2Nyb2xsUG9zaXRpb24gJiYgc2Nyb2xsYWJsZUFy
ZWEoKS5zY3JvbGxQb3NpdGlvbigpICE9IHJvdW5kZWRJbnRQb2ludChtX3JlcXVlc3RpbmdTY3Jv
bGxQb3NpdGlvbi52YWx1ZSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX3JlcXVl
c3RpbmdTY3JvbGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisjZW5kaWYKKwogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5UG9zaXRpb25DaGFuZ2Vk
KGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiB7CiAgICAgbm90aWZ5Q29udGVudEFyZWFTY3JvbGxl
ZChkZWx0YSk7CkBAIC0xNDQ3LDYgKzE0NjIsMTMgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6
aW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAoRU5BQkxFKENTU19TQ1JPTExfU05BUCkg
fHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlm
eVNjcm9sbERpZEVuZCgpCit7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5hZGRQZW5kaW5nU2Nyb2xs
RW5kRXZlbnRUYXJnZXQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1
cGRhdGVTY3JvbGxlclN0eWxlKCkKIHsKICAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJs
YXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCmluZGV4IDAzMzdjMDBjNjcuLjgzMjA0NzI0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCkBAIC05ODksNiArOTg5LDE2IEBAIFJlbmRlckJveCogUmVuZGVy
Qm94OjpmaW5kQXV0b3Njcm9sbGFibGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1
cm4gaXM8UmVuZGVyQm94PihyZW5kZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVy
KSA6IG51bGxwdHI7CiB9CiAKK3ZvaWQgUmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCgpCit7Cisj
aWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIGlmIChpc1JlbmRlclZpZXcoKSAmJiBm
cmFtZSgpLnZpZXcoKSkKKyAgICAgICAgZnJhbWUoKS52aWV3KCktPm5vdGlmeVVzZXJTY3JvbGxB
Y3Rpb25FbmQoKTsKKyAgICBlbHNlIGlmIChsYXllcigpKQorICAgICAgICBsYXllcigpLT5ub3Rp
ZnlVc2VyU2Nyb2xsQWN0aW9uRW5kKCk7CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJCb3g6OnBh
blNjcm9sbChjb25zdCBJbnRQb2ludCYgc291cmNlKQogewogICAgIGlmIChsYXllcigpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGQwODdkM2Y2NGYuLjNlMjU2ZGFhMjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQ3Myw3ICs0NzMsNyBAQCBv
dmVycmlkZTsKICAgICBib29sIGNhbkF1dG9zY3JvbGwoKSBjb25zdDsKICAgICBJbnRTaXplIGNh
bGN1bGF0ZUF1dG9zY3JvbGxEaXJlY3Rpb24oY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBj
b25zdDsKICAgICBzdGF0aWMgUmVuZGVyQm94KiBmaW5kQXV0b3Njcm9sbGFibGUoUmVuZGVyT2Jq
ZWN0Kik7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCk7CiAgICAgdmlydHVhbCB2b2lkIHBhblNjcm9sbChjb25z
dCBJbnRQb2ludCYpOwogCiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcldpdGhBdXRvQmVo
YXZpb3IoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmlu
ZGV4IDRlNzE3NDUwNjIuLjFkMDYxMGNmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcApAQCAtMjU5MCwxMCArMjU5MCwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpz
Y3JvbGxUb1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFt
cGluZwogCiB2b2lkIFJlbmRlckxheWVyOjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQ
b3NpdGlvbiYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcg
Y2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVkKQogeworICAgIGF1dG8gb2Zmc2V0ID0g
c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICBTY3JvbGxPZmZzZXQgbmV3
U2Nyb2xsT2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFt
cFNjcm9sbE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OwogICAgIGlmIChhbmltYXRlZCA9PSBBbmlt
YXRlZFNjcm9sbDo6WWVzKQotICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Ny
b2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwor
ICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Nyb2xsT2Zmc2V0LCBzY3Jv
bGxUeXBlLCBjbGFtcGluZyk7CiAgICAgZWxzZQotICAgICAgICBzY3JvbGxUb09mZnNldChzY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7Cisg
ICAgICAgIHNjcm9sbFRvT2Zmc2V0KG5ld1Njcm9sbE9mZnNldCwgc2Nyb2xsVHlwZSwgY2xhbXBp
bmcpOwogfQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNv
bnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjYxOCwxNiArMjYyMCwy
MiBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQm
IHNjcm9sbE9mZnNldCwgU2Nyb2xsVHlwZSBzYwogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNh
bmNlbEFuaW1hdGlvbnMoKTsKIAogICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0
ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNl
dChzY3JvbGxPZmZzZXQpIDogc2Nyb2xsT2Zmc2V0OworICAgIFNjcm9sbFBvc2l0aW9uIGNsYW1w
ZWRTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xs
T2Zmc2V0KTsKICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZz
ZXQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBj
dXJyZW50U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUp
OwogCi0gICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25G
cm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBzY3JvbGxUeXBlLCBjbGFtcGluZykpCisg
ICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY2xhbXBlZFNjcm9sbFBvc2l0aW9u
LCBzY3JvbGxUeXBlLCBjbGFtcGluZykpCiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFu
aW1hdGlvbihjbGFtcGVkU2Nyb2xsT2Zmc2V0LCBjbGFtcGluZyk7Ci0gICAgc2V0U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAorI2lm
IEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoY3VycmVudFNjcm9sbFR5cGUoKSA9
PSBTY3JvbGxUeXBlOjpVc2VyKQorICAgICAgICBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0
aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CisjZW5kaWYKKworICAgIHNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAgICAgc2V0
Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0KIApAQCAtMjc0OCw2ICsy
NzU2LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9u
JiBwb3NpdGlvbikKICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IHJlbmRlcmVyKCkuZWxlbWVu
dCgpKQogICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZFBlbmRpbmdTY3JvbGxFdmVudFRh
cmdldCgqZWxlbWVudCk7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgY2hl
Y2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24oKTsKKyNlbmRpZgorCiAgICAgaWYgKHNjcm9sbHNPdmVy
ZmxvdygpKQogICAgICAgICB2aWV3LmZyYW1lVmlldygpLmRpZENoYW5nZVNjcm9sbE9mZnNldCgp
OwogCkBAIC0yODAwLDcgKzI4MTIsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9W
aXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgIExh
eW91dFJlY3QgbmV3UmVjdCA9IGFic29sdXRlUmVjdDsKICAgICBGcmFtZVZpZXcmIGZyYW1lVmll
dyA9IHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpOwogICAgIGF1dG8qIHBhcmVudExheWVy
ID0gZW5jbG9zaW5nQ29udGFpbmluZ0Jsb2NrTGF5ZXIoKnRoaXMsIENyb3NzRnJhbWVCb3VuZGFy
aWVzOjpObyk7Ci0gICAgYm9vbCBhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyA9ICFyZW5kZXJlcigp
LmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuYXV0b3Njcm9sbEluUHJvZ3Jlc3MoKTsKKyAgICBib29s
IGF1dG9zY3JvbGxJblByb2dyZXNzID0gcmVuZGVyZXIoKS5mcmFtZSgpLmV2ZW50SGFuZGxlcigp
LmF1dG9zY3JvbGxJblByb2dyZXNzKCk7CiAKICAgICBpZiAoYWxsb3dzQ3VycmVudFNjcm9sbCgp
KSB7CiAgICAgICAgIC8vIERvbid0IHNjcm9sbCB0byByZXZlYWwgYW4gb3ZlcmZsb3cgbGF5ZXIg
dGhhdCBpcyByZXN0cmljdGVkIGJ5IHRoZSAtd2Via2l0LWxpbmUtY2xhbXAgcHJvcGVydHkuCkBA
IC0yODIwLDkgKzI4MzIsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJs
ZShjb25zdCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgaWYg
KGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkgfHwgY3VycmVudFNjcm9sbEJl
aGF2aW9yU3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKSB7
CiAgICAgICAgICAgICBTY3JvbGxPZmZzZXQgb2xkU2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0
KCk7CiAgICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xs
OjpObzsKLSAgICAgICAgICAgIGlmIChhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9v
dGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgYm94LT5lbGVtZW50KCkpKQorICAgICAgICAg
ICAgaWYgKCFhdXRvc2Nyb2xsSW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9u
cy5iZWhhdmlvciwgYm94LT5lbGVtZW50KCkpKQogICAgICAgICAgICAgICAgIGFuaW1hdGVkID0g
QW5pbWF0ZWRTY3JvbGw6OlllczsKLSAgICAgICAgICAgIHNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJv
Z3JhbW1hdGljLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOworICAgICAgICAg
ICAgc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3Jv
bGxPZmZzZXQpLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwg
YW5pbWF0ZWQpOworICAgICAgICAgICAgaWYgKGF1dG9zY3JvbGxJblByb2dyZXNzKQorICAgICAg
ICAgICAgICAgIHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbE9m
ZnNldCk7CiAgICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFt
cGVkU2Nyb2xsT2Zmc2V0IC0gb2xkU2Nyb2xsT2Zmc2V0OwogICAgICAgICAgICAgbG9jYWxFeHBv
c2VSZWN0Lm1vdmUoLXNjcm9sbE9mZnNldERpZmZlcmVuY2UpOwogICAgICAgICAgICAgbmV3UmVj
dCA9IExheW91dFJlY3QoYm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJl
Y3QobG9jYWxFeHBvc2VSZWN0KSksIFVzZVRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwpAQCAt
Mjg0OSwxMSArMjg2MywxMyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxl
KGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdF
bGVtZW50KCk/CiAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDUwNTkKICAgICAgICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBh
bmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpObzsKLSAgICAgICAgICAgICAgICBpZiAoYXV0b3Nj
cm9sbE5vdEluUHJvZ3Jlc3MKKyAgICAgICAgICAgICAgICBpZiAoIWF1dG9zY3JvbGxJblByb2dy
ZXNzCiAgICAgICAgICAgICAgICAgICAgICYmIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50
KCkKICAgICAgICAgICAgICAgICAgICAgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVo
YXZpb3IsIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgp
KSkKICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQgPSBBbmltYXRlZFNjcm9sbDo6WWVzOwog
ICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlv
biwgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgICAgICBp
ZiAoYXV0b3Njcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lVmlldy5z
ZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKIAogICAgICAg
ICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgPT0g
U2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmlldy5zYWZlVG9Q
cm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRv
KiBlbmNsb3NpbmdMYXllciA9IG93bmVyRWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5
ZXIoKSkKQEAgLTI4OTYsOSArMjkxMiwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0
VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGlu
Z0VsZW1lbnQoKT8KICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTA1OQogICAgICAgICAgICAgICAgIEFuaW1hdGVkU2Nyb2xs
IGFuaW1hdGVkID0gQW5pbWF0ZWRTY3JvbGw6Ok5vOwotICAgICAgICAgICAgICAgIGlmIChhdXRv
c2Nyb2xsTm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlv
ciwgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKSkKKyAgICAgICAgICAg
ICAgICBpZiAoIWF1dG9zY3JvbGxJblByb2dyZXNzICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRp
b25zLmJlaGF2aW9yLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpKQog
ICAgICAgICAgICAgICAgICAgICBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpZZXM7CiAgICAg
ICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3Np
dGlvbiwgU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgICAg
ICBpZiAoYXV0b3Njcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lVmll
dy5zZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCB2
aWV3IG9mIGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlzIHZpZXcgd2UKQEAgLTQx
NTcsNyArNDE3NSwxMyBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9s
cyhIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEludFBvaW50JgogCiBib29sIFJlbmRlckxh
eWVyOjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIpCiB7Ci0gICAgcmV0dXJuIFNjcm9sbGFibGVB
cmVhOjpzY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGllcik7CisgICAgaWYg
KFNjcm9sbGFibGVBcmVhOjpzY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGll
cikpIHsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIG5vdGlmeVVzZXJT
Y3JvbGxBY3Rpb25FbmQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpwYWludChHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QsIGNvbnN0IExheW91
dFNpemUmIHN1YnBpeGVsT2Zmc2V0LCBPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhh
dmlvciwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290LCBPcHRpb25TZXQ8UGFpbnRMYXll
ckZsYWc+IHBhaW50RmxhZ3MsIFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpY3kgcGFpbnRQb2xpY3ks
IEV2ZW50UmVnaW9uQ29udGV4dCogZXZlbnRSZWdpb25Db250ZXh0KQpAQCAtNzAzNiw2ICs3MDYw
LDUyIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVFdmVudFJlZ2lvbihFdmVudFJlZ2lv
bkludmFsaWRhdGlvblJlYXNvbiByZWFzb24pCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShPVkVS
U0NST0xMX0VWRU5UUykKK3ZvaWQgUmVuZGVyTGF5ZXI6OmFkZFBlbmRpbmdTY3JvbGxFbmRFdmVu
dFRhcmdldCgpCit7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSByZW5kZXJlcigpLmVsZW1l
bnQoKSkKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5hZGRQZW5kaW5nU2Nyb2xsRW5kRXZl
bnRUYXJnZXQoKmVsZW1lbnQpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpzZXRSZXF1ZXN0aW5n
VXNlclNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAg
ICBpZiAoIXJlbmRlcmVyKCkuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3JlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gPSBw
b3NpdGlvbjsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6bm90aWZ5VXNlclNjcm9sbEFjdGlvbkVu
ZCgpCit7CisgICAgaWYgKCFyZW5kZXJlcigpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0Vu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjcm9sbEFuaW1hdG9yKCkuaXNT
Y3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gdHJ1ZTsKKyAgICBjaGVja1VzZXJTY3JvbGxFbmRQ
b3NpdGlvbigpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpjaGVja1VzZXJTY3JvbGxFbmRQb3Np
dGlvbigpCit7CisgICAgaWYgKCFyZW5kZXJlcigpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50
c0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JlcXVlc3RpbmdVc2Vy
U2Nyb2xsUG9zaXRpb24pIHsKKyAgICAgICAgbV9pc1VzZXJTY3JvbGxBY3Rpb25FbmQgPSBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9pc1VzZXJTY3JvbGxBY3Rp
b25FbmQgfHwgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uLnZhbHVlKCkgIT0gc2Nyb2xs
UG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYWRkUGVuZGluZ1Njcm9sbEVuZEV2
ZW50VGFyZ2V0KCk7CisgICAgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uID0gV1RGOjpu
dWxsb3B0OworICAgIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gZmFsc2U7Cit9CisjZW5kaWYK
KwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBDbGlwUmVjdHNU
eXBlIGNsaXBSZWN0c1R5cGUpCiB7CiAgICAgc3dpdGNoIChjbGlwUmVjdHNUeXBlKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDVmNTRkMGVjM2IuLjJmMzQwNDY2
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC05MzIsNiArOTMy
LDE0IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmlu
YWw7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBhZGRQZW5kaW5n
U2Nyb2xsRW5kRXZlbnRUYXJnZXQoKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UmVxdWVzdGluZ1Vz
ZXJTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIHZvaWQg
bm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgpIGZpbmFsOworICAgIHZvaWQgY2hlY2tVc2VyU2Ny
b2xsRW5kUG9zaXRpb24oKSBmaW5hbDsKKyNlbmRpZgorCiBwcml2YXRlOgogCiAgICAgdm9pZCBz
ZXROZXh0U2libGluZyhSZW5kZXJMYXllciogbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CkBAIC0x
MzcxLDYgKzEzNzksMTEgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJM
YXllckZpbHRlcnM+IG1fZmlsdGVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyTGF5ZXJC
YWNraW5nPiBtX2JhY2tpbmc7CisKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAg
T3B0aW9uYWw8U2Nyb2xsUG9zaXRpb24+IG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbjsK
KyAgICBib29sIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kIHsgZmFsc2UgfTsKKyNlbmRpZgogICAg
IAogICAgIFBhaW50RnJlcXVlbmN5VHJhY2tlciBtX3BhaW50RnJlcXVlbmN5VHJhY2tlcjsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKaW5kZXggNTJiYjVhZmU5NC4uZDgxY2Y3NGNmNyAx
MDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQpAQCAtMTg1LDcgKzE4NSw3IEBAIG1hY3JvKFdF
QktJVF9PUFRJT05fQkVHSU4pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1RIVU5E
RVIgIlRvZ2dsZSBFTUUgVjMgVGh1bmRlciBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJL
SVRfT1BUSU9OX0RFRklORShFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTICJUb2dnbGUgT3JpZW50
YXRpb24gRXZlbnRzIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVG
SU5FKEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggIlRvZ2dsZSBhY2NlbGVyYXRlZCBz
Y3JvbGxpbmcgc3VwcG9ydCIgUFJJVkFURSBPRkYpCi0gICAgV0VCS0lUX09QVElPTl9ERUZJTkUo
RU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTICJUb2dnbGUgb3ZlcnNjcm9sbCBldmVudHMiIFBSSVZB
VEUgT0ZGKQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9PVkVSU0NST0xMX0VWRU5U
UyAiVG9nZ2xlIG92ZXJzY3JvbGwgZXZlbnRzIiBQUklWQVRFIE9OKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgIlRvZ2dsZSBQYXltZW50IFJlcXVlc3Qg
c3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1BE
RktJVF9QTFVHSU4gIlRvZ2dsZSBQREZLaXQgcGx1Z2luIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQog
ICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9QRVJJT0RJQ19NRU1PUllfTU9OSVRPUiAi
VG9nZ2xlIHBlcmlvZGljYWwgbWVtb3J5IG1vbml0b3Igc3VwcG9ydCIgUFJJVkFURSBPRkYpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405452</attachid>
            <date>2020-07-29 06:27:26 -0700</date>
            <delta_ts>2020-07-29 06:27:26 -0700</delta_ts>
            <desc>scrollend-userscroll-on-Mac-for-ews</desc>
            <filename>scrollend-mac-for-ews-003.diff</filename>
            <type>text/plain</type>
            <size>85465</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlNjBiMjhhNjJmLi5lNTZm
MjQyNDk2IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjAtMDQtMDkgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAg
ICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLD
qWTDqXJpYyBXYW5nJ3MgcGF0Y2guCisKKyAgICAgICAgQWRkIEVOQUJMRV9PVkVSU0NST0xMX0VW
RU5UUyB3aGljaCBpcyBvZmYgYnkgZGVmYXVsdC4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZToKKwogMjAyMC0wNy0xMCAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2
YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0VNRV1bT3Bl
bkNETV0gSW1wbGVtZW50IE9wZW5DRE0gc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQzY2NhM2YyNzUuLjRkYWE3
ZTcwYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wNy0yMSAgQ2F0aGllIENoZW4gIDxj
YXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbGVu
ZCBldmVudCBvZiB1c2VyIHNjcm9sbGluZyBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB1c2VyIHNjcm9sbGluZyB0ZXN0IGZvciBzY3Jv
bGxlbmQgZXZlbnQuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFu
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9y
LXN0YXRlbGVzcy13aGVlbC1zY3JvbGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1zY3JvbGwuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci13aGVl
bC1zY3JvbGwtd2l0aC1zdGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUuaHRtbDog
QWRkZWQuCisKIDIwMjAtMDctMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCBza2lwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9wZXJhdGlvbnMuaHR0cHMuaHRtbCBpbiBEZWJ1Zy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjN2Y3NzFjN2EuLjE0NTE1NGVmYjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTcyLDcgKzE3MiwxMiBAQCBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXBy
aXZhY3kvIFsgU2tpcCBdCiBmYXN0L2hhcm5lc3MvdWlzY3JpcHRjb250cm9sbGVyIFsgU2tpcCBd
CiAKICMgT25seSBpT1MgaGFzIGFuIGltcGxlbWVudGF0aW9uIG9mIFVJU2NyaXB0Q29udHJvbGxl
cjo6c2VuZEV2ZW50U3RyZWFtKCkuCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ldmVudHMvc2Nyb2xsaW5nIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nLyBbIFNraXAgXQorCisjIEN1cnJlbnRseSwgb25seSBN
YWMgc3VwcG9ydHMgdGhlIHNjcm9sbGVuZCBldmVudCBvZiB1c2VyIHNjcm9sbGluZy4KK3dlYmtp
dC5vcmcvYi8yMDE1NTYgZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1ydWJiZXJiYW5k
Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8yMDE1NTYgZmFzdC9ldmVudHMvc2Nyb2xsZW5k
LWV2ZW50LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5v
cmcvYi8yMDE1NTYgZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci13aGVlbC1zY3JvbGwt
d2l0aC1zdGF0ZS5odG1sIFsgU2tpcCBdCiAKICMgVGhpcyB0ZXN0IG9ubHkgbWFrZXMgc2Vuc2Ug
b24gTWFjCiBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1zdWJ0aXRsZS1yZXNpemUuaHRtbCBb
IFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2
ZW50LWZvci1ydWJiZXJiYW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjg4ZWIxY2Q1NwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTIFRlc3QgZm9yIHJ1YmJlci1iYW5kIHNj
cm9sbGluZyBzY3JvbGxlbmQgZXZlbnQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1ydWJiZXJiYW5kLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYjc4MjRkZDZlZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFu
ZC5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxFdmVudHNFbmFibGVkPXRydWUgXSAtLT4K
KzxodG1sPgorPGJvZHkgc3R5bGU9Im1hcmdpbjowIiBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAg
PGRpdiBpZD0ibG9nIj48L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBmaW5pc2hl
ZChtZXNzYWdlKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLmlubmVyVGV4
dCA9IG1lc3NhZ2UgKyAiXG4iOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIG9uU2Nyb2xsRW5kKGV2ZW50
KSB7CisgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUgfHwgIWV2ZW50LmJ1YmJsZXMpIHsKKyAgICAg
ICAgZmluaXNoZWQoIkZBSUwsIGZvciBkb2N1bWVudCBzY3JvbGxlbmQgZXZlbnQgY2FuY2VsYWJs
ZSBzaG91bGQgYmUgZmFsc2UgYW5kIGJ1YmJsZSBzaG91bGUgYmUgdHJ1ZS4iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHZhciBzY3JvbGxlbmRfcG9zaXRpb24gPSB3aW5kb3cuc2Ny
b2xsWTsKKyAgICBpZiAoc2Nyb2xsZW5kX3Bvc2l0aW9uICE9IDApCisgICAgICAgIGZpbmlzaGVk
KCJGQUlMLCB3aW5kb3cgZGlkIG5vdCBzY3JvbGwuIik7CisKKyAgICBzZXRUaW1lb3V0KCgpID0+
IHsKKyAgICAgICAgaWYgKHNjcm9sbGVuZF9wb3NpdGlvbiA9PSB3aW5kb3cuc2Nyb2xsWSkKKyAg
ICAgICAgICAgIGZpbmlzaGVkKCJQQVNTIFRlc3QgZm9yIHJ1YmJlci1iYW5kIHNjcm9sbGluZyBz
Y3JvbGxlbmQgZXZlbnQuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZpbmlzaGVkKCJG
QUlMLCB3aW5kb3cncyBzY3JvbGwgcG9zaXRpb24gc2hvdWxkbid0IGNoYW5nZSBhZnRlciBnZXR0
aW5nIHNjcm9sbGVuZCBldmVudC4iKTsKKyAgICB9LCAzMDApOworfQorCitmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICBmaW5pc2hlZCgiRkFJTCwgZXZlbnRTZW5kZXIgb3IgdGVzdFJ1bm5lciBh
cmUgbm90IHN1cHBvcnRlZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uU2Nyb2xsRW5kKTsKKwor
ICAgIC8vIFRlc3Qgd2hlZWwgZXZlbnQgd2l0aCBzdGF0ZXMgc2Nyb2xsLgorICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKDEwMCwgMTAwKTsKKyAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxF
dmVudHMoKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50
dW1QaGFzZXMoMCwgMSwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgNSwgImNoYW5nZWQiLCAibm9uZSIp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCA1LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxC
eVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDEsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwg
MCwgImVuZGVkIiwgIm5vbmUiKTsKK30KKzwvc2NyaXB0PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9s
bGVuZC1ldmVudC1mb3Itc3RhdGVsZXNzLXdoZWVsLXNjcm9sbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1z
Y3JvbGwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu
LjdlNWQxYzMyNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
Y3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1zY3JvbGwtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMiBAQAorUEFTUyBUZXN0IGZvciBzdGF0ZWxlc3Mgd2hlZWwgc2Nyb2xsaW5nIHNj
cm9sbGVuZCBldmVudC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Ny
b2xsZW5kLWV2ZW50LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1zY3JvbGwu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42YjgyYjU3MzJjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50
LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWwKQEAgLTAsMCArMSw3NyBAQAorPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6T3ZlcnNjcm9s
bEV2ZW50c0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+Cisg
ICAgICAgICN0YXJnZXREaXYgeworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAg
IH0KKworICAgICAgICAjaW5uZXJEaXYgeworICAgICAgICAgICAgd2lkdGg6IDQwMHB4OworICAg
ICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9hZD1ydW5UZXN0KCk+CisgICAgPGRpdiBpZD0i
dGFyZ2V0RGl2Ij4KKyAgICAgICAgPGRpdiBpZD0iaW5uZXJEaXYiPgorICAgICAgICA8L2Rpdj4K
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4K
K3ZhciB0YXJnZXRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldERpdicpOwor
CitmdW5jdGlvbiBmaW5pc2hlZChtZXNzYWdlKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImxvZyIpLmlubmVyVGV4dCA9IG1lc3NhZ2UgKyAiXG4iOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9u
IG9uU2Nyb2xsRW5kKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LmNhbmNlbGFibGUgfHwgZXZlbnQu
YnViYmxlcykgeworICAgICAgICBmaW5pc2hlZCgiRkFJTCwgY2FuY2VsYWJsZSBhbmQgYnViYmxl
cyBvZiBhbiBlbGVtZW50IHNjcm9sbGVuZCBldmVudCBzaG91bGQgYmUgZmFsc2UuIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICB2YXIgc2Nyb2xsZW5kX3Bvc2l0aW9uID0gdGFyZ2V0
X2Rpdi5zY3JvbGxUb3A7CisgICAgaWYgKHNjcm9sbGVuZF9wb3NpdGlvbiA8PSAwKQorICAgICAg
ICBmaW5pc2hlZCgiRkFJTCwgdGFyZ2V0X2RpdiBkaWQgbm90IHNjcm9sbC4iKTsKKworICAgIHNl
dFRpbWVvdXQoKCkgPT4geworICAgICAgICBpZiAoc2Nyb2xsZW5kX3Bvc2l0aW9uID09IHRhcmdl
dF9kaXYuc2Nyb2xsVG9wKQorICAgICAgICAgICAgZmluaXNoZWQoIlBBU1MgVGVzdCBmb3Igc3Rh
dGVsZXNzIHdoZWVsIHNjcm9sbGluZyBzY3JvbGxlbmQgZXZlbnQuIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGZpbmlzaGVkKCJGQUlMLCB0YXJnZXRfZGl2J3Mgc2Nyb2xsIHBvc2l0aW9u
IHNob3VsZG4ndCBjaGFuZ2UgYWZ0ZXIgZ2V0dGluZyBzY3JvbGxlbmQgZXZlbnQuIik7CisgICAg
fSwgMzAwKTsKK30KKworZnVuY3Rpb24gb25VbmV4cGVjdGVkU2Nyb2xsRW5kKCkgeworICAgIGZp
bmlzaGVkKCJGQUlMLCB3aW5kb3cgZ290IHVuZXhwZWN0ZWQgc2Nyb2xsZW5kIGV2ZW50Iik7Cit9
CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwg
IXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIGZpbmlzaGVkKCJGQUlMLCBldmVudFNlbmRl
ciBvciB0ZXN0UnVubmVyIGFyZSBub3Qgc3VwcG9ydGVkLiIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisKKyAgICAvLyBNYWtlIHN1cmUgdGhhdCBubyBzY3JvbGxlbmQgZXZlbnQg
aXMgc2VudCB0byB3aW5kb3cuCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVu
ZCIsIG9uVW5leHBlY3RlZFNjcm9sbEVuZCk7CisgICAgdGFyZ2V0X2Rpdi5hZGRFdmVudExpc3Rl
bmVyKCJzY3JvbGxlbmQiLCBvblNjcm9sbEVuZCk7CisKKyAgICAvLyBUZXN0IHdoZWVsIGV2ZW50
IHdpdGggc3RhdGVsZXNzIHNjcm9sbC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyMCwg
MjApOworICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgIm5vbmUi
LCAibm9uZSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtMjAsICJub25lIiwgIm5vbmUiKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTIwLCAibm9uZSIsICJub25l
Iik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIDAsICJub25lIiwgIm5vbmUiKTsKK30KKzwvc2NyaXB0PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Njcm9sbGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci13aGVlbC1zY3Jv
bGwtd2l0aC1zdGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMC4uMGVmZDdlYmEwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyB0ZXN0IGZvciB3aGVlbCBzY3JvbGxpbmcgc2Ny
b2xsZW5kIGV2ZW50LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3Jv
bGxlbmQtZXZlbnQtZm9yLXdoZWVsLXNjcm9sbC13aXRoLXN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVsLXNjcm9sbC13aXRoLXN0YXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYjE0Y2RmMjZhOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVu
dC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUuaHRtbApAQCAtMCwwICsxLDgzIEBACis8IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Ny
b2xsRXZlbnRzRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4K
KyAgICAgICAgI3RhcmdldERpdiB7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAg
ICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAg
ICAgfQorCisgICAgICAgICNpbm5lckRpdiB7CisgICAgICAgICAgICB3aWR0aDogNDAwcHg7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5IHN0eWxlPSJtYXJnaW46MCIgb25sb2FkPXJ1blRlc3QoKT4KKyAgICA8ZGl2IGlk
PSJ0YXJnZXREaXYiPgorICAgICAgICA8ZGl2IGlkPSJpbm5lckRpdiI+CisgICAgICAgIDwvZGl2
PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0
PgorICAgIHZhciB0YXJnZXRfZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldERp
dicpOworCisgICAgZnVuY3Rpb24gZmluaXNoZWQobWVzc2FnZSkgeworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJUZXh0ID0gbWVzc2FnZSArICJcbiI7CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uU2Nyb2xsRW5kKGV2ZW50KSB7CisgICAg
ICAgIGlmIChldmVudC5jYW5jZWxhYmxlIHx8IGV2ZW50LmJ1YmJsZXMpIHsKKyAgICAgICAgICAg
IGZpbmlzaGVkKCJGQUlMLCBjYW5jZWxhYmxlIGFuZCBidWJibGVzIG9mIGFuIGVsZW1lbnQgc2Ny
b2xsZW5kIGV2ZW50IHNob3VsZCBiZSBmYWxzZS4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBzY3JvbGxlbmRfcG9zaXRpb24gPSB0YXJnZXRfZGl2LnNj
cm9sbFRvcDsKKyAgICAgICAgaWYgKHNjcm9sbGVuZF9wb3NpdGlvbiA8PSAwKSB7CisgICAgICAg
ICAgICBmaW5pc2hlZCgiRkFJTCwgdGFyZ2V0X2RpdiBkaWQgbm90IHNjcm9sbC4iKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewor
ICAgICAgICAgICAgaWYgKHNjcm9sbGVuZF9wb3NpdGlvbiA9PSB0YXJnZXRfZGl2LnNjcm9sbFRv
cCkKKyAgICAgICAgICAgICAgICBmaW5pc2hlZCgiUEFTUyB0ZXN0IGZvciB3aGVlbCBzY3JvbGxp
bmcgc2Nyb2xsZW5kIGV2ZW50LiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGZpbmlzaGVkKCJGQUlMLCB0YXJnZXQgc2Nyb2xsIHBvc2l0aW9uIHNob3VsZG4ndCBjaGFuZ2Ug
YWZ0ZXIgZ2V0dGluZyBzY3JvbGxlbmQgZXZlbnQuIik7CisgICAgICAgIH0sIDMwMCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gb25VbmV4cGVjdGVkU2Nyb2xsRW5kKCkgeworICAgICAgICBmaW5p
c2hlZCgiRkFJTCwgd2luZG93IGdvdCB1bmV4cGVjdGVkIHNjcm9sbGVuZCBldmVudCIpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICghd2luZG93LmV2ZW50
U2VuZGVyIHx8ICF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgZmluaXNoZWQoIkZB
SUwsIGV2ZW50U2VuZGVyIG9yIHRlc3RSdW5uZXIgYXJlIG5vdCBzdXBwb3J0LiIpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIC8vIE1h
a2Ugc3VyZSB0aGF0IG5vIHNjcm9sbGVuZCBldmVudCBpcyBzZW50IHRvIHdpbmRvdy4KKyAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uVW5leHBlY3RlZFNjcm9s
bEVuZCk7CisgICAgICAgIHRhcmdldF9kaXYuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwg
b25TY3JvbGxFbmQpOworCisgICAgICAgIC8vIFRlc3Qgd2hlZWwgZXZlbnQgd2l0aCBzdGF0ZXMg
c2Nyb2xsLgorICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyMCwgMjApOworICAgICAg
ICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAiYmVnYW4iLCAi
bm9uZSIpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAiY2hhbmdl
ZCIsICJub25lIik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxB
bmRNb21lbnR1bVBoYXNlcygwLCAtMSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgImVu
ZGVkIiwgIm5vbmUiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVl
bEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAibm9uZSIsICJiZWdpbiIpOworICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTUsICJu
b25lIiwgImNvbnRpbnVlIik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRo
V2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAibm9uZSIsICJlbmQiKTsKKyAgICB9Cis8L3Nj
cmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWYwNWU0NmY3ZS4uMmQ2
ZWFjMGNhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTAzOSw0ICsxMDM5LDkgQEAgd2Via2l0Lm9yZy9iLzIxMzYyMSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRDb24KIAogd2Vi
a2l0Lm9yZy9iLzIxMzY1MiB3ZWJydGMvdmlkZW8tYXV0b3BsYXkxLmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQogCi13ZWJraXQub3JnL2IvMjE0MDg0IFsgUmVsZWFzZSBdIHdlYnJ0Yy9saWJ3ZWJydGMv
ZGVzY3JpcHRpb25HZXR0ZXJzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKK3dlYmtpdC5vcmcvYi8yMTQwODQgWyBSZWxlYXNlIF0gd2VicnRjL2xpYndl
YnJ0Yy9kZXNjcmlwdGlvbkdldHRlcnMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKKyMgQ3VycmVu
dGx5LCBvbmx5IE1hYyBzdXBwb3J0cyB0aGUgc2Nyb2xsZW5kIGV2ZW50IG9mIHVzZXIgc2Nyb2xs
aW5nLgord2Via2l0Lm9yZy9iLzIwODgxMyBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9y
LXJ1YmJlcmJhbmQuaHRtbCBbIFBhc3MgXQord2Via2l0Lm9yZy9iLzIwODgxMyBmYXN0L2V2ZW50
cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1zY3JvbGwuaHRtbCBbIFBhc3Mg
XQord2Via2l0Lm9yZy9iLzIwODgxMyBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdo
ZWVsLXNjcm9sbC13aXRoLXN0YXRlLmh0bWwgWyBQYXNzIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAzZjRjNjYxOTE5Li45NjQyZjFjYzI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNC0wOSAg
Q2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEZy
w6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiBGcsOpZMOpcmljIFdhbmcncyBwYXRj
aC4KKworICAgICAgICBBZGQgRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTLgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMjAtMDctMDkgIEJy
aWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjYyMzAy
KTogSVRNTEtpdCBkZWJ1Z2dhYmxlcyBpbiBsaXN0aW5ncyBhcmUgbWlzc2luZyBhIHRpdGxlLCB1
c2UgVVVJRCBpbnN0ZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI4MGMzOWE5MzAuLjRiM2I4Y2U3OGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMjAtMDctMjEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb2YgdXNlciBzY3Jv
bGxpbmcgb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDg4MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIwMjAtMDctMTAgIFhhYmllciBS
b2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVh
bWVyXVtFTUVdW09wZW5DRE1dIEltcGxlbWVudCBPcGVuQ0RNIHN1cHBvcnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaCBiL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCBmODZlYjBhMWI4Li5jYTk5YzZjMDY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC0zNjUsNiArMzY1LDEwIEBACiAjZGVmaW5l
IEVOQUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5l
ZChFTkFCTEVfT1ZFUlNDUk9MTF9FVkVOVFMpCisjZGVmaW5lIEVOQUJMRV9PVkVSU0NST0xMX0VW
RU5UUyAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QpCiAj
ZGVmaW5lIEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgMQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNh
YzUyMTA2OS4uNjFjZGQ5M2RiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzNCBAQAorMjAyMC0w
Ny0yMSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHNjcm9sbGVuZCBldmVudCBvZiB1c2VyIHNjcm9sbGluZyBvbiBNYWMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgxMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c3VwcG9ydHMgc2Nyb2xsZW5kIGV2ZW50cyBmb3IgdGhlIGZvbGxvd2luZyB1c2VyIHNjcm9sbHMg
b24gTWFjLgorICAgICAgICAxLiBXaGVlbCBldmVudCBzY3JvbGw6IEZvciB3aGVlbCBldmVudCB3
aXRoIHN0YXRlLCBub3Qgb25seSBpdCBnZW5lcmF0ZXMgdXNlciBzY3JvbGxpbmcsIGJ1dCBhbHNv
IGl0IG1pZ2h0CisgICAgICAgIGdlbmVyYXRlIG1vbWVudHVtIHNjcm9sbGluZywgUnViYmVyQmFu
ZCwgb3IgdHJpZ2dlciBzY3JvbGxTbmFwLiBJbiBvcmRlciB0byBkZXRlY3QgdGhlIGVuZCBvZiBh
bGwgdGhlc2Ugc2Nyb2xsIGFjdGlvbnMsCisgICAgICAgIHdlIHN0YXJ0IGEgcmVwZWF0aW5nIHRp
bWVyIChtX2RldGVjdFNjcm9sbGVuZFRpbWVyKSB3aGVuIGdldHMgdGhlIFVzZXJTY3JvbGxFbmQg
c3RhdHVzLiBBbmQgZmlyZSBzY3JvbGxlbmQgZXZlbnRzCisgICAgICAgIHdoZW4gYWxsIHRoZSBz
Y3JvbGwgYWN0aW9ucyBzdG9wLiBGb3Igc3RhdGVsZXNzIHdoZWVsIGV2ZW50IHdoaWNoIGlzIGdl
bmVyYXRlZCBieSBtb3VzZSwgc2Nyb2xsZW5kIGNvdWxkbid0IGJlIGRldGVjdGVkCisgICAgICAg
IGJ5IHdoZWVsIGV2ZW50cyBzdGF0ZSwgc28gd2Ugc3RhcnQgYSBvbmUtc2hvdCB0aW1lciAobV9k
ZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmRUaW1lcikuIElmIG5vIG5ldyBzdGF0ZWxlc3Mgd2hlZWwg
c2Nyb2xsCisgICAgICAgIGdlbmVyYXRlZCBpbiA3NTBtcywgZmlyZSBzY3JvbGxlbmQgZXZlbnQu
CisgICAgICAgIDIuIFNjcm9sbGJhciBzY3JvbGw6IEZvciBwcmVzc2luZyBzY3JvbGxiYXIgc2Ny
b2xsaW5nLCBpdCdzIHRyaWdnZXJlZCBieSBtX3Njcm9sbFRpbWVyLiBTbyBmaXJlIHNjcm9sbGVu
ZCBldmVudCB3aGVuCisgICAgICAgIG1fc2Nyb2xsVGltZXIgZmlyZXMgb3Igc3RvcHMuIEZvciBk
cmFnZ2luZyB0aHVtYiBzY3JvbGxpbmcsIGl0J3MgdHJpZ2dlcmVkIGJ5IG1vdXNlIG1vdmUuIFNv
IGZpcmUgc2Nyb2xsZW5kIGV2ZW50IHdoZW4KKyAgICAgICAgbW91c2UgdXAuCisgICAgICAgIDMu
IEtleWJvYXJkIHNjcm9sbDogVGhlIHNjcm9sbCBhY3Rpb24gZW5kIGlzIHNldCB0byBSZW5kZXJM
YXllcjo6c2Nyb2xsIG9yIFNjcm9sbFZpZXc6OnNjcm9sbC4KKyAgICAgICAgNC4gRHJhZ2dpbmcg
c2Nyb2xsOiBUaGUgbW91c2UgZHJhZ2dpbmcgc2Nyb2xsIGlzIHRyaWdnZXJlZCBieSBtX2F1dG9z
Y3JvbGxUaW1lciBpbiBBdXRvc2Nyb2xsQ29udHJvbGxlci4gU28gZmlyZSBzY3JvbGxlbmQKKyAg
ICAgICAgZXZlbnQgd2hlbiBtX2F1dG9zY3JvbGxUaW1lciBlbmRzLCBpdCB3aWxsIGNhbGwgUmVu
ZGVyQm94OjpzdG9wQXV0b3Njcm9sbC4KKworICAgICAgICBTb21lIHVzZXIgc2Nyb2xsIGFjdGlv
bnMgbWlnaHQgbm90IGFjdHVhbGx5IGdlbmVyYXRlIHNjcm9sbGluZywgZm9yIGluc3RhbmNlLCBw
cmVzc2luZyBvbiB0aGUgc2Nyb2xsYmFyIHRodW1iLiBBbmQgRnJhbWVWaWV3CisgICAgICAgIHNj
cm9sbCBpcyBhc3luY2hyb25vdXMsIHNvIHRoZSBzY3JvbGxlbmQgZXZlbnRzIHNob3VsZCBiZSBm
aXJlZCB3aGVuIHNjcm9sbCBwb3NpdGlvbiBhY3R1YWxseSBjaGFuZ2VkIG5vdCB3aGVuIHNjcm9s
bCBhY3Rpb25zCisgICAgICAgIHN0b3AuIFNvIGN1cnJlbnQgYXBwcm9hY2ggaXMgdGhhdCBTY3Jv
bGxhYmxlQXJlYSByZXN0b3JlcyB0aGUgcmVxdWVzdGVkIHVzZXIgc2Nyb2xsIHBvc2l0aW9ucyB3
aGljaCBpbmRpY2F0ZSB0aGF0IGl0IHdpbGwgc2Nyb2xsLiAKKyAgICAgICAgV2hlbiB0aGUgYWJv
dmUgc2Nyb2xsIGFjdGlvbnMgc3RvcCwgbm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgpIGlzIGNh
bGxlZCBhbmQgd2lsbCBzZXQgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uIHRydWUuCisg
ICAgICAgIEFmdGVyIHRoYXQsIFNjcm9sbGFibGVBcmVhIHdpbGwgY2hlY2tVc2VyU2Nyb2xsRW5k
UG9zaXRpb24gd2hlbiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGFjdHVhbGx5IGNoYW5nZWQuCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRl
bGVzcy13aGVlbC1zY3JvbGwuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc2Nyb2xs
ZW5kLWV2ZW50LWZvci13aGVlbC1zY3JvbGwtd2l0aC1zdGF0ZS5odG1sCisKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbW1vblRlYXJk
b3duKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRQZW5kaW5nU2Nyb2xsRW5kRXZl
bnRUYXJnZXQpOiBBcHBlbmQgdGhlIHRhcmdldHMgdG8gbV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRU
YXJnZXRMaXN0LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJ1blNjcm9sbFN0ZXBzKTog
RGlzcGF0Y2ggc2Nyb2xsZW5kIGV2ZW50IGZvciBlYWNoIHRhcmdldC4KKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDogQWRkIG1fcGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlzdCB3aGljaCBr
ZWVwcyB0aGUgc2Nyb2xsZW5kIGV2ZW50IHRhcmdldHMuCisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxUbyBjb25zdCk6Cisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKTogRm9yIEZyYW1lVmlldyBzY3JvbGwg
aXMgYXN5bmNocm9ub3VzLCB3ZSBzYXZlIG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbiwK
KyAgICAgICAgdGhlbiBjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbiB3aGVuIEZyYW1lVmlldyBh
Y3R1YWxseSBzY3JvbGxzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjphZGRQZW5kaW5n
U2Nyb2xsRW5kRXZlbnRUYXJnZXQpOiBBZGQgRG9jdW1lbnQgdG8gbV9wZW5kaW5nU2Nyb2xsZW5k
RXZlbnRUYXJnZXRMaXN0IGluIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKTogU3RvcmVzIHRoZSB1c2VyIHNjcm9s
bCBwb3NpdGlvbiwgc28gdGhhdCBpdCBjYW4gY2hlY2sgaXQgd2hlbiB1c2VyIHNjcm9sbGluZyBm
aW5pc2hlcy4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bm90aWZ5VXNlclNjcm9sbEFj
dGlvbkVuZCk6IE5vdGlmeSB0aGUgc2Nyb2xsIGFjdGlvbiBoYXMgZW5kZWQsIHdlIGNhbiBzdGFy
dCB0byBjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbigpLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbik6IENvbXBhcmUgY3VycmVudCBzY3Jv
bGwgcG9zaXRpb24gYW5kIG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbiwgaWYgdGhleSBh
cmUgc2FtZQorICAgICAgICB3aGljaCBpbmRpY2F0ZXMgdGhhdCB0aGUgc2Nyb2xsIGVuZHMuIFRo
ZW4gYWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KCkuCisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Om5v
dGlmeVNjcm9sbERpZEVuZCk6IE5vdGlmeSB0aGUgY3VycmVudCBzY3JvbGwgZW5kcy4KKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlOjpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y2FuSGFuZGxlV2hlZWxFdmVudCBj
b25zdCk6IFRoZSBzdGF0ZWxlc3Mgd2hlZWwgZXZlbnQgZG9lc24ndCB0cmlnZ2VyIHJ1YmJlci1i
YW5kLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om5vdGlmeVNjcm9sbERp
ZEVuZCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpub3RpZnlTY3JvbGxEaWRFbmQp
OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3I6OlNjcm9sbEFuaW1hdG9yOjppc1Njcm9sbEFuaW1hdGlvbkhlbHBlckluUHJvZ3Jlc3MpOiBU
byBpbmRpY2F0ZSB0aGF0IFNjcm9sbEFuaW1hdGlvbkhlbHBlciBpcyBpbiBwcm9ncmVzcy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnNjcm9sbFRvKTogY2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24oKSB3aGVuIG1fc2Ny
b2xsUG9zaXRpb24gYWN0dWFsbHkgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OnNldFNjcm9sbFBvc2l0aW9uKTogc2V0UmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbiBm
b3IgdXNlciBzY3JvbGxzLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xsKTog
S2V5Ym9hcmQgc2Nyb2xsIHNjcm9sbGVuZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zm
c2V0RnJvbUFuaW1hdGlvbik6IHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gZm9yIHVz
ZXIgc2Nyb2xscy4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmFkZFBlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdl
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNldFJlcXVlc3Rp
bmdVc2VyU2Nyb2xsUG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFi
bGVBcmVhOjpub3RpZnlVc2VyU2Nyb2xsQWN0aW9uRW5kKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxhYmxlQXJlYTo6Y2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24pOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYmFyOjphdXRvc2Nyb2xsVGltZXJGaXJlZCk6IG5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQg
aWYgbV9zY3JvbGxUaW1lciBpcyBub3QgYWN0aXZlLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyOjpzdG9wVGltZXJJZk5lZWRlZCk6IG5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQgd2hlbiBt
X3Njcm9sbFRpbWVyIHN0b3BwZWQKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250
cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyQ2xpZW50Ojpub3Rp
ZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxD
b250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6aGFuZGxl
V2hlZWxFdmVudCk6IFN0YXJ0IHRoZSB0aW1lciBhdCBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVu
ZGVkIHBocmFzZSwgYW5kIHN0b3AgaXQKKyAgICAgICAgYXQgUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2VCZWdhbiBwaHJhc2UuIHNjaGVkdWxlRGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kIGlmIGl0J3Mg
c3RhdGVsZXNzIHNjcm9sbCBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xs
ZXI6OnNjaGVkdWxlRGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kKTogQ2FsbCBzdGFydE9uZVNob3Qg
NzUwbXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTdGF0ZWxl
c3NTY3JvbGxlbmRUaW1lckZpcmVkKTogQ2FsbCBzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxlcjo6c3RhcnREZXRlY3RTY3JvbGxlbmRU
aW1lcik6IFN0YXJ0IHRoZSB0aW1lciwgcmVwZWF0aW5nIDEvNjAgcworICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQ29udHJvbGxlcjo6c3RvcERldGVjdFNjcm9sbGVuZFRpbWVyKTogU3RvcCB0aGUg
dGltZXIgYW5kIG5vdGlmeVNjcm9sbERpZEVuZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXI6OmRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQpOiBJZiBSdWJiZXJCYW5kLCBtb21l
bnR1bVNjcm9sbCBhbmQgc2Nyb2xsU25hcCBpcyBub3QgaW4gcHJvZ3Jlc3MsIHN0b3AgdGhlIHRp
bWVyLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwpOiBTYXZlIG1fcmVxdWVzdGluZ1Njcm9sbFBvc2l0
aW9uIGZvciBGcmFtZVZpZXcgbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgc2Nyb2xsLiBtX3JlcXVl
c3RpbmdTY3JvbGxQb3NpdGlvbgorICAgICAgICBpcyB1c2VkIHRvIGRldGVjdCBpZiBTY3JvbGxB
bmltYXRpb25IZWxwZXIgZW5kcy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFj
Ojppc1Njcm9sbEFuaW1hdGlvbkhlbHBlckluUHJvZ3Jlc3MpOiBJZiBjdXJyZW50IHNjcm9sbCBw
b3NpdGlvbiBlcXVhbHMgdG8gbV9yZXF1ZXN0aW5nU2Nyb2xsUG9zaXRpb24sIGl0IG1lYW5zCisg
ICAgICAgIFNjcm9sbEFuaW1hdGlvbkhlbHBlciBoYXMgZW5kZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OnN0b3BBdXRvc2Nyb2xsKTogbm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCBmb3IgZHJhZ2dpbmcg
c2Nyb2xsLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6c3RvcEF1dG9zY3JvbGwpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2V0
U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0KTogc2V0UmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbiBmb3IgdXNlciBzY3JvbGxz
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvKTogY2hlY2tVc2VyU2Ny
b2xsRW5kUG9zaXRpb24gd2hlbiBSZW5kZXJMYXllciBzY3JvbGwgcG9zaXRpb24gYWN0dWFsbHkg
Y2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKTogVGhlIHNjcm9sbFR5cGUgaW4gRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiBpcyBh
bHdheXMgcHJvZ3JhbW1hdGljLCBzbyB3ZSBuZWVkIHRvCisgICAgICAgIHNldFJlcXVlc3RpbmdV
c2VyU2Nyb2xsUG9zaXRpb24gZm9yIHVzZXIgc2Nyb2xscyBoZXJlLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbCk6IG5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQgZm9yIEtl
eWJvYXJkIHNjcm9sLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorCisyMDIw
LTA0LTA5ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbCBldmVudHMgcGFyc2luZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODAyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIEZyw6lkw6lyaWMgV2Fu
ZydzIHBhdGNoLgorCisgICAgICAgIFBhcnNlIG9ub3ZlcnNjcm9sbC9zY3JvbGxlbmQgYXR0cmli
dXRlIGFuZCBvdmVyc2Nyb2xsL292ZXJzY3JvbGwgZXZlbnQgbmFtZS4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDoKKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOgor
ICAgICAgICAqIGRvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbDoKKyAgICAgICAgKiBodG1sL0hU
TUxBdHRyaWJ1dGVOYW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpjcmVhdGVFdmVudEhhbmRsZXJOYW1lTWFwKToK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6CisKIDIwMjAtMDctMTAgIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtGbG9hdHNdIE5vcm1hbCBmbG93
IGVsZW1lbnQgdGhhdCBlc3RhYmxpc2hlcyBhIG5ldyBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQg
bXVzdCBub3Qgb3ZlcmxhcCB0aGUgbWFyZ2luIGJveCBvZiBhbnkgZmxvYXRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwppbmRleCA4NGRjZDVlYzE5Li45ODYwNDdiMTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMC0wNC0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBhcnNp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgw
MgorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNl
ZCBvbiBGcsOpZMOpcmljIFdhbmcncyBwYXRjaC4KKworICAgICAgICBBZGQgRU5BQkxFX09WRVJT
Q1JPTExfRVZFTlRTLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWc6CisKIDIwMjAtMDctMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIE11bHRpcGxleCB0aGUgSElEIGFuZCBHYW1lQ29udHJvbGxlciBnYW1lcGFk
IHByb3ZpZGVycyBvbiBNYWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggYWMzOTY2N2RjZC4uYWI2NDJjOWQwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMzIw
LDYgKzMyMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtYXRjaGluZ0VsZW1l
bnRJbkZsYXRUcmVlKSBcCiAgICAgbWFjcm8obWVkaWFTdHJlYW1UcmFja0NvbnN0cmFpbnRzKSBc
CiAgICAgbWFjcm8ob3BlbkRhdGFiYXNlKSBcCisgICAgbWFjcm8ob25vdmVyc2Nyb2xsKSBcCisg
ICAgbWFjcm8ob25zY3JvbGxlbmQpIFwKICAgICBtYWNybyhvbnRvdWNoY2FuY2VsKSBcCiAgICAg
bWFjcm8ob250b3VjaGVuZCkgXAogICAgIG1hY3JvKG9udG91Y2htb3ZlKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA1YjYyZTJkOTYwLi40MzlmMWQwNjI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTgwNyw2ICs4MDcsMTAgQEAgdm9pZCBEb2N1bWVudDo6Y29tbW9uVGVhcmRv
d24oKQogICAgIGlmIChtX3RpbWVsaW5lc0NvbnRyb2xsZXIpCiAgICAgICAgIG1fdGltZWxpbmVz
Q29udHJvbGxlci0+ZGV0YWNoRnJvbURvY3VtZW50KCk7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9M
TF9FVkVOVFMpCisgICAgbV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0ID0gbnVsbHB0
cjsKKyNlbmRpZgorCiAgICAgbV90aW1lbGluZSA9IG51bGxwdHI7CiB9CiAKQEAgLTQxMDksNiAr
NDExMywyNiBAQCB2b2lkIERvY3VtZW50OjphZGRQZW5kaW5nU2Nyb2xsRXZlbnRUYXJnZXQoQ29u
dGFpbmVyTm9kZSYgdGFyZ2V0KQogICAgIHRhcmdldHMuYXBwZW5kKHRhcmdldCk7CiB9CiAKKyNp
ZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCit2b2lkIERvY3VtZW50OjphZGRQZW5kaW5nU2Ny
b2xsRW5kRXZlbnRUYXJnZXQoQ29udGFpbmVyTm9kZSYgdGFyZ2V0KQoreworICAgIGlmICghc2V0
dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIW1fcGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlzdCkKKyAgICAgICAgbV9wZW5k
aW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0ID0gbWFrZVVuaXF1ZTxQZW5kaW5nU2Nyb2xsRXZl
bnRUYXJnZXRMaXN0PigpOworCisgICAgYXV0byYgdGFyZ2V0cyA9IG1fcGVuZGluZ1Njcm9sbEVu
ZEV2ZW50VGFyZ2V0TGlzdC0+dGFyZ2V0czsKKyAgICBpZiAodGFyZ2V0cy5maW5kTWF0Y2hpbmco
WyZdIChhdXRvJiBlbnRyeSkgeyByZXR1cm4gZW50cnkucHRyKCkgPT0gJnRhcmdldDsgfSkgIT0g
bm90Rm91bmQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0YXJnZXRzLmlzRW1wdHkoKSkK
KyAgICAgICAgc2NoZWR1bGVUaW1lZFJlbmRlcmluZ1VwZGF0ZSgpOworCisgICAgdGFyZ2V0cy5h
cHBlbmQodGFyZ2V0KTsKK30KKyNlbmRpZgorCiB2b2lkIERvY3VtZW50OjpzZXROZWVkc1Zpc3Vh
bFZpZXdwb3J0U2Nyb2xsRXZlbnQoKQogewogICAgIGlmICghbV9uZWVkc1Zpc3VhbFZpZXdwb3J0
U2Nyb2xsRXZlbnQpCkBAIC00MTM0LDYgKzQxNTgsMTggQEAgdm9pZCBEb2N1bWVudDo6cnVuU2Ny
b2xsU3RlcHMoKQogICAgICAgICBpZiAoYXV0byogd2luZG93ID0gZG9tV2luZG93KCkpCiAgICAg
ICAgICAgICB3aW5kb3ctPnZpc3VhbFZpZXdwb3J0KCkuZGlzcGF0Y2hFdmVudChFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zY3JvbGxFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6Tm8sIEV2ZW50
OjpJc0NhbmNlbGFibGU6Ok5vKSk7CiAgICAgfQorCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZF
TlRTKQorICAgIC8vIERlYWwgd2l0aCBzY3JvbGxlbmQgZXZlbnQuCisgICAgaWYgKG1fcGVuZGlu
Z1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlzdCAmJiAhbV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJn
ZXRMaXN0LT50YXJnZXRzLmlzRW1wdHkoKSkgeworICAgICAgICBMT0dfV0lUSF9TVFJFQU0oRXZl
bnRzLCBzdHJlYW0gPDwgIkRvY3VtZW50IiA8PCB0aGlzIDw8ICJzZW5kaW5nIHNjcm9sbGVuZCBl
dmVudHMgdG8gcGVuZGluZyBzY3JvbGwgZXZlbnQgdGFyZ2V0cyIpOworICAgICAgICBhdXRvIGN1
cnJlbnRTY3JvbGxFbmRUYXJnZXRzID0gV1RGTW92ZShtX3BlbmRpbmdTY3JvbGxFbmRFdmVudFRh
cmdldExpc3QtPnRhcmdldHMpOworICAgICAgICBmb3IgKGF1dG8mIHRhcmdldCA6IGN1cnJlbnRT
Y3JvbGxFbmRUYXJnZXRzKSB7CisgICAgICAgICAgICBhdXRvIGJ1YmJsZXMgPSB0YXJnZXQtPmlz
RG9jdW1lbnROb2RlKCkgPyBFdmVudDo6Q2FuQnViYmxlOjpZZXMgOiBFdmVudDo6Q2FuQnViYmxl
OjpObzsKKyAgICAgICAgICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5zY3JvbGxlbmRFdmVudCwgYnViYmxlcywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6
Tm8pKTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIERvY3VtZW50OjphZGRB
dWRpb1Byb2R1Y2VyKE1lZGlhUHJvZHVjZXImIGF1ZGlvUHJvZHVjZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCmluZGV4IGJiNTQ5NzAwZWUuLmNhYWZiMjhkYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0xMzgxLDYgKzEzODEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBydW5SZXNpemVTdGVwcygpOwog
CiAgICAgdm9pZCBhZGRQZW5kaW5nU2Nyb2xsRXZlbnRUYXJnZXQoQ29udGFpbmVyTm9kZSYpOwor
I2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2b2lkIGFkZFBlbmRpbmdTY3JvbGxF
bmRFdmVudFRhcmdldChDb250YWluZXJOb2RlJik7CisjZW5kaWYKICAgICB2b2lkIHNldE5lZWRz
VmlzdWFsVmlld3BvcnRTY3JvbGxFdmVudCgpOwogICAgIHZvaWQgcnVuU2Nyb2xsU3RlcHMoKTsK
IApAQCAtMjA4Miw2ICsyMDg1LDkgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBQZW5kaW5nU2Ny
b2xsRXZlbnRUYXJnZXRMaXN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nU2Nyb2xsRXZl
bnRUYXJnZXRMaXN0PiBtX3BlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3Q7CisjaWYgRU5BQkxF
KE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nU2Nyb2xsRXZl
bnRUYXJnZXRMaXN0PiBtX3BlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdldExpc3Q7CisjZW5kaWYK
IAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgSGFzaFNldDxIVE1MTWVkaWFFbGVtZW50
Kj4gbV9tZWRpYVN0cmVhbVN0YXRlQ2hhbmdlRWxlbWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnROYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aAppbmRleCAyODM1MzI4ZjMyLi43MzNjMDVmMTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnROYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgK
QEAgLTE5MSw2ICsxOTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8ob3JpZW50
YXRpb25jaGFuZ2UpIFwKICAgICBtYWNybyhvdmVyY29uc3RyYWluZWQpIFwKICAgICBtYWNybyhv
dmVyZmxvd2NoYW5nZWQpIFwKKyAgICBtYWNybyhvdmVyc2Nyb2xsKSBcCiAgICAgbWFjcm8ocGFn
ZWhpZGUpIFwKICAgICBtYWNybyhwYWdlc2hvdykgXAogICAgIG1hY3JvKHBhc3RlKSBcCkBAIC0y
MjcsNiArMjI4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHJlc3VsdCkgXAog
ICAgIG1hY3JvKHJlc3VtZSkgXAogICAgIG1hY3JvKHNjcm9sbCkgXAorICAgIG1hY3JvKHNjcm9s
bGVuZCkgXAogICAgIG1hY3JvKHNlYXJjaCkgXAogICAgIG1hY3JvKHNlY3VyaXR5cG9saWN5dmlv
bGF0aW9uKSBcCiAgICAgbWFjcm8oc2Vla2VkKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vR2xvYmFs
RXZlbnRIYW5kbGVycy5pZGwKaW5kZXggNzcwYWE5YzNhNy4uMWYyNzY1MzRmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0dsb2JhbEV2ZW50SGFuZGxlcnMuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9HbG9iYWxFdmVudEhhbmRsZXJzLmlkbApAQCAtMTMyLDQgKzEzMiw4IEBA
CiAgICAgW05vdEVudW1lcmFibGUsIENvbmRpdGlvbmFsPU1PVVNFX0ZPUkNFX0VWRU5UU10gYXR0
cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdG1vdXNlZm9yY2Vkb3duOwogICAgIFtOb3RFbnVt
ZXJhYmxlLCBDb25kaXRpb25hbD1NT1VTRV9GT1JDRV9FVkVOVFNdIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgb253ZWJraXRtb3VzZWZvcmNld2lsbGJlZ2luOwogICAgIFtOb3RFbnVtZXJhYmxlLCBD
b25kaXRpb25hbD1NT1VTRV9GT1JDRV9FVkVOVFNdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb253
ZWJraXRtb3VzZWZvcmNldXA7CisKKyAgICAvLyBFdmVudCBoYW5kbGVycyBmcm9tIE92ZXJzY3Jv
bGwgRXZlbnRzIEFQSSAoaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9vdmVyc2Nyb2xsLXNjcm9sbGVu
ZC1ldmVudHMvKQorICAgIFtOb3RFbnVtZXJhYmxlLCBDb25kaXRpb25hbD1PVkVSU0NST0xMX0VW
RU5UUywgRW5hYmxlZEJ5U2V0dGluZz1PdmVyc2Nyb2xsRXZlbnRzXSBhdHRyaWJ1dGUgRXZlbnRI
YW5kbGVyIG9ub3ZlcnNjcm9sbDsKKyAgICBbTm90RW51bWVyYWJsZSwgQ29uZGl0aW9uYWw9T1ZF
UlNDUk9MTF9FVkVOVFMsIEVuYWJsZWRCeVNldHRpbmc9T3ZlcnNjcm9sbEV2ZW50c10gYXR0cmli
dXRlIEV2ZW50SGFuZGxlciBvbnNjcm9sbGVuZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dHJpYnV0ZU5hbWVzLmluCmluZGV4IGNiMzA0OTA0MDguLmU4OGNkODg5ZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0yNjgsNiArMjY4LDcgQEAg
b25tb3VzZXdoZWVsCiBvbm9ubGluZQogb25vZmZsaW5lCiBvbm9yaWVudGF0aW9uY2hhbmdlCitv
bm92ZXJzY3JvbGwKIG9ucGFnZWhpZGUKIG9ucGFnZXNob3cKIG9ucGFzdGUKQEAgLTI4OCw2ICsy
ODksNyBAQCBvbnJhdGVjaGFuZ2UKIG9ucmVzZXQKIG9ucmVzaXplCiBvbnNjcm9sbAorb25zY3Jv
bGxlbmQKIG9uc2VhcmNoCiBvbnNlZWtlZAogb25zZWVraW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCmluZGV4IDY5OTE2ZWU2MDguLjkwMjg1ZDEwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCkBAIC0yOTAsNiArMjkwLDcgQEAgSFRNTEVsZW1lbnQ6OkV2ZW50SGFu
ZGxlck5hbWVNYXAgSFRNTEVsZW1lbnQ6OmNyZWF0ZUV2ZW50SGFuZGxlck5hbWVNYXAoKQogICAg
ICAgICAmb25tb3VzZW92ZXJBdHRyLmdldCgpLAogICAgICAgICAmb25tb3VzZXVwQXR0ci5nZXQo
KSwKICAgICAgICAgJm9ubW91c2V3aGVlbEF0dHIuZ2V0KCksCisgICAgICAgICZvbm92ZXJzY3Jv
bGxBdHRyLmdldCgpLAogICAgICAgICAmb25wYXN0ZUF0dHIuZ2V0KCksCiAgICAgICAgICZvbnBh
dXNlQXR0ci5nZXQoKSwKICAgICAgICAgJm9ucGxheUF0dHIuZ2V0KCksCkBAIC0zMDcsNiArMzA4
LDcgQEAgSFRNTEVsZW1lbnQ6OkV2ZW50SGFuZGxlck5hbWVNYXAgSFRNTEVsZW1lbnQ6OmNyZWF0
ZUV2ZW50SGFuZGxlck5hbWVNYXAoKQogICAgICAgICAmb25yZXNldEF0dHIuZ2V0KCksCiAgICAg
ICAgICZvbnJlc2l6ZUF0dHIuZ2V0KCksCiAgICAgICAgICZvbnNjcm9sbEF0dHIuZ2V0KCksCisg
ICAgICAgICZvbnNjcm9sbGVuZEF0dHIuZ2V0KCksCiAgICAgICAgICZvbnNlYXJjaEF0dHIuZ2V0
KCksCiAgICAgICAgICZvbnNlZWtlZEF0dHIuZ2V0KCksCiAgICAgICAgICZvbnNlZWtpbmdBdHRy
LmdldCgpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDE4YjM4MDkxZmEuLmJiYjcz
N2Y3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE2OTQsNyArMTY5NCwxMCBA
QCB2b2lkIERPTVdpbmRvdzo6c2Nyb2xsVG8oY29uc3QgU2Nyb2xsVG9PcHRpb25zJiBvcHRpb25z
LCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZwogCiAgICAgLy8gVGhpcyBpcyBhbiBvcHRpbWl6YXRp
b24gZm9yIHRoZSBjb21tb24gY2FzZSBvZiBzY3JvbGxpbmcgdG8gKDAsIDApIHdoZW4gdGhlIHNj
cm9sbGVyIGlzIGFscmVhZHkgYXQgdGhlIG9yaWdpbi4KICAgICAvLyBJZiBhbiBhbmltYXRlZCBz
Y3JvbGwgaXMgaW4gcHJvZ3Jlc3MsIHRoaXMgb3B0aW1pemF0aW9uIGlzIHNraXBwZWQgdG8gZW5z
dXJlIHRoYXQgdGhlIGFuaW1hdGVkIHNjcm9sbCBpcyByZWFsbHkgc3RvcHBlZC4KLSAgICBpZiAo
dmlldy0+Y3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0
dXM6Ok5vdEluQW5pbWF0aW9uICYmICFzY3JvbGxUb09wdGlvbnMubGVmdC52YWx1ZSgpICYmICFz
Y3JvbGxUb09wdGlvbnMudG9wLnZhbHVlKCkgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQb3NpdGlv
bigpID09IEludFBvaW50KDAsIDApKQorICAgIGlmICh2aWV3LT5jdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24KKyAgICAg
ICAgJiYgIXNjcm9sbFRvT3B0aW9ucy5sZWZ0LnZhbHVlKCkKKyAgICAgICAgJiYgIXNjcm9sbFRv
T3B0aW9ucy50b3AudmFsdWUoKQorICAgICAgICAmJiB2aWV3LT5jb250ZW50c1Njcm9sbFBvc2l0
aW9uKCkgPT0gSW50UG9pbnQoMCwgMCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRvY3VtZW50
KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IDUxMjdiNDkwZjQuLmNkYmM2ZmQwMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTIyODYsMTAgKzIyODYsMTIgQEAgdm9pZCBGcmFtZVZpZXc6OnNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgU2Ny
b2xsQ2wKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgaWYgKHBhZ2UgJiYg
cGFnZS0+aXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSkKICAgICAgICAgc2Nyb2xsQW5pbWF0b3Io
KS5zZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IocGFnZS0+d2hlZWxFdmVudFRlc3RNb25pdG9yKCkp
OworCisgICAgU2Nyb2xsUG9zaXRpb24gbmV3U2Nyb2xsUG9zaXRpb24gPSAoIWRlbGVnYXRlc1Nj
cm9sbGluZygpICYmIGNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSA/IGFkanVz
dFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDogc2Nyb2xsUG9zaXRp
b247CiAgICAgaWYgKGFuaW1hdGVkID09IEFuaW1hdGVkU2Nyb2xsOjpZZXMpCi0gICAgICAgIHNj
cm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xs
UG9zaXRpb24pLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBjbGFtcGluZyk7CisgICAgICAgIHNjcm9s
bFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24obmV3U2Nyb2xs
UG9zaXRpb24pLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBjbGFtcGluZyk7CiAgICAgZWxzZQotICAg
ICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgY2xhbXBp
bmcpOworICAgICAgICBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihuZXdTY3JvbGxQb3Np
dGlvbiwgY2xhbXBpbmcsIGFuaW1hdGVkKTsKIAogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKG9s
ZFNjcm9sbFR5cGUpOwogfQpAQCAtMzczMSw2ICszNzMzLDUyIEBAIHZvaWQgRnJhbWVWaWV3Ojpz
Y3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsT2Zmc2V0JiBvZmZzZXQsIFNj
cm9sbFR5CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0K
IAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgRnJhbWVWaWV3OjphZGRQZW5k
aW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKQoreworICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQg
PSBmcmFtZSgpLmRvY3VtZW50KCkpCisgICAgICAgIGRvY3VtZW50LT5hZGRQZW5kaW5nU2Nyb2xs
RW5kRXZlbnRUYXJnZXQoKmRvY3VtZW50KTsKK30KKwordm9pZCBGcmFtZVZpZXc6OnNldFJlcXVl
c3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uKQor
eworICAgIGlmICghZnJhbWUoKS5zZXR0aW5ncygpLm92ZXJzY3JvbGxFdmVudHNFbmFibGVkKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbiA9
IHBvc2l0aW9uOworfQorCit2b2lkIEZyYW1lVmlldzo6bm90aWZ5VXNlclNjcm9sbEFjdGlvbkVu
ZCgpCit7CisgICAgaWYgKCFmcmFtZSgpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0VuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pc1VzZXJTY3JvbGxBY3Rpb25FbmQgPSB0
cnVlOworICAgIGNoZWNrVXNlclNjcm9sbEVuZFBvc2l0aW9uKCk7Cit9CisKK3ZvaWQgRnJhbWVW
aWV3OjpjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbigpCit7CisgICAgaWYgKCFmcmFtZSgpLnNl
dHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKHNjcm9sbEFuaW1hdG9yKCkuaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNz
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBv
c2l0aW9uKSB7CisgICAgICAgIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gZmFsc2U7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kIHx8
IG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbi52YWx1ZSgpICE9IHNjcm9sbFBvc2l0aW9u
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGFkZFBlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdl
dCgpOworICAgIG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsK
KyAgICBtX2lzVXNlclNjcm9sbEFjdGlvbkVuZCA9IGZhbHNlOworfQorI2VuZGlmCisKIGZsb2F0
IEZyYW1lVmlldzo6YWRqdXN0U2Nyb2xsU3RlcEZvckZpeGVkQ29udGVudChmbG9hdCBzdGVwLCBT
Y3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHkpCiB7CiAgICAgaWYgKGdyYW51bGFyaXR5ICE9IFNjcm9sbEJ5UGFnZSB8fCBvcmllbnRh
dGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXgg
OWViMTk1ZGQ4Ni4uNDg4YTUwNjE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC02NzAs
NiArNjcwLDE0IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29u
c3QgZmluYWw7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBhZGRQ
ZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UmVxdWVz
dGluZ1VzZXJTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAg
IHZvaWQgbm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgpIGZpbmFsOworICAgIHZvaWQgY2hlY2tV
c2VyU2Nyb2xsRW5kUG9zaXRpb24oKSBmaW5hbDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IEZyYW1lVmlldyhGcmFtZSYpOwogCkBAIC05MTIsNiArOTIwLDExIEBAIHByaXZhdGU6
CiAKICAgICBQYWdpbmF0aW9uIG1fcGFnaW5hdGlvbjsKIAorI2lmIEVOQUJMRShPVkVSU0NST0xM
X0VWRU5UUykKKyAgICBPcHRpb25hbDxTY3JvbGxQb3NpdGlvbj4gbV9yZXF1ZXN0aW5nVXNlclNj
cm9sbFBvc2l0aW9uOworICAgIGJvb2wgbV9pc1VzZXJTY3JvbGxBY3Rpb25FbmQgeyBmYWxzZSB9
OworI2VuZGlmCisKICAgICBlbnVtIGNsYXNzIFZpZXdwb3J0UmVuZGVyZXJUeXBlIDogdWludDhf
dCB7IE5vbmUsIERvY3VtZW50LCBCb2R5IH07CiAgICAgVmlld3BvcnRSZW5kZXJlclR5cGUgbV92
aWV3cG9ydFJlbmRlcmVyVHlwZSB7IFZpZXdwb3J0UmVuZGVyZXJUeXBlOjpOb25lIH07CiAgICAg
U2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yIHsgRG9Ob3RQaW4g
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCAyMmM5ZjZhYjIzLi44NjQ4ZWNmZmYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC05MzQsNiArOTM0LDEwIEBAIGlzTG9n
Z2VkSW5BUElFbmFibGVkOgogZW50ZXJLZXlIaW50RW5hYmxlZDoKICAgaW5pdGlhbDogZmFsc2UK
IAorb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisgIGNvbmRpdGlv
bmFsOiBPVkVSU0NST0xMX0VWRU5UUworCiBsZWdhY3lHZXRVc2VyTWVkaWFFbmFibGVkOgogICBp
bml0aWFsOiBmYWxzZQogICBjb25kaXRpb25hbDogTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCmluZGV4IDYwZmI2Zjc5OTkuLmMyNzkzZDUyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCkBAIC05NDYsNiArOTQ2LDI5IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
cmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uCiAgICAgICAg
IG1fcGFnZS0+cGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50KCktPmxvZ1Njcm9sbGluZ0V2ZW50KFBl
cmZvcm1hbmNlTG9nZ2luZ0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQ6OlN3aXRjaGVkU2Nyb2xsaW5n
TW9kZSwgdGltZXN0YW1wLCByZWFzb25zLnRvUmF3KCkpOwogfQogCisjaWYgRU5BQkxFKE9WRVJT
Q1JPTExfRVZFTlRTKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlTY3Jv
bGxEaWRFbmQoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoc2Nyb2xsaW5n
Tm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHNjcm9sbGluZ05vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAg
ICAgIGZyYW1lVmlldy0+YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAo
YXV0byogc2Nyb2xsYWJsZUFyZWEgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xs
aW5nTm9kZUlEKHNjcm9sbGluZ05vZGVJRCkpCisgICAgICAgIHNjcm9sbGFibGVBcmVhLT5hZGRQ
ZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IGVkOTYwNTZiNmIuLmZjNjgwZGJlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
QEAgLTcxLDYgKzcxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcG9ydEV4cG9zZWRVbmZpbGxl
ZEFyZWEoTW9ub3RvbmljVGltZSwgdW5zaWduZWQgdW5maWxsZWRBcmVhKTsKICAgICB2b2lkIHJl
cG9ydFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0NoYW5nZWQoTW9ub3RvbmljVGltZSwgT3B0
aW9uU2V0PFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uPik7CiAKKyNpZiBFTkFCTEUoT1ZFUlND
Uk9MTF9FVkVOVFMpCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlTY3JvbGxEaWRFbmQo
U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV0VC
Q09SRV9FWFBPUlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCmlu
ZGV4IDk2MzZjMGViYzUuLmE1NmUyN2Q4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTIxLDYgKzEyMSwxMCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShTY3JvbGxp
bmdOb2RlSUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSB7IH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxEaWRF
bmQoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAgICAgLy8gRm9yY2UgYWxsIHNjcm9s
bCBsYXllciBwb3NpdGlvbiB1cGRhdGVzIHRvIGhhcHBlbiBvbiB0aGUgbWFpbiB0aHJlYWQuCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3Np
dGlvblVwZGF0ZXMoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaAppbmRleCAzMTg1ZDliYjg4Li44MzllMGIyZDFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xNTIsNiArMTUyLDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShTY3JvbGxpbmdOb2Rl
SUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxEaWRFbmQoU2Ny
b2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdl
KFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
ID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGMyYjFhOTk3MjUuLmNh
MDExMDc0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCBi
b29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjYW5IYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdl
IGFsd2F5cyBydWJiZXItYmFuZCB0aGUgbGF0Y2hlZCBub2RlLCBvciB0aGUgcm9vdCBub2RlLgot
ICAgIGlmIChpc0xhdGNoZWROb2RlKCkgfHwgaXNSb290Tm9kZSgpKQorICAgIGlmIChpc0xhdGNo
ZWROb2RlKCkgfHwgKGlzUm9vdE5vZGUoKSAmJiAod2hlZWxFdmVudC5waGFzZSgpICE9IFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlTm9uZSB8fCB3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSAhPSBQ
bGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
CiAgICAgcmV0dXJuIGV2ZW50Q2FuU2Nyb2xsQ29udGVudHMod2hlZWxFdmVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmNwcAppbmRleCBjNjdjOTJlNjllLi41YTYzNzFiY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTMy
Nyw2ICszMjcsMTggQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRSZWZy
ZXNoKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICNlbmRpZgogfQogCisjaWYgRU5BQkxF
KE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om5vdGlmeVNj
cm9sbERpZEVuZChTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQoreworICAgIGlmICghbV9zY3JvbGxp
bmdDb29yZGluYXRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFtzY3JvbGxpbmdDb29yZGluYXRvciA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IsIG5v
ZGVJRF0geworICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+bm90aWZ5U2Nyb2xsRGlkRW5k
KG5vZGVJRCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgRU5BQkxFKFNDUk9MTElOR19U
SFJFQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oCmluZGV4IDMyZGQ1YmM3YWYuLmVmZWI1MDNiZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5o
CkBAIC03Miw2ICs3MiwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50
SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVu
c2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JP
TExfRVZFTlRTKQorICAgIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5kKFNjcm9sbGluZ05vZGVJRCkg
b3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIHZvaWQgcmVwb3J0RXhwb3NlZFVuZmlsbGVkQXJlYShN
b25vdG9uaWNUaW1lLCB1bnNpZ25lZCB1bmZpbGxlZEFyZWEpIG92ZXJyaWRlOwogICAgIHZvaWQg
cmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uaWNUaW1lLCBP
cHRpb25TZXQ8U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb24+KSBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKaW5kZXggZWFlMDkzYjFl
Zi4uY2JhNmUzNzdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5oCkBAIC04Miw2ICs4MiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU3RvcFJ1
YmJlcmJhbmRTbmFwQW5pbWF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBhZGp1c3RTY3JvbGxQb3Np
dGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSBmaW5hbDsKIAorI2lmIEVOQUJMRShPVkVSU0NST0xM
X0VWRU5UUykKKyAgICB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgpIG92ZXJyaWRlOworI2VuZGlm
CisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIEZsb2F0UG9pbnQgc2Nyb2xsT2Zm
c2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxPbkF4aXMoU2Ny
b2xsRXZlbnRBeGlzLCBmbG9hdCBkZWx0YSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IDE4ODY3Zjk3ZTMuLjcwNjcwYjBl
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
CkBAIC0zMzEsNiArMzMxLDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYzo6YWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzCiAgICAgaW1tZWRp
YXRlU2Nyb2xsQnkoY29uc3RyYWluZWRQb3NpdGlvbiAtIHNjcm9sbFBvc2l0aW9uKTsKIH0KIAor
I2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZU1hYzo6bm90aWZ5U2Nyb2xsRGlkRW5kKCkKK3sKKyAgICBzY3JvbGxpbmdU
cmVlKCkubm90aWZ5U2Nyb2xsRGlkRW5kKHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdOb2RlSUQo
KSk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiBGbG9hdFBvaW50
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNjcm9sbE9mZnNldCgpIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21v
b3RoLmNwcAppbmRleCAyY2E1NzhhMzBmLi41ZWZlZjk2MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKQEAgLTI4LDcgKzI4LDEw
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmgiCiAKKyNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNs
dWRlICJTY3JvbGxhYmxlQXJlYS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggMWMwODBjYmE5YS4uNDAzYmZj
MGFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAt
MzA3LDUgKzMwNyw0IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250YWxTY3Jv
bGxiYXIoU2Nyb2xsYmFyKikKIHsKICAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKIH0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKaW5kZXggMWU0ZjQ5MjM0Mi4uMmI2
ZWRmYTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9yLmgiCiAjaW5jbHVk
ZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpIHx8IEVOQUJMRShD
U1NfU0NST0xMX1NOQVApCiAjaW5jbHVkZSAiU2Nyb2xsQ29udHJvbGxlci5oIgpAQCAtMTMxLDYg
KzEzMiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgaG9yaXpvbnRhbFNjcm9sbGJh
clN0YXRlRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KICAgICB2
aXJ0dWFsIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGluZygpIGNvbnN0IHsg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykK
KyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVzdE1vbml0
b3IoUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBtX3doZWVs
RXZlbnRUZXN0TW9uaXRvciA9IHRlc3RNb25pdG9yOyB9CiAKICNpZiAoRU5BQkxFKENTU19TQ1JP
TExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkgJiYgUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2NDk0YzlmZTUyLi4wZTIyMjlm
M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDg3LDYgKzQ4
NywxMCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBu
ZXdQb3NpdGlvbikKIAogICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsKIAorI2lm
IEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlv
bigpOworI2VuZGlmCisKICAgICBpZiAoc2Nyb2xsYmFyc1N1cHByZXNzZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC01MTQsNyArNTE4LDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojpjb21wbGV0ZVVw
ZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogICAgIHVwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24s
IFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBBbmltYXRlZFNjcm9sbC8qIGFuaW1hdGVkKi8pCit2
b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBz
Y3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsIC8q
IGFuaW1hdGVkKi8pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIApA
QCAtNTM3LDE0ICs1NDEsMjMgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihj
b25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNjcm9sbEMKICAgICAgICAgdXBk
YXRlU2Nyb2xsYmFycyhuZXdTY3JvbGxQb3NpdGlvbik7CiAKICAgICBzZXRTY3JvbGxCZWhhdmlv
clN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIGlmIChjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNj
cm9sbFR5cGU6OlVzZXIpCisgICAgICAgIHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24o
bmV3U2Nyb2xsUG9zaXRpb24pOworI2VuZGlmCiB9CiAKIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xs
KFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQogewotICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICByZXR1cm4gcGxhdGZvcm1T
Y3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7Ci0KLSAgICByZXR1cm4gU2Nyb2xsYWJsZUFy
ZWE6OnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICBib29sIHNjcm9sbGVkID0g
cGxhdGZvcm1XaWRnZXQoKSA/IHBsYXRmb3JtU2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkp
IDogU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICBp
ZiAoc2Nyb2xsZWQpIHsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIG5v
dGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFNjcm9sbFZpZXc6OmxvZ2ljYWxT
Y3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3Bw
CmluZGV4IDVjZDI5N2NmODYuLmZjMTkyZWZiN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogCisjaW5jbHVkZSAiQ29udGFpbmVyTm9k
ZS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCkBAIC0yMzQsMTAgKzIzNSwxNCBAQCB2b2lk
IFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKGNvbnN0IFNjcm9s
bE9mZnNldCYgb2Zmc2V0KQogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJv
bUFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsKICAgICBTY3JvbGxQb3Np
dGlvbiBwb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpOwotICAgIGlm
IChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocG9zaXRpb24sIGN1cnJlbnRTY3JvbGxUeXBl
KCkpKQotICAgICAgICByZXR1cm47CiAKLSAgICBzY3JvbGxQb3NpdGlvbkNoYW5nZWQocG9zaXRp
b24pOworICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uLCBjdXJy
ZW50U2Nyb2xsVHlwZSgpKSkKKyAgICAgICAgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9u
KTsKKworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoY3VycmVudFNjcm9s
bFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKQorICAgICAgICBzZXRSZXF1ZXN0aW5nVXNlclNj
cm9sbFBvc2l0aW9uKHBvc2l0aW9uKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVh
Ojp3aWxsU3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oCmluZGV4IDZhZWU5YWM4YWUuLjRjZTZkYjVjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMzcsNiArMzcsNyBAQCBjbGFzcyBUZXh0U3RyZWFt
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBG
bG9hdFBvaW50OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTGF5b3V0UG9pbnQ7CkBA
IC0zNTgsNiArMzU5LDE0IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1
Z0Rlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRT
KQorICAgIHZpcnR1YWwgdm9pZCBhZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKSB7IH0K
KworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVVzZXJTY3JvbGxB
Y3Rpb25FbmQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRp
b24oKSB7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xs
YWJsZUFyZWEoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5TY3JvbGxhYmxlQXJlYSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKaW5kZXggYTZiNTgwNzM4OS4uZTBj
YTE0YzQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0xNTcsNiAr
MTU3LDEwIEBAIHZvaWQgU2Nyb2xsYmFyOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIFdpZGdlCiB2b2lkIFNjcm9sbGJhcjo6YXV0b3Nj
cm9sbFRpbWVyRmlyZWQoKQogewogICAgIGF1dG9zY3JvbGxQcmVzc2VkUGFydCh0aGVtZSgpLmF1
dG9zY3JvbGxUaW1lckRlbGF5KCkpOworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAg
ICBpZiAoIW1fc2Nyb2xsVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJl
YS5ub3RpZnlVc2VyU2Nyb2xsQWN0aW9uRW5kKCk7CisjZW5kaWYKIH0KIAogc3RhdGljIGJvb2wg
dGh1bWJVbmRlck1vdXNlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQpAQCAtMjE1LDYgKzIxOSwxMCBA
QCB2b2lkIFNjcm9sbGJhcjo6c3RvcFRpbWVySWZOZWVkZWQoKQogewogICAgIGlmIChtX3Njcm9s
bFRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fc2Nyb2xsVGltZXIuc3RvcCgpOworCisjaWYg
RU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIG1fc2Nyb2xsYWJsZUFyZWEubm90aWZ5VXNl
clNjcm9sbEFjdGlvbkVuZCgpOworI2VuZGlmCiB9CiAKIFNjcm9sbERpcmVjdGlvbiBTY3JvbGxi
YXI6OnByZXNzZWRQYXJ0U2Nyb2xsRGlyZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAppbmRleCA1MmYyOTUzMWMzLi44ZjlkOTdj
NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5oCkBAIC05MSw2ICs5MSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkanVz
dFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpID0gMDsKICNlbmRpZgogCisjaWYg
RU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxE
aWRFbmQoKSB7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRlZmVyV2hlZWxFdmVudFRl
c3RDb21wbGV0aW9uRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFy
ZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBjb25zdCB7
IC8qIERvIG5vdGhpbmcgKi8gfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVz
dENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikg
Y29uc3QgeyAvKiBEbyBub3RoaW5nICovIH0KIApAQCAtMTkzLDYgKzE5NywxMyBAQCBwcml2YXRl
OgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2
b2lkIHNjaGVkdWxlRGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kKCk7CisgICAgdm9pZCBkZXRlY3RT
dGF0ZWxlc3NTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgdm9pZCBzdGFydERldGVjdFNjcm9s
bGVuZFRpbWVyKCk7CisgICAgdm9pZCBzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsKKyAgICB2
b2lkIGRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKTsKKyNlbmRpZgogICAgIFNjcm9sbENvbnRy
b2xsZXJDbGllbnQmIG1fY2xpZW50OwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjE5LDYgKzIz
MCwxMiBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xM
X0VWRU5UUykKKyAgICAvLyBGSVhNRTogc2Nyb2xsU25hcCBhbmQgc2Nyb2xsZW5kIGNhbiBzaGFy
ZSB0aGUgc2FtZSB0aW1lciBmb3Igc3RhdGVsZXNzIHNjcm9sbC4KKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IG1fZGV0ZWN0U2Ny
b2xsZW5kVGltZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIG1faW5T
Y3JvbGxHZXN0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW9tZW50dW1TY3JvbGxJblByb2dy
ZXNzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tCmluZGV4IGZmZWM0NDU0NGIuLjEyMDJkMmFhN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMTQ4
LDEyICsxNDgsMTcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgbV9vdmVyZmxvd1Nj
cm9sbERlbHRhID0gRmxvYXRTaXplKCk7CiAKICAgICAgICAgc3RvcFNuYXBSdWJiZXJiYW5kVGlt
ZXIoKTsKLQorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAgc3RvcERldGVj
dFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVu
ZGVkKSB7CiAgICAgICAgIHNuYXBSdWJiZXJCYW5kKCk7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExf
RVZFTlRTKQorICAgICAgICBzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xNjYsNiArMTcxLDExIEBAIGJvb2wgU2Ny
b2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyNpZiBFTkFCTEUo
T1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZU5vbmUgJiYgd2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgPT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKQorICAgICAgICBzY2hlZHVsZURldGVjdFN0YXRlbGVz
c1Njcm9sbGVuZCgpOworI2VuZGlmCisKICAgICBmbG9hdCBkZWx0YVggPSBtX292ZXJmbG93U2Ny
b2xsRGVsdGEud2lkdGgoKTsKICAgICBmbG9hdCBkZWx0YVkgPSBtX292ZXJmbG93U2Nyb2xsRGVs
dGEuaGVpZ2h0KCk7CiAKQEAgLTg1MSw2ICs4NjEsNjQgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVy
OjpzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlc0Zvck9mZnNldChpbnQgeCwgaW50IHkpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xsQ29udHJv
bGxlcjo6c2NoZWR1bGVEZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmQoKQoreworICAgIGlmIChtX2Rl
dGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVyKSB7CisgICAgICAgIG1fZGV0ZWN0U3RhdGVsZXNz
U2Nyb2xsZW5kVGltZXItPnN0b3AoKTsKKyAgICAgICAgbV9kZXRlY3RTdGF0ZWxlc3NTY3JvbGxl
bmRUaW1lciA9IG51bGxwdHI7CisgICAgfQorICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIHN0YXRl
bGVzc1Njcm9sbEVuZERlbGF5ID0gNzUwX21zOworICAgIG1fZGV0ZWN0U3RhdGVsZXNzU2Nyb2xs
ZW5kVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBkZXRlY3RT
dGF0ZWxlc3NTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9kZXRlY3RTdGF0
ZWxlc3NTY3JvbGxlbmRUaW1lci0+c3RhcnRPbmVTaG90KHN0YXRlbGVzc1Njcm9sbEVuZERlbGF5
KTsKK30KKwordm9pZCBTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmRU
aW1lckZpcmVkKCkKK3sKKyAgICBtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVyID0gbnVs
bHB0cjsKKyAgICBtX2NsaWVudC5ub3RpZnlTY3JvbGxEaWRFbmQoKTsKK30KKwordm9pZCBTY3Jv
bGxDb250cm9sbGVyOjpzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCkKK3sKKyAgICBpZiAobV9k
ZXRlY3RTY3JvbGxlbmRUaW1lcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGV0ZWN0U2Nyb2xs
ZW5kVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBkZXRlY3RT
Y3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9kZXRlY3RTY3JvbGxlbmRUaW1l
ci0+c3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsKK30KKwordm9pZCBTY3JvbGxDb250cm9sbGVy
OjpzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKQoreworICAgIGlmICghbV9kZXRlY3RTY3JvbGxl
bmRUaW1lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQubm90aWZ5U2Nyb2xsRGlk
RW5kKCk7CisgICAgbV9kZXRlY3RTY3JvbGxlbmRUaW1lci0+c3RvcCgpOworICAgIG1fZGV0ZWN0
U2Nyb2xsZW5kVGltZXIgPSBudWxscHRyOworfQorCit2b2lkIFNjcm9sbENvbnRyb2xsZXI6OmRl
dGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKQoreworICAgIGlmIChpc1J1YmJlckJhbmRJblByb2dy
ZXNzKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9t
b21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoQ1NT
X1NDUk9MTF9TTkFQKQorICAgIGlmIChtX3Njcm9sbFNuYXBUaW1lcikKKyAgICAgICAgcmV0dXJu
OworI2VuZGlmCisjZW5kaWYKKworICAgIHN0b3BEZXRlY3RTY3JvbGxlbmRUaW1lcigpOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShSVUJC
RVJfQkFORElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLmgKaW5kZXggNjJiMmJkMjk5OS4uZDk1ZDg4OTUwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0MSw2ICsxNDEsMTAg
QEAgcHJpdmF0ZToKICAgICBTdHJpbmcgaG9yaXpvbnRhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGlu
ZygpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRlRm9yVGVz
dGluZygpIGNvbnN0IGZpbmFsOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAg
IGJvb2wgaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkgb3ZlcnJpZGU7CisjZW5k
aWYKKwogICAgIC8vIFNjcm9sbENvbnRyb2xsZXJDbGllbnQuCiAjaWYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOwpAQCAtMTU3
LDkgKzE2MSwxNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rp
b25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsRXZlbnRBeGlzKSBj
b25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAoRU5BQkxF
KENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkKKyAgICB2b2lkIG5v
dGlmeVNjcm9sbERpZEVuZCgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBib29sIG1faGF2ZVNj
cm9sbGVkU2luY2VQYWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRl
OwogICAgIEludFJlY3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IG1fcmVxdWVzdGluZ1Nj
cm9sbFBvc2l0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXgg
NWY2NTMwM2NlYS4uZjMxYjkyNjQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNzgzLDExICs3ODMsMTIgQEAgYm9vbCBTY3Jv
bGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBT
Y3JvbGxHcmFudWxhcmkKIHsKICAgICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQgPSB0cnVl
OwogCi0gICAgaWYgKCFzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgfHwgIW1fc2Ny
b2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBTY3Jv
bGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlw
bGllcik7Ci0KLSAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlQaXhlbCkKKyAgICBpZiAo
IXNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSB8fCAhbV9zY3JvbGxhYmxlQXJlYS5z
Y3JvbGxBbmltYXRvckVuYWJsZWQoKSB8fCBncmFudWxhcml0eSA9PSBTY3JvbGxCeVBpeGVsKSB7
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBtX3JlcXVlc3RpbmdTY3Jv
bGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKKyNlbmRpZgogICAgICAgICByZXR1cm4gU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxp
ZXIpOworICAgIH0KIAogICAgIEZsb2F0UG9pbnQgY3VycmVudFBvc2l0aW9uID0gdGhpcy0+Y3Vy
cmVudFBvc2l0aW9uKCk7CiAgICAgRmxvYXRTaXplIGRlbHRhOwpAQCAtODEwLDYgKzgxMSw5IEBA
IGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5n
LCBzdHJlYW0gPDwgIlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwgIiA8PCAiIGZyb20gIiA8PCBj
dXJyZW50UG9zaXRpb24gPDwgIiB0byAiIDw8IG5ld1Bvc2l0aW9uKTsKICAgICBbbV9zY3JvbGxB
bmltYXRpb25IZWxwZXIgc2Nyb2xsVG9Qb2ludDpuZXdQb3NpdGlvbl07CisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIG1fcmVxdWVzdGluZ1Njcm9sbFBvc2l0aW9uID0gbmV3UG9z
aXRpb247CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTIxLDYgKzkyNSwxNyBA
QCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlhdGVTY3JvbGxUb1Bvc2l0aW9uRm9yU2Ny
b2xsQW5pbWF0aW9uKGNvbnN0IEZsb2F0UAogICAgIGltbWVkaWF0ZVNjcm9sbFRvUG9zaXRpb24o
bmV3UG9zaXRpb24pOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorYm9vbCBT
Y3JvbGxBbmltYXRvck1hYzo6aXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkKK3sK
KyAgICBpZiAobV9yZXF1ZXN0aW5nU2Nyb2xsUG9zaXRpb24gJiYgc2Nyb2xsYWJsZUFyZWEoKS5z
Y3JvbGxQb3NpdGlvbigpICE9IHJvdW5kZWRJbnRQb2ludChtX3JlcXVlc3RpbmdTY3JvbGxQb3Np
dGlvbi52YWx1ZSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX3JlcXVlc3RpbmdT
Y3JvbGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5k
aWYKKwogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKGNvbnN0
IEZsb2F0U2l6ZSYgZGVsdGEpCiB7CiAgICAgbm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChkZWx0
YSk7CkBAIC0xNDQ3LDYgKzE0NjIsMTMgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6aW1tZWRp
YXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAoRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKSkKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVNjcm9s
bERpZEVuZCgpCit7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5hZGRQZW5kaW5nU2Nyb2xsRW5kRXZl
bnRUYXJnZXQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVT
Y3JvbGxlclN0eWxlKCkKIHsKICAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3Jv
bGxlclN0YXRlSXNMb2NrZWRdKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CmluZGV4IDAzMzdjMDBjNjcuLjgzMjA0NzI0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC05ODksNiArOTg5LDE2IEBAIFJlbmRlckJveCogUmVuZGVyQm94Ojpm
aW5kQXV0b3Njcm9sbGFibGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4gaXM8
UmVuZGVyQm94PihyZW5kZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51
bGxwdHI7CiB9CiAKK3ZvaWQgUmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCgpCit7CisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIGlmIChpc1JlbmRlclZpZXcoKSAmJiBmcmFtZSgp
LnZpZXcoKSkKKyAgICAgICAgZnJhbWUoKS52aWV3KCktPm5vdGlmeVVzZXJTY3JvbGxBY3Rpb25F
bmQoKTsKKyAgICBlbHNlIGlmIChsYXllcigpKQorICAgICAgICBsYXllcigpLT5ub3RpZnlVc2Vy
U2Nyb2xsQWN0aW9uRW5kKCk7CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJCb3g6OnBhblNjcm9s
bChjb25zdCBJbnRQb2ludCYgc291cmNlKQogewogICAgIGlmIChsYXllcigpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGQwODdkM2Y2NGYuLjNlMjU2ZGFhMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQ3Myw3ICs0NzMsNyBAQCBvdmVycmlk
ZTsKICAgICBib29sIGNhbkF1dG9zY3JvbGwoKSBjb25zdDsKICAgICBJbnRTaXplIGNhbGN1bGF0
ZUF1dG9zY3JvbGxEaXJlY3Rpb24oY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdDsK
ICAgICBzdGF0aWMgUmVuZGVyQm94KiBmaW5kQXV0b3Njcm9sbGFibGUoUmVuZGVyT2JqZWN0Kik7
Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IHN0b3BBdXRvc2Nyb2xsKCk7CiAgICAgdmlydHVhbCB2b2lkIHBhblNjcm9sbChjb25zdCBJbnRQ
b2ludCYpOwogCiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcldpdGhBdXRvQmVoYXZpb3Io
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDRl
NzE3NDUwNjIuLjFkMDYxMGNmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcApAQCAtMjU5MCwxMCArMjU5MCwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxU
b1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZwog
CiB2b2lkIFJlbmRlckxheWVyOjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlv
biYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcsIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVkKQogeworICAgIGF1dG8gb2Zmc2V0ID0gc2Nyb2xs
T2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICBTY3JvbGxPZmZzZXQgbmV3U2Nyb2xs
T2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9s
bE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OwogICAgIGlmIChhbmltYXRlZCA9PSBBbmltYXRlZFNj
cm9sbDo6WWVzKQotICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zm
c2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgICAg
ICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Nyb2xsT2Zmc2V0LCBzY3JvbGxUeXBl
LCBjbGFtcGluZyk7CiAgICAgZWxzZQotICAgICAgICBzY3JvbGxUb09mZnNldChzY3JvbGxPZmZz
ZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgICAg
IHNjcm9sbFRvT2Zmc2V0KG5ld1Njcm9sbE9mZnNldCwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwog
fQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNj
cm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjYxOCwxNiArMjYyMCwyMiBAQCB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9s
bE9mZnNldCwgU2Nyb2xsVHlwZSBzYwogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFu
aW1hdGlvbnMoKTsKIAogICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xh
bXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNldChzY3Jv
bGxPZmZzZXQpIDogc2Nyb2xsT2Zmc2V0OworICAgIFNjcm9sbFBvc2l0aW9uIGNsYW1wZWRTY3Jv
bGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0
KTsKICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50
U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwogCi0g
ICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zm
c2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBzY3JvbGxUeXBlLCBjbGFtcGluZykpCisgICAgaWYg
KCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY2xhbXBlZFNjcm9sbFBvc2l0aW9uLCBzY3Jv
bGxUeXBlLCBjbGFtcGluZykpCiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlv
bihjbGFtcGVkU2Nyb2xsT2Zmc2V0LCBjbGFtcGluZyk7Ci0gICAgc2V0U2Nyb2xsQmVoYXZpb3JT
dGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAorI2lmIEVOQUJM
RShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3Jv
bGxUeXBlOjpVc2VyKQorICAgICAgICBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKGNs
YW1wZWRTY3JvbGxQb3NpdGlvbik7CisjZW5kaWYKKworICAgIHNldFNjcm9sbEJlaGF2aW9yU3Rh
dHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAgICAgc2V0Q3VycmVu
dFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0KIApAQCAtMjc0OCw2ICsyNzU2LDEw
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3Np
dGlvbikKICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IHJlbmRlcmVyKCkuZWxlbWVudCgpKQog
ICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldCgq
ZWxlbWVudCk7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgY2hlY2tVc2Vy
U2Nyb2xsRW5kUG9zaXRpb24oKTsKKyNlbmRpZgorCiAgICAgaWYgKHNjcm9sbHNPdmVyZmxvdygp
KQogICAgICAgICB2aWV3LmZyYW1lVmlldygpLmRpZENoYW5nZVNjcm9sbE9mZnNldCgpOwogCkBA
IC0yODAwLDcgKzI4MTIsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxl
KGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgIExheW91dFJl
Y3QgbmV3UmVjdCA9IGFic29sdXRlUmVjdDsKICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9IHJl
bmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpOwogICAgIGF1dG8qIHBhcmVudExheWVyID0gZW5j
bG9zaW5nQ29udGFpbmluZ0Jsb2NrTGF5ZXIoKnRoaXMsIENyb3NzRnJhbWVCb3VuZGFyaWVzOjpO
byk7Ci0gICAgYm9vbCBhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyA9ICFyZW5kZXJlcigpLmZyYW1l
KCkuZXZlbnRIYW5kbGVyKCkuYXV0b3Njcm9sbEluUHJvZ3Jlc3MoKTsKKyAgICBib29sIGF1dG9z
Y3JvbGxJblByb2dyZXNzID0gcmVuZGVyZXIoKS5mcmFtZSgpLmV2ZW50SGFuZGxlcigpLmF1dG9z
Y3JvbGxJblByb2dyZXNzKCk7CiAKICAgICBpZiAoYWxsb3dzQ3VycmVudFNjcm9sbCgpKSB7CiAg
ICAgICAgIC8vIERvbid0IHNjcm9sbCB0byByZXZlYWwgYW4gb3ZlcmZsb3cgbGF5ZXIgdGhhdCBp
cyByZXN0cmljdGVkIGJ5IHRoZSAtd2Via2l0LWxpbmUtY2xhbXAgcHJvcGVydHkuCkBAIC0yODIw
LDkgKzI4MzIsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25z
dCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgaWYgKGNsYW1w
ZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkgfHwgY3VycmVudFNjcm9sbEJlaGF2aW9y
U3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKSB7CiAgICAg
ICAgICAgICBTY3JvbGxPZmZzZXQgb2xkU2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7CiAg
ICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpObzsK
LSAgICAgICAgICAgIGlmIChhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3Jv
bGxpbmcob3B0aW9ucy5iZWhhdmlvciwgYm94LT5lbGVtZW50KCkpKQorICAgICAgICAgICAgaWYg
KCFhdXRvc2Nyb2xsSW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhh
dmlvciwgYm94LT5lbGVtZW50KCkpKQogICAgICAgICAgICAgICAgIGFuaW1hdGVkID0gQW5pbWF0
ZWRTY3JvbGw6OlllczsKLSAgICAgICAgICAgIHNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0
aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1h
dGljLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOworICAgICAgICAgICAgc2V0
U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZz
ZXQpLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0
ZWQpOworICAgICAgICAgICAgaWYgKGF1dG9zY3JvbGxJblByb2dyZXNzKQorICAgICAgICAgICAg
ICAgIHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbE9mZnNldCk7
CiAgICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFtcGVkU2Ny
b2xsT2Zmc2V0IC0gb2xkU2Nyb2xsT2Zmc2V0OwogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0
Lm1vdmUoLXNjcm9sbE9mZnNldERpZmZlcmVuY2UpOwogICAgICAgICAgICAgbmV3UmVjdCA9IExh
eW91dFJlY3QoYm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobG9j
YWxFeHBvc2VSZWN0KSksIFVzZVRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwpAQCAtMjg0OSwx
MSArMjg2MywxMyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0
IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50
KCk/CiAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDUwNTkKICAgICAgICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBhbmltYXRl
ZCA9IEFuaW1hdGVkU2Nyb2xsOjpObzsKLSAgICAgICAgICAgICAgICBpZiAoYXV0b3Njcm9sbE5v
dEluUHJvZ3Jlc3MKKyAgICAgICAgICAgICAgICBpZiAoIWF1dG9zY3JvbGxJblByb2dyZXNzCiAg
ICAgICAgICAgICAgICAgICAgICYmIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkKICAg
ICAgICAgICAgICAgICAgICAgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZpb3Is
IG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKSkKICAg
ICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQgPSBBbmltYXRlZFNjcm9sbDo6WWVzOwogICAgICAg
ICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0
b3Njcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRSZXF1
ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKIAogICAgICAgICAgICAg
ICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgPT0gU2hvdWxk
QWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmlldy5zYWZlVG9Qcm9wYWdh
dGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBlbmNs
b3NpbmdMYXllciA9IG93bmVyRWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKSkK
QEAgLTI4OTYsOSArMjkxMiwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1l
bnQoKT8KICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTA1OQogICAgICAgICAgICAgICAgIEFuaW1hdGVkU2Nyb2xsIGFuaW1h
dGVkID0gQW5pbWF0ZWRTY3JvbGw6Ok5vOwotICAgICAgICAgICAgICAgIGlmIChhdXRvc2Nyb2xs
Tm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgcmVu
ZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKSkKKyAgICAgICAgICAgICAgICBp
ZiAoIWF1dG9zY3JvbGxJblByb2dyZXNzICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJl
aGF2aW9yLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpKQogICAgICAg
ICAgICAgICAgICAgICBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpZZXM7CiAgICAgICAgICAg
ICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbiwg
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgICAgICBpZiAo
YXV0b3Njcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRS
ZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCB2aWV3IG9m
IGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlzIHZpZXcgd2UKQEAgLTQxNTcsNyAr
NDE3NSwxMyBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9scyhIaXRU
ZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEludFBvaW50JgogCiBib29sIFJlbmRlckxheWVyOjpz
Y3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIGZsb2F0IG11bHRpcGxpZXIpCiB7Ci0gICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpz
Y3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGllcik7CisgICAgaWYgKFNjcm9s
bGFibGVBcmVhOjpzY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGllcikpIHsK
KyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIG5vdGlmeVVzZXJTY3JvbGxB
Y3Rpb25FbmQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpwYWludChHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QsIGNvbnN0IExheW91dFNpemUm
IHN1YnBpeGVsT2Zmc2V0LCBPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhhdmlvciwg
UmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290LCBPcHRpb25TZXQ8UGFpbnRMYXllckZsYWc+
IHBhaW50RmxhZ3MsIFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpY3kgcGFpbnRQb2xpY3ksIEV2ZW50
UmVnaW9uQ29udGV4dCogZXZlbnRSZWdpb25Db250ZXh0KQpAQCAtNzAzNiw2ICs3MDYwLDUyIEBA
IGJvb2wgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVFdmVudFJlZ2lvbihFdmVudFJlZ2lvbkludmFs
aWRhdGlvblJlYXNvbiByZWFzb24pCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xM
X0VWRU5UUykKK3ZvaWQgUmVuZGVyTGF5ZXI6OmFkZFBlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdl
dCgpCit7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSByZW5kZXJlcigpLmVsZW1lbnQoKSkK
KyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5hZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJn
ZXQoKmVsZW1lbnQpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpzZXRSZXF1ZXN0aW5nVXNlclNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAo
IXJlbmRlcmVyKCkuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3JlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gPSBwb3NpdGlv
bjsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6bm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgpCit7
CisgICAgaWYgKCFyZW5kZXJlcigpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjcm9sbEFuaW1hdG9yKCkuaXNTY3JvbGxB
bmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXNV
c2VyU2Nyb2xsQWN0aW9uRW5kID0gdHJ1ZTsKKyAgICBjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlv
bigpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbigp
Cit7CisgICAgaWYgKCFyZW5kZXJlcigpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0VuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JlcXVlc3RpbmdVc2VyU2Nyb2xs
UG9zaXRpb24pIHsKKyAgICAgICAgbV9pc1VzZXJTY3JvbGxBY3Rpb25FbmQgPSBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9pc1VzZXJTY3JvbGxBY3Rpb25FbmQg
fHwgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uLnZhbHVlKCkgIT0gc2Nyb2xsUG9zaXRp
b24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFy
Z2V0KCk7CisgICAgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uID0gV1RGOjpudWxsb3B0
OworICAgIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gZmFsc2U7Cit9CisjZW5kaWYKKwogVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBDbGlwUmVjdHNUeXBlIGNs
aXBSZWN0c1R5cGUpCiB7CiAgICAgc3dpdGNoIChjbGlwUmVjdHNUeXBlKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDVmNTRkMGVjM2IuLjJmMzQwNDY2NDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC05MzIsNiArOTMyLDE0IEBA
IHB1YmxpYzoKIAogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmluYWw7CiAK
KyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBhZGRQZW5kaW5nU2Nyb2xs
RW5kRXZlbnRUYXJnZXQoKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UmVxdWVzdGluZ1VzZXJTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5
VXNlclNjcm9sbEFjdGlvbkVuZCgpIGZpbmFsOworICAgIHZvaWQgY2hlY2tVc2VyU2Nyb2xsRW5k
UG9zaXRpb24oKSBmaW5hbDsKKyNlbmRpZgorCiBwcml2YXRlOgogCiAgICAgdm9pZCBzZXROZXh0
U2libGluZyhSZW5kZXJMYXllciogbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CkBAIC0xMzcxLDYg
KzEzNzksMTEgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJMYXllckZp
bHRlcnM+IG1fZmlsdGVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyTGF5ZXJCYWNraW5n
PiBtX2JhY2tpbmc7CisKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgT3B0aW9u
YWw8U2Nyb2xsUG9zaXRpb24+IG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbjsKKyAgICBi
b29sIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIAogICAg
IFBhaW50RnJlcXVlbmN5VHJhY2tlciBtX3BhaW50RnJlcXVlbmN5VHJhY2tlcjsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDJmMWI3ZTUxMTkuLjc4MDdlOTA0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMjAtMDQtMDkgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBvdmVyc2Nyb2xsIGV2ZW50cyBwYXJzaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAgICAgQmFzZWQgb24gRnLDqWTDqXJp
YyBXYW5nJ3MgcGF0Y2guCisKKyAgICAgICAgQWRkIEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUy4K
KworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAyMDIwLTA3LTEwICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBGbHVz
aCB0aGUgY2Fpcm8gc3VyZmFjZSBhZnRlciBwYWludGluZyB3aGVuIHVzaW5nIHNvZnR3YXJlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBlMDRjYWRjYTJkLi44
OGQwZGIyYjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNl
cy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAg
LTE2MjEsNiArMTYyMSwxNCBAQCBBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0RW5h
YmxlZDoKICAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiTWFwIEhUTUwgYXR0cmlidXRlcyB3
aWR0aC9oZWlnaHQgdG8gdGhlIGRlZmF1bHQgYXNwZWN0IHJhdGlvIG9mIDxpbWc+IgogICBjYXRl
Z29yeTogZXhwZXJpbWVudGFsCiAKK092ZXJzY3JvbGxFdmVudHNFbmFibGVkOgorICB0eXBlOiBi
b29sCisgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJPdmVyc2Ny
b2xsIGV2ZW50cyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHRoZSBvbnNj
cm9sbGVuZCBhbmQgc2Nyb2xsZW5kIGV2ZW50cyIKKyAgY2F0ZWdvcnk6IGV4cGVyaW1lbnRhbAor
ICBjb25kaXRpb246IEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKwogIyBGb3IgaW50ZXJuYWwg
ZmVhdHVyZXM6CiAjIFRoZSB0eXBlIHNob3VsZCBiZSBib29sZWFuLgogIyBZb3UgbXVzdCBwcm92
aWRlIGEgaHVtYW5SZWFkYWJsZU5hbWUgYW5kIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbiBmb3Ig
YWxsIGRlYnVnIGZlYXR1cmVzLiBUaGV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXgg
MWE2MTYwZTNiMC4uNjc3YmFlMWI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDIwLTA0LTA5ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igb3ZlcnNjcm9sbCBldmVudHMgcGFyc2lu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODAy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2Vk
IG9uIEZyw6lkw6lyaWMgV2FuZydzIHBhdGNoLgorCisgICAgICAgIEFkZCBvdmVyc2Nyb2xsRXZl
bnRzRW5hYmxlZCBXZWJQcmVmZXJlbmNlIHNldHRpbmcuCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06
CisgICAgICAgIChbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQ
cmVmZXJlbmNlcyBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJQcmVm
ZXJlbmNlcyBzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZDpdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KwogMjAyMC0wNy0wOSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBS
RUdSRVNTSU9OKHIyMTcyNDgpOiBBU1NFUlRfTk9UX1JFQUNIRUQoKSBpbiB0b1dlYkZyYW1lTG9h
ZFR5cGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYmRhYTVjNzIwOS4uZTkyMmFiM2IzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0yMTIsNiArMjEyLDcgQEAKICNkZWZpbmUgV2ViS2l0
Q1NTU2hhZG93UGFydHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdENTU1NoYWRvd1BhcnRz
RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlv
bkVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRl
Z3JhdGlvbkVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFdlYlNRTEVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0V2ViU1FMRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0Vu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQiCiAKICNp
ZiAhVEFSR0VUX09TX0lQSE9ORQogLy8gVGhlc2UgYXJlIHByaXZhdGUgYm90aCBiZWNhdXNlIGNh
bGxlcnMgc2hvdWxkIGJlIHVzaW5nIHRoZSBjb3ZlciBtZXRob2RzIGFuZCBiZWNhdXNlIHRoZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0K
aW5kZXggODY4YmM2MTBjOC4uODA1NGFjZWYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC03MTYsNiArNzE2LDkgQEAgcHVi
bGljOgogICAgICAgICBATk8sIFdlYktpdERlYnVnSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWRQ
cmVmZXJlbmNlS2V5LAogICAgICAgICBATk8sIFdlYktpdEFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lk
dGhBbmRIZWlnaHRFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgQCh3ZWJTUUxFbmFibGVk
KSwgV2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXksCisjaWYgRU5BQkxFKE9WRVJTQ1JP
TExfRVZFTlRTKQorICAgICAgICBATk8sIFdlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVkUHJl
ZmVyZW5jZUtleSwKKyNlbmRpZgogICAgICAgICBuaWxdOwogCiAjaWYgIVBMQVRGT1JNKElPU19G
QU1JTFkpCkBAIC0zNzAxLDYgKzM3MDQsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3Jl
YXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6d2ViU1FMRW5hYmxlZCBmb3JL
ZXk6V2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKW92ZXJz
Y3JvbGxFdmVudHNFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6
V2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9p
ZClzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3Nl
dEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZFByZWZl
cmVuY2VLZXldOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAo
V2ViSW50ZXJuYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0ZmE3MzgzZDYzLi5iODMzZjk2Y2E3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmgKQEAgLTY5NCw2ICs2OTQsNyBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlBy
ZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbiBXRUJLSVRfREVQ
UgogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkOwog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbGlua1ByZWxvYWRSZXNwb25zaXZlSW1hZ2VzRW5h
YmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lk
dGhBbmRIZWlnaHRFbmFibGVkOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgb3ZlcnNjcm9s
bEV2ZW50c0VuYWJsZWQ7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBxdWlja0xvb2tEb2N1bWVudFNhdmluZ0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggODVkNjk0M2UzNi4uZmU1ZDhhN2Uy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzE4
NCw2ICszMTg0LDkgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWluV2hpbGVMb2FkaW5nUXVp
cmsoKQogICAgIHNldHRpbmdzLnNldENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQoW3ByZWZl
cmVuY2VzIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRD
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBDU1NPTVZpZXdTbW9v
dGhTY3JvbGxpbmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TWVkaWFDb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoW3ByZWZlcmVuY2VzIG1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0XSk7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQor
ICAgIHNldHRpbmdzLnNldE92ZXJzY3JvbGxFdmVudHNFbmFibGVkKFtwcmVmZXJlbmNlcyBvdmVy
c2Nyb2xsRXZlbnRzRW5hYmxlZF0pOworI2VuZGlmCiAKICAgICBzd2l0Y2ggKFtwcmVmZXJlbmNl
cyBzdG9yYWdlQmxvY2tpbmdQb2xpY3ldKSB7CiAgICAgY2FzZSBXZWJBbGxvd0FsbFN0b3JhZ2U6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggMjY0NmZiOTI4OS4uYWZjNTk0M2JkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA0LTA5
ICBDYXRoaWUgQ2hlbiAgPGNhdGhpZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3Igb3ZlcnNjcm9sbCBldmVudHMgcGFyc2luZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgIEJhc2VkIG9uIEZyw6lkw6lyaWMgV2FuZydzIHBh
dGNoLgorCisgICAgICAgIEFkZCBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCBXZWJQcmVmZXJlbmNl
IHNldHRpbmcuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aWRsOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdl
YlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVm
YXVsdFNldHRpbmdzKToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpvdmVyc2Nyb2xsRXZlbnRz
RW5hYmxlZCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6c2V0T3ZlcnNjcm9sbEV2ZW50c0Vu
YWJsZWQpOgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogV2ViVmlldy5j
cHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorCiAyMDIw
LTA3LTA3ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJ0IDIg
b2YgU2ltcGxlQ29sb3IgYW5kIFNSR0JBPHVpbnQ4X3Q+IGFyZSBlc3NlbnRpYWxseSB0aGUgc2Ft
ZSAtIGxldCdzIGNvbnZlcmdlIHRoZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaWRsCmluZGV4IDlh
ODc1ZDQ3OWUuLjliMGYwMmFkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzUHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXNQcml2YXRlLmlkbApAQCAtMjY3
LDYgKzI2NywxMSBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzUHJpdmF0ZTggOiBJV2ViUHJl
ZmVyZW5jZXNQcml2YXRlNwogewogICAgIEhSRVNVTFQgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRh
VVJMcyhbb3V0LCByZXR2YWxdIEJPT0wqIGVuYWJsZWQpOwogICAgIEhSRVNVTFQgc2V0QWxsb3dU
b3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyhbaW5dIEJPT0wgZW5hYmxlZCk7CisKICAgICBIUkVTVUxU
IG1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQoW291dCwgcmV0dmFsXSBCT09MKiBlbmFi
bGVkKTsKICAgICBIUkVTVUxUIHNldE1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJsZWQoW2lu
XSBCT09MIGVuYWJsZWQpOworCisgICAgSFJFU1VMVCBvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZChb
b3V0LCByZXR2YWxdIEJPT0wqKTsKKyAgICBIUkVTVUxUIHNldE92ZXJzY3JvbGxFdmVudHNFbmFi
bGVkKFtpbl0gQk9PTCBlbmFibGVkKTsKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAyYTIxMjFhZGI5Li4xZGUyYjYy
YjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaApAQCAtMjMxLDMgKzIzMSw1IEBACiAjZGVmaW5lIFdlYktpdEFzcGVjdFJhdGlv
T2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0QXNwZWN0
UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQiCiAKICNkZWZpbmUgV2ViS2l0V2Vi
U1FMRW5hYmxlZFByZWZlcmVuY2VLZXkgIldlYktpdFdlYlNRTEVuYWJsZWQiCisKKyNkZWZpbmUg
V2ViS2l0T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWRQcmVmZXJlbmNlS2V5ICJXZWJLaXRPdmVyc2Ny
b2xsRXZlbnRzRW5hYmxlZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2Vz
LmNwcAppbmRleCA5M2RlOGEzMjBhLi5kMGI3ZDQzODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0zNTcsNiArMzU3LDggQEAgdm9pZCBXZWJQcmVm
ZXJlbmNlczo6aW5pdGlhbGl6ZURlZmF1bHRTZXR0aW5ncygpCiAKICAgICBDRkRpY3Rpb25hcnlB
ZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0V2ViU1FMRW5hYmxlZFByZWZlcmVuY2VLZXkp
LCBrQ0ZCb29sZWFuRmFsc2UpOwogCisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMs
IENGU1RSKFdlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJv
b2xlYW5GYWxzZSk7CisKICAgICBkZWZhdWx0U2V0dGluZ3MgPSBkZWZhdWx0czsKICNlbmRpZgog
fQpAQCAtMjQ4Nyw2ICsyNDg5LDIwIEBAIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OnNldFdlYlNR
TEVuYWJsZWQoQk9PTCBlbmFibGVkKQogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFdl
YlByZWZlcmVuY2VzOjpvdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZChfT3V0XyBCT09MKiBlbmFibGVk
KQoreworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKKyAgICAq
ZW5hYmxlZCA9IGJvb2xWYWx1ZUZvcktleShXZWJLaXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZFBy
ZWZlcmVuY2VLZXkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFdlYlByZWZlcmVu
Y2VzOjpzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZChCT09MIGVuYWJsZWQpCit7CisgICAgc2V0
Qm9vbFZhbHVlKFdlYktpdE92ZXJzY3JvbGxFdmVudHNFbmFibGVkUHJlZmVyZW5jZUtleSwgZW5h
YmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhSRVNVTFQgV2ViUHJlZmVyZW5jZXM6OmFs
bG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMoX091dF8gQk9PTCogYWxsb3dBY2Nlc3MpCiB7CiAg
ICAgaWYgKCFhbGxvd0FjY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYlByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJQcmVmZXJlbmNl
cy5oCmluZGV4IDI0MzdiMGU3NjIuLjBiYmM0YmU5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMzA1LDkgKzMwNSwxMyBAQCBwdWJsaWM6CiAgICAgLy8g
SVdlYlByZWZlcmVuY2VzUHJpdmF0ZTgKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyhfT3V0XyBCT09MKik7CiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEFsbG93VG9wTmF2aWdhdGlvblRvRGF0
YVVSTHMoQk9PTCk7CisKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgbW9k
ZXJuVW5wcmVmaXhlZFdlYkF1ZGlvRW5hYmxlZChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldE1vZGVyblVucHJlZml4ZWRXZWJBdWRpb0VuYWJs
ZWQoQk9PTCk7CiAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgb3ZlcnNj
cm9sbEV2ZW50c0VuYWJsZWQoX091dF8gQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZChCT09MKTsKKwogICAgIC8v
IFdlYlByZWZlcmVuY2VzCiAKICAgICAvLyBUaGlzIG1ldGhvZCBhY2Nlc3NlcyBhIGRpZmZlcmVu
dCBwcmVmZXJlbmNlIGtleSB0aGFuIGRldmVsb3BlckV4dHJhc0VuYWJsZWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDY3ZmU2NDEzNzUuLmIxYjU1NjQyOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC01NjgwLDYgKzU2ODAsMTEgQEAgSFJFU1VMVCBX
ZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3Muc2V0QXNwZWN0UmF0aW9P
ZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQoISFlbmFibGVkKTsKIAorICAgIGhyID0gcHJl
ZnNQcml2YXRlLT5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgmZW5hYmxlZCk7CisgICAgaWYgKEZB
SUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy5zZXRPdmVyc2Nyb2xs
RXZlbnRzRW5hYmxlZCghIWVuYWJsZWQpOworCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCA4M2ZjODE3Mjc5Li5kODFjZjc0Y2Y3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtl
L1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0xODUsNiArMTg1LDcgQEAgbWFjcm8oV0VCS0lUX09Q
VElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfVEhVTkRFUiAiVG9n
Z2xlIEVNRSBWMyBUaHVuZGVyIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJ
T05fREVGSU5FKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgIlRvZ2dsZSBPcmllbnRhdGlvbiBF
dmVudHMgc3VwcG9ydCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5B
QkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCAiVG9nZ2xlIGFjY2VsZXJhdGVkIHNjcm9sbGlu
ZyBzdXBwb3J0IiBQUklWQVRFIE9GRikKKyAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVf
T1ZFUlNDUk9MTF9FVkVOVFMgIlRvZ2dsZSBvdmVyc2Nyb2xsIGV2ZW50cyIgUFJJVkFURSBPTikK
ICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUEFZTUVOVF9SRVFVRVNUICJUb2dnbGUg
UGF5bWVudCBSZXF1ZXN0IHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9QREZLSVRfUExVR0lOICJUb2dnbGUgUERGS2l0IHBsdWdpbiBzdXBwb3J0
IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUEVSSU9ESUNf
TUVNT1JZX01PTklUT1IgIlRvZ2dsZSBwZXJpb2RpY2FsIG1lbW9yeSBtb25pdG9yIHN1cHBvcnQi
IFBSSVZBVEUgT0ZGKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGFmZWZjNTVjOGUuLmNiMTY1MDE5NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0wNC0wOSAg
Q2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODgwMgorCisgICAgICAgIFJldmlld2VkIGJ5IEZy
w6lkw6lyaWMgV2FuZy4KKworICAgICAgICBCYXNlZCBvbiBGcsOpZMOpcmljIFdhbmcncyBwYXRj
aC4KKworICAgICAgICBEZWFsIHdpdGggb3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChUZXN0T3B0aW9u
czo6VGVzdE9wdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAg
ICAoZW5hYmxlRXhwZXJpbWVudGFsRmVhdHVyZXMpOgorICAgICAgICAoc2V0V2ViUHJlZmVyZW5j
ZXNGb3JUZXN0T3B0aW9ucyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVM
aXN0LnBtOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWc6CisKIDIwMjAtMDctMTAgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8
Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXVtFTUVdW09wZW5DRE1d
IEltcGxlbWVudCBPcGVuQ0RNIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNw
cAppbmRleCBlN2M1ODM2NzgyLi42YjY0YzAyYzllIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuY3BwCkBAIC0xNTgsNiArMTU4LDggQEAgVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKGNv
bnN0IHN0ZDo6c3RyaW5nJiBwYXRoT3JVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBhYnNvbHUKICAg
ICAgICAgICAgIGVuYWJsZUFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHQgPSBwYXJz
ZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0g
ImFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMiKQogICAgICAgICAgICAgYWxsb3dUb3BOYXZp
Z2F0aW9uVG9EYXRhVVJMcyA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7Cisg
ICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxFdmVudHNFbmFi
bGVkIikKKyAgICAgICAgICAgIGVuYWJsZU92ZXJzY3JvbGxFdmVudHMgPSBwYXJzZUJvb2xlYW5U
ZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBwYWlyU3RhcnQgPSBwYWlyRW5kICsgMTsK
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAppbmRleCBjNWM4Yzg1OTkyLi4y
NzUxMWUyMDViIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKQEAgLTU5LDYgKzU5LDcg
QEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIGVuYWJsZUFzcGVjdFJhdGlvT2ZJbWdG
cm9tV2lkdGhBbmRIZWlnaHQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlV2ViU1FMIHsgdHJ1
ZSB9OwogICAgIGJvb2wgYWxsb3dUb3BOYXZpZ2F0aW9uVG9EYXRhVVJMcyB7IHRydWUgfTsKKyAg
ICBib29sIGVuYWJsZU92ZXJzY3JvbGxFdmVudHMgeyBmYWxzZSB9OwogICAgIHN0ZDo6c3RyaW5n
IGpzY09wdGlvbnM7CiAgICAgc3RkOjpzdHJpbmcgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXM7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA4
N2MwNGQ5MmZhLi5hMTcyZGY3M2M2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCkBAIC04ODcsNiArODg3LDcgQEAgc3RhdGljIHZvaWQgZW5hYmxlRXhwZXJp
bWVudGFsRmVhdHVyZXMoV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIFtwcmVmZXJl
bmNlcyBzZXRDU1NTaGFkb3dQYXJ0c0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0
QXNwZWN0UmF0aW9PZkltZ0Zyb21XaWR0aEFuZEhlaWdodEVuYWJsZWQ6WUVTXTsKICAgICBbcHJl
ZmVyZW5jZXMgc2V0Q1NTT01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZDpZRVNdOworICAgIFtw
cmVmZXJlbmNlcyBzZXRPdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZDpZRVNdOwogfQogCiAvLyBDYWxs
ZWQgYmVmb3JlIGVhY2ggdGVzdC4KQEAgLTEwNDcsNiArMTA0OCw3IEBAIHN0YXRpYyB2b2lkIHNl
dFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMp
CiAgICAgcHJlZmVyZW5jZXMubGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRJbnRlZ3JhdGlvbkVuYWJs
ZWQgPSBvcHRpb25zLmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkOwog
ICAgIHByZWZlcmVuY2VzLmFzcGVjdFJhdGlvT2ZJbWdGcm9tV2lkdGhBbmRIZWlnaHRFbmFibGVk
ID0gb3B0aW9ucy5lbmFibGVBc3BlY3RSYXRpb09mSW1nRnJvbVdpZHRoQW5kSGVpZ2h0OwogICAg
IHByZWZlcmVuY2VzLmFsbG93VG9wTmF2aWdhdGlvblRvRGF0YVVSTHMgPSBvcHRpb25zLmFsbG93
VG9wTmF2aWdhdGlvblRvRGF0YVVSTHM7CisgICAgcHJlZmVyZW5jZXMub3ZlcnNjcm9sbEV2ZW50
c0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZU92ZXJzY3JvbGxFdmVudHM7CiB9CiAKIC8vIENhbGxl
ZCBvbmNlIG9uIER1bXBSZW5kZXJUcmVlIHN0YXJ0dXAuCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
RmVhdHVyZUxpc3QucG0KaW5kZXggNTBkY2QwN2Q4OS4uODU2NmY5ZTM2MyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTM3LDYgKzEzNyw3IEBAIG15ICgKICAg
ICAkdGh1bmRlclN1cHBvcnQsCiAgICAgJG9yaWVudGF0aW9uRXZlbnRzU3VwcG9ydCwKICAgICAk
b3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFN1cHBvcnQsCisgICAgJG92ZXJzY3JvbGxFdmVudHNTdXBw
b3J0LAogICAgICRwYXltZW50UmVxdWVzdFN1cHBvcnQsCiAgICAgJHBkZmtpdFBsdWdpblN1cHBv
cnQsCiAgICAgJHBpY3R1cmVJblBpY3R1cmVBUElTdXBwb3J0LApAQCAtNDU0LDYgKzQ1NSw5IEBA
IG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAib3ZlcmZsb3ctc2Nyb2xsaW5nLXRv
dWNoIiwgZGVzYyA9PiAiVG9nZ2xlIGFjY2VsZXJhdGVkIHNjcm9sbGluZyBzdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX09WRVJGTE9XX1NDUk9MTElOR19UT1VDSCIsIHZhbHVlID0+
IFwkb3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJv
dmVyc2Nyb2xsLWV2ZW50cyIsIGRlc2MgPT4gIkVuYWJsZSBPdmVyc2Nyb2xsIEV2ZW50cyBzdXBw
b3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTIiwgdmFsdWUg
PT4gXCRvdmVyc2Nyb2xsRXZlbnRzU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gInBheW1l
bnQtcmVxdWVzdCIsIGRlc2MgPT4gIlRvZ2dsZSBQYXltZW50IFJlcXVlc3Qgc3VwcG9ydCIsCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QQVlNRU5UX1JFUVVFU1QiLCB2YWx1ZSA9PiBcJHBheW1l
bnRSZXF1ZXN0U3VwcG9ydCB9LAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405454</attachid>
            <date>2020-07-29 06:27:59 -0700</date>
            <delta_ts>2020-07-29 06:27:59 -0700</delta_ts>
            <desc>scrollend-userscroll-on-Mac-for-review</desc>
            <filename>scrollend-mac-for-review-003.diff</filename>
            <type>text/plain</type>
            <size>63832</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0M2NjYTNmMjc1Li40ZGFhN2U3MGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MjAtMDctMjEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb2YgdXNlciBzY3JvbGxpbmcgb24gTWFj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg4MTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdXNl
ciBzY3JvbGxpbmcgdGVzdCBmb3Igc2Nyb2xsZW5kIGV2ZW50LgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXJ1
YmJlcmJhbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3Jv
bGxlbmQtZXZlbnQtZm9yLXJ1YmJlcmJhbmQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9l
dmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1z
dGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3Njcm9sbGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVs
LXNjcm9sbC13aXRoLXN0YXRlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA3LTEwICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vcGVyYXRp
b25zLmh0dHBzLmh0bWwgaW4gRGVidWcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwYzdmNzcxYzdh
Li4xNDUxNTRlZmI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3Miw3ICsxNzIsMTIgQEAgaHR0
cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5LyBbIFNraXAgXQogZmFzdC9oYXJuZXNzL3Vp
c2NyaXB0Y29udHJvbGxlciBbIFNraXAgXQogCiAjIE9ubHkgaU9TIGhhcyBhbiBpbXBsZW1lbnRh
dGlvbiBvZiBVSVNjcmlwdENvbnRyb2xsZXI6OnNlbmRFdmVudFN0cmVhbSgpLgotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZyBbIFNraXAgXQoraW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy8gWyBTa2lw
IF0KKworIyBDdXJyZW50bHksIG9ubHkgTWFjIHN1cHBvcnRzIHRoZSBzY3JvbGxlbmQgZXZlbnQg
b2YgdXNlciBzY3JvbGxpbmcuCit3ZWJraXQub3JnL2IvMjAxNTU2IGZhc3QvZXZlbnRzL3Njcm9s
bGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMjAx
NTU2IGZhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itc3RhdGVsZXNzLXdoZWVsLXNjcm9s
bC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMjAxNTU2IGZhc3QvZXZlbnRzL3Njcm9sbGVu
ZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUuaHRtbCBbIFNraXAgXQogCiAjIFRo
aXMgdGVzdCBvbmx5IG1ha2VzIHNlbnNlIG9uIE1hYwogZmFzdC9hdHRhY2htZW50L2F0dGFjaG1l
bnQtc3VidGl0bGUtcmVzaXplLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3ItcnViYmVyYmFuZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXJ1YmJlcmJhbmQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjI4OGVi
MWNkNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxl
bmQtZXZlbnQtZm9yLXJ1YmJlcmJhbmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFT
UyBUZXN0IGZvciBydWJiZXItYmFuZCBzY3JvbGxpbmcgc2Nyb2xsZW5kIGV2ZW50LgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXJ1YmJl
cmJhbmQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3It
cnViYmVyYmFuZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmI3
ODI0ZGQ2ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3Jv
bGxlbmQtZXZlbnQtZm9yLXJ1YmJlcmJhbmQuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpPdmVyc2Nyb2xs
RXZlbnRzRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxib2R5IHN0eWxlPSJtYXJnaW46MCIg
b25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8L2JvZHk+Cis8
c2NyaXB0PgorZnVuY3Rpb24gZmluaXNoZWQobWVzc2FnZSkgeworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJsb2ciKS5pbm5lclRleHQgPSBtZXNzYWdlICsgIlxuIjsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitm
dW5jdGlvbiBvblNjcm9sbEVuZChldmVudCkgeworICAgIGlmIChldmVudC5jYW5jZWxhYmxlIHx8
ICFldmVudC5idWJibGVzKSB7CisgICAgICAgIGZpbmlzaGVkKCJGQUlMLCBmb3IgZG9jdW1lbnQg
c2Nyb2xsZW5kIGV2ZW50IGNhbmNlbGFibGUgc2hvdWxkIGJlIGZhbHNlIGFuZCBidWJibGUgc2hv
dWxlIGJlIHRydWUuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB2YXIgc2Nyb2xs
ZW5kX3Bvc2l0aW9uID0gd2luZG93LnNjcm9sbFk7CisgICAgaWYgKHNjcm9sbGVuZF9wb3NpdGlv
biAhPSAwKQorICAgICAgICBmaW5pc2hlZCgiRkFJTCwgd2luZG93IGRpZCBub3Qgc2Nyb2xsLiIp
OworCisgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgIGlmIChzY3JvbGxlbmRfcG9zaXRp
b24gPT0gd2luZG93LnNjcm9sbFkpCisgICAgICAgICAgICBmaW5pc2hlZCgiUEFTUyBUZXN0IGZv
ciBydWJiZXItYmFuZCBzY3JvbGxpbmcgc2Nyb2xsZW5kIGV2ZW50LiIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBmaW5pc2hlZCgiRkFJTCwgd2luZG93J3Mgc2Nyb2xsIHBvc2l0aW9uIHNo
b3VsZG4ndCBjaGFuZ2UgYWZ0ZXIgZ2V0dGluZyBzY3JvbGxlbmQgZXZlbnQuIik7CisgICAgfSwg
MzAwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNl
bmRlciB8fCAhd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgZmluaXNoZWQoIkZBSUwsIGV2
ZW50U2VuZGVyIG9yIHRlc3RSdW5uZXIgYXJlIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3Jv
bGxlbmQiLCBvblNjcm9sbEVuZCk7CisKKyAgICAvLyBUZXN0IHdoZWVsIGV2ZW50IHdpdGggc3Rh
dGVzIHNjcm9sbC4KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDEwMCk7CisgICAg
ZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VT
Y3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDEsICJiZWdhbiIsICJub25lIik7
CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KDAsIDUsICJjaGFuZ2VkIiwgIm5vbmUiKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgNSwgImNoYW5nZWQiLCAibm9uZSIpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAx
LCAiY2hhbmdlZCIsICJub25lIik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIsICJub25lIik7Cit9Cis8L3Njcmlw
dD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXN0YXRlbGVzcy13aGVlbC1z
Y3JvbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2
ZW50LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43ZTVkMWMzMjU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1zdGF0ZWxlc3Mtd2hl
ZWwtc2Nyb2xsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgVGVzdCBmb3Igc3Rh
dGVsZXNzIHdoZWVsIHNjcm9sbGluZyBzY3JvbGxlbmQgZXZlbnQuCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itc3RhdGVsZXNzLXdoZWVs
LXNjcm9sbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZv
ci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMC4uNmI4MmI1NzMyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itc3RhdGVsZXNzLXdoZWVsLXNjcm9sbC5odG1s
CkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZXhwZXJpbWVudGFsOk92ZXJzY3JvbGxFdmVudHNFbmFibGVkPXRydWUgXSAtLT4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAjdGFyZ2V0RGl2IHsKKyAgICAgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBv
dmVyZmxvdzogc2Nyb2xsOworICAgICAgICB9CisKKyAgICAgICAgI2lubmVyRGl2IHsKKyAgICAg
ICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogNDAwcHg7CisgICAgICAg
IH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgc3R5bGU9Im1hcmdpbjowIiBvbmxvYWQ9
cnVuVGVzdCgpPgorICAgIDxkaXYgaWQ9InRhcmdldERpdiI+CisgICAgICAgIDxkaXYgaWQ9Imlu
bmVyRGl2Ij4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0ibG9nIj48
L2Rpdj4KKzwvYm9keT4KKzxzY3JpcHQ+Cit2YXIgdGFyZ2V0X2RpdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsKKworZnVuY3Rpb24gZmluaXNoZWQobWVzc2FnZSkgewor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5lclRleHQgPSBtZXNzYWdlICsg
IlxuIjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBvblNjcm9sbEVuZChldmVudCkgeworICAgIGlmIChl
dmVudC5jYW5jZWxhYmxlIHx8IGV2ZW50LmJ1YmJsZXMpIHsKKyAgICAgICAgZmluaXNoZWQoIkZB
SUwsIGNhbmNlbGFibGUgYW5kIGJ1YmJsZXMgb2YgYW4gZWxlbWVudCBzY3JvbGxlbmQgZXZlbnQg
c2hvdWxkIGJlIGZhbHNlLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdmFyIHNj
cm9sbGVuZF9wb3NpdGlvbiA9IHRhcmdldF9kaXYuc2Nyb2xsVG9wOworICAgIGlmIChzY3JvbGxl
bmRfcG9zaXRpb24gPD0gMCkKKyAgICAgICAgZmluaXNoZWQoIkZBSUwsIHRhcmdldF9kaXYgZGlk
IG5vdCBzY3JvbGwuIik7CisKKyAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgaWYgKHNj
cm9sbGVuZF9wb3NpdGlvbiA9PSB0YXJnZXRfZGl2LnNjcm9sbFRvcCkKKyAgICAgICAgICAgIGZp
bmlzaGVkKCJQQVNTIFRlc3QgZm9yIHN0YXRlbGVzcyB3aGVlbCBzY3JvbGxpbmcgc2Nyb2xsZW5k
IGV2ZW50LiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmaW5pc2hlZCgiRkFJTCwgdGFy
Z2V0X2RpdidzIHNjcm9sbCBwb3NpdGlvbiBzaG91bGRuJ3QgY2hhbmdlIGFmdGVyIGdldHRpbmcg
c2Nyb2xsZW5kIGV2ZW50LiIpOworICAgIH0sIDMwMCk7Cit9CisKK2Z1bmN0aW9uIG9uVW5leHBl
Y3RlZFNjcm9sbEVuZCgpIHsKKyAgICBmaW5pc2hlZCgiRkFJTCwgd2luZG93IGdvdCB1bmV4cGVj
dGVkIHNjcm9sbGVuZCBldmVudCIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlm
ICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBm
aW5pc2hlZCgiRkFJTCwgZXZlbnRTZW5kZXIgb3IgdGVzdFJ1bm5lciBhcmUgbm90IHN1cHBvcnRl
ZC4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgLy8gTWFrZSBzdXJl
IHRoYXQgbm8gc2Nyb2xsZW5kIGV2ZW50IGlzIHNlbnQgdG8gd2luZG93LgorICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQiLCBvblVuZXhwZWN0ZWRTY3JvbGxFbmQpOworICAg
IHRhcmdldF9kaXYuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwgb25TY3JvbGxFbmQpOwor
CisgICAgLy8gVGVzdCB3aGVlbCBldmVudCB3aXRoIHN0YXRlbGVzcyBzY3JvbGwuCisgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMjAsIDIwKTsKKyAgICBldmVudFNlbmRlci5tb25pdG9yV2hl
ZWxFdmVudHMoKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICJub25lIiwgIm5vbmUiKTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTIwLCAibm9uZSIsICJub25l
Iik7CisgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhh
c2VzKDAsIC0yMCwgIm5vbmUiLCAibm9uZSIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAibm9uZSIsICJub25lIik7Cit9Cis8
L3NjcmlwdD4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVsLXNjcm9s
bC13aXRoLXN0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9s
bGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBlZmQ3ZWJhMGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVs
LXNjcm9sbC13aXRoLXN0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgdGVz
dCBmb3Igd2hlZWwgc2Nyb2xsaW5nIHNjcm9sbGVuZCBldmVudC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci13aGVlbC1zY3JvbGwtd2l0
aC1zdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZv
ci13aGVlbC1zY3JvbGwtd2l0aC1zdGF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLmIxNGNkZjI2YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQtZm9yLXdoZWVsLXNjcm9sbC13aXRoLXN0YXRlLmh0
bWwKQEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBleHBlcmltZW50YWw6T3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgICN0YXJnZXREaXYgeworICAgICAgICAg
ICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAg
IG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgIH0KKworICAgICAgICAjaW5uZXJEaXYgeworICAg
ICAgICAgICAgd2lkdGg6IDQwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAg
ICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9h
ZD1ydW5UZXN0KCk+CisgICAgPGRpdiBpZD0idGFyZ2V0RGl2Ij4KKyAgICAgICAgPGRpdiBpZD0i
aW5uZXJEaXYiPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KKyAgICB2YXIgdGFyZ2V0X2RpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YXJnZXREaXYnKTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaGVkKG1l
c3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLmlubmVyVGV4
dCA9IG1lc3NhZ2UgKyAiXG4iOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBv
blNjcm9sbEVuZChldmVudCkgeworICAgICAgICBpZiAoZXZlbnQuY2FuY2VsYWJsZSB8fCBldmVu
dC5idWJibGVzKSB7CisgICAgICAgICAgICBmaW5pc2hlZCgiRkFJTCwgY2FuY2VsYWJsZSBhbmQg
YnViYmxlcyBvZiBhbiBlbGVtZW50IHNjcm9sbGVuZCBldmVudCBzaG91bGQgYmUgZmFsc2UuIik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2YXIgc2Nyb2xsZW5k
X3Bvc2l0aW9uID0gdGFyZ2V0X2Rpdi5zY3JvbGxUb3A7CisgICAgICAgIGlmIChzY3JvbGxlbmRf
cG9zaXRpb24gPD0gMCkgeworICAgICAgICAgICAgZmluaXNoZWQoIkZBSUwsIHRhcmdldF9kaXYg
ZGlkIG5vdCBzY3JvbGwuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgICAgICAgIGlmIChzY3JvbGxlbmRfcG9zaXRp
b24gPT0gdGFyZ2V0X2Rpdi5zY3JvbGxUb3ApCisgICAgICAgICAgICAgICAgZmluaXNoZWQoIlBB
U1MgdGVzdCBmb3Igd2hlZWwgc2Nyb2xsaW5nIHNjcm9sbGVuZCBldmVudC4iKTsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmaW5pc2hlZCgiRkFJTCwgdGFyZ2V0IHNjcm9sbCBw
b3NpdGlvbiBzaG91bGRuJ3QgY2hhbmdlIGFmdGVyIGdldHRpbmcgc2Nyb2xsZW5kIGV2ZW50LiIp
OworICAgICAgICB9LCAzMDApOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uVW5leHBlY3RlZFNj
cm9sbEVuZCgpIHsKKyAgICAgICAgZmluaXNoZWQoIkZBSUwsIHdpbmRvdyBnb3QgdW5leHBlY3Rl
ZCBzY3JvbGxlbmQgZXZlbnQiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICAgIGZpbmlzaGVkKCJGQUlMLCBldmVudFNlbmRlciBvciB0ZXN0UnVubmVyIGFy
ZSBub3Qgc3VwcG9ydC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBubyBzY3JvbGxlbmQgZXZlbnQg
aXMgc2VudCB0byB3aW5kb3cuCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3Jv
bGxlbmQiLCBvblVuZXhwZWN0ZWRTY3JvbGxFbmQpOworICAgICAgICB0YXJnZXRfZGl2LmFkZEV2
ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsIG9uU2Nyb2xsRW5kKTsKKworICAgICAgICAvLyBUZXN0
IHdoZWVsIGV2ZW50IHdpdGggc3RhdGVzIHNjcm9sbC4KKyAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oMjAsIDIwKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRz
KCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1
bVBoYXNlcygwLCAtMSwgImJlZ2FuIiwgIm5vbmUiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC01LCAiY2hhbmdlZCIsICJu
b25lIik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAtNSwgImNoYW5nZWQiLCAibm9uZSIpOworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICJjaGFuZ2Vk
IiwgIm5vbmUiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIDAsICJlbmRlZCIsICJub25lIik7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtNSwgIm5vbmUi
LCAiYmVnaW4iKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIC01LCAibm9uZSIsICJjb250aW51ZSIpOworICAgICAgICBldmVu
dFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgIm5v
bmUiLCAiZW5kIik7CisgICAgfQorPC9zY3JpcHQ+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDlmMDVlNDZmN2UuLjJkNmVhYzBjYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwMzksNCArMTAzOSw5IEBAIHdlYmtp
dC5vcmcvYi8yMTM2MjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UnRwUmVjZWl2ZXItZ2V0Q29uCiAKIHdlYmtpdC5vcmcvYi8yMTM2NTIgd2VicnRjL3ZpZGVvLWF1
dG9wbGF5MS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIxNDA4NCBbIFJl
bGVhc2UgXSB3ZWJydGMvbGlid2VicnRjL2Rlc2NyaXB0aW9uR2V0dGVycy5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXQub3JnL2IvMjE0MDg0
IFsgUmVsZWFzZSBdIHdlYnJ0Yy9saWJ3ZWJydGMvZGVzY3JpcHRpb25HZXR0ZXJzLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQorCisjIEN1cnJlbnRseSwgb25seSBNYWMgc3VwcG9ydHMgdGhlIHNjcm9s
bGVuZCBldmVudCBvZiB1c2VyIHNjcm9sbGluZy4KK3dlYmtpdC5vcmcvYi8yMDg4MTMgZmFzdC9l
dmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1ydWJiZXJiYW5kLmh0bWwgWyBQYXNzIF0KK3dlYmtp
dC5vcmcvYi8yMDg4MTMgZmFzdC9ldmVudHMvc2Nyb2xsZW5kLWV2ZW50LWZvci1zdGF0ZWxlc3Mt
d2hlZWwtc2Nyb2xsLmh0bWwgWyBQYXNzIF0KK3dlYmtpdC5vcmcvYi8yMDg4MTMgZmFzdC9ldmVu
dHMvc2Nyb2xsZW5kLWV2ZW50LWZvci13aGVlbC1zY3JvbGwtd2l0aC1zdGF0ZS5odG1sIFsgUGFz
cyBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBiODBjMzlhOTMwLi40YjNiOGNl
NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTA3LTIxICBDYXRoaWUgQ2hlbiAgPGNhdGhp
ZWNoZW5AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Nyb2xsZW5kIGV2
ZW50IG9mIHVzZXIgc2Nyb2xsaW5nIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorCiAyMDIw
LTA3LTEwICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dTdHJlYW1lcl1bRU1FXVtPcGVuQ0RNXSBJbXBsZW1lbnQgT3BlbkNETSBzdXBw
b3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmggYi9T
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXggZjg2ZWIwYTFiOC4uY2E5
OWM2YzA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaApAQCAtMzY1LDYgKzM2
NSwxMCBAQAogI2RlZmluZSBFTkFCTEVfT1ZFUkZMT1dfU0NST0xMSU5HX1RPVUNIIDEKICNlbmRp
ZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX09WRVJTQ1JPTExfRVZFTlRTKQorI2RlZmluZSBFTkFC
TEVfT1ZFUlNDUk9MTF9FVkVOVFMgMQorI2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfUEFZ
TUVOVF9SRVFVRVNUKQogI2RlZmluZSBFTkFCTEVfUEFZTUVOVF9SRVFVRVNUIDEKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGM1ZWQ3Nzk0YzkuLjYxY2RkOTNkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMTQgQEAKKzIwMjAtMDctMjEgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGxlbmQgZXZlbnQgb2YgdXNlciBzY3Jv
bGxpbmcgb24gTWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDg4MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIHBhdGNoIHN1cHBvcnRzIHNjcm9sbGVuZCBldmVudHMgZm9yIHRoZSBmb2xsb3dp
bmcgdXNlciBzY3JvbGxzIG9uIE1hYy4KKyAgICAgICAgMS4gV2hlZWwgZXZlbnQgc2Nyb2xsOiBG
b3Igd2hlZWwgZXZlbnQgd2l0aCBzdGF0ZSwgbm90IG9ubHkgaXQgZ2VuZXJhdGVzIHVzZXIgc2Ny
b2xsaW5nLCBidXQgYWxzbyBpdCBtaWdodAorICAgICAgICBnZW5lcmF0ZSBtb21lbnR1bSBzY3Jv
bGxpbmcsIFJ1YmJlckJhbmQsIG9yIHRyaWdnZXIgc2Nyb2xsU25hcC4gSW4gb3JkZXIgdG8gZGV0
ZWN0IHRoZSBlbmQgb2YgYWxsIHRoZXNlIHNjcm9sbCBhY3Rpb25zLAorICAgICAgICB3ZSBzdGFy
dCBhIHJlcGVhdGluZyB0aW1lciAobV9kZXRlY3RTY3JvbGxlbmRUaW1lcikgd2hlbiBnZXRzIHRo
ZSBVc2VyU2Nyb2xsRW5kIHN0YXR1cy4gQW5kIGZpcmUgc2Nyb2xsZW5kIGV2ZW50cworICAgICAg
ICB3aGVuIGFsbCB0aGUgc2Nyb2xsIGFjdGlvbnMgc3RvcC4gRm9yIHN0YXRlbGVzcyB3aGVlbCBl
dmVudCB3aGljaCBpcyBnZW5lcmF0ZWQgYnkgbW91c2UsIHNjcm9sbGVuZCBjb3VsZG4ndCBiZSBk
ZXRlY3RlZAorICAgICAgICBieSB3aGVlbCBldmVudHMgc3RhdGUsIHNvIHdlIHN0YXJ0IGEgb25l
LXNob3QgdGltZXIgKG1fZGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kVGltZXIpLiBJZiBubyBuZXcg
c3RhdGVsZXNzIHdoZWVsIHNjcm9sbAorICAgICAgICBnZW5lcmF0ZWQgaW4gNzUwbXMsIGZpcmUg
c2Nyb2xsZW5kIGV2ZW50LgorICAgICAgICAyLiBTY3JvbGxiYXIgc2Nyb2xsOiBGb3IgcHJlc3Np
bmcgc2Nyb2xsYmFyIHNjcm9sbGluZywgaXQncyB0cmlnZ2VyZWQgYnkgbV9zY3JvbGxUaW1lci4g
U28gZmlyZSBzY3JvbGxlbmQgZXZlbnQgd2hlbgorICAgICAgICBtX3Njcm9sbFRpbWVyIGZpcmVz
IG9yIHN0b3BzLiBGb3IgZHJhZ2dpbmcgdGh1bWIgc2Nyb2xsaW5nLCBpdCdzIHRyaWdnZXJlZCBi
eSBtb3VzZSBtb3ZlLiBTbyBmaXJlIHNjcm9sbGVuZCBldmVudCB3aGVuCisgICAgICAgIG1vdXNl
IHVwLgorICAgICAgICAzLiBLZXlib2FyZCBzY3JvbGw6IFRoZSBzY3JvbGwgYWN0aW9uIGVuZCBp
cyBzZXQgdG8gUmVuZGVyTGF5ZXI6OnNjcm9sbCBvciBTY3JvbGxWaWV3OjpzY3JvbGwuCisgICAg
ICAgIDQuIERyYWdnaW5nIHNjcm9sbDogVGhlIG1vdXNlIGRyYWdnaW5nIHNjcm9sbCBpcyB0cmln
Z2VyZWQgYnkgbV9hdXRvc2Nyb2xsVGltZXIgaW4gQXV0b3Njcm9sbENvbnRyb2xsZXIuIFNvIGZp
cmUgc2Nyb2xsZW5kCisgICAgICAgIGV2ZW50IHdoZW4gbV9hdXRvc2Nyb2xsVGltZXIgZW5kcywg
aXQgd2lsbCBjYWxsIFJlbmRlckJveDo6c3RvcEF1dG9zY3JvbGwuCisKKyAgICAgICAgU29tZSB1
c2VyIHNjcm9sbCBhY3Rpb25zIG1pZ2h0IG5vdCBhY3R1YWxseSBnZW5lcmF0ZSBzY3JvbGxpbmcs
IGZvciBpbnN0YW5jZSwgcHJlc3Npbmcgb24gdGhlIHNjcm9sbGJhciB0aHVtYi4gQW5kIEZyYW1l
VmlldworICAgICAgICBzY3JvbGwgaXMgYXN5bmNocm9ub3VzLCBzbyB0aGUgc2Nyb2xsZW5kIGV2
ZW50cyBzaG91bGQgYmUgZmlyZWQgd2hlbiBzY3JvbGwgcG9zaXRpb24gYWN0dWFsbHkgY2hhbmdl
ZCBub3Qgd2hlbiBzY3JvbGwgYWN0aW9ucworICAgICAgICBzdG9wLiBTbyBjdXJyZW50IGFwcHJv
YWNoIGlzIHRoYXQgU2Nyb2xsYWJsZUFyZWEgcmVzdG9yZXMgdGhlIHJlcXVlc3RlZCB1c2VyIHNj
cm9sbCBwb3NpdGlvbnMgd2hpY2ggaW5kaWNhdGUgdGhhdCBpdCB3aWxsIHNjcm9sbC4gCisgICAg
ICAgIFdoZW4gdGhlIGFib3ZlIHNjcm9sbCBhY3Rpb25zIHN0b3AsIG5vdGlmeVVzZXJTY3JvbGxB
Y3Rpb25FbmQoKSBpcyBjYWxsZWQgYW5kIHdpbGwgc2V0IG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQ
b3NpdGlvbiB0cnVlLgorICAgICAgICBBZnRlciB0aGF0LCBTY3JvbGxhYmxlQXJlYSB3aWxsIGNo
ZWNrVXNlclNjcm9sbEVuZFBvc2l0aW9uIHdoZW4gdGhlIHNjcm9sbCBwb3NpdGlvbiBhY3R1YWxs
eSBjaGFuZ2VkLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy9zY3JvbGxlbmQtZXZlbnQt
Zm9yLXJ1YmJlcmJhbmQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvc2Nyb2xsZW5k
LWV2ZW50LWZvci1zdGF0ZWxlc3Mtd2hlZWwtc2Nyb2xsLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZXZlbnRzL3Njcm9sbGVuZC1ldmVudC1mb3Itd2hlZWwtc2Nyb2xsLXdpdGgtc3RhdGUuaHRt
bAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50Ojpjb21tb25UZWFyZG93bik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkUGVu
ZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KTogQXBwZW5kIHRoZSB0YXJnZXRzIHRvIG1fcGVuZGlu
Z1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpy
dW5TY3JvbGxTdGVwcyk6IERpc3BhdGNoIHNjcm9sbGVuZCBldmVudCBmb3IgZWFjaCB0YXJnZXQu
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IEFkZCBtX3BlbmRpbmdTY3JvbGxFbmRFdmVudFRh
cmdldExpc3Qgd2hpY2gga2VlcHMgdGhlIHNjcm9sbGVuZCBldmVudCB0YXJnZXRzLgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2Ny
b2xsVG8gY29uc3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0UmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbik6IEZvciBG
cmFtZVZpZXcgc2Nyb2xsIGlzIGFzeW5jaHJvbm91cywgd2Ugc2F2ZSBtX3JlcXVlc3RpbmdVc2Vy
U2Nyb2xsUG9zaXRpb24sCisgICAgICAgIHRoZW4gY2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24g
d2hlbiBGcmFtZVZpZXcgYWN0dWFsbHkgc2Nyb2xscy4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KTogQWRkIERvY3VtZW50IHRvIG1f
cGVuZGluZ1Njcm9sbGVuZEV2ZW50VGFyZ2V0TGlzdCBpbiBEb2N1bWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0UmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbik6IFN0b3Jl
cyB0aGUgdXNlciBzY3JvbGwgcG9zaXRpb24sIHNvIHRoYXQgaXQgY2FuIGNoZWNrIGl0IHdoZW4g
dXNlciBzY3JvbGxpbmcgZmluaXNoZXMuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om5v
dGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQpOiBOb3RpZnkgdGhlIHNjcm9sbCBhY3Rpb24gaGFzIGVu
ZGVkLCB3ZSBjYW4gc3RhcnQgdG8gY2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24oKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRpb24pOiBDb21w
YXJlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIGFuZCBtX3JlcXVlc3RpbmdVc2VyU2Nyb2xsUG9z
aXRpb24sIGlmIHRoZXkgYXJlIHNhbWUKKyAgICAgICAgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhl
IHNjcm9sbCBlbmRzLiBUaGVuIGFkZFBlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdldCgpLgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpub3RpZnlTY3JvbGxEaWRFbmQpOiBOb3RpZnkgdGhlIGN1cnJlbnQgc2Ny
b2xsIGVuZHMuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6bm90aWZ5U2Nyb2xsRGlk
RW5kKTogRGl0dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0
dG8uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNhbkhh
bmRsZVdoZWVsRXZlbnQgY29uc3QpOiBUaGUgc3RhdGVsZXNzIHdoZWVsIGV2ZW50IGRvZXNuJ3Qg
dHJpZ2dlciBydWJiZXItYmFuZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVl
Ojpub3RpZnlTY3JvbGxEaWRFbmQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6bm90
aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
aW9uU21vb3RoLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJh
cik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcjo6aXNTY3JvbGxBbmltYXRpb25IZWxw
ZXJJblByb2dyZXNzKTogVG8gaW5kaWNhdGUgdGhhdCBTY3JvbGxBbmltYXRpb25IZWxwZXIgaXMg
aW4gcHJvZ3Jlc3MuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3JvbGxUbyk6IGNoZWNrVXNlclNjcm9sbEVuZFBvc2l0
aW9uKCkgd2hlbiBtX3Njcm9sbFBvc2l0aW9uIGFjdHVhbGx5IGNoYW5nZXMuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbik6IHNldFJlcXVlc3RpbmdVc2Vy
U2Nyb2xsUG9zaXRpb24gZm9yIHVzZXIgc2Nyb2xscy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OnNjcm9sbCk6IEtleWJvYXJkIHNjcm9sbCBzY3JvbGxlbmQuCisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFy
ZWE6OnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24pOiBzZXRSZXF1ZXN0aW5nVXNlclNjcm9s
bFBvc2l0aW9uIGZvciB1c2VyIHNjcm9sbHMuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjphZGRQZW5kaW5nU2Ny
b2xsRW5kRXZlbnRUYXJnZXQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVB
cmVhOjpzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6bm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmNoZWNrVXNlclNjcm9sbEVuZFBv
c2l0aW9uKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGJhcjo6YXV0b3Njcm9sbFRpbWVyRmlyZWQpOiBub3RpZnlVc2Vy
U2Nyb2xsQWN0aW9uRW5kIGlmIG1fc2Nyb2xsVGltZXIgaXMgbm90IGFjdGl2ZS4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGJhcjo6c3RvcFRpbWVySWZOZWVkZWQpOiBub3RpZnlVc2VyU2Nyb2xs
QWN0aW9uRW5kIHdoZW4gbV9zY3JvbGxUaW1lciBzdG9wcGVkCisgICAgICAgICogcGxhdGZvcm0v
Y29jb2EvU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJv
bGxlckNsaWVudDo6bm90aWZ5U2Nyb2xsRGlkRW5kKTogRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENv
bnRyb2xsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOiBTdGFydCB0aGUgdGltZXIgYXQgUGxhdGZvcm1X
aGVlbEV2ZW50UGhhc2VFbmRlZCBwaHJhc2UsIGFuZCBzdG9wIGl0CisgICAgICAgIGF0IFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gcGhyYXNlLiBzY2hlZHVsZURldGVjdFN0YXRlbGVzc1Nj
cm9sbGVuZCBpZiBpdCdzIHN0YXRlbGVzcyBzY3JvbGwgZXZlbnQuCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxDb250cm9sbGVyOjpzY2hlZHVsZURldGVjdFN0YXRlbGVzc1Njcm9sbGVuZCk6IENh
bGwgc3RhcnRPbmVTaG90IDc1MG1zLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQ29udHJvbGxl
cjo6ZGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kVGltZXJGaXJlZCk6IENhbGwgc3RhcnREZXRlY3RT
Y3JvbGxlbmRUaW1lci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0YXJ0
RGV0ZWN0U2Nyb2xsZW5kVGltZXIpOiBTdGFydCB0aGUgdGltZXIsIHJlcGVhdGluZyAxLzYwIHMK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnN0b3BEZXRlY3RTY3JvbGxlbmRU
aW1lcik6IFN0b3AgdGhlIHRpbWVyIGFuZCBub3RpZnlTY3JvbGxEaWRFbmQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTY3JvbGxlbmRUaW1lckZpcmVkKTogSWYg
UnViYmVyQmFuZCwgbW9tZW50dW1TY3JvbGwgYW5kIHNjcm9sbFNuYXAgaXMgbm90IGluIHByb2dy
ZXNzLCBzdG9wIHRoZSB0aW1lci4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsKTogU2F2ZSBtX3JlcXVl
c3RpbmdTY3JvbGxQb3NpdGlvbiBmb3IgRnJhbWVWaWV3IG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVy
IHNjcm9sbC4gbV9yZXF1ZXN0aW5nU2Nyb2xsUG9zaXRpb24KKyAgICAgICAgaXMgdXNlZCB0byBk
ZXRlY3QgaWYgU2Nyb2xsQW5pbWF0aW9uSGVscGVyIGVuZHMuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6aXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKTogSWYg
Y3VycmVudCBzY3JvbGwgcG9zaXRpb24gZXF1YWxzIHRvIG1fcmVxdWVzdGluZ1Njcm9sbFBvc2l0
aW9uLCBpdCBtZWFucworICAgICAgICBTY3JvbGxBbmltYXRpb25IZWxwZXIgaGFzIGVuZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVNjcm9sbERpZEVuZCk6
IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCk6IG5vdGlmeVVzZXJTY3JvbGxBY3Rpb25F
bmQgZm9yIGRyYWdnaW5nIHNjcm9sbC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0b3BBdXRvc2Nyb2xsKTogRGVsZXRlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzY3JvbGxUb09mZnNldCk6IHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24g
Zm9yIHVzZXIgc2Nyb2xscy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxU
byk6IGNoZWNrVXNlclNjcm9sbEVuZFBvc2l0aW9uIHdoZW4gUmVuZGVyTGF5ZXIgc2Nyb2xsIHBv
c2l0aW9uIGFjdHVhbGx5IGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IFRoZSBzY3JvbGxUeXBlIGluIEZyYW1lVmlldzo6c2V0U2Ny
b2xsUG9zaXRpb24gaXMgYWx3YXlzIHByb2dyYW1tYXRpYywgc28gd2UgbmVlZCB0bworICAgICAg
ICBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uIGZvciB1c2VyIHNjcm9sbHMgaGVyZS4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGwpOiBub3RpZnlVc2VyU2Nyb2xs
QWN0aW9uRW5kIGZvciBLZXlib2FyZCBzY3JvbC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaDoKKwogMjAyMC0wNC0wOSAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5j
b20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG92ZXJzY3JvbGwgZXZlbnRzIHBhcnNpbmcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDViNjJlMmQ5NjAuLjQzOWYxZDA2MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODA3LDYgKzgwNywxMCBAQCB2b2lkIERvY3VtZW50Ojpj
b21tb25UZWFyZG93bigpCiAgICAgaWYgKG1fdGltZWxpbmVzQ29udHJvbGxlcikKICAgICAgICAg
bV90aW1lbGluZXNDb250cm9sbGVyLT5kZXRhY2hGcm9tRG9jdW1lbnQoKTsKIAorI2lmIEVOQUJM
RShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBtX3BlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdldExp
c3QgPSBudWxscHRyOworI2VuZGlmCisKICAgICBtX3RpbWVsaW5lID0gbnVsbHB0cjsKIH0KIApA
QCAtNDEwOSw2ICs0MTEzLDI2IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZFBlbmRpbmdTY3JvbGxFdmVu
dFRhcmdldChDb250YWluZXJOb2RlJiB0YXJnZXQpCiAgICAgdGFyZ2V0cy5hcHBlbmQodGFyZ2V0
KTsKIH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgRG9jdW1lbnQ6OmFk
ZFBlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdldChDb250YWluZXJOb2RlJiB0YXJnZXQpCit7Cisg
ICAgaWYgKCFzZXR0aW5ncygpLm92ZXJzY3JvbGxFdmVudHNFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghbV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0KQorICAg
ICAgICBtX3BlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdldExpc3QgPSBtYWtlVW5pcXVlPFBlbmRp
bmdTY3JvbGxFdmVudFRhcmdldExpc3Q+KCk7CisKKyAgICBhdXRvJiB0YXJnZXRzID0gbV9wZW5k
aW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0LT50YXJnZXRzOworICAgIGlmICh0YXJnZXRzLmZp
bmRNYXRjaGluZyhbJl0gKGF1dG8mIGVudHJ5KSB7IHJldHVybiBlbnRyeS5wdHIoKSA9PSAmdGFy
Z2V0OyB9KSAhPSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHRhcmdldHMu
aXNFbXB0eSgpKQorICAgICAgICBzY2hlZHVsZVRpbWVkUmVuZGVyaW5nVXBkYXRlKCk7CisKKyAg
ICB0YXJnZXRzLmFwcGVuZCh0YXJnZXQpOworfQorI2VuZGlmCisKIHZvaWQgRG9jdW1lbnQ6OnNl
dE5lZWRzVmlzdWFsVmlld3BvcnRTY3JvbGxFdmVudCgpCiB7CiAgICAgaWYgKCFtX25lZWRzVmlz
dWFsVmlld3BvcnRTY3JvbGxFdmVudCkKQEAgLTQxMzQsNiArNDE1OCwxOCBAQCB2b2lkIERvY3Vt
ZW50OjpydW5TY3JvbGxTdGVwcygpCiAgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb21XaW5k
b3coKSkKICAgICAgICAgICAgIHdpbmRvdy0+dmlzdWFsVmlld3BvcnQoKS5kaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNjcm9sbEV2ZW50LCBFdmVudDo6Q2FuQnViYmxl
OjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICB9CisKKyNpZiBFTkFCTEUoT1ZF
UlNDUk9MTF9FVkVOVFMpCisgICAgLy8gRGVhbCB3aXRoIHNjcm9sbGVuZCBldmVudC4KKyAgICBp
ZiAobV9wZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXRMaXN0ICYmICFtX3BlbmRpbmdTY3JvbGxF
bmRFdmVudFRhcmdldExpc3QtPnRhcmdldHMuaXNFbXB0eSgpKSB7CisgICAgICAgIExPR19XSVRI
X1NUUkVBTShFdmVudHMsIHN0cmVhbSA8PCAiRG9jdW1lbnQiIDw8IHRoaXMgPDwgInNlbmRpbmcg
c2Nyb2xsZW5kIGV2ZW50cyB0byBwZW5kaW5nIHNjcm9sbCBldmVudCB0YXJnZXRzIik7CisgICAg
ICAgIGF1dG8gY3VycmVudFNjcm9sbEVuZFRhcmdldHMgPSBXVEZNb3ZlKG1fcGVuZGluZ1Njcm9s
bEVuZEV2ZW50VGFyZ2V0TGlzdC0+dGFyZ2V0cyk7CisgICAgICAgIGZvciAoYXV0byYgdGFyZ2V0
IDogY3VycmVudFNjcm9sbEVuZFRhcmdldHMpIHsKKyAgICAgICAgICAgIGF1dG8gYnViYmxlcyA9
IHRhcmdldC0+aXNEb2N1bWVudE5vZGUoKSA/IEV2ZW50OjpDYW5CdWJibGU6OlllcyA6IEV2ZW50
OjpDYW5CdWJibGU6Ok5vOworICAgICAgICAgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLnNjcm9sbGVuZEV2ZW50LCBidWJibGVzLCBFdmVudDo6SXND
YW5jZWxhYmxlOjpObykpOworICAgICAgICB9CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgRG9j
dW1lbnQ6OmFkZEF1ZGlvUHJvZHVjZXIoTWVkaWFQcm9kdWNlciYgYXVkaW9Qcm9kdWNlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKaW5kZXggYmI1NDk3MDBlZS4uY2FhZmIyOGRhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTEzODEsNiArMTM4MSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJ1blJlc2l6
ZVN0ZXBzKCk7CiAKICAgICB2b2lkIGFkZFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldChDb250YWlu
ZXJOb2RlJik7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgYWRkUGVu
ZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KENvbnRhaW5lck5vZGUmKTsKKyNlbmRpZgogICAgIHZv
aWQgc2V0TmVlZHNWaXN1YWxWaWV3cG9ydFNjcm9sbEV2ZW50KCk7CiAgICAgdm9pZCBydW5TY3Jv
bGxTdGVwcygpOwogCkBAIC0yMDgyLDYgKzIwODUsOSBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0
IFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldExpc3Q7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFBlbmRp
bmdTY3JvbGxFdmVudFRhcmdldExpc3Q+IG1fcGVuZGluZ1Njcm9sbEV2ZW50VGFyZ2V0TGlzdDsK
KyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBlbmRp
bmdTY3JvbGxFdmVudFRhcmdldExpc3Q+IG1fcGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0TGlz
dDsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBIYXNoU2V0PEhUTUxN
ZWRpYUVsZW1lbnQqPiBtX21lZGlhU3RyZWFtU3RhdGVDaGFuZ2VFbGVtZW50czsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAppbmRleCAxOGIzODA5MWZhLi5iYmI3MzdmN2RkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xNjk0LDcgKzE2OTQsMTAgQEAgdm9pZCBET01XaW5kb3c6
OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFRvT3B0aW9ucyYgb3B0aW9ucywgU2Nyb2xsQ2xhbXBpbmcg
Y2xhbXBpbmcKIAogICAgIC8vIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIGZvciB0aGUgY29tbW9u
IGNhc2Ugb2Ygc2Nyb2xsaW5nIHRvICgwLCAwKSB3aGVuIHRoZSBzY3JvbGxlciBpcyBhbHJlYWR5
IGF0IHRoZSBvcmlnaW4uCiAgICAgLy8gSWYgYW4gYW5pbWF0ZWQgc2Nyb2xsIGlzIGluIHByb2dy
ZXNzLCB0aGlzIG9wdGltaXphdGlvbiBpcyBza2lwcGVkIHRvIGVuc3VyZSB0aGF0IHRoZSBhbmlt
YXRlZCBzY3JvbGwgaXMgcmVhbGx5IHN0b3BwZWQuCi0gICAgaWYgKHZpZXctPmN1cnJlbnRTY3Jv
bGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlv
biAmJiAhc2Nyb2xsVG9PcHRpb25zLmxlZnQudmFsdWUoKSAmJiAhc2Nyb2xsVG9PcHRpb25zLnRv
cC52YWx1ZSgpICYmIHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9zaXRpb24oKSA9PSBJbnRQb2ludCgw
LCAwKSkKKyAgICBpZiAodmlldy0+Y3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Ny
b2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uCisgICAgICAgICYmICFzY3JvbGxUb09w
dGlvbnMubGVmdC52YWx1ZSgpCisgICAgICAgICYmICFzY3JvbGxUb09wdGlvbnMudG9wLnZhbHVl
KCkKKyAgICAgICAgJiYgdmlldy0+Y29udGVudHNTY3JvbGxQb3NpdGlvbigpID09IEludFBvaW50
KDAsIDApKQogICAgICAgICByZXR1cm47CiAKICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCA1MTI3YjQ5MGY0Li5jZGJjNmZkMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC0yMjg2LDEwICsyMjg2LDEyIEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihj
b25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNjcm9sbENsCiAgICAgUGFnZSog
cGFnZSA9IGZyYW1lKCkucGFnZSgpOwogICAgIGlmIChwYWdlICYmIHBhZ2UtPmlzTW9uaXRvcmlu
Z1doZWVsRXZlbnRzKCkpCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuc2V0V2hlZWxFdmVudFRl
c3RNb25pdG9yKHBhZ2UtPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKKworICAgIFNjcm9sbFBv
c2l0aW9uIG5ld1Njcm9sbFBvc2l0aW9uID0gKCFkZWxlZ2F0ZXNTY3JvbGxpbmcoKSAmJiBjbGFt
cGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgPyBhZGp1c3RTY3JvbGxQb3NpdGlvbldp
dGhpblJhbmdlKHNjcm9sbFBvc2l0aW9uKSA6IHNjcm9sbFBvc2l0aW9uOwogICAgIGlmIChhbmlt
YXRlZCA9PSBBbmltYXRlZFNjcm9sbDo6WWVzKQotICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhB
bmltYXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKSwgY3VycmVu
dFNjcm9sbFR5cGUoKSwgY2xhbXBpbmcpOworICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmlt
YXRpb24oc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKG5ld1Njcm9sbFBvc2l0aW9uKSwgY3VycmVu
dFNjcm9sbFR5cGUoKSwgY2xhbXBpbmcpOwogICAgIGVsc2UKLSAgICAgICAgU2Nyb2xsVmlldzo6
c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24sIGNsYW1waW5nKTsKKyAgICAgICAgU2Ny
b2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24obmV3U2Nyb2xsUG9zaXRpb24sIGNsYW1waW5nLCBh
bmltYXRlZCk7CiAKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShvbGRTY3JvbGxUeXBlKTsKIH0K
QEAgLTM3MzEsNiArMzczMyw1MiBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG9PZmZzZXRXaXRo
QW5pbWF0aW9uKGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0LCBTY3JvbGxUeQogICAgIHNldEN1
cnJlbnRTY3JvbGxUeXBlKHByZXZpb3VzU2Nyb2xsVHlwZSk7CiB9CiAKKyNpZiBFTkFCTEUoT1ZF
UlNDUk9MTF9FVkVOVFMpCit2b2lkIEZyYW1lVmlldzo6YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50
VGFyZ2V0KCkKK3sKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVu
dCgpKQorICAgICAgICBkb2N1bWVudC0+YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KCpk
b2N1bWVudCk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBv
c2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAoIWZyYW1l
KCkuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3JlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gPSBwb3NpdGlvbjsKK30KKwor
dm9pZCBGcmFtZVZpZXc6Om5vdGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQoKQoreworICAgIGlmICgh
ZnJhbWUoKS5zZXR0aW5ncygpLm92ZXJzY3JvbGxFdmVudHNFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gdHJ1ZTsKKyAgICBjaGVja1Vz
ZXJTY3JvbGxFbmRQb3NpdGlvbigpOworfQorCit2b2lkIEZyYW1lVmlldzo6Y2hlY2tVc2VyU2Ny
b2xsRW5kUG9zaXRpb24oKQoreworICAgIGlmICghZnJhbWUoKS5zZXR0aW5ncygpLm92ZXJzY3Jv
bGxFdmVudHNFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzY3JvbGxBbmlt
YXRvcigpLmlzU2Nyb2xsQW5pbWF0aW9uSGVscGVySW5Qcm9ncmVzcygpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIW1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbikgeworICAgICAg
ICBtX2lzVXNlclNjcm9sbEFjdGlvbkVuZCA9IGZhbHNlOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFtX2lzVXNlclNjcm9sbEFjdGlvbkVuZCB8fCBtX3JlcXVlc3RpbmdVc2Vy
U2Nyb2xsUG9zaXRpb24udmFsdWUoKSAhPSBzY3JvbGxQb3NpdGlvbigpKQorICAgICAgICByZXR1
cm47CisKKyAgICBhZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKTsKKyAgICBtX3JlcXVl
c3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gPSBXVEY6Om51bGxvcHQ7CisgICAgbV9pc1VzZXJTY3Jv
bGxBY3Rpb25FbmQgPSBmYWxzZTsKK30KKyNlbmRpZgorCiBmbG9hdCBGcmFtZVZpZXc6OmFkanVz
dFNjcm9sbFN0ZXBGb3JGaXhlZENvbnRlbnQoZmxvYXQgc3RlcCwgU2Nyb2xsYmFyT3JpZW50YXRp
b24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIGlm
IChncmFudWxhcml0eSAhPSBTY3JvbGxCeVBhZ2UgfHwgb3JpZW50YXRpb24gPT0gSG9yaXpvbnRh
bFNjcm9sbGJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDllYjE5NWRkODYuLjQ4OGE1
MDYxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNjcwLDYgKzY3MCwxNCBAQCBwdWJs
aWM6CiAKICAgICBTdHJpbmcgZGVidWdEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwogCisjaWYg
RU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZvaWQgYWRkUGVuZGluZ1Njcm9sbEVuZEV2
ZW50VGFyZ2V0KCkgZmluYWw7CisKKyAgICB2b2lkIHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9z
aXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeVVzZXJT
Y3JvbGxBY3Rpb25FbmQoKSBmaW5hbDsKKyAgICB2b2lkIGNoZWNrVXNlclNjcm9sbEVuZFBvc2l0
aW9uKCkgZmluYWw7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBGcmFtZVZpZXco
RnJhbWUmKTsKIApAQCAtOTEyLDYgKzkyMCwxMSBAQCBwcml2YXRlOgogCiAgICAgUGFnaW5hdGlv
biBtX3BhZ2luYXRpb247CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgT3B0
aW9uYWw8U2Nyb2xsUG9zaXRpb24+IG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbjsKKyAg
ICBib29sIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAg
ZW51bSBjbGFzcyBWaWV3cG9ydFJlbmRlcmVyVHlwZSA6IHVpbnQ4X3QgeyBOb25lLCBEb2N1bWVu
dCwgQm9keSB9OwogICAgIFZpZXdwb3J0UmVuZGVyZXJUeXBlIG1fdmlld3BvcnRSZW5kZXJlclR5
cGUgeyBWaWV3cG9ydFJlbmRlcmVyVHlwZTo6Tm9uZSB9OwogICAgIFNjcm9sbFBpbm5pbmdCZWhh
dmlvciBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvciB7IERvTm90UGluIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCmluZGV4IDYwZmI2Zjc5OTkuLmMyNzkzZDUyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwCkBAIC05NDYsNiArOTQ2LDI5IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
cmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uCiAgICAgICAg
IG1fcGFnZS0+cGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50KCktPmxvZ1Njcm9sbGluZ0V2ZW50KFBl
cmZvcm1hbmNlTG9nZ2luZ0NsaWVudDo6U2Nyb2xsaW5nRXZlbnQ6OlN3aXRjaGVkU2Nyb2xsaW5n
TW9kZSwgdGltZXN0YW1wLCByZWFzb25zLnRvUmF3KCkpOwogfQogCisjaWYgRU5BQkxFKE9WRVJT
Q1JPTExfRVZFTlRTKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlTY3Jv
bGxEaWRFbmQoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworCisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoc2Nyb2xsaW5n
Tm9kZUlEKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHNjcm9sbGluZ05vZGVJRCA9PSBmcmFtZVZpZXctPnNjcm9sbGluZ05vZGVJRCgpKSB7CisgICAg
ICAgIGZyYW1lVmlldy0+YWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFyZ2V0KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAo
YXV0byogc2Nyb2xsYWJsZUFyZWEgPSBmcmFtZVZpZXctPnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xs
aW5nTm9kZUlEKHNjcm9sbGluZ05vZGVJRCkpCisgICAgICAgIHNjcm9sbGFibGVBcmVhLT5hZGRQ
ZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5oCmluZGV4IGVkOTYwNTZiNmIuLmZjNjgwZGJlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
QEAgLTcxLDYgKzcxLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcG9ydEV4cG9zZWRVbmZpbGxl
ZEFyZWEoTW9ub3RvbmljVGltZSwgdW5zaWduZWQgdW5maWxsZWRBcmVhKTsKICAgICB2b2lkIHJl
cG9ydFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0NoYW5nZWQoTW9ub3RvbmljVGltZSwgT3B0
aW9uU2V0PFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uPik7CiAKKyNpZiBFTkFCTEUoT1ZFUlND
Uk9MTF9FVkVOVFMpCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlTY3JvbGxEaWRFbmQo
U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV0VC
Q09SRV9FWFBPUlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCmlu
ZGV4IDk2MzZjMGViYzUuLmE1NmUyN2Q4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMTIxLDYgKzEyMSwxMCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShTY3JvbGxp
bmdOb2RlSUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSB7IH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxEaWRF
bmQoU2Nyb2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAgICAgLy8gRm9yY2UgYWxsIHNjcm9s
bCBsYXllciBwb3NpdGlvbiB1cGRhdGVzIHRvIGhhcHBlbiBvbiB0aGUgbWFpbiB0aHJlYWQuCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3Np
dGlvblVwZGF0ZXMoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaAppbmRleCAzMTg1ZDliYjg4Li44MzllMGIyZDFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0xNTIsNiArMTUyLDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShTY3JvbGxpbmdOb2Rl
SUQsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxEaWRFbmQoU2Ny
b2xsaW5nTm9kZUlEKSB7IH0KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdl
KFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
ID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IGMyYjFhOTk3MjUuLmNh
MDExMDc0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCBi
b29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjYW5IYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgdwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdl
IGFsd2F5cyBydWJiZXItYmFuZCB0aGUgbGF0Y2hlZCBub2RlLCBvciB0aGUgcm9vdCBub2RlLgot
ICAgIGlmIChpc0xhdGNoZWROb2RlKCkgfHwgaXNSb290Tm9kZSgpKQorICAgIGlmIChpc0xhdGNo
ZWROb2RlKCkgfHwgKGlzUm9vdE5vZGUoKSAmJiAod2hlZWxFdmVudC5waGFzZSgpICE9IFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlTm9uZSB8fCB3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSAhPSBQ
bGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
CiAgICAgcmV0dXJuIGV2ZW50Q2FuU2Nyb2xsQ29udGVudHMod2hlZWxFdmVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmNwcAppbmRleCBjNjdjOTJlNjllLi41YTYzNzFiY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTMy
Nyw2ICszMjcsMTggQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRSZWZy
ZXNoKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICNlbmRpZgogfQogCisjaWYgRU5BQkxF
KE9WRVJTQ1JPTExfRVZFTlRTKQordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Om5vdGlmeVNj
cm9sbERpZEVuZChTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQoreworICAgIGlmICghbV9zY3JvbGxp
bmdDb29yZGluYXRvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgUnVuTG9vcDo6bWFpbigpLmRp
c3BhdGNoKFtzY3JvbGxpbmdDb29yZGluYXRvciA9IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IsIG5v
ZGVJRF0geworICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+bm90aWZ5U2Nyb2xsRGlkRW5k
KG5vZGVJRCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgRU5BQkxFKFNDUk9MTElOR19U
SFJFQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oCmluZGV4IDMyZGQ1YmM3YWYuLmVmZWI1MDNiZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5o
CkBAIC03Miw2ICs3MiwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50
SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVu
c2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JP
TExfRVZFTlRTKQorICAgIHZvaWQgbm90aWZ5U2Nyb2xsRGlkRW5kKFNjcm9sbGluZ05vZGVJRCkg
b3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIHZvaWQgcmVwb3J0RXhwb3NlZFVuZmlsbGVkQXJlYShN
b25vdG9uaWNUaW1lLCB1bnNpZ25lZCB1bmZpbGxlZEFyZWEpIG92ZXJyaWRlOwogICAgIHZvaWQg
cmVwb3J0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQ2hhbmdlZChNb25vdG9uaWNUaW1lLCBP
cHRpb25TZXQ8U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb24+KSBvdmVycmlkZTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKaW5kZXggZWFlMDkzYjFl
Zi4uY2JhNmUzNzdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5oCkBAIC04Miw2ICs4MiwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU3RvcFJ1
YmJlcmJhbmRTbmFwQW5pbWF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBhZGp1c3RTY3JvbGxQb3Np
dGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSBmaW5hbDsKIAorI2lmIEVOQUJMRShPVkVSU0NST0xM
X0VWRU5UUykKKyAgICB2b2lkIG5vdGlmeVNjcm9sbERpZEVuZCgpIG92ZXJyaWRlOworI2VuZGlm
CisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogICAgIEZsb2F0UG9pbnQgc2Nyb2xsT2Zm
c2V0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbW1lZGlhdGVTY3JvbGxPbkF4aXMoU2Ny
b2xsRXZlbnRBeGlzLCBmbG9hdCBkZWx0YSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCmluZGV4IDE4ODY3Zjk3ZTMuLjcwNjcwYjBl
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1t
CkBAIC0zMzEsNiArMzMxLDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZU1hYzo6YWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzCiAgICAgaW1tZWRp
YXRlU2Nyb2xsQnkoY29uc3RyYWluZWRQb3NpdGlvbiAtIHNjcm9sbFBvc2l0aW9uKTsKIH0KIAor
I2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZU1hYzo6bm90aWZ5U2Nyb2xsRGlkRW5kKCkKK3sKKyAgICBzY3JvbGxpbmdU
cmVlKCkubm90aWZ5U2Nyb2xsRGlkRW5kKHNjcm9sbGluZ05vZGUoKS5zY3JvbGxpbmdOb2RlSUQo
KSk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiBGbG9hdFBvaW50
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OnNjcm9sbE9mZnNldCgpIGNv
bnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRp
b25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21v
b3RoLmNwcAppbmRleCAyY2E1NzhhMzBmLi41ZWZlZjk2MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKQEAgLTI4LDcgKzI4LDEw
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0aW9uU21vb3Ro
LmgiCiAKKyNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNs
dWRlICJTY3JvbGxhYmxlQXJlYS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKaW5kZXggMWMwODBjYmE5YS4uNDAzYmZj
MGFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAt
MzA3LDUgKzMwNyw0IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OmRpZEFkZEhvcml6b250YWxTY3Jv
bGxiYXIoU2Nyb2xsYmFyKikKIHsKICAgICBtX2FuaW1hdGlvblByb2dyYW1tYXRpY1Njcm9sbC0+
dXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKIH0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKaW5kZXggMWU0ZjQ5MjM0Mi4uMmI2
ZWRmYTlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RNb25pdG9yLmgiCiAjaW5jbHVk
ZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpIHx8IEVOQUJMRShD
U1NfU0NST0xMX1NOQVApCiAjaW5jbHVkZSAiU2Nyb2xsQ29udHJvbGxlci5oIgpAQCAtMTMxLDYg
KzEzMiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgaG9yaXpvbnRhbFNjcm9sbGJh
clN0YXRlRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KICAgICB2
aXJ0dWFsIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGluZygpIGNvbnN0IHsg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykK
KyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVzdE1vbml0
b3IoUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBtX3doZWVs
RXZlbnRUZXN0TW9uaXRvciA9IHRlc3RNb25pdG9yOyB9CiAKICNpZiAoRU5BQkxFKENTU19TQ1JP
TExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkgJiYgUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2NDk0YzlmZTUyLi4wZTIyMjlm
M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNDg3LDYgKzQ4
NywxMCBAQCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBu
ZXdQb3NpdGlvbikKIAogICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBuZXdQb3NpdGlvbjsKIAorI2lm
IEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlv
bigpOworI2VuZGlmCisKICAgICBpZiAoc2Nyb2xsYmFyc1N1cHByZXNzZWQoKSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC01MTQsNyArNTE4LDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojpjb21wbGV0ZVVw
ZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogICAgIHVwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3
OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24s
IFNjcm9sbENsYW1waW5nIGNsYW1waW5nLCBBbmltYXRlZFNjcm9sbC8qIGFuaW1hdGVkKi8pCit2
b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBz
Y3JvbGxQb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcsIEFuaW1hdGVkU2Nyb2xsIC8q
IGFuaW1hdGVkKi8pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8
ICJTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKIApA
QCAtNTM3LDE0ICs1NDEsMjMgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihj
b25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIFNjcm9sbEMKICAgICAgICAgdXBk
YXRlU2Nyb2xsYmFycyhuZXdTY3JvbGxQb3NpdGlvbik7CiAKICAgICBzZXRTY3JvbGxCZWhhdmlv
clN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOworCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIGlmIChjdXJyZW50U2Nyb2xsVHlwZSgpID09IFNj
cm9sbFR5cGU6OlVzZXIpCisgICAgICAgIHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24o
bmV3U2Nyb2xsUG9zaXRpb24pOworI2VuZGlmCiB9CiAKIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xs
KFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
KQogewotICAgIGlmIChwbGF0Zm9ybVdpZGdldCgpKQotICAgICAgICByZXR1cm4gcGxhdGZvcm1T
Y3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7Ci0KLSAgICByZXR1cm4gU2Nyb2xsYWJsZUFy
ZWE6OnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICBib29sIHNjcm9sbGVkID0g
cGxhdGZvcm1XaWRnZXQoKSA/IHBsYXRmb3JtU2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkp
IDogU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKKyAgICBp
ZiAoc2Nyb2xsZWQpIHsKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIG5v
dGlmeVVzZXJTY3JvbGxBY3Rpb25FbmQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIFNjcm9sbFZpZXc6OmxvZ2ljYWxT
Y3JvbGwoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3Bw
CmluZGV4IDVjZDI5N2NmODYuLmZjMTkyZWZiN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogCisjaW5jbHVkZSAiQ29udGFpbmVyTm9k
ZS5oIgogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCkBAIC0yMzQsMTAgKzIzNSwxNCBAQCB2b2lk
IFNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzKGNvbnN0IFNjcm9s
bE9mZnNldCYgb2Zmc2V0KQogdm9pZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0RnJv
bUFuaW1hdGlvbihjb25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKIHsKICAgICBTY3JvbGxQb3Np
dGlvbiBwb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQpOwotICAgIGlm
IChyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUocG9zaXRpb24sIGN1cnJlbnRTY3JvbGxUeXBl
KCkpKQotICAgICAgICByZXR1cm47CiAKLSAgICBzY3JvbGxQb3NpdGlvbkNoYW5nZWQocG9zaXRp
b24pOworICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHBvc2l0aW9uLCBjdXJy
ZW50U2Nyb2xsVHlwZSgpKSkKKyAgICAgICAgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9u
KTsKKworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoY3VycmVudFNjcm9s
bFR5cGUoKSA9PSBTY3JvbGxUeXBlOjpVc2VyKQorICAgICAgICBzZXRSZXF1ZXN0aW5nVXNlclNj
cm9sbFBvc2l0aW9uKHBvc2l0aW9uKTsKKyNlbmRpZgogfQogCiB2b2lkIFNjcm9sbGFibGVBcmVh
Ojp3aWxsU3RhcnRMaXZlUmVzaXplKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5oCmluZGV4IDZhZWU5YWM4YWUuLjRjZTZkYjVjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMzcsNiArMzcsNyBAQCBjbGFzcyBUZXh0U3RyZWFt
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBG
bG9hdFBvaW50OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTGF5b3V0UG9pbnQ7CkBA
IC0zNTgsNiArMzU5LDE0IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBkZWJ1
Z0Rlc2NyaXB0aW9uKCkgY29uc3QgPSAwOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRT
KQorICAgIHZpcnR1YWwgdm9pZCBhZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJnZXQoKSB7IH0K
KworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKGNvbnN0
IFNjcm9sbFBvc2l0aW9uJikgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVVzZXJTY3JvbGxB
Y3Rpb25FbmQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tVc2VyU2Nyb2xsRW5kUG9zaXRp
b24oKSB7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xs
YWJsZUFyZWEoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5TY3JvbGxhYmxlQXJlYSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKaW5kZXggYTZiNTgwNzM4OS4uZTBj
YTE0YzQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC0xNTcsNiAr
MTU3LDEwIEBAIHZvaWQgU2Nyb2xsYmFyOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIFdpZGdlCiB2b2lkIFNjcm9sbGJhcjo6YXV0b3Nj
cm9sbFRpbWVyRmlyZWQoKQogewogICAgIGF1dG9zY3JvbGxQcmVzc2VkUGFydCh0aGVtZSgpLmF1
dG9zY3JvbGxUaW1lckRlbGF5KCkpOworI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAg
ICBpZiAoIW1fc2Nyb2xsVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJl
YS5ub3RpZnlVc2VyU2Nyb2xsQWN0aW9uRW5kKCk7CisjZW5kaWYKIH0KIAogc3RhdGljIGJvb2wg
dGh1bWJVbmRlck1vdXNlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQpAQCAtMjE1LDYgKzIxOSwxMCBA
QCB2b2lkIFNjcm9sbGJhcjo6c3RvcFRpbWVySWZOZWVkZWQoKQogewogICAgIGlmIChtX3Njcm9s
bFRpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fc2Nyb2xsVGltZXIuc3RvcCgpOworCisjaWYg
RU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIG1fc2Nyb2xsYWJsZUFyZWEubm90aWZ5VXNl
clNjcm9sbEFjdGlvbkVuZCgpOworI2VuZGlmCiB9CiAKIFNjcm9sbERpcmVjdGlvbiBTY3JvbGxi
YXI6OnByZXNzZWRQYXJ0U2Nyb2xsRGlyZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAppbmRleCA1MmYyOTUzMWMzLi44ZjlkOTdj
NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5oCkBAIC05MSw2ICs5MSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkanVz
dFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpID0gMDsKICNlbmRpZgogCisjaWYg
RU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxE
aWRFbmQoKSB7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGRlZmVyV2hlZWxFdmVudFRl
c3RDb21wbGV0aW9uRm9yUmVhc29uKFdoZWVsRXZlbnRUZXN0TW9uaXRvcjo6U2Nyb2xsYWJsZUFy
ZWFJZGVudGlmaWVyLCBXaGVlbEV2ZW50VGVzdE1vbml0b3I6OkRlZmVyUmVhc29uKSBjb25zdCB7
IC8qIERvIG5vdGhpbmcgKi8gfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXaGVlbEV2ZW50VGVz
dENvbXBsZXRpb25EZWZlcnJhbEZvclJlYXNvbihXaGVlbEV2ZW50VGVzdE1vbml0b3I6OlNjcm9s
bGFibGVBcmVhSWRlbnRpZmllciwgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpEZWZlclJlYXNvbikg
Y29uc3QgeyAvKiBEbyBub3RoaW5nICovIH0KIApAQCAtMTkzLDYgKzE5NywxMyBAQCBwcml2YXRl
OgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICB2
b2lkIHNjaGVkdWxlRGV0ZWN0U3RhdGVsZXNzU2Nyb2xsZW5kKCk7CisgICAgdm9pZCBkZXRlY3RT
dGF0ZWxlc3NTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgdm9pZCBzdGFydERldGVjdFNjcm9s
bGVuZFRpbWVyKCk7CisgICAgdm9pZCBzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKTsKKyAgICB2
b2lkIGRldGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKTsKKyNlbmRpZgogICAgIFNjcm9sbENvbnRy
b2xsZXJDbGllbnQmIG1fY2xpZW50OwogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjE5LDYgKzIz
MCwxMiBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xM
X0VWRU5UUykKKyAgICAvLyBGSVhNRTogc2Nyb2xsU25hcCBhbmQgc2Nyb2xsZW5kIGNhbiBzaGFy
ZSB0aGUgc2FtZSB0aW1lciBmb3Igc3RhdGVsZXNzIHNjcm9sbC4KKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxDb250cm9sbGVyVGltZXI+IG1fZGV0ZWN0U2Ny
b2xsZW5kVGltZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIG1faW5T
Y3JvbGxHZXN0dXJlIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW9tZW50dW1TY3JvbGxJblByb2dy
ZXNzIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tCmluZGV4IGZmZWM0NDU0NGIuLjEyMDJkMmFhN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAtMTQ4
LDEyICsxNDgsMTcgQEAgYm9vbCBTY3JvbGxDb250cm9sbGVyOjpoYW5kbGVXaGVlbEV2ZW50KGNv
bnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgbV9vdmVyZmxvd1Nj
cm9sbERlbHRhID0gRmxvYXRTaXplKCk7CiAKICAgICAgICAgc3RvcFNuYXBSdWJiZXJiYW5kVGlt
ZXIoKTsKLQorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKKyAgICAgICAgc3RvcERldGVj
dFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CiAgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVu
ZGVkKSB7CiAgICAgICAgIHNuYXBSdWJiZXJCYW5kKCk7CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExf
RVZFTlRTKQorICAgICAgICBzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCk7CisjZW5kaWYKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xNjYsNiArMTcxLDExIEBAIGJvb2wgU2Ny
b2xsQ29udHJvbGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyNpZiBFTkFCTEUo
T1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgaWYgKHdoZWVsRXZlbnQucGhhc2UoKSA9PSBQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZU5vbmUgJiYgd2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgPT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKQorICAgICAgICBzY2hlZHVsZURldGVjdFN0YXRlbGVz
c1Njcm9sbGVuZCgpOworI2VuZGlmCisKICAgICBmbG9hdCBkZWx0YVggPSBtX292ZXJmbG93U2Ny
b2xsRGVsdGEud2lkdGgoKTsKICAgICBmbG9hdCBkZWx0YVkgPSBtX292ZXJmbG93U2Nyb2xsRGVs
dGEuaGVpZ2h0KCk7CiAKQEAgLTg1MSw2ICs4NjEsNjQgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVy
OjpzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlc0Zvck9mZnNldChpbnQgeCwgaW50IHkpCiB9CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShPVkVSU0NST0xMX0VWRU5UUykKK3ZvaWQgU2Nyb2xsQ29udHJv
bGxlcjo6c2NoZWR1bGVEZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmQoKQoreworICAgIGlmIChtX2Rl
dGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVyKSB7CisgICAgICAgIG1fZGV0ZWN0U3RhdGVsZXNz
U2Nyb2xsZW5kVGltZXItPnN0b3AoKTsKKyAgICAgICAgbV9kZXRlY3RTdGF0ZWxlc3NTY3JvbGxl
bmRUaW1lciA9IG51bGxwdHI7CisgICAgfQorICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIHN0YXRl
bGVzc1Njcm9sbEVuZERlbGF5ID0gNzUwX21zOworICAgIG1fZGV0ZWN0U3RhdGVsZXNzU2Nyb2xs
ZW5kVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBkZXRlY3RT
dGF0ZWxlc3NTY3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9kZXRlY3RTdGF0
ZWxlc3NTY3JvbGxlbmRUaW1lci0+c3RhcnRPbmVTaG90KHN0YXRlbGVzc1Njcm9sbEVuZERlbGF5
KTsKK30KKwordm9pZCBTY3JvbGxDb250cm9sbGVyOjpkZXRlY3RTdGF0ZWxlc3NTY3JvbGxlbmRU
aW1lckZpcmVkKCkKK3sKKyAgICBtX2RldGVjdFN0YXRlbGVzc1Njcm9sbGVuZFRpbWVyID0gbnVs
bHB0cjsKKyAgICBtX2NsaWVudC5ub3RpZnlTY3JvbGxEaWRFbmQoKTsKK30KKwordm9pZCBTY3Jv
bGxDb250cm9sbGVyOjpzdGFydERldGVjdFNjcm9sbGVuZFRpbWVyKCkKK3sKKyAgICBpZiAobV9k
ZXRlY3RTY3JvbGxlbmRUaW1lcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fZGV0ZWN0U2Nyb2xs
ZW5kVGltZXIgPSBtX2NsaWVudC5jcmVhdGVUaW1lcihbdGhpc10geworICAgICAgICBkZXRlY3RT
Y3JvbGxlbmRUaW1lckZpcmVkKCk7CisgICAgfSk7CisgICAgbV9kZXRlY3RTY3JvbGxlbmRUaW1l
ci0+c3RhcnRSZXBlYXRpbmcoMV9zIC8gNjAuKTsKK30KKwordm9pZCBTY3JvbGxDb250cm9sbGVy
OjpzdG9wRGV0ZWN0U2Nyb2xsZW5kVGltZXIoKQoreworICAgIGlmICghbV9kZXRlY3RTY3JvbGxl
bmRUaW1lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQubm90aWZ5U2Nyb2xsRGlk
RW5kKCk7CisgICAgbV9kZXRlY3RTY3JvbGxlbmRUaW1lci0+c3RvcCgpOworICAgIG1fZGV0ZWN0
U2Nyb2xsZW5kVGltZXIgPSBudWxscHRyOworfQorCit2b2lkIFNjcm9sbENvbnRyb2xsZXI6OmRl
dGVjdFNjcm9sbGVuZFRpbWVyRmlyZWQoKQoreworICAgIGlmIChpc1J1YmJlckJhbmRJblByb2dy
ZXNzKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9t
b21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoQ1NT
X1NDUk9MTF9TTkFQKQorICAgIGlmIChtX3Njcm9sbFNuYXBUaW1lcikKKyAgICAgICAgcmV0dXJu
OworI2VuZGlmCisjZW5kaWYKKworICAgIHN0b3BEZXRlY3RTY3JvbGxlbmRUaW1lcigpOworfQor
I2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShSVUJC
RVJfQkFORElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLmgKaW5kZXggNjJiMmJkMjk5OS4uZDk1ZDg4OTUwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0MSw2ICsxNDEsMTAg
QEAgcHJpdmF0ZToKICAgICBTdHJpbmcgaG9yaXpvbnRhbFNjcm9sbGJhclN0YXRlRm9yVGVzdGlu
ZygpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyB2ZXJ0aWNhbFNjcm9sbGJhclN0YXRlRm9yVGVz
dGluZygpIGNvbnN0IGZpbmFsOwogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAg
IGJvb2wgaXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkgb3ZlcnJpZGU7CisjZW5k
aWYKKwogICAgIC8vIFNjcm9sbENvbnRyb2xsZXJDbGllbnQuCiAjaWYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCgpIGNvbnN0IGZpbmFsOwpAQCAtMTU3
LDkgKzE2MSwxNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBbHJlYWR5UGlubmVkSW5EaXJlY3Rp
b25PZkdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsRXZlbnRBeGlzKSBj
b25zdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAoRU5BQkxF
KENTU19TQ1JPTExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKSkKKyAgICB2b2lkIG5v
dGlmeVNjcm9sbERpZEVuZCgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBib29sIG1faGF2ZVNj
cm9sbGVkU2luY2VQYWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRl
OwogICAgIEludFJlY3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIE9wdGlvbmFsPEZsb2F0UG9pbnQ+IG1fcmVxdWVzdGluZ1Nj
cm9sbFBvc2l0aW9uOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXgg
NWY2NTMwM2NlYS4uZjMxYjkyNjQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNzgzLDExICs3ODMsMTIgQEAgYm9vbCBTY3Jv
bGxBbmltYXRvck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBT
Y3JvbGxHcmFudWxhcmkKIHsKICAgICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQgPSB0cnVl
OwogCi0gICAgaWYgKCFzY3JvbGxBbmltYXRpb25FbmFibGVkRm9yU3lzdGVtKCkgfHwgIW1fc2Ny
b2xsYWJsZUFyZWEuc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBTY3Jv
bGxBbmltYXRvcjo6c2Nyb2xsKG9yaWVudGF0aW9uLCBncmFudWxhcml0eSwgc3RlcCwgbXVsdGlw
bGllcik7Ci0KLSAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlQaXhlbCkKKyAgICBpZiAo
IXNjcm9sbEFuaW1hdGlvbkVuYWJsZWRGb3JTeXN0ZW0oKSB8fCAhbV9zY3JvbGxhYmxlQXJlYS5z
Y3JvbGxBbmltYXRvckVuYWJsZWQoKSB8fCBncmFudWxhcml0eSA9PSBTY3JvbGxCeVBpeGVsKSB7
CisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgICAgICBtX3JlcXVlc3RpbmdTY3Jv
bGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKKyNlbmRpZgogICAgICAgICByZXR1cm4gU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbChvcmllbnRhdGlvbiwgZ3JhbnVsYXJpdHksIHN0ZXAsIG11bHRpcGxp
ZXIpOworICAgIH0KIAogICAgIEZsb2F0UG9pbnQgY3VycmVudFBvc2l0aW9uID0gdGhpcy0+Y3Vy
cmVudFBvc2l0aW9uKCk7CiAgICAgRmxvYXRTaXplIGRlbHRhOwpAQCAtODEwLDYgKzgxMSw5IEBA
IGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXJpCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5n
LCBzdHJlYW0gPDwgIlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGwgIiA8PCAiIGZyb20gIiA8PCBj
dXJyZW50UG9zaXRpb24gPDwgIiB0byAiIDw8IG5ld1Bvc2l0aW9uKTsKICAgICBbbV9zY3JvbGxB
bmltYXRpb25IZWxwZXIgc2Nyb2xsVG9Qb2ludDpuZXdQb3NpdGlvbl07CisjaWYgRU5BQkxFKE9W
RVJTQ1JPTExfRVZFTlRTKQorICAgIG1fcmVxdWVzdGluZ1Njcm9sbFBvc2l0aW9uID0gbmV3UG9z
aXRpb247CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTIxLDYgKzkyNSwxNyBA
QCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjppbW1lZGlhdGVTY3JvbGxUb1Bvc2l0aW9uRm9yU2Ny
b2xsQW5pbWF0aW9uKGNvbnN0IEZsb2F0UAogICAgIGltbWVkaWF0ZVNjcm9sbFRvUG9zaXRpb24o
bmV3UG9zaXRpb24pOwogfQogCisjaWYgRU5BQkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorYm9vbCBT
Y3JvbGxBbmltYXRvck1hYzo6aXNTY3JvbGxBbmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkKK3sK
KyAgICBpZiAobV9yZXF1ZXN0aW5nU2Nyb2xsUG9zaXRpb24gJiYgc2Nyb2xsYWJsZUFyZWEoKS5z
Y3JvbGxQb3NpdGlvbigpICE9IHJvdW5kZWRJbnRQb2ludChtX3JlcXVlc3RpbmdTY3JvbGxQb3Np
dGlvbi52YWx1ZSgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBtX3JlcXVlc3RpbmdT
Y3JvbGxQb3NpdGlvbiA9IFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5k
aWYKKwogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKGNvbnN0
IEZsb2F0U2l6ZSYgZGVsdGEpCiB7CiAgICAgbm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChkZWx0
YSk7CkBAIC0xNDQ3LDYgKzE0NjIsMTMgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6aW1tZWRp
YXRlU2Nyb2xsQnkoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKSAmJiAoRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwgRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKSkKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVNjcm9s
bERpZEVuZCgpCit7CisgICAgbV9zY3JvbGxhYmxlQXJlYS5hZGRQZW5kaW5nU2Nyb2xsRW5kRXZl
bnRUYXJnZXQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVT
Y3JvbGxlclN0eWxlKCkKIHsKICAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3Jv
bGxlclN0YXRlSXNMb2NrZWRdKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CmluZGV4IDAzMzdjMDBjNjcuLjgzMjA0NzI0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC05ODksNiArOTg5LDE2IEBAIFJlbmRlckJveCogUmVuZGVyQm94Ojpm
aW5kQXV0b3Njcm9sbGFibGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4gaXM8
UmVuZGVyQm94PihyZW5kZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSA6IG51
bGxwdHI7CiB9CiAKK3ZvaWQgUmVuZGVyQm94OjpzdG9wQXV0b3Njcm9sbCgpCit7CisjaWYgRU5B
QkxFKE9WRVJTQ1JPTExfRVZFTlRTKQorICAgIGlmIChpc1JlbmRlclZpZXcoKSAmJiBmcmFtZSgp
LnZpZXcoKSkKKyAgICAgICAgZnJhbWUoKS52aWV3KCktPm5vdGlmeVVzZXJTY3JvbGxBY3Rpb25F
bmQoKTsKKyAgICBlbHNlIGlmIChsYXllcigpKQorICAgICAgICBsYXllcigpLT5ub3RpZnlVc2Vy
U2Nyb2xsQWN0aW9uRW5kKCk7CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJCb3g6OnBhblNjcm9s
bChjb25zdCBJbnRQb2ludCYgc291cmNlKQogewogICAgIGlmIChsYXllcigpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGQwODdkM2Y2NGYuLjNlMjU2ZGFhMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTQ3Myw3ICs0NzMsNyBAQCBvdmVycmlk
ZTsKICAgICBib29sIGNhbkF1dG9zY3JvbGwoKSBjb25zdDsKICAgICBJbnRTaXplIGNhbGN1bGF0
ZUF1dG9zY3JvbGxEaXJlY3Rpb24oY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdDsK
ICAgICBzdGF0aWMgUmVuZGVyQm94KiBmaW5kQXV0b3Njcm9sbGFibGUoUmVuZGVyT2JqZWN0Kik7
Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBdXRvc2Nyb2xsKCkgeyB9CisgICAgdmlydHVhbCB2b2lk
IHN0b3BBdXRvc2Nyb2xsKCk7CiAgICAgdmlydHVhbCB2b2lkIHBhblNjcm9sbChjb25zdCBJbnRQ
b2ludCYpOwogCiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcldpdGhBdXRvQmVoYXZpb3Io
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDRl
NzE3NDUwNjIuLjFkMDYxMGNmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcApAQCAtMjU5MCwxMCArMjU5MCwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxU
b1lQb3NpdGlvbihpbnQgeSwgU2Nyb2xsVHlwZSBzY3JvbGxUeXBlLCBTY3JvbGxDbGFtcGluZwog
CiB2b2lkIFJlbmRlckxheWVyOjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlv
biYgcG9zaXRpb24sIFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBp
bmcsIEFuaW1hdGVkU2Nyb2xsIGFuaW1hdGVkKQogeworICAgIGF1dG8gb2Zmc2V0ID0gc2Nyb2xs
T2Zmc2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICBTY3JvbGxPZmZzZXQgbmV3U2Nyb2xs
T2Zmc2V0ID0gY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9s
bE9mZnNldChvZmZzZXQpIDogb2Zmc2V0OwogICAgIGlmIChhbmltYXRlZCA9PSBBbmltYXRlZFNj
cm9sbDo6WWVzKQotICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24oc2Nyb2xsT2Zm
c2V0RnJvbVBvc2l0aW9uKHBvc2l0aW9uKSwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOworICAgICAg
ICBzY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3U2Nyb2xsT2Zmc2V0LCBzY3JvbGxUeXBl
LCBjbGFtcGluZyk7CiAgICAgZWxzZQotICAgICAgICBzY3JvbGxUb09mZnNldChzY3JvbGxPZmZz
ZXRGcm9tUG9zaXRpb24ocG9zaXRpb24pLCBzY3JvbGxUeXBlLCBjbGFtcGluZyk7CisgICAgICAg
IHNjcm9sbFRvT2Zmc2V0KG5ld1Njcm9sbE9mZnNldCwgc2Nyb2xsVHlwZSwgY2xhbXBpbmcpOwog
fQogCiBTY3JvbGxPZmZzZXQgUmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KGNvbnN0IFNj
cm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0KSBjb25zdApAQCAtMjYxOCwxNiArMjYyMCwyMiBAQCB2
b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9s
bE9mZnNldCwgU2Nyb2xsVHlwZSBzYwogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFu
aW1hdGlvbnMoKTsKIAogICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xh
bXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFtcFNjcm9sbE9mZnNldChzY3Jv
bGxPZmZzZXQpIDogc2Nyb2xsT2Zmc2V0OworICAgIFNjcm9sbFBvc2l0aW9uIGNsYW1wZWRTY3Jv
bGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0
KTsKICAgICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCA9PSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBwcmV2aW91c1Njcm9sbFR5cGUgPSBjdXJyZW50
U2Nyb2xsVHlwZSgpOwogICAgIHNldEN1cnJlbnRTY3JvbGxUeXBlKHNjcm9sbFR5cGUpOwogCi0g
ICAgaWYgKCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoc2Nyb2xsUG9zaXRpb25Gcm9tT2Zm
c2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpLCBzY3JvbGxUeXBlLCBjbGFtcGluZykpCisgICAgaWYg
KCFyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY2xhbXBlZFNjcm9sbFBvc2l0aW9uLCBzY3Jv
bGxUeXBlLCBjbGFtcGluZykpCiAgICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlv
bihjbGFtcGVkU2Nyb2xsT2Zmc2V0LCBjbGFtcGluZyk7Ci0gICAgc2V0U2Nyb2xsQmVoYXZpb3JT
dGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIAorI2lmIEVOQUJM
RShPVkVSU0NST0xMX0VWRU5UUykKKyAgICBpZiAoY3VycmVudFNjcm9sbFR5cGUoKSA9PSBTY3Jv
bGxUeXBlOjpVc2VyKQorICAgICAgICBzZXRSZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKGNs
YW1wZWRTY3JvbGxQb3NpdGlvbik7CisjZW5kaWYKKworICAgIHNldFNjcm9sbEJlaGF2aW9yU3Rh
dHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiAgICAgc2V0Q3VycmVu
dFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBlKTsKIH0KIApAQCAtMjc0OCw2ICsyNzU2LDEw
IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3Np
dGlvbikKICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IHJlbmRlcmVyKCkuZWxlbWVudCgpKQog
ICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFkZFBlbmRpbmdTY3JvbGxFdmVudFRhcmdldCgq
ZWxlbWVudCk7CiAKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgY2hlY2tVc2Vy
U2Nyb2xsRW5kUG9zaXRpb24oKTsKKyNlbmRpZgorCiAgICAgaWYgKHNjcm9sbHNPdmVyZmxvdygp
KQogICAgICAgICB2aWV3LmZyYW1lVmlldygpLmRpZENoYW5nZVNjcm9sbE9mZnNldCgpOwogCkBA
IC0yODAwLDcgKzI4MTIsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxl
KGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgIExheW91dFJl
Y3QgbmV3UmVjdCA9IGFic29sdXRlUmVjdDsKICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldyA9IHJl
bmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpOwogICAgIGF1dG8qIHBhcmVudExheWVyID0gZW5j
bG9zaW5nQ29udGFpbmluZ0Jsb2NrTGF5ZXIoKnRoaXMsIENyb3NzRnJhbWVCb3VuZGFyaWVzOjpO
byk7Ci0gICAgYm9vbCBhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyA9ICFyZW5kZXJlcigpLmZyYW1l
KCkuZXZlbnRIYW5kbGVyKCkuYXV0b3Njcm9sbEluUHJvZ3Jlc3MoKTsKKyAgICBib29sIGF1dG9z
Y3JvbGxJblByb2dyZXNzID0gcmVuZGVyZXIoKS5mcmFtZSgpLmV2ZW50SGFuZGxlcigpLmF1dG9z
Y3JvbGxJblByb2dyZXNzKCk7CiAKICAgICBpZiAoYWxsb3dzQ3VycmVudFNjcm9sbCgpKSB7CiAg
ICAgICAgIC8vIERvbid0IHNjcm9sbCB0byByZXZlYWwgYW4gb3ZlcmZsb3cgbGF5ZXIgdGhhdCBp
cyByZXN0cmljdGVkIGJ5IHRoZSAtd2Via2l0LWxpbmUtY2xhbXAgcHJvcGVydHkuCkBAIC0yODIw
LDkgKzI4MzIsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25z
dCBMYXlvdXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWQKICAgICAgICAgaWYgKGNsYW1w
ZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkgfHwgY3VycmVudFNjcm9sbEJlaGF2aW9y
U3RhdHVzKCkgIT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKSB7CiAgICAg
ICAgICAgICBTY3JvbGxPZmZzZXQgb2xkU2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7CiAg
ICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpObzsK
LSAgICAgICAgICAgIGlmIChhdXRvc2Nyb2xsTm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3Jv
bGxpbmcob3B0aW9ucy5iZWhhdmlvciwgYm94LT5lbGVtZW50KCkpKQorICAgICAgICAgICAgaWYg
KCFhdXRvc2Nyb2xsSW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhh
dmlvciwgYm94LT5lbGVtZW50KCkpKQogICAgICAgICAgICAgICAgIGFuaW1hdGVkID0gQW5pbWF0
ZWRTY3JvbGw6OlllczsKLSAgICAgICAgICAgIHNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0
aW9uRnJvbU9mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KSwgU2Nyb2xsVHlwZTo6UHJvZ3JhbW1h
dGljLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0ZWQpOworICAgICAgICAgICAgc2V0
U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb25Gcm9tT2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZz
ZXQpLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCwgYW5pbWF0
ZWQpOworICAgICAgICAgICAgaWYgKGF1dG9zY3JvbGxJblByb2dyZXNzKQorICAgICAgICAgICAg
ICAgIHNldFJlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24oY2xhbXBlZFNjcm9sbE9mZnNldCk7
CiAgICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBjbGFtcGVkU2Ny
b2xsT2Zmc2V0IC0gb2xkU2Nyb2xsT2Zmc2V0OwogICAgICAgICAgICAgbG9jYWxFeHBvc2VSZWN0
Lm1vdmUoLXNjcm9sbE9mZnNldERpZmZlcmVuY2UpOwogICAgICAgICAgICAgbmV3UmVjdCA9IExh
eW91dFJlY3QoYm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChGbG9hdFJlY3QobG9j
YWxFeHBvc2VSZWN0KSksIFVzZVRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOwpAQCAtMjg0OSwx
MSArMjg2MywxMyBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0
IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgdXNlIGNvbnRlbnREb2N1bWVudCgpLT5zY3JvbGxpbmdFbGVtZW50
KCk/CiAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDUwNTkKICAgICAgICAgICAgICAgICBBbmltYXRlZFNjcm9sbCBhbmltYXRl
ZCA9IEFuaW1hdGVkU2Nyb2xsOjpObzsKLSAgICAgICAgICAgICAgICBpZiAoYXV0b3Njcm9sbE5v
dEluUHJvZ3Jlc3MKKyAgICAgICAgICAgICAgICBpZiAoIWF1dG9zY3JvbGxJblByb2dyZXNzCiAg
ICAgICAgICAgICAgICAgICAgICYmIG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkKICAg
ICAgICAgICAgICAgICAgICAgJiYgdXNlU21vb3RoU2Nyb2xsaW5nKG9wdGlvbnMuYmVoYXZpb3Is
IG93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKSkKICAg
ICAgICAgICAgICAgICAgICAgYW5pbWF0ZWQgPSBBbmltYXRlZFNjcm9sbDo6WWVzOwogICAgICAg
ICAgICAgICAgIGZyYW1lVmlldy5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbiwgU2Ny
b2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgICAgICBpZiAoYXV0
b3Njcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRSZXF1
ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKIAogICAgICAgICAgICAg
ICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgPT0gU2hvdWxk
QWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmlldy5zYWZlVG9Qcm9wYWdh
dGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBlbmNs
b3NpbmdMYXllciA9IG93bmVyRWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKSkK
QEAgLTI4OTYsOSArMjkxMiwxMSBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNp
YmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZAogICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgdXNlIGRvY3VtZW50KCktPnNjcm9sbGluZ0VsZW1l
bnQoKT8KICAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTA1OQogICAgICAgICAgICAgICAgIEFuaW1hdGVkU2Nyb2xsIGFuaW1h
dGVkID0gQW5pbWF0ZWRTY3JvbGw6Ok5vOwotICAgICAgICAgICAgICAgIGlmIChhdXRvc2Nyb2xs
Tm90SW5Qcm9ncmVzcyAmJiB1c2VTbW9vdGhTY3JvbGxpbmcob3B0aW9ucy5iZWhhdmlvciwgcmVu
ZGVyZXIoKS5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpKSkKKyAgICAgICAgICAgICAgICBp
ZiAoIWF1dG9zY3JvbGxJblByb2dyZXNzICYmIHVzZVNtb290aFNjcm9sbGluZyhvcHRpb25zLmJl
aGF2aW9yLCByZW5kZXJlcigpLmRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCkpKQogICAgICAg
ICAgICAgICAgICAgICBhbmltYXRlZCA9IEFuaW1hdGVkU2Nyb2xsOjpZZXM7CiAgICAgICAgICAg
ICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbiwg
U2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQsIGFuaW1hdGVkKTsKKyAgICAgICAgICAgICAgICBpZiAo
YXV0b3Njcm9sbEluUHJvZ3Jlc3MpCisgICAgICAgICAgICAgICAgICAgIGZyYW1lVmlldy5zZXRS
ZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uKGNsYW1wZWRTY3JvbGxQb3NpdGlvbik7CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCB2aWV3IG9m
IGEgd2ViIHBhZ2UsIHNvIGFmdGVyIHNjcm9sbGluZyB0aGlzIHZpZXcgd2UKQEAgLTQxNTcsNyAr
NDE3NSwxMyBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9scyhIaXRU
ZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEludFBvaW50JgogCiBib29sIFJlbmRlckxheWVyOjpz
Y3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVs
YXJpdHksIGZsb2F0IG11bHRpcGxpZXIpCiB7Ci0gICAgcmV0dXJuIFNjcm9sbGFibGVBcmVhOjpz
Y3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGllcik7CisgICAgaWYgKFNjcm9s
bGFibGVBcmVhOjpzY3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSwgbXVsdGlwbGllcikpIHsK
KyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgICAgIG5vdGlmeVVzZXJTY3JvbGxB
Y3Rpb25FbmQoKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpwYWludChHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QsIGNvbnN0IExheW91dFNpemUm
IHN1YnBpeGVsT2Zmc2V0LCBPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhhdmlvciwg
UmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290LCBPcHRpb25TZXQ8UGFpbnRMYXllckZsYWc+
IHBhaW50RmxhZ3MsIFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpY3kgcGFpbnRQb2xpY3ksIEV2ZW50
UmVnaW9uQ29udGV4dCogZXZlbnRSZWdpb25Db250ZXh0KQpAQCAtNzAzNiw2ICs3MDYwLDUyIEBA
IGJvb2wgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVFdmVudFJlZ2lvbihFdmVudFJlZ2lvbkludmFs
aWRhdGlvblJlYXNvbiByZWFzb24pCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShPVkVSU0NST0xM
X0VWRU5UUykKK3ZvaWQgUmVuZGVyTGF5ZXI6OmFkZFBlbmRpbmdTY3JvbGxFbmRFdmVudFRhcmdl
dCgpCit7CisgICAgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSByZW5kZXJlcigpLmVsZW1lbnQoKSkK
KyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5hZGRQZW5kaW5nU2Nyb2xsRW5kRXZlbnRUYXJn
ZXQoKmVsZW1lbnQpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpzZXRSZXF1ZXN0aW5nVXNlclNj
cm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBwb3NpdGlvbikKK3sKKyAgICBpZiAo
IXJlbmRlcmVyKCkuc2V0dGluZ3MoKS5vdmVyc2Nyb2xsRXZlbnRzRW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3JlcXVlc3RpbmdVc2VyU2Nyb2xsUG9zaXRpb24gPSBwb3NpdGlv
bjsKK30KKwordm9pZCBSZW5kZXJMYXllcjo6bm90aWZ5VXNlclNjcm9sbEFjdGlvbkVuZCgpCit7
CisgICAgaWYgKCFyZW5kZXJlcigpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0VuYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHNjcm9sbEFuaW1hdG9yKCkuaXNTY3JvbGxB
bmltYXRpb25IZWxwZXJJblByb2dyZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXNV
c2VyU2Nyb2xsQWN0aW9uRW5kID0gdHJ1ZTsKKyAgICBjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlv
bigpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpjaGVja1VzZXJTY3JvbGxFbmRQb3NpdGlvbigp
Cit7CisgICAgaWYgKCFyZW5kZXJlcigpLnNldHRpbmdzKCkub3ZlcnNjcm9sbEV2ZW50c0VuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JlcXVlc3RpbmdVc2VyU2Nyb2xs
UG9zaXRpb24pIHsKKyAgICAgICAgbV9pc1VzZXJTY3JvbGxBY3Rpb25FbmQgPSBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9pc1VzZXJTY3JvbGxBY3Rpb25FbmQg
fHwgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uLnZhbHVlKCkgIT0gc2Nyb2xsUG9zaXRp
b24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYWRkUGVuZGluZ1Njcm9sbEVuZEV2ZW50VGFy
Z2V0KCk7CisgICAgbV9yZXF1ZXN0aW5nVXNlclNjcm9sbFBvc2l0aW9uID0gV1RGOjpudWxsb3B0
OworICAgIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kID0gZmFsc2U7Cit9CisjZW5kaWYKKwogVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBDbGlwUmVjdHNUeXBlIGNs
aXBSZWN0c1R5cGUpCiB7CiAgICAgc3dpdGNoIChjbGlwUmVjdHNUeXBlKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDVmNTRkMGVjM2IuLjJmMzQwNDY2NDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC05MzIsNiArOTMyLDE0IEBA
IHB1YmxpYzoKIAogICAgIFN0cmluZyBkZWJ1Z0Rlc2NyaXB0aW9uKCkgY29uc3QgZmluYWw7CiAK
KyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgdm9pZCBhZGRQZW5kaW5nU2Nyb2xs
RW5kRXZlbnRUYXJnZXQoKSBmaW5hbDsKKworICAgIHZvaWQgc2V0UmVxdWVzdGluZ1VzZXJTY3Jv
bGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5
VXNlclNjcm9sbEFjdGlvbkVuZCgpIGZpbmFsOworICAgIHZvaWQgY2hlY2tVc2VyU2Nyb2xsRW5k
UG9zaXRpb24oKSBmaW5hbDsKKyNlbmRpZgorCiBwcml2YXRlOgogCiAgICAgdm9pZCBzZXROZXh0
U2libGluZyhSZW5kZXJMYXllciogbmV4dCkgeyBtX25leHQgPSBuZXh0OyB9CkBAIC0xMzcxLDYg
KzEzNzksMTEgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJMYXllckZp
bHRlcnM+IG1fZmlsdGVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyTGF5ZXJCYWNraW5n
PiBtX2JhY2tpbmc7CisKKyNpZiBFTkFCTEUoT1ZFUlNDUk9MTF9FVkVOVFMpCisgICAgT3B0aW9u
YWw8U2Nyb2xsUG9zaXRpb24+IG1fcmVxdWVzdGluZ1VzZXJTY3JvbGxQb3NpdGlvbjsKKyAgICBi
b29sIG1faXNVc2VyU2Nyb2xsQWN0aW9uRW5kIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIAogICAg
IFBhaW50RnJlcXVlbmN5VHJhY2tlciBtX3BhaW50RnJlcXVlbmN5VHJhY2tlcjsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21ha2Uv
V2ViS2l0RmVhdHVyZXMuY21ha2UKaW5kZXggNTJiYjVhZmU5NC4uZDgxY2Y3NGNmNyAxMDA2NDQK
LS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQpAQCAtMTg1LDcgKzE4NSw3IEBAIG1hY3JvKFdFQktJVF9P
UFRJT05fQkVHSU4pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1RIVU5ERVIgIlRv
Z2dsZSBFTUUgVjMgVGh1bmRlciBzdXBwb3J0IiBQUklWQVRFIE9GRikKICAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTICJUb2dnbGUgT3JpZW50YXRpb24g
RXZlbnRzIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVO
QUJMRV9PVkVSRkxPV19TQ1JPTExJTkdfVE9VQ0ggIlRvZ2dsZSBhY2NlbGVyYXRlZCBzY3JvbGxp
bmcgc3VwcG9ydCIgUFJJVkFURSBPRkYpCi0gICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxF
X09WRVJTQ1JPTExfRVZFTlRTICJUb2dnbGUgb3ZlcnNjcm9sbCBldmVudHMiIFBSSVZBVEUgT0ZG
KQorICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9PVkVSU0NST0xMX0VWRU5UUyAiVG9n
Z2xlIG92ZXJzY3JvbGwgZXZlbnRzIiBQUklWQVRFIE9OKQogICAgIFdFQktJVF9PUFRJT05fREVG
SU5FKEVOQUJMRV9QQVlNRU5UX1JFUVVFU1QgIlRvZ2dsZSBQYXltZW50IFJlcXVlc3Qgc3VwcG9y
dCIgUFJJVkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1BERktJVF9Q
TFVHSU4gIlRvZ2dsZSBQREZLaXQgcGx1Z2luIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdF
QktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9QRVJJT0RJQ19NRU1PUllfTU9OSVRPUiAiVG9nZ2xl
IHBlcmlvZGljYWwgbWVtb3J5IG1vbml0b3Igc3VwcG9ydCIgUFJJVkFURSBPRkYpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>