<?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>222737</bug_id>
          
          <creation_ts>2021-03-04 07:33:41 -0800</creation_ts>
          <short_desc>Implement WebXRBoundedReferenceSpace bounds geometry</short_desc>
          <delta_ts>2021-04-19 03:21:46 -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>WebXR</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>208988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Imanol Fernandez">ifernandez</reporter>
          <assigned_to name="Imanol Fernandez">ifernandez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1735819</commentid>
    <comment_count>0</comment_count>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-03-04 07:33:41 -0800</bug_when>
    <thetext>- https://immersive-web.github.io/webxr/#dom-xrboundedreferencespace-boundsgeometry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735843</commentid>
    <comment_count>1</comment_count>
      <attachid>422234</attachid>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-03-04 08:37:34 -0800</bug_when>
    <thetext>Created attachment 422234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735868</commentid>
    <comment_count>2</comment_count>
      <attachid>422241</attachid>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-03-04 09:42:34 -0800</bug_when>
    <thetext>Created attachment 422241
Patch for landing

Rebase onto main</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735869</commentid>
    <comment_count>3</comment_count>
      <attachid>422242</attachid>
    <who name="Imanol Fernandez">ifernandez</who>
    <bug_when>2021-03-04 09:43:38 -0800</bug_when>
    <thetext>Created attachment 422242
Patch

Rebase onto main</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736270</commentid>
    <comment_count>4</comment_count>
      <attachid>422242</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-03-05 02:30:08 -0800</bug_when>
    <thetext>Comment on attachment 422242
Patch

Awesome thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736273</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-05 02:50:17 -0800</bug_when>
    <thetext>Committed r273957: &lt;https://commits.webkit.org/r273957&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422242.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736274</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-05 02:51:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/75087217&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422234</attachid>
            <date>2021-03-04 08:37:34 -0800</date>
            <delta_ts>2021-03-04 09:43:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222737-20210304173733.patch</filename>
            <type>text/plain</type>
            <size>36837</size>
            <attacher name="Imanol Fernandez">ifernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzExNjQ1ZDAxOWYyMDM1
YmYxMjI0NGRhODZjNzM5ODhmZjZiY2I1Ny4uNzg1MjJkNDYyNTZhMzY0MWJmNjQwMWRmODIyOWQ0
MjdiYmVhOWRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTAzLTA0ICBJbWFu
b2wgRmVybmFuZGV6ICA8aWZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSBib3VuZHMgZ2VvbWV0cnkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjczNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhdmluZyBib3VuZHMgZ2VvbWV0
cnkgaW4gV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgZW5hYmxlcyBXZWJYUiByb29tLXNjYWxl
IGFwcGxpY2F0aW9ucy4gWFIgc3lzdGVtcyBtYXkgaGF2ZSBsaW1pdGVkCisgICAgICAgIHJlYWwg
d29ybGQgc3BhdGlhbCByYW5nZXMgaW4gd2hpY2ggdXNlcnMgY2FuIGZyZWVseSBtb3ZlIGFyb3Vu
ZCB3aGlsZSByZW1haW5pbmcgdHJhY2tlZC4gV2ViWFIgQXBwbGljYXRpb25zIGNhbiBxdWVyeQor
ICAgICAgICB0aGVzZSBib3VuZGFyaWVzIGFuZCBhbHRlciBhcHBsaWNhdGlvbiBiZWhhdmlvciBv
ciBjb250ZW50IHBsYWNlbWVudCB0byBlbnN1cmUgdGhlIHVzZXIgY2FuIGNvbXBsZXRlIHRoZSBl
eHBlcmllbmNlIHdoaWxlCisgICAgICAgIHJlbWFpbmluZyB3aXRoaW4gdGhlIGJvdW5kYXJ5Lgor
CisgICAgICAgIFRlc3RlZCBieSBXZWJYUiBXUFQgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSk6IENhbGwgdXBkYXRl
SWZOZWVkZWQKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpn
ZXRPZmZzZXRSZWZlcmVuY2VTcGFjZSk6IFVzZSBFeGNlcHRpb24gaW5zdGVhZCBvZiBudWxsIFJl
ZlB0cjw+CisgICAgICAgIChXZWJDb3JlOjpXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6dXBk
YXRlSWZOZWVkZWQpOiBVcGRhdGVzIGJvdW5kc0dlb21ldHJ5IHZlY3RvciB3aGVuIGRhdGEgY2hh
bmdlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpxdWFu
dGl6ZSk6IFV0aWxpdHkgbWV0aG9kIHRvIGF2b2lkIGZpbmdlcnByaW50aW5nLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaDoKKworICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGQgQ3VzdG9t
VG9KU09iamVjdAorCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUmVmZXJlbmNlU3BhY2U6OmdldE9mZnNldFJl
ZmVyZW5jZVNwYWNlKTogVXNlIEV4Y2VwdGlvbiBpbnN0ZWFkIG9mIG51bGwgUmVmUHRyPD4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGQgQ3VzdG9tVG9KU09iamVj
dAorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGw6IEFkZCBDdXN0b21Ub0pT
T2JqZWN0CisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkIEN1c3RvbVRvSlNPYmplY3QgaW1w
bGVtZW50YXRpb25zCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJYUlJlZmVyZW5jZVNwYWNl
Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViWFJT
cGFjZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKworICAgICAgICAqIHBsYXRmb3JtL3hyL1Bs
YXRmb3JtWFIuaDogQWRkIFN0YWdlUGFyYW1ldGVycyB0byBGcmFtZURhdGEuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUk9wZW5YUi5jcHA6IEltcGxlbWVudCBib3Vu
ZHNHZW9tZXRyeSB1c2luZyBPcGVuWFIuCisgICAgICAgIChQbGF0Zm9ybVhSOjpPcGVuWFJEZXZp
Y2U6OmluaXRpYWxpemVSZWZlcmVuY2VTcGFjZSk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpPcGVu
WFJEZXZpY2U6OnJlcXVlc3RGcmFtZSk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpPcGVuWFJEZXZp
Y2U6OmNvbGxlY3RFbmFibGVkRmVhdHVyZXMpOgorICAgICAgICAoUGxhdGZvcm1YUjo6T3BlblhS
RGV2aWNlOjpwb2xsRXZlbnRzKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Ok9wZW5YUkRldmljZTo6
cmVzZXRTZXNzaW9uKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Ok9wZW5YUkRldmljZTo6dXBkYXRl
U3RhZ2VQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1Y
Uk9wZW5YUi5oOgorCisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwOiBJbXBs
ZW1lbnQgYm91bmRzR2VvbWV0cnkgZm9yIHRlc3RzLgorICAgICAgICAoV2ViQ29yZTo6U2ltdWxh
dGVkWFJEZXZpY2U6OnNldE5hdGl2ZUJvdW5kc0dlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXVsYXRlZFhSRGV2aWNlOjpmcmFtZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViRmFrZVhSRGV2aWNlOjpzZXRCb3VuZHNHZW9tZXRyeSk6CisgICAgICAgICogdGVzdGluZy9X
ZWJGYWtlWFJEZXZpY2UuaDoKKwogMjAyMS0wMy0wMiAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgRWxpbWluYXRlIFNjcm9sbEFuaW1hdG9yR2VuZXJp
Yzo6bV9zbW9vdGhBbmltYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKaW5kZXggOTRkODljMmI1
MzIyMmI2NDNjMWM4MDI4OWEyNDI5NjkzM2Q1MTZlOS4uMGExYWJlYTg4M2Q3Y2NlNjRjODdmM2Nh
Njg3MWVhNmEyOTk2ZjA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKQEAgLTM2LDYgKzM2LDEy
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdp
dGh1Yi5pby93ZWJ4ci8jeHJib3VuZGVkcmVmZXJlbmNlc3BhY2UtbmF0aXZlLWJvdW5kcy1nZW9t
ZXRyeQorLy8gSXQgaXMgc3VnZ2VzdGVkIHRoYXQgcG9pbnRzIG9mIHRoZSBuYXRpdmUgYm91bmRz
IGdlb21ldHJ5IGJlIHF1YW50aXplZCB0byB0aGUgbmVhcmVzdCA1Y20uCitzdGF0aWMgY29uc3Rl
eHByIGZsb2F0IEJvdW5kc1ByZWNpc2lvbkluTWV0ZXJzID0gMC4wNTsgCisvLyBBIHZhbGlkIHBv
bHlnb24gaGFzIGF0IGxlYXN0IDMgdmVydGljZXMuCitzdGF0aWMgY29uc3RleHByIGludCBNaW5p
bXVtQm91bmRzVmVydGljZXMgPSAzOyAKKwogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlKTsKIAogUmVmPFdlYlhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlPiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwgUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZXNzaW9uLCBYUlJlZmVyZW5jZVNwYWNlVHlwZSB0eXBl
KQpAQCAtNDMsMTMgKzQ5LDExIEBAIFJlZjxXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZT4gV2Vi
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6OmNyZWF0ZShEb2N1bWVudCYgZG9jCiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UoZG9jdW1lbnQsIFdURk1v
dmUoc2Vzc2lvbiksIFdlYlhSUmlnaWRUcmFuc2Zvcm06OmNyZWF0ZSgpLCB0eXBlKSk7CiB9CiAK
LQogUmVmPFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlPiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VT
cGFjZTo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZXNz
aW9uLCBSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4mJiBvZmZzZXQsIFhSUmVmZXJlbmNlU3BhY2VU
eXBlIHR5cGUpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJCb3VuZGVkUmVmZXJl
bmNlU3BhY2UoZG9jdW1lbnQsIFdURk1vdmUoc2Vzc2lvbiksIFdURk1vdmUob2Zmc2V0KSwgdHlw
ZSkpOwogfQogCi0KIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpXZWJYUkJvdW5kZWRSZWZl
cmVuY2VTcGFjZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxXZWJYUlNlc3Npb24+JiYgc2Vzc2lv
biwgUmVmPFdlYlhSUmlnaWRUcmFuc2Zvcm0+JiYgb2Zmc2V0LCBYUlJlZmVyZW5jZVNwYWNlVHlw
ZSB0eXBlKQogICAgIDogV2ViWFJSZWZlcmVuY2VTcGFjZShkb2N1bWVudCwgV1RGTW92ZShzZXNz
aW9uKSwgV1RGTW92ZShvZmZzZXQpLCB0eXBlKQogewpAQCAtNjQsMjQgKzY4LDUyIEBAIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpuYXRpdmVPcmlnaW4o
KSBjb25zdAogICAgIHJldHVybiBmbG9vck9yaWdpblRyYW5zZm9ybSgpOwogfQogCi1jb25zdCBW
ZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiYgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6
OmJvdW5kc0dlb21ldHJ5KCkgY29uc3QKK2NvbnN0IFZlY3RvcjxSZWY8RE9NUG9pbnRSZWFkT25s
eT4+JiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Ym91bmRzR2VvbWV0cnkoKQogewotICAg
IC8vIEZJWE1FOiBnZXQgZGF0YSBmcm9tIGRldmljZQorICAgIHVwZGF0ZUlmTmVlZGVkKCk7CiAg
ICAgcmV0dXJuIG1fYm91bmRzR2VvbWV0cnk7CiB9CiAKLVJlZlB0cjxXZWJYUlJlZmVyZW5jZVNw
YWNlPiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2Uo
Y29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgb2Zmc2V0VHJhbnNmb3JtKQorRXhjZXB0aW9uT3I8
UmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+PiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Z2V0
T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgb2Zmc2V0VHJh
bnNmb3JtKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9
OwogCiAgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jZG9tLXhy
cmVmZXJlbmNlc3BhY2UtZ2V0b2Zmc2V0cmVmZXJlbmNlc3BhY2UKICAgICAvLyBTZXQgb2Zmc2V0
U3BhY2XigJlzIG9yaWdpbiBvZmZzZXQgdG8gdGhlIHJlc3VsdCBvZiBtdWx0aXBseWluZyBiYXNl
4oCZcyBvcmlnaW4gb2Zmc2V0IGJ5IG9yaWdpbk9mZnNldCBpbiB0aGUgcmVsZXZhbnQgcmVhbG0g
b2YgYmFzZS4KICAgICBhdXRvIG9mZnNldCA9IFdlYlhSUmlnaWRUcmFuc2Zvcm06OmNyZWF0ZShv
cmlnaW5PZmZzZXQoKS5yYXdUcmFuc2Zvcm0oKSAqIG9mZnNldFRyYW5zZm9ybS5yYXdUcmFuc2Zv
cm0oKSk7CiAKLSAgICAvLyBGSVhNRTogc2V0IG9mZnNldFNwYWNl4oCZcyBib3VuZHNHZW9tZXRy
eSB0byBiYXNl4oCZcyBib3VuZHNHZW9tZXRyeSwgd2l0aCBlYWNoIHBvaW50IG11bHRpcGxpZWQg
YnkgdGhlIGludmVyc2Ugb2Ygb3JpZ2luT2Zmc2V0LgotICAgIHJldHVybiBjcmVhdGUoKmRvY3Vt
ZW50LCBtX3Nlc3Npb24uY29weVJlZigpLCBXVEZNb3ZlKG9mZnNldCksIG1fdHlwZSk7CisgICAg
cmV0dXJuIHsgY3JlYXRlKCpkb2N1bWVudCwgbV9zZXNzaW9uLmNvcHlSZWYoKSwgV1RGTW92ZShv
ZmZzZXQpLCBtX3R5cGUpIH07Cit9CisKKy8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIu
aW8vd2VieHIvI2RvbS14cmJvdW5kZWRyZWZlcmVuY2VzcGFjZS1ib3VuZHNnZW9tZXRyeQordm9p
ZCBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6dXBkYXRlSWZOZWVkZWQoKQoreworICAgIGF1
dG8mIGZyYW1lRGF0YSA9IG1fc2Vzc2lvbi0+ZnJhbWVEYXRhKCk7CisgICAgaWYgKGZyYW1lRGF0
YS5zdGFnZVBhcmFtZXRlcnMuaWQgPT0gbV9sYXN0VXBkYXRlSWQpCisgICAgICAgIHJldHVybjsK
KyAgICBtX2xhc3RVcGRhdGVJZCA9IGZyYW1lRGF0YS5zdGFnZVBhcmFtZXRlcnMuaWQ7CisKKyAg
ICBtX2JvdW5kc0dlb21ldHJ5LmNsZWFyKCk7CisKKyAgICBpZiAoZnJhbWVEYXRhLnN0YWdlUGFy
YW1ldGVycy5ib3VuZHMuc2l6ZSgpID49IE1pbmltdW1Cb3VuZHNWZXJ0aWNlcykgeworICAgICAg
ICAvLyBFYWNoIHBvaW50IGhhcyB0byBtdWx0aXBsaWVkIGJ5IHRoZSBpbnZlcnNlIG9mIG9yaWdp
bk9mZnNldC4KKyAgICAgICAgYXV0byB0cmFuc2Zvcm0gPSBvcmlnaW5PZmZzZXQoKS5yYXdUcmFu
c2Zvcm0oKS5pbnZlcnNlKCkudmFsdWVPcihUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKTsKKyAgICAg
ICAgZm9yIChhdXRvJiBwb2ludCA6IGZyYW1lRGF0YS5zdGFnZVBhcmFtZXRlcnMuYm91bmRzKSB7
CisgICAgICAgICAgICBhdXRvIG1hcHBlZFBvaW50ID0gdHJhbnNmb3JtLm1hcFBvaW50KHBvaW50
KTsKKyAgICAgICAgICAgIC8vIFRoZSB5IHZhbHVlIG9mIGVhY2ggcG9pbnQgTVVTVCBiZSAwLgor
ICAgICAgICAgICAgbV9ib3VuZHNHZW9tZXRyeS5hcHBlbmQoRE9NUG9pbnRSZWFkT25seTo6Y3Jl
YXRlKHF1YW50aXplKG1hcHBlZFBvaW50LngoKSksIDAuMCwgcXVhbnRpemUobWFwcGVkUG9pbnQu
eSgpKSwgMS4wKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIGh0dHBzOi8vaW1tZXJzaXZl
LXdlYi5naXRodWIuaW8vd2VieHIvI3F1YW50aXphdGlvbgorZmxvYXQgV2ViWFJCb3VuZGVkUmVm
ZXJlbmNlU3BhY2U6OnF1YW50aXplKGZsb2F0IHZhbHVlKQoreworICAgIC8vIEVhY2ggcG9pbnQg
aW4gdGhlIG5hdGl2ZSBib3VuZHMgZ2VvbWV0cnkgTVVTVCBhbHNvIGJlIHF1YW50aXplZCBzdWZm
aWNpZW50bHkgdG8gcHJldmVudCBmaW5nZXJwcmludGluZy4KKyAgICAvLyBGb3IgdXNlcuKAmXMg
c2FmZXR5LCBxdWFudGl6ZWQgcG9pbnRzIHZhbHVlcyBNVVNUIE5PVCBmYWxsIG91dHNpZGUgdGhl
IGJvdW5kcyByZXBvcnRlZCBieSB0aGUgcGxhdGZvcm0uCisgICAgcmV0dXJuIHN0ZDo6Zmxvb3Io
dmFsdWUgLyBCb3VuZHNQcmVjaXNpb25Jbk1ldGVycykgKiBCb3VuZHNQcmVjaXNpb25Jbk1ldGVy
czsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oCmluZGV4IDcx
NDg1MjAxYjdkN2E5NTA2YjlkZmIzZjlhZGU0NzRhNWJiMTk1N2EuLjc2ZTA5NmFhOWNjN2Q0NmM0
ZDgwNDEwM2U1N2FlYzRmY2NiYmE3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgKQEAgLTQ1LDE5ICs0
NSwyNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2Uo
KTsKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG5hdGl2ZU9yaWdpbigpIGNvbnN0IGZpbmFs
OwotICAgIGNvbnN0IFZlY3RvcjxSZWY8RE9NUG9pbnRSZWFkT25seT4+JiBib3VuZHNHZW9tZXRy
eSgpIGNvbnN0OwotICAgIFJlZlB0cjxXZWJYUlJlZmVyZW5jZVNwYWNlPiBnZXRPZmZzZXRSZWZl
cmVuY2VTcGFjZShjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJikgZmluYWw7CisgICAgY29uc3Qg
VmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIGJvdW5kc0dlb21ldHJ5KCk7CisgICAgRXhj
ZXB0aW9uT3I8UmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+PiBnZXRPZmZzZXRSZWZlcmVuY2VTcGFj
ZShjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJikgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgV2Vi
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UoRG9jdW1lbnQmLCBSZWY8V2ViWFJTZXNzaW9uPiYmLCBS
ZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4mJiwgWFJSZWZlcmVuY2VTcGFjZVR5cGUpOwogCiAgICAg
Ym9vbCBpc0JvdW5kZWRSZWZlcmVuY2VTcGFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAorICAgIHZvaWQgdXBkYXRlSWZOZWVkZWQoKTsKKyAgICBmbG9hdCBxdWFudGl6ZShmbG9h
dCk7CisKICAgICBWZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiBtX2JvdW5kc0dlb21ldHJ5
OworICAgIGludCBtX2xhc3RVcGRhdGVJZCB7IC0xIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfV0VCWFJTUEFDRShXZWJYUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZSwgaXNCb3VuZGVkUmVmZXJlbmNlU3BhY2UoKSkKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UpCisgICAg
c3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldlYlhSUmVmZXJlbmNlU3BhY2UmIGVs
ZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQuaXNCb3VuZGVkUmVmZXJlbmNlU3BhY2UoKTsgfQorICAg
IHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpXZWJYUlNwYWNlJiBlbGVtZW50KSB7
IHJldHVybiBpczxXZWJDb3JlOjpXZWJYUlJlZmVyZW5jZVNwYWNlPihlbGVtZW50KSAmJiBpc1R5
cGUoZG93bmNhc3Q8V2ViQ29yZTo6V2ViWFJSZWZlcmVuY2VTcGFjZT4oZWxlbWVudCkpOyB9CitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVy
ZW5jZVNwYWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UuaWRsCmluZGV4IGQ1Yjg4MzM3NDIzZDA2YWE5ZmE0ZDU1NDFiNmM1MTA0
ZjBlNDdlNGQuLjQzOTRjZTRmODFlYzRiMzU0MjE4N2E0ODgwMTI5NzFhMDBlYzQzMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UuaWRsCkBAIC0yNyw2ICsyNyw4IEBACiAgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKICAgICBDb25kaXRpb25hbD1XRUJYUiwKICAgICBTZWN1cmVDb250ZXh0LAorICAg
IEN1c3RvbVRvSlNPYmplY3QsCisgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogICAgIEV4
cG9zZWQ9V2luZG93LAogICAgIEludGVyZmFjZU5hbWU9WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UK
IF0gaW50ZXJmYWNlIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIDogV2ViWFJSZWZlcmVuY2VT
cGFjZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVm
ZXJlbmNlU3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVy
ZW5jZVNwYWNlLmNwcAppbmRleCA5NTIwZTVlN2IwZTNmMmRkMjM4NGIwMDUzY2U4Mzg0NjQ3MmZj
MWFhLi44MDgzZDNkZTFkMjA0YTlmNzg1NjRmMjA5ZjMwYzJmMmU4Njg1ZGY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAK
QEAgLTk1LDExICs5NSwxMSBAQCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBXZWJYUlJlZmVyZW5jZVNw
YWNlOjpuYXRpdmVPcmlnaW4oKSBjb25zdAogICAgIHJldHVybiBpZGVudGl0eTsKIH0KIAotUmVm
UHRyPFdlYlhSUmVmZXJlbmNlU3BhY2U+IFdlYlhSUmVmZXJlbmNlU3BhY2U6OmdldE9mZnNldFJl
ZmVyZW5jZVNwYWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mIG9mZnNldFRyYW5zZm9ybSkK
K0V4Y2VwdGlvbk9yPFJlZjxXZWJYUlJlZmVyZW5jZVNwYWNlPj4gV2ViWFJSZWZlcmVuY2VTcGFj
ZTo6Z2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgb2Zm
c2V0VHJhbnNmb3JtKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OwogCiAgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8j
ZG9tLXhycmVmZXJlbmNlc3BhY2UtZ2V0b2Zmc2V0cmVmZXJlbmNlc3BhY2UKICAgICAvLyBTZXQg
b2Zmc2V0U3BhY2XigJlzIG9yaWdpbiBvZmZzZXQgdG8gdGhlIHJlc3VsdCBvZiBtdWx0aXBseWlu
ZyBiYXNl4oCZcyBvcmlnaW4gb2Zmc2V0IGJ5IG9yaWdpbk9mZnNldCBpbiB0aGUgcmVsZXZhbnQg
cmVhbG0gb2YgYmFzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJSZWZlcmVuY2VTcGFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlJlZmVyZW5jZVNwYWNlLmgKaW5kZXggZDUwMjI5YjkyNTMyNmZmOGU3MzljYzU4ZTgzOGUzOGRm
YTNiOTkyNC4uOTM0OTU2NDFkMTQzMGRmY2NhMzMyODkwZThjMWQzOWNmYzU4NDBkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmgK
QEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgV2ViWFJTZXNzaW9uJiBzZXNzaW9uKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXNzaW9uLmdldCgpOyB9CiAgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggbmF0aXZlT3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8V2ViWFJSZWZlcmVuY2VTcGFjZT4gZ2V0T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgV2Vi
WFJSaWdpZFRyYW5zZm9ybSYpOworICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8UmVmPFdlYlhSUmVm
ZXJlbmNlU3BhY2U+PiBnZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShjb25zdCBXZWJYUlJpZ2lkVHJh
bnNmb3JtJik7CiAgICAgWFJSZWZlcmVuY2VTcGFjZVR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmlkbAppbmRleCA4MWU0NGQzNGRhMTY3YjhmZTZk
YjIzNGMyNDBjOTM4NTYzNTI1OTBkLi5hZjUzOWRhNDgyM2RmY2Y5Y2NmZjY5YTA1ZDY2OThjNjk4
NmM4Yjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVm
ZXJlbmNlU3BhY2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJS
ZWZlcmVuY2VTcGFjZS5pZGwKQEAgLTI4LDEyICsyOCwxMiBAQAogICAgIENvbmRpdGlvbmFsPVdF
QlhSLAogICAgIFNlY3VyZUNvbnRleHQsCiAgICAgRXhwb3NlZD1XaW5kb3csCi0gICAgSlNHZW5l
cmF0ZVRvSlNPYmplY3QsCisgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICBKU0dlbmVyYXRlVG9O
YXRpdmVPYmplY3QsCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiAgICAgSW50ZXJmYWNlTmFt
ZT1YUlJlZmVyZW5jZVNwYWNlCiBdIGludGVyZmFjZSBXZWJYUlJlZmVyZW5jZVNwYWNlIDogV2Vi
WFJTcGFjZSB7Ci0gICAgW05ld09iamVjdF0gV2ViWFJSZWZlcmVuY2VTcGFjZSBnZXRPZmZzZXRS
ZWZlcmVuY2VTcGFjZShXZWJYUlJpZ2lkVHJhbnNmb3JtIG9yaWdpbk9mZnNldCk7CisgICAgW05l
d09iamVjdCwgTWF5VGhyb3dFeGNlcHRpb25dIFdlYlhSUmVmZXJlbmNlU3BhY2UgZ2V0T2Zmc2V0
UmVmZXJlbmNlU3BhY2UoV2ViWFJSaWdpZFRyYW5zZm9ybSBvcmlnaW5PZmZzZXQpOwogCiAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnJlc2V0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSU3BhY2UuaWRsCmluZGV4IGJiNzk0ZjE4YjIzMzE3MDY3NmQxZDU0OTli
OWExNzExNmFlZTdjYjEuLmUzNGI3MTI3YWZkNGU5YmVlNjljM2ZmMjNkZTdiNjE0ZGY4MmE2ZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmlkbApAQCAtMjYs
NiArMjYsNyBAQAogWwogICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCiAgICAgQ29uZGl0aW9u
YWw9V0VCWFIsCisgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICBTZWN1cmVDb250ZXh0LAogICAg
IEV4cG9zZWQ9V2luZG93LAogICAgIEludGVyZmFjZU5hbWU9WFJTcGFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCAxMmJhZDg2N2FhMTFmNzkwZDIxMTg2ZTFjY2EzY2M0YmE1Njk4NTNlLi4yYjgzZjkyMzNl
ZjU2ZDQ2NTU0OTMxYWM1YTkyMWY4ZTIyYjVmNjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNjE5LDYg
KzYxOSw4IEBAIGJpbmRpbmdzL2pzL0pTVmlkZW9UcmFja0xpc3RDdXN0b20uY3BwCiBiaW5kaW5n
cy9qcy9KU1dlYkFuaW1hdGlvbkN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViR0wyUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNXZWJYUlJlZmVyZW5jZVNwYWNlQ3VzdG9tLmNwcAor
YmluZGluZ3MvanMvSlNXZWJYUlNwYWNlQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXaW5kb3dQ
cm94eS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAogYmluZGlu
Z3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzOWEyZWJmNDFhNmRlNTA5
MDkxZTAxNTEzYjExMDA4MTFjODNlNjc2Li4yODEyMGEwNzZiMDlkMTQ5NTk3ODI0NWExYjRkZGY4
MjcxODgwNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC02MzUwLDYgKzYzNTAsOCBAQAogCQkxMUNCMjc4NjIwM0JBNTcwMDA0
QTFEQzkgLyogUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlbmRlclRyZWVCdWlsZGVyRnVsbFNjcmVlbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTExQ0IyNzg3MjAzQkE1NzAwMDRBMURDOSAvKiBSZW5kZXJUcmVlQnVpbGRlckZ1
bGxTY3JlZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExRDE5QzJFMjMxNTlCQUUwMDhGMjREMyAv
KiBUYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMTFFNkNGMUIyNUYxNDBFMzAwMTNEM0Q1IC8qIEpTV2ViWFJSZWZlcmVuY2VTcGFj
ZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYlhS
UmVmZXJlbmNlU3BhY2VDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
MUU2Q0YxRDI1RjE0MEU0MDAxM0QzRDUgLyogSlNXZWJYUlNwYWNlQ3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViWFJTcGFjZUN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExRkYwMkQ1MjBCQTNDODEwMDgzRjI1QiAvKiBW
ZXJpZmljYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmVyaWZpY2F0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTJGNzVBOUE4NkVBMDNEQUYyNEI3OTcxIC8qIElT
T1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJveC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJU09Qcm90ZWN0aW9uU3lzdGVtU3BlY2lmaWNIZWFkZXJCb3guaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQwMEQ3QTcxNzEzNkVBNzAwNzdDRTA1IC8qIFNj
cmlwdFdyYXBwYWJsZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2NyaXB0V3JhcHBhYmxlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc0NzksOCArMTc0ODEsOCBAQAogCQkJCTMxMzU5MTAzMUU3RERDNjAwMEYzMDYzMCAvKiBSVENJ
Y2VUcmFuc3BvcnRTdGF0ZS5oICovLAogCQkJCTA3MjIxQkFBMTdDRjBBRDQwMDg0OEU1MSAvKiBS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCAqLywKIAkJCQk0MUE0OEE5RDFFODMxMkVC
MDBEMkFDMkQgLyogUlRDUGVlckNvbm5lY3Rpb25TdGF0ZS5oICovLAotCQkJCTQxM0NDMTFDMjVF
N0Q5OEQwMEQ1OUM0QiAvKiBSVENQcmlvcml0eVR5cGUuaCAqLywKIAkJCQk0MTJCQTVGRTIxOEM2
NTE4MDAzNjU0NzQgLyogUlRDUE11eFBvbGljeS5oICovLAorCQkJCTQxM0NDMTFDMjVFN0Q5OEQw
MEQ1OUM0QiAvKiBSVENQcmlvcml0eVR5cGUuaCAqLywKIAkJCQk0MTJERTRCNjIxOTI4NUJGMDA3
NUYzQTcgLyogUlRDUnRwQ2FwYWJpbGl0aWVzLmggKi8sCiAJCQkJNDFFMEE3REMyM0JCNjNEQjAw
NTYxMDYwIC8qIFJUQ1J0cENvZGVjQ2FwYWJpbGl0eS5oICovLAogCQkJCTMxRUI1NEREMUU3REM3
NDQwMEMxNjIzQiAvKiBSVENSdHBUcmFuc2NlaXZlckRpcmVjdGlvbi5oICovLApAQCAtMjI4ODIs
NiArMjI4ODQsOCBAQAogCQkJCTcxNURBNUQzMjAxQkI5MDIwMDJFRjJCMCAvKiBKU1dlYkFuaW1h
dGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJRDNGM0QzNTkxQTY5QTNCMDAwNTlGQzJCIC8qIEpTV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJNDlFRUQxNEMxMDUxOTcxQTAw
MDk5RkFCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKKwkJCQkxMUU2
Q0YxQjI1RjE0MEUzMDAxM0QzRDUgLyogSlNXZWJYUlJlZmVyZW5jZVNwYWNlQ3VzdG9tLmNwcCAq
LywKKwkJCQkxMUU2Q0YxRDI1RjE0MEU0MDAxM0QzRDUgLyogSlNXZWJYUlNwYWNlQ3VzdG9tLmNw
cCAqLywKIAkJCQlFMTgyNThBQjBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJHbG9iYWxTY29w
ZUN1c3RvbS5jcHAgKi8sCiAJCQkJNDZGOTFCQzkxRkNERDBGRTAwMTU5OUMzIC8qIEpTV29ya2Vy
TmF2aWdhdG9yQ3VzdG9tLmNwcCAqLywKIAkJCQk4M0E0QTlGODFDRTdGRDdFMDA3MDlCMDAgLyog
SlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8sCkBAIC0yNjY1OSw5ICsyNjY2Myw5IEBACiAJCQkJ
N0M1MTRFMDIyNEFGODA1ODAwNTA3MTBGIC8qIENvbG9yQ29udmVyc2lvbi5jcHAgKi8sCiAJCQkJ
N0M1MTRFMDAyNEFGODA1ODAwNTA3MTBGIC8qIENvbG9yQ29udmVyc2lvbi5oICovLAogCQkJCTMx
MDNCN0RFMURCMDE1NTYwMDhCQjg5MCAvKiBDb2xvckhhc2guaCAqLywKKwkJCQlCQzRBMjNFQjI1
RUMxNjAyMDBBQUM2MzAgLyogQ29sb3JMdW1pbmFuY2UuaCAqLywKIAkJCQk3Q0FDNkFFODI0N0Yw
ODIwMDBFNjFENTkgLyogQ29sb3JNYXRyaXguaCAqLywKIAkJCQlCQzEwMTM3QjI1QzM2MjRCMDBE
Qzc3M0MgLyogQ29sb3JNb2RlbHMuaCAqLywKLQkJCQlCQzRBMjNFQjI1RUMxNjAyMDBBQUM2MzAg
LyogQ29sb3JMdW1pbmFuY2UuaCAqLywKIAkJCQk3Q0QxRTY5MjI0QUJGNjI0MDA4OUM0MTkgLyog
Q29sb3JTZXJpYWxpemF0aW9uLmNwcCAqLywKIAkJCQk3Q0QxRTY5MTI0QUJGNjI0MDA4OUM0MTkg
LyogQ29sb3JTZXJpYWxpemF0aW9uLmggKi8sCiAJCQkJQkNBRkVEQUYyNTk2NkQwNTAwMzBFNkFB
IC8qIENvbG9yU3BhY2UuY3BwICovLApAQCAtMzE2MDgsNiArMzE2MTIsNyBAQAogCQkJCTMxMDNC
N0RGMURCMDE1NjcwMDhCQjg5MCAvKiBDb2xvckhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCUY1
NUIzREI0MTI1MUYxMkQwMDNFRjI2OSAvKiBDb2xvcklucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0U1MTY5RTcyMUYxQjg0NzAwRUE0Rjc4IC8qIENvbG9ySU9TLmggaW4gSGVhZGVycyAq
LywKKwkJCQlCQzRBMjNFQzI1RUMxNjAyMDBBQUM2MzAgLyogQ29sb3JMdW1pbmFuY2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUVERTNBNTAwMEM3QTQzMDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0NBQzZBRTkyNDdGMDgyRjAwRTYxRDU5IC8qIENvbG9yTWF0cml4
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEwMTM3QzI1QzM2MjRCMDBEQzc3M0MgLyogQ29sb3JN
b2RlbHMuaCBpbiBIZWFkZXJzICovLApAQCAtMzE4NzMsNyArMzE4NzgsNiBAQAogCQkJCUE4ODJE
QTIzMTU5Mzg0OEQwMDAxMTVFRCAvKiBDU1NUb1N0eWxlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3MTVBRDcyMTIwNTA1MTNGMDBENTkyREMgLyogQ1NTVHJhbnNpdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzcxRjUzRTkwRDI3MDRGOTAwRUNFMEQ1IC8qIENTU1VuaWNvZGVSYW5nZVZhbHVl
LmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzRBMjNFQzI1RUMxNjAyMDBBQUM2MzAgLyogQ29sb3JM
dW1pbmFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkI3MDdBMjM3QkMzNkQwMDUyQ0E0NyAv
KiBDU1NVbml0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQ3Q0RGMjUwQTIzQ0Y5ODAwMDY5OTI4
IC8qIENTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdEOEZGMDFCRDAzQjY0
MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDU5OCw2ICsz
NDYwMiw3IEBACiAJCQkJMDc4RTA5NDIxN0QxNkUxQzAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5RTZFQzkyNTY2RDI3ODAw
MkI1MDEwIC8qIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDc4RTA5MjQxN0QxNEQxQzAwNDIwQUExIC8qIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxM0NDMTFEMjVFN0Q5OEUwMEQ1OUM0QiAvKiBSVENQ
cmlvcml0eVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMTRGRTMyMjVCRUJEMTkwMDlEOUYy
MCAvKiBSVENSdGNwUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyREU0QjgyMTky
ODVDMDAwNzVGM0E3IC8qIFJUQ1J0cENhcGFiaWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUUyQzQzNjMxQkNFRTMyQjAwMDFFMkJDIC8qIFJUQ1J0cFJlY2VpdmVyLmggaW4gSGVhZGVycyAq
LywKQEAgLTM1MDkwLDcgKzM1MDk1LDYgQEAKIAkJCQk3MTUzN0EwMTE0NkJEOUQ3MDA4QkQ2MTUg
LyogU1ZHUGF0aERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTU5MEQwMEJGMjIwMDcx
Qjc4MiAvKiBTVkdQYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3NkM5RjAxMURG
NkE1ODAwNTU1QjAyIC8qIFNWR1BhdGhQYXJzZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxM0ND
MTFEMjVFN0Q5OEUwMEQ1OUM0QiAvKiBSVENQcmlvcml0eVR5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3QTVCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQYXRoU2VnLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyN0E4MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUGF0aFNlZ0xpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0NzZDOUU2MTFERjZBMEIwMDU1NUIwMiAvKiBTVkdQYXRoU2VnTGlz
dEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJYUlJlZmVyZW5jZVNwYWNlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViWFJSZWZlcmVuY2VTcGFjZUN1c3RvbS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWQwZTM5ODRlZDA3MWZmNDkwMjIxOWM0NDYyNjFlNjY2ZDdkZDNmOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViWFJSZWZlcmVuY2VTcGFjZUN1c3Rv
bS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisj
aW5jbHVkZSAiSlNXZWJYUlJlZmVyZW5jZVNwYWNlLmgiCisKKyNpbmNsdWRlICJKU1dlYlhSQm91
bmRlZFJlZmVyZW5jZVNwYWNlLmgiCisjaW5jbHVkZSAiV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworSlNW
YWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+JiYgc3BhY2UpCit7CisgICAg
aWYgKHNwYWNlLT5pc0JvdW5kZWRSZWZlcmVuY2VTcGFjZSgpKQorICAgICAgICByZXR1cm4gY3Jl
YXRlV3JhcHBlcjxXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZT4oZ2xvYmFsT2JqZWN0LCBXVEZN
b3ZlKHNwYWNlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8V2ViWFJSZWZlcmVuY2VTcGFj
ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHNwYWNlKSk7Cit9CisKK0pTVmFsdWUgdG9KUyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgV2ViWFJSZWZlcmVuY2VTcGFjZSYgc3BhY2UpCit7CisgICAgcmV0dXJuIHdyYXAo
bGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBzcGFjZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViWFJTcGFjZUN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlhSU3BhY2VDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0
ZmUyMTM0YmNlY2YwMDMxYmYzZmJhZjkyMWRlMDFhOGJjNTM3NjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlhSU3BhY2VDdXN0b20uY3BwCkBAIC0w
LDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorI2luY2x1ZGUgIkpT
V2ViWFJTcGFjZS5oIgorCisjaW5jbHVkZSAiV2ViWFJSZWZlcmVuY2VTcGFjZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7Cit1c2luZyBuYW1lc3BhY2UgSlNDOworCitKU1ZhbHVlIHRvSlNOZXds
eUNyZWF0ZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxXZWJYUlNwYWNlPiYmIHNwYWNlKQoreworICAgIGlm
IChpczxXZWJYUlJlZmVyZW5jZVNwYWNlPihzcGFjZSkpCisgICAgICAgIHJldHVybiB0b0pTTmV3
bHlDcmVhdGVkKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgc3RhdGljX3JlZmVy
ZW5jZV9jYXN0PFdlYlhSUmVmZXJlbmNlU3BhY2U+KFdURk1vdmUoc3BhY2UpKSk7CisgICAgcmV0
dXJuIGNyZWF0ZVdyYXBwZXI8V2ViWFJTcGFjZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKHNwYWNl
KSk7Cit9CisKK0pTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgV2ViWFJTcGFjZSYgc3BhY2UpCit7
CisgICAgcmV0dXJuIHdyYXAobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBzcGFj
ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJY
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL1BsYXRmb3JtWFIuaAppbmRleCA3ZTAwZGYwN2Jl
NWUxZWU1NDdmNDIzNDhhNzk3ZjlmZjE0NWNkNjc2Li5kOTdkNGYxODFiMTNkMjY5ODkyZGJmNWVi
YzMzZjU1OTMzZTI1Njc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9Q
bGF0Zm9ybVhSLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5o
CkBAIC0xMTQsMTIgKzExNCwxOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBQcm9qZWN0aW9uIHBy
b2plY3Rpb24gPSB7IG51bGxwdHIgfTsKICAgICAgICAgfTsKIAorICAgICAgICBzdHJ1Y3QgU3Rh
Z2VQYXJhbWV0ZXJzIHsKKyAgICAgICAgICAgIGludCBpZCB7IDAgfTsKKyAgICAgICAgICAgIFZl
Y3RvcjxXZWJDb3JlOjpGbG9hdFBvaW50PiBib3VuZHM7CisgICAgICAgIH07CisKICAgICAgICAg
Ym9vbCBpc1RyYWNraW5nVmFsaWQgeyBmYWxzZSB9OwogICAgICAgICBib29sIGlzUG9zaXRpb25W
YWxpZCB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgaXNQb3NpdGlvbkVtdWxhdGVkIHsgZmFsc2Ug
fTsKICAgICAgICAgbG9uZyBwcmVkaWN0ZWREaXNwbGF5VGltZSB7IDAgfTsKICAgICAgICAgUG9z
ZSBvcmlnaW47CiAgICAgICAgIE9wdGlvbmFsPFBvc2U+IGZsb29yVHJhbnNmb3JtOworICAgICAg
ICBTdGFnZVBhcmFtZXRlcnMgc3RhZ2VQYXJhbWV0ZXJzOwogICAgICAgICBWZWN0b3I8Vmlldz4g
dmlld3M7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIv
b3BlbnhyL1BsYXRmb3JtWFJPcGVuWFIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIv
b3BlbnhyL1BsYXRmb3JtWFJPcGVuWFIuY3BwCmluZGV4IGNiMjZjMzBiNTM0OWU1NzQ3ZGI3NTAz
NGVkODgyMmM3MzIxMjNlZWYuLjIwNWU3ODNiZmJkNWQwMDc2MzNkNmU1Njg3MWU1ODY5Zjc1NDVl
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9y
bVhST3BlblhSLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxh
dGZvcm1YUk9wZW5YUi5jcHAKQEAgLTE0Myw2ICsxNDMsOCBAQCB2b2lkIE9wZW5YUkRldmljZTo6
aW5pdGlhbGl6ZVJlZmVyZW5jZVNwYWNlKFBsYXRmb3JtWFI6OlJlZmVyZW5jZVNwYWNlVHlwZSBz
cGFjZQogewogICAgIGlmICgoc3BhY2VUeXBlID09IFJlZmVyZW5jZVNwYWNlVHlwZTo6TG9jYWxG
bG9vciB8fCBzcGFjZVR5cGUgPT0gUmVmZXJlbmNlU3BhY2VUeXBlOjpCb3VuZGVkRmxvb3IpICYm
IG1fc3RhZ2VTcGFjZSA9PSBYUl9OVUxMX0hBTkRMRSkKICAgICAgICAgbV9zdGFnZVNwYWNlID0g
Y3JlYXRlUmVmZXJlbmNlU3BhY2UoWFJfUkVGRVJFTkNFX1NQQUNFX1RZUEVfU1RBR0UpOworICAg
IGlmIChzcGFjZVR5cGUgPT0gUmVmZXJlbmNlU3BhY2VUeXBlOjpCb3VuZGVkRmxvb3IpCisgICAg
ICAgIHVwZGF0ZVN0YWdlUGFyYW1ldGVycygpOwogfQogCiB2b2lkIE9wZW5YUkRldmljZTo6cmVx
dWVzdEZyYW1lKFJlcXVlc3RGcmFtZUNhbGxiYWNrJiYgY2FsbGJhY2spCkBAIC0xNjksNyArMTcx
LDcgQEAgdm9pZCBPcGVuWFJEZXZpY2U6OnJlcXVlc3RGcmFtZShSZXF1ZXN0RnJhbWVDYWxsYmFj
ayYmIGNhbGxiYWNrKQogCiAgICAgICAgIERldmljZTo6RnJhbWVEYXRhIGZyYW1lRGF0YTsKICAg
ICAgICAgZnJhbWVEYXRhLnByZWRpY3RlZERpc3BsYXlUaW1lID0gZnJhbWVTdGF0ZS5wcmVkaWN0
ZWREaXNwbGF5VGltZTsKLQorICAgICAgICBmcmFtZURhdGEuc3RhZ2VQYXJhbWV0ZXJzID0gbV9z
dGFnZVBhcmFtZXRlcnM7CiAKICAgICAgICAgQVNTRVJUKG1fY29uZmlndXJhdGlvblZpZXdzLmNv
bnRhaW5zKG1fY3VycmVudFZpZXdDb25maWd1cmF0aW9uVHlwZSkpOwogICAgICAgICBjb25zdCBh
dXRvJiBjb25maWd1cmF0aW9uVmlldyA9IG1fY29uZmlndXJhdGlvblZpZXdzLmdldChtX2N1cnJl
bnRWaWV3Q29uZmlndXJhdGlvblR5cGUpOwpAQCAtMjU2LDggKzI1OCw5IEBAIERldmljZTo6TGlz
dE9mRW5hYmxlZEZlYXR1cmVzIE9wZW5YUkRldmljZTo6Y29sbGVjdEVuYWJsZWRGZWF0dXJlcygp
CiAgICAgLy8gVGhlIHNwZWMgdXNlcyBhIGVzdGltYXRlZCBoZWlnaHQgaWYgd2UgZG9uJ3QgcHJv
dmlkZSBhIGZsb29yIHRyYW5zZm9ybSBpbiBmcmFtZURhdGEuCiAgICAgZmVhdHVyZXMuYXBwZW5k
KFJlZmVyZW5jZVNwYWNlVHlwZTo6TG9jYWxGbG9vcik7CiAKLSAgICAvLyBGSVhNRTogRW5hYmxl
IEJvdW5kZWRGbG9vciB3aGVuIHdlIGltcGxlbWVudCB4ckdldFJlZmVyZW5jZVNwYWNlQm91bmRz
UmVjdCBhbmQgdGhlIHJlbGF0ZWQgYml0cyBpbiB0aGUgRE9NLgotICAgIC8vIGVuYWJsZWRGZWF0
dXJlcy5hcHBlbmQoUmVmZXJlbmNlU3BhY2VUeXBlOjpCb3VuZGVkRmxvb3IpOworICAgIC8vIE1h
cmsgQm91bmRlZEZsb29yIGFzIHN1cHBvcnRlZCByZWdhcmRsZXNzIGlmIFhSX1JFRkVSRU5DRV9T
UEFDRV9UWVBFX1NUQUdFIGlzIGF2YWlsYWJsZS4KKyAgICAvLyBUaGUgc3BlYyBhbGxvd3MgcmVw
b3J0aW5nIGFuIGVtcHR5IGFycmF5IGlmIHhyR2V0UmVmZXJlbmNlU3BhY2VCb3VuZHNSZWN0IGZh
aWxzLgorICAgIGZlYXR1cmVzLmFwcGVuZChSZWZlcmVuY2VTcGFjZVR5cGU6OkJvdW5kZWRGbG9v
cik7CiAKICAgICBpZiAobV9leHRlbnNpb25zLmlzRXh0ZW5zaW9uU3VwcG9ydGVkKFhSX01TRlRf
VU5CT1VOREVEX1JFRkVSRU5DRV9TUEFDRV9FWFRFTlNJT05fTkFNRSkpCiAgICAgICAgIGZlYXR1
cmVzLmFwcGVuZChSZWZlcmVuY2VTcGFjZVR5cGU6OlVuYm91bmRlZCk7CkBAIC0zNTQsMTQgKzM1
NywxOSBAQCB2b2lkIE9wZW5YUkRldmljZTo6cG9sbEV2ZW50cygpCiAgICAgd2hpbGUgKHhyUG9s
bEV2ZW50KG1faW5zdGFuY2UsICZydW50aW1lRXZlbnQpID09IFhSX1NVQ0NFU1MpIHsKICAgICAg
ICAgc3dpdGNoIChydW50aW1lRXZlbnQudHlwZSkgewogICAgICAgICBjYXNlIFhSX1RZUEVfRVZF
TlRfREFUQV9TRVNTSU9OX1NUQVRFX0NIQU5HRUQ6IHsKLSAgICAgICAgICAgIGF1dG8qIGV2ZW50
ID0gKFhyRXZlbnREYXRhU2Vzc2lvblN0YXRlQ2hhbmdlZCopJnJ1bnRpbWVFdmVudDsKKyAgICAg
ICAgICAgIGF1dG8qIGV2ZW50ID0gcmVpbnRlcnByZXRfY2FzdDxYckV2ZW50RGF0YVNlc3Npb25T
dGF0ZUNoYW5nZWQqPigmcnVudGltZUV2ZW50KTsKICAgICAgICAgICAgIG1fc2Vzc2lvblN0YXRl
ID0gZXZlbnQtPnN0YXRlOwogICAgICAgICAgICAgaGFuZGxlU2Vzc2lvblN0YXRlQ2hhbmdlKCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIFhSX1RZUEVfRVZF
TlRfREFUQV9FVkVOVFNfTE9TVDoKICAgICAgICAgY2FzZSBYUl9UWVBFX0VWRU5UX0RBVEFfSU5T
VEFOQ0VfTE9TU19QRU5ESU5HOgotICAgICAgICBjYXNlIFhSX1RZUEVfRVZFTlRfREFUQV9SRUZF
UkVOQ0VfU1BBQ0VfQ0hBTkdFX1BFTkRJTkc6CisgICAgICAgIGNhc2UgWFJfVFlQRV9FVkVOVF9E
QVRBX1JFRkVSRU5DRV9TUEFDRV9DSEFOR0VfUEVORElORzogeworICAgICAgICAgICAgYXV0byog
ZXZlbnQgPSByZWludGVycHJldF9jYXN0PFhyRXZlbnREYXRhUmVmZXJlbmNlU3BhY2VDaGFuZ2VQ
ZW5kaW5nKj4oJnJ1bnRpbWVFdmVudCk7CisgICAgICAgICAgICBpZiAoZXZlbnQtPnJlZmVyZW5j
ZVNwYWNlVHlwZSA9PSBYUl9SRUZFUkVOQ0VfU1BBQ0VfVFlQRV9TVEFHRSkKKyAgICAgICAgICAg
ICAgICB1cGRhdGVTdGFnZVBhcmFtZXRlcnMoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CiAgICAgICAgIGNhc2UgWFJfVFlQRV9FVkVOVF9EQVRBX0lOVEVSQUNUSU9OX1BST0ZJTEVf
Q0hBTkdFRDoKICAgICAgICAgY2FzZSBYUl9UWVBFX0VWRU5UX0RBVEFfTUFJTl9TRVNTSU9OX1ZJ
U0lCSUxJVFlfQ0hBTkdFRF9FWFRYOgogICAgICAgICBjYXNlIFhSX1RZUEVfRVZFTlRfREFUQV9W
SVNJQklMSVRZX01BU0tfQ0hBTkdFRF9LSFI6CkBAIC00MTMsNiArNDIxLDEwIEBAIHZvaWQgT3Bl
blhSRGV2aWNlOjpyZXNldFNlc3Npb24oKQogICAgICAgICBtX3Nlc3Npb24gPSBYUl9OVUxMX0hB
TkRMRTsKICAgICB9CiAgICAgbV9zZXNzaW9uU3RhdGUgPSBYUl9TRVNTSU9OX1NUQVRFX1VOS05P
V047CisgICAgbV9sb2NhbFNwYWNlID0gWFJfTlVMTF9IQU5ETEU7CisgICAgbV92aWV3U3BhY2Ug
ID0gWFJfTlVMTF9IQU5ETEU7CisgICAgbV9zdGFnZVNwYWNlID0gWFJfTlVMTF9IQU5ETEU7Cisg
ICAgbV9zdGFnZVBhcmFtZXRlcnMgPSB7IH07CiAKICAgICAvLyBkZWFsbG9jYXRlIGdyYXBoaWMg
cmVzb3VyY2VzCiAgICAgbV9lZ2wucmVzZXQoKTsKQEAgLTQzMCw3ICs0NDIsNiBAQCB2b2lkIE9w
ZW5YUkRldmljZTo6aGFuZGxlU2Vzc2lvblN0YXRlQ2hhbmdlKCkKICAgICB9CiB9CiAKLQogdm9p
ZCBPcGVuWFJEZXZpY2U6OndhaXRVbnRpbFN0b3BwaW5nKCkKIHsKICAgICBBU1NFUlQoJlJ1bkxv
b3A6OmN1cnJlbnQoKSA9PSAmbV9xdWV1ZS5ydW5Mb29wKCkpOwpAQCAtNDQyLDYgKzQ1MywzMiBA
QCB2b2lkIE9wZW5YUkRldmljZTo6d2FpdFVudGlsU3RvcHBpbmcoKQogICAgIH0pOwogfQogCit2
b2lkIE9wZW5YUkRldmljZTo6dXBkYXRlU3RhZ2VQYXJhbWV0ZXJzKCkKK3sKKyAgICBBU1NFUlQo
JlJ1bkxvb3A6OmN1cnJlbnQoKSA9PSAmbV9xdWV1ZS5ydW5Mb29wKCkpOworICAgIGlmIChtX3N0
YWdlU3BhY2UgPT0gWFJfTlVMTF9IQU5ETEUpCisgICAgICAgIHJldHVybjsgLy8gU3RhZ2Ugc3Bh
Y2Ugbm90IHJlcXVlc3RlZC4KKworICAgIG1fc3RhZ2VQYXJhbWV0ZXJzLmlkKys7CisKKyAgICBY
ckV4dGVudDJEZiBib3VuZHM7CisgICAgaWYgKFhSX1NVQ0NFRURFRCh4ckdldFJlZmVyZW5jZVNw
YWNlQm91bmRzUmVjdChtX3Nlc3Npb24sIFhSX1JFRkVSRU5DRV9TUEFDRV9UWVBFX1NUQUdFLCAm
Ym91bmRzKSkpIHsKKyAgICAgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93
ZWJ4ci8jeHJib3VuZGVkcmVmZXJlbmNlc3BhY2UtbmF0aXZlLWJvdW5kcy1nZW9tZXRyeQorICAg
ICAgICAvLyBQb2ludHMgTVVTVCBiZSBnaXZlbiBpbiBhIGNsb2Nrd2lzZSBvcmRlciBhcyB2aWV3
ZWQgZnJvbSBhYm92ZSwgbG9va2luZyB0b3dhcmRzIHRoZSBuZWdhdGl2ZSBlbmQgb2YgdGhlIFkg
YXhpcy4KKyAgICAgICAgbV9zdGFnZVBhcmFtZXRlcnMuYm91bmRzID0gVmVjdG9yPFdlYkNvcmU6
OkZsb2F0UG9pbnQ+IHsKKyAgICAgICAgICAgIHsgYm91bmRzLndpZHRoICogMC41ZiwgLWJvdW5k
cy5oZWlnaHQgKiAwLjVmIH0sCisgICAgICAgICAgICB7IGJvdW5kcy53aWR0aCAqIDAuNWYsIGJv
dW5kcy5oZWlnaHQgKiAwLjVmIH0sCisgICAgICAgICAgICB7IC1ib3VuZHMud2lkdGggKiAwLjVm
LCBib3VuZHMuaGVpZ2h0ICogMC41ZiB9LAorICAgICAgICAgICAgeyAtYm91bmRzLndpZHRoICog
MC41ZiwgLWJvdW5kcy5oZWlnaHQgKiAwLjVmIH0KKyAgICAgICAgfTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyNkb20teHJi
b3VuZGVkcmVmZXJlbmNlc3BhY2UtYm91bmRzZ2VvbWV0cnkKKyAgICAgICAgLy8gSWYgdGhlIG5h
dGl2ZSBib3VuZHMgZ2VvbWV0cnkgaXMgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUsIHdoaWNoIG1h
eSBvY2N1ciBmb3Igc2V2ZXJhbCByZWFzb25zIHN1Y2ggYXMgZHVyaW5nIFhSIGRldmljZSBpbml0
aWFsaXphdGlvbiwKKyAgICAgICAgLy8gZXh0ZW5kZWQgcGVyaW9kcyBvZiB0cmFja2luZyBsb3Nz
LCBvciBtb3ZlbWVudCBiZXR3ZWVuIHByZS1jb25maWd1cmVkIHNwYWNlcywgdGhlIGJvdW5kc0dl
b21ldHJ5IE1VU1QgcmVwb3J0IGFuIGVtcHR5IGFycmF5LgorICAgICAgICBtX3N0YWdlUGFyYW1l
dGVycy5ib3VuZHMuY2xlYXIoKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFBsYXRmb3Jt
WFIKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJYUikgJiYgVVNFKE9QRU5YUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUk9wZW5YUi5oCmluZGV4
IDMxNzgzNjkxZjRhOTNiYmJkNDgwNzkxNmJkNTY5YmM2NjA3YzkxNGMuLmU2YWIxODRmMTJlNGY1
NzY1OGJkOGQ2NmY5OTYxYjY5YWZkZGQ1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3JtWFJPcGVuWFIuaApAQCAtNjksNiArNjksNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmVzZXRTZXNzaW9uKCk7CiAgICAgdm9pZCBoYW5kbGVTZXNzaW9u
U3RhdGVDaGFuZ2UoKTsKICAgICB2b2lkIHdhaXRVbnRpbFN0b3BwaW5nKCk7CisgICAgdm9pZCB1
cGRhdGVTdGFnZVBhcmFtZXRlcnMoKTsKIAogICAgIFhySW5zdGFuY2UgbV9pbnN0YW5jZTsKICAg
ICBYclN5c3RlbUlkIG1fc3lzdGVtSWQ7CkBAIC04Nyw2ICs4OCw3IEBAIHByaXZhdGU6CiAgICAg
WHJTcGFjZSBtX2xvY2FsU3BhY2UgeyBYUl9OVUxMX0hBTkRMRSB9OwogICAgIFhyU3BhY2UgbV92
aWV3U3BhY2UgeyBYUl9OVUxMX0hBTkRMRSB9OwogICAgIFhyU3BhY2UgbV9zdGFnZVNwYWNlIHsg
WFJfTlVMTF9IQU5ETEUgfTsKKyAgICBEZXZpY2U6OkZyYW1lRGF0YTo6U3RhZ2VQYXJhbWV0ZXJz
IG1fc3RhZ2VQYXJhbWV0ZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgUGxhdGZvcm1YUgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwCmluZGV4IDdlNGE5ZGNjZjMx
ZDlhYTQzY2M5YmE0ZmM2M2Q1Mzk0YmZmNDU0MjMuLjgxNDkwMTI5ZGNiYTBlYjI2ZDVhMzI3MDc3
Y2JkNDc2NWNiOGQ4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFr
ZVhSRGV2aWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmlj
ZS5jcHAKQEAgLTU5LDYgKzU5LDE0IEBAIFNpbXVsYXRlZFhSRGV2aWNlOjp+U2ltdWxhdGVkWFJE
ZXZpY2UoKQogICAgIHN0b3BUaW1lcigpOwogfQogCit2b2lkIFNpbXVsYXRlZFhSRGV2aWNlOjpz
ZXROYXRpdmVCb3VuZHNHZW9tZXRyeShjb25zdCBWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+JiBn
ZW9tZXRyeSkKK3sKKyAgICBtX3N0YWdlUGFyYW1ldGVycy5pZCsrOworICAgIG1fc3RhZ2VQYXJh
bWV0ZXJzLmJvdW5kcy5jbGVhcigpOworICAgIGZvciAoYXV0byYgcG9pbnQgOiBnZW9tZXRyeSkK
KyAgICAgICAgbV9zdGFnZVBhcmFtZXRlcnMuYm91bmRzLmFwcGVuZCh7IHN0YXRpY19jYXN0PGZs
b2F0Pihwb2ludC54KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBvaW50LnopIH0pOworfQorCiB2b2lk
IFNpbXVsYXRlZFhSRGV2aWNlOjpzaW11bGF0ZVNodXRkb3duQ29tcGxldGVkKCkKIHsKICAgICBp
ZiAobV90cmFja2luZ0FuZFJlbmRlcmluZ0NsaWVudCkKQEAgLTEwMCw2ICsxMDgsOCBAQCB2b2lk
IFNpbXVsYXRlZFhSRGV2aWNlOjpmcmFtZVRpbWVyRmlyZWQoKQogICAgIGlmIChtX2Zsb29yT3Jp
Z2luKQogICAgICAgICBkYXRhLmZsb29yVHJhbnNmb3JtID0geyAqbV9mbG9vck9yaWdpbiB9Owog
CisgICAgZGF0YS5zdGFnZVBhcmFtZXRlcnMgPSBtX3N0YWdlUGFyYW1ldGVyczsKKwogICAgIGZv
ciAoYXV0byYgZmFrZVZpZXcgOiBtX3ZpZXdzKSB7CiAgICAgICAgIEZyYW1lRGF0YTo6VmlldyB2
aWV3OwogICAgICAgICB2aWV3Lm9mZnNldCA9IGZha2VWaWV3LT5vZmZzZXQoKTsKQEAgLTE4Miw5
ICsxOTIsMTIgQEAgdm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlVmlzaWJpbGl0eUNoYW5n
ZShYUlZpc2liaWxpdHlTdGF0ZSkKIHsKIH0KIAotdm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNldEJv
dW5kc0dlb21ldHJ5KFZlY3RvcjxGYWtlWFJCb3VuZHNQb2ludD4mJikKK3ZvaWQgV2ViRmFrZVhS
RGV2aWNlOjpzZXRCb3VuZHNHZW9tZXRyeShWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+JiYgYm91
bmRzKQogewotfQorICAgIG1fZGV2aWNlLnNjaGVkdWxlT25OZXh0RnJhbWUoW3RoaXMsIGJvdW5k
cyA9IFdURk1vdmUoYm91bmRzKV0oKSB7CisgICAgICAgIG1fZGV2aWNlLnNldE5hdGl2ZUJvdW5k
c0dlb21ldHJ5KGJvdW5kcyk7CisgICAgfSk7Cit9IAogCiB2b2lkIFdlYkZha2VYUkRldmljZTo6
c2V0Rmxvb3JPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IG9yaWdpbikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5oCmluZGV4IGM1YTVkMTQ0ZDAxMmY1ZjAy
YmUyMjM4YWIyYWUyMDMwNGEyOWUxY2UuLmUxMjdjMDU5ZDMxODY0YjRjOGQwODI2M2ZkMWQyOWZj
YTQzNTFjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2
aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaApAQCAt
NzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgU2ltdWxhdGVkWFJEZXZpY2UoKTsKICAgICB+U2lt
dWxhdGVkWFJEZXZpY2UoKTsKICAgICB2b2lkIHNldFZpZXdzKFZlY3RvcjxSZWY8RmFrZVhSVmll
dz4+JiYgdmlld3MpIHsgbV92aWV3cyA9IFdURk1vdmUodmlld3MpOyB9Ci0gICAgdm9pZCBzZXRO
YXRpdmVCb3VuZHNHZW9tZXRyeShjb25zdCBWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+JiBnZW9t
ZXRyeSkgeyBtX25hdGl2ZUJvdW5kc0dlb21ldHJ5ID0gZ2VvbWV0cnk7IH0KKyAgICB2b2lkIHNl
dE5hdGl2ZUJvdW5kc0dlb21ldHJ5KGNvbnN0IFZlY3RvcjxGYWtlWFJCb3VuZHNQb2ludD4mKTsK
ICAgICB2b2lkIHNldFZpZXdlck9yaWdpbihPcHRpb25hbDxGcmFtZURhdGE6OlBvc2U+JiYgb3Jp
Z2luKSB7IG1fdmlld2VyT3JpZ2luID0gV1RGTW92ZShvcmlnaW4pOyB9CiAgICAgdm9pZCBzZXRG
bG9vck9yaWdpbihPcHRpb25hbDxGcmFtZURhdGE6OlBvc2U+JiYgb3JpZ2luKSB7IG1fZmxvb3JP
cmlnaW4gPSBXVEZNb3ZlKG9yaWdpbik7IH0KICAgICB2b2lkIHNldEVtdWxhdGVkUG9zaXRpb24o
Ym9vbCBlbXVsYXRlZCkgeyBtX2VtdWxhdGVkUG9zaXRpb24gPSBlbXVsYXRlZDsgfQpAQCAtMTAw
LDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9mcmFtZVRpbWVyOwogICAgIFJlcXVl
c3RGcmFtZUNhbGxiYWNrIG1fRnJhbWVDYWxsYmFjazsKICAgICBWZWN0b3I8RnVuY3Rpb248dm9p
ZCgpPj4gbV9wZW5kaW5nVXBkYXRlczsKKyAgICBGcmFtZURhdGE6OlN0YWdlUGFyYW1ldGVycyBt
X3N0YWdlUGFyYW1ldGVyczsKIH07CiAKIGNsYXNzIFdlYkZha2VYUkRldmljZSBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYkZha2VYUkRldmljZT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZlNGQzNmM1OWE5MTdj
MTA0NTI5Mjc3NDcyMTA0MDVkMzc1ODlhODMuLjg5OTkyMTEwM2YzNTcxNjljYzU2ZTk4NTIyMTY4
NzY0ZjJhOTQ4YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wMy0wNCAgSW1hbm9sIEZl
cm5hbmRleiAgPGlmZXJuYW5kZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV2Vi
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgYm91bmRzIGdlb21ldHJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI3MzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgV2ViWFJCb3VuZGVkUmVmZXJl
bmNlU3BhY2UgdGVzdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvVGVz
dEV4cGVjdGF0aW9uczoKKwogMjAyMS0wMy0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRW5hYmxlIE1FRElBX1NPVVJDRSBpbiBJT1MgU2ltdWxhdG9yCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAyMGU2NWMwZWJiYWNlYTkwM2U5NTUwZTY3
NjI3OWVhNDc1ZWVhMjBhLi5hY2UyYzEwODczOTAzZDA2NjRiMDZlYjczYzNjMmRiY2Q2MjYwMmUw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0w
My0wNCAgSW1hbm9sIEZlcm5hbmRleiAgPGlmZXJuYW5kZXpAaWdhbGlhLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgYm91bmRzIGdlb21ldHJ5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI3MzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgV2Vi
WFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgdGVzdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJCb3VuZGVkUmVmZXJlbmNlU3BhY2VfdXBkYXRlcy5o
dHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDIxLTAyLTI4ICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIEJsZW5kaW5nIG9mIGJvcmRlci1pbWFnZS13
aWR0aCBzaG91bGQgYmUgZGlzY3JldGUgYmV0d2VlbiAiYXV0byIgdmFsdWVzIGFuZCBvdGhlciB0
eXBlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJ4ci94ckJvdW5kZWRSZWZlcmVuY2VTcGFjZV91cGRhdGVzLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIv
eHJCb3VuZGVkUmVmZXJlbmNlU3BhY2VfdXBkYXRlcy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjkxMDFkZGExMDVlOGQwN2Y5M2E3OWJhMmM2YTNiZDJjYzVmZTAxZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
eHIveHJCb3VuZGVkUmVmZXJlbmNlU3BhY2VfdXBkYXRlcy5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgJ1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlIHVwZGF0ZXMgcHJv
cGVybHkgd2hlbiB0aGUgY2hhbmdlcyBhcmUgYXBwbGllZAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dwZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY4ZWE2Y2I1M2Q2OTgyMzkyMjQ3MDRjYmFiZTJm
NmMwYWMyZGY4MDEuLmE0NGViNDQ2ZmZlYmU0ODljNTUwMzZmYWFjYzNjMjNjNzI1MmJkMzcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC02MDksNiArNjA5
LDcgQEAgd2Via2l0Lm9yZy9iLzIxMzEzMSBodHRwL3Rlc3RzL21pc2MvZ2FtZXBhZHMtaW5zZWN1
cmUuaHRtbCBbIFNraXAgXQogCiAjIFdlYlhSCiB3ZWJraXQub3JnL2IvMjEyODk3IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRt
bCBbIEZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94ckJv
dW5kZWRSZWZlcmVuY2VTcGFjZV91cGRhdGVzLmh0dHBzLmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5v
cmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci93ZWJHTENh
bnZhc0NvbnRleHRfY3JlYXRlX3hyY29tcGF0aWJsZS5odHRwcy5odG1sIFsgUGFzcyBdCiB3ZWJr
aXQub3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvd2Vi
R0xDYW52YXNDb250ZXh0X21ha2Vjb21wYXRpYmxlX2NvbnRleHRsb3N0Lmh0dHBzLmh0bWwgWyBQ
YXNzIF0KIHdlYmtpdC5vcmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJ4ci93ZWJHTENhbnZhc0NvbnRleHRfbWFrZWNvbXBhdGlibGVfcmVlbnRyYW50Lmh0dHBz
Lmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422241</attachid>
            <date>2021-03-04 09:42:34 -0800</date>
            <delta_ts>2021-03-04 09:43:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222737-20210304184233.patch</filename>
            <type>text/plain</type>
            <size>33756</size>
            <attacher name="Imanol Fernandez">ifernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTliZjVjZTkyOGVmMzU1
YTdjM2QzZTIxMDk5ZTk0MTVhMjQxMWU5Yi4uNmMxYzczYzkyOWMxOTE4MGMyMjEzNWY2YmIyYmQx
NTFhYzFmMzM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTAzLTA0ICBJbWFu
b2wgRmVybmFuZGV6ICA8aWZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSBib3VuZHMgZ2VvbWV0cnkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjczNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhdmluZyBib3VuZHMgZ2VvbWV0
cnkgaW4gV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgZW5hYmxlcyBXZWJYUiByb29tLXNjYWxl
IGFwcGxpY2F0aW9ucy4gWFIgc3lzdGVtcyBtYXkgaGF2ZSBsaW1pdGVkCisgICAgICAgIHJlYWwg
d29ybGQgc3BhdGlhbCByYW5nZXMgaW4gd2hpY2ggdXNlcnMgY2FuIGZyZWVseSBtb3ZlIGFyb3Vu
ZCB3aGlsZSByZW1haW5pbmcgdHJhY2tlZC4gV2ViWFIgQXBwbGljYXRpb25zIGNhbiBxdWVyeQor
ICAgICAgICB0aGVzZSBib3VuZGFyaWVzIGFuZCBhbHRlciBhcHBsaWNhdGlvbiBiZWhhdmlvciBv
ciBjb250ZW50IHBsYWNlbWVudCB0byBlbnN1cmUgdGhlIHVzZXIgY2FuIGNvbXBsZXRlIHRoZSBl
eHBlcmllbmNlIHdoaWxlCisgICAgICAgIHJlbWFpbmluZyB3aXRoaW4gdGhlIGJvdW5kYXJ5Lgor
CisgICAgICAgIFRlc3RlZCBieSBXZWJYUiBXUFQgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSk6IENhbGwgdXBkYXRl
SWZOZWVkZWQKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpn
ZXRPZmZzZXRSZWZlcmVuY2VTcGFjZSk6IFVzZSBFeGNlcHRpb24gaW5zdGVhZCBvZiBudWxsIFJl
ZlB0cjw+CisgICAgICAgIChXZWJDb3JlOjpXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6dXBk
YXRlSWZOZWVkZWQpOiBVcGRhdGVzIGJvdW5kc0dlb21ldHJ5IHZlY3RvciB3aGVuIGRhdGEgY2hh
bmdlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpxdWFu
dGl6ZSk6IFV0aWxpdHkgbWV0aG9kIHRvIGF2b2lkIGZpbmdlcnByaW50aW5nLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaDoKKworICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGQgQ3VzdG9t
VG9KU09iamVjdAorCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUmVmZXJlbmNlU3BhY2U6OmdldE9mZnNldFJl
ZmVyZW5jZVNwYWNlKTogVXNlIEV4Y2VwdGlvbiBpbnN0ZWFkIG9mIG51bGwgUmVmUHRyPD4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGQgQ3VzdG9tVG9KU09iamVj
dAorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGw6IEFkZCBDdXN0b21Ub0pT
T2JqZWN0CisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkIEN1c3RvbVRvSlNPYmplY3QgaW1w
bGVtZW50YXRpb25zCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJYUlJlZmVyZW5jZVNwYWNl
Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViWFJT
cGFjZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKworICAgICAgICAqIHBsYXRmb3JtL3hyL1Bs
YXRmb3JtWFIuaDogQWRkIFN0YWdlUGFyYW1ldGVycyB0byBGcmFtZURhdGEuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUk9wZW5YUi5jcHA6IEltcGxlbWVudCBib3Vu
ZHNHZW9tZXRyeSB1c2luZyBPcGVuWFIuCisgICAgICAgIChQbGF0Zm9ybVhSOjpPcGVuWFJEZXZp
Y2U6OmluaXRpYWxpemVSZWZlcmVuY2VTcGFjZSk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpPcGVu
WFJEZXZpY2U6OnJlcXVlc3RGcmFtZSk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpPcGVuWFJEZXZp
Y2U6OmNvbGxlY3RFbmFibGVkRmVhdHVyZXMpOgorICAgICAgICAoUGxhdGZvcm1YUjo6T3BlblhS
RGV2aWNlOjpwb2xsRXZlbnRzKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Ok9wZW5YUkRldmljZTo6
cmVzZXRTZXNzaW9uKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Ok9wZW5YUkRldmljZTo6dXBkYXRl
U3RhZ2VQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1Y
Uk9wZW5YUi5oOgorCisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwOiBJbXBs
ZW1lbnQgYm91bmRzR2VvbWV0cnkgZm9yIHRlc3RzLgorICAgICAgICAoV2ViQ29yZTo6U2ltdWxh
dGVkWFJEZXZpY2U6OnNldE5hdGl2ZUJvdW5kc0dlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXVsYXRlZFhSRGV2aWNlOjpmcmFtZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViRmFrZVhSRGV2aWNlOjpzZXRCb3VuZHNHZW9tZXRyeSk6CisgICAgICAgICogdGVzdGluZy9X
ZWJGYWtlWFJEZXZpY2UuaDoKKwogMjAyMS0wMy0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGNhbWVyYSBhbmQgbWljcm9waG9uZSBjYXB0dXJl
IHN0YXRlIGNvbnRyb2wgV0tXZWJWaWV3IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAppbmRleCA5
NGQ4OWMyYjUzMjIyYjY0M2MxYzgwMjg5YTI0Mjk2OTMzZDUxNmU5Li4wYTFhYmVhODgzZDdjY2U2
NGM4N2YzY2E2ODcxZWE2YTI5OTZmMDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcApAQCAtMzYs
NiArMzYsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBodHRwczovL2ltbWVyc2l2
ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN4cmJvdW5kZWRyZWZlcmVuY2VzcGFjZS1uYXRpdmUtYm91
bmRzLWdlb21ldHJ5CisvLyBJdCBpcyBzdWdnZXN0ZWQgdGhhdCBwb2ludHMgb2YgdGhlIG5hdGl2
ZSBib3VuZHMgZ2VvbWV0cnkgYmUgcXVhbnRpemVkIHRvIHRoZSBuZWFyZXN0IDVjbS4KK3N0YXRp
YyBjb25zdGV4cHIgZmxvYXQgQm91bmRzUHJlY2lzaW9uSW5NZXRlcnMgPSAwLjA1OyAKKy8vIEEg
dmFsaWQgcG9seWdvbiBoYXMgYXQgbGVhc3QgMyB2ZXJ0aWNlcy4KK3N0YXRpYyBjb25zdGV4cHIg
aW50IE1pbmltdW1Cb3VuZHNWZXJ0aWNlcyA9IDM7IAorCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UpOwogCiBSZWY8V2ViWFJCb3VuZGVkUmVm
ZXJlbmNlU3BhY2U+IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBSZWY8V2ViWFJTZXNzaW9uPiYmIHNlc3Npb24sIFhSUmVmZXJlbmNlU3BhY2VU
eXBlIHR5cGUpCkBAIC00MywxMyArNDksMTEgQEAgUmVmPFdlYlhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlPiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Y3JlYXRlKERvY3VtZW50JiBkb2MKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZShkb2N1bWVu
dCwgV1RGTW92ZShzZXNzaW9uKSwgV2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCksIHR5cGUp
KTsKIH0KIAotCiBSZWY8V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U+IFdlYlhSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8V2ViWFJTZXNzaW9u
PiYmIHNlc3Npb24sIFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiYmIG9mZnNldCwgWFJSZWZlcmVu
Y2VTcGFjZVR5cGUgdHlwZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZShkb2N1bWVudCwgV1RGTW92ZShzZXNzaW9uKSwgV1RGTW92ZShvZmZz
ZXQpLCB0eXBlKSk7CiB9CiAKLQogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6OldlYlhSQm91
bmRlZFJlZmVyZW5jZVNwYWNlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPFdlYlhSU2Vzc2lvbj4m
JiBzZXNzaW9uLCBSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4mJiBvZmZzZXQsIFhSUmVmZXJlbmNl
U3BhY2VUeXBlIHR5cGUpCiAgICAgOiBXZWJYUlJlZmVyZW5jZVNwYWNlKGRvY3VtZW50LCBXVEZN
b3ZlKHNlc3Npb24pLCBXVEZNb3ZlKG9mZnNldCksIHR5cGUpCiB7CkBAIC02NCwyNCArNjgsNTIg
QEAgVHJhbnNmb3JtYXRpb25NYXRyaXggV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6Om5hdGl2
ZU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGZsb29yT3JpZ2luVHJhbnNmb3JtKCk7CiB9CiAK
LWNvbnN0IFZlY3RvcjxSZWY8RE9NUG9pbnRSZWFkT25seT4+JiBXZWJYUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZTo6Ym91bmRzR2VvbWV0cnkoKSBjb25zdAorY29uc3QgVmVjdG9yPFJlZjxET01Qb2lu
dFJlYWRPbmx5Pj4mIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSgp
CiB7Ci0gICAgLy8gRklYTUU6IGdldCBkYXRhIGZyb20gZGV2aWNlCisgICAgdXBkYXRlSWZOZWVk
ZWQoKTsKICAgICByZXR1cm4gbV9ib3VuZHNHZW9tZXRyeTsKIH0KIAotUmVmUHRyPFdlYlhSUmVm
ZXJlbmNlU3BhY2U+IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpnZXRPZmZzZXRSZWZlcmVu
Y2VTcGFjZShjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiBvZmZzZXRUcmFuc2Zvcm0pCitFeGNl
cHRpb25PcjxSZWY8V2ViWFJSZWZlcmVuY2VTcGFjZT4+IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlOjpnZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiBv
ZmZzZXRUcmFuc2Zvcm0pCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVu
dD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBpZiAoIWRvY3VtZW50KQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH07CiAKICAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhy
LyNkb20teHJyZWZlcmVuY2VzcGFjZS1nZXRvZmZzZXRyZWZlcmVuY2VzcGFjZQogICAgIC8vIFNl
dCBvZmZzZXRTcGFjZeKAmXMgb3JpZ2luIG9mZnNldCB0byB0aGUgcmVzdWx0IG9mIG11bHRpcGx5
aW5nIGJhc2XigJlzIG9yaWdpbiBvZmZzZXQgYnkgb3JpZ2luT2Zmc2V0IGluIHRoZSByZWxldmFu
dCByZWFsbSBvZiBiYXNlLgogICAgIGF1dG8gb2Zmc2V0ID0gV2ViWFJSaWdpZFRyYW5zZm9ybTo6
Y3JlYXRlKG9yaWdpbk9mZnNldCgpLnJhd1RyYW5zZm9ybSgpICogb2Zmc2V0VHJhbnNmb3JtLnJh
d1RyYW5zZm9ybSgpKTsKIAotICAgIC8vIEZJWE1FOiBzZXQgb2Zmc2V0U3BhY2XigJlzIGJvdW5k
c0dlb21ldHJ5IHRvIGJhc2XigJlzIGJvdW5kc0dlb21ldHJ5LCB3aXRoIGVhY2ggcG9pbnQgbXVs
dGlwbGllZCBieSB0aGUgaW52ZXJzZSBvZiBvcmlnaW5PZmZzZXQuCi0gICAgcmV0dXJuIGNyZWF0
ZSgqZG9jdW1lbnQsIG1fc2Vzc2lvbi5jb3B5UmVmKCksIFdURk1vdmUob2Zmc2V0KSwgbV90eXBl
KTsKKyAgICByZXR1cm4geyBjcmVhdGUoKmRvY3VtZW50LCBtX3Nlc3Npb24uY29weVJlZigpLCBX
VEZNb3ZlKG9mZnNldCksIG1fdHlwZSkgfTsKK30KKworLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2Vi
LmdpdGh1Yi5pby93ZWJ4ci8jZG9tLXhyYm91bmRlZHJlZmVyZW5jZXNwYWNlLWJvdW5kc2dlb21l
dHJ5Cit2b2lkIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjp1cGRhdGVJZk5lZWRlZCgpCit7
CisgICAgYXV0byYgZnJhbWVEYXRhID0gbV9zZXNzaW9uLT5mcmFtZURhdGEoKTsKKyAgICBpZiAo
ZnJhbWVEYXRhLnN0YWdlUGFyYW1ldGVycy5pZCA9PSBtX2xhc3RVcGRhdGVJZCkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fbGFzdFVwZGF0ZUlkID0gZnJhbWVEYXRhLnN0YWdlUGFyYW1ldGVycy5p
ZDsKKworICAgIG1fYm91bmRzR2VvbWV0cnkuY2xlYXIoKTsKKworICAgIGlmIChmcmFtZURhdGEu
c3RhZ2VQYXJhbWV0ZXJzLmJvdW5kcy5zaXplKCkgPj0gTWluaW11bUJvdW5kc1ZlcnRpY2VzKSB7
CisgICAgICAgIC8vIEVhY2ggcG9pbnQgaGFzIHRvIG11bHRpcGxpZWQgYnkgdGhlIGludmVyc2Ug
b2Ygb3JpZ2luT2Zmc2V0LgorICAgICAgICBhdXRvIHRyYW5zZm9ybSA9IG9yaWdpbk9mZnNldCgp
LnJhd1RyYW5zZm9ybSgpLmludmVyc2UoKS52YWx1ZU9yKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkp
OworICAgICAgICBmb3IgKGF1dG8mIHBvaW50IDogZnJhbWVEYXRhLnN0YWdlUGFyYW1ldGVycy5i
b3VuZHMpIHsKKyAgICAgICAgICAgIGF1dG8gbWFwcGVkUG9pbnQgPSB0cmFuc2Zvcm0ubWFwUG9p
bnQocG9pbnQpOworICAgICAgICAgICAgLy8gVGhlIHkgdmFsdWUgb2YgZWFjaCBwb2ludCBNVVNU
IGJlIDAuCisgICAgICAgICAgICBtX2JvdW5kc0dlb21ldHJ5LmFwcGVuZChET01Qb2ludFJlYWRP
bmx5OjpjcmVhdGUocXVhbnRpemUobWFwcGVkUG9pbnQueCgpKSwgMC4wLCBxdWFudGl6ZShtYXBw
ZWRQb2ludC55KCkpLCAxLjApKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gaHR0cHM6Ly9p
bW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jcXVhbnRpemF0aW9uCitmbG9hdCBXZWJYUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZTo6cXVhbnRpemUoZmxvYXQgdmFsdWUpCit7CisgICAgLy8gRWFj
aCBwb2ludCBpbiB0aGUgbmF0aXZlIGJvdW5kcyBnZW9tZXRyeSBNVVNUIGFsc28gYmUgcXVhbnRp
emVkIHN1ZmZpY2llbnRseSB0byBwcmV2ZW50IGZpbmdlcnByaW50aW5nLgorICAgIC8vIEZvciB1
c2Vy4oCZcyBzYWZldHksIHF1YW50aXplZCBwb2ludHMgdmFsdWVzIE1VU1QgTk9UIGZhbGwgb3V0
c2lkZSB0aGUgYm91bmRzIHJlcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybS4KKyAgICByZXR1cm4gc3Rk
OjpmbG9vcih2YWx1ZSAvIEJvdW5kc1ByZWNpc2lvbkluTWV0ZXJzKSAqIEJvdW5kc1ByZWNpc2lv
bkluTWV0ZXJzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgK
aW5kZXggNzE0ODUyMDFiN2Q3YTk1MDZiOWRmYjNmOWFkZTQ3NGE1YmIxOTU3YS4uNzZlMDk2YWE5
Y2M3ZDQ2YzRkODA0MTAzZTU3YWVjNGZjY2JiYTc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApAQCAt
NDUsMTkgKzQ1LDI2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJYUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZSgpOwogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbmF0aXZlT3JpZ2luKCkgY29u
c3QgZmluYWw7Ci0gICAgY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIGJvdW5k
c0dlb21ldHJ5KCkgY29uc3Q7Ci0gICAgUmVmUHRyPFdlYlhSUmVmZXJlbmNlU3BhY2U+IGdldE9m
ZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mKSBmaW5hbDsKKyAg
ICBjb25zdCBWZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiYgYm91bmRzR2VvbWV0cnkoKTsK
KyAgICBFeGNlcHRpb25PcjxSZWY8V2ViWFJSZWZlcmVuY2VTcGFjZT4+IGdldE9mZnNldFJlZmVy
ZW5jZVNwYWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mKSBmaW5hbDsKIAogcHJpdmF0ZToK
ICAgICBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZShEb2N1bWVudCYsIFJlZjxXZWJYUlNlc3Np
b24+JiYsIFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiYmLCBYUlJlZmVyZW5jZVNwYWNlVHlwZSk7
CiAKICAgICBib29sIGlzQm91bmRlZFJlZmVyZW5jZVNwYWNlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogCisgICAgdm9pZCB1cGRhdGVJZk5lZWRlZCgpOworICAgIGZsb2F0IHF1YW50
aXplKGZsb2F0KTsKKwogICAgIFZlY3RvcjxSZWY8RE9NUG9pbnRSZWFkT25seT4+IG1fYm91bmRz
R2VvbWV0cnk7CisgICAgaW50IG1fbGFzdFVwZGF0ZUlkIHsgLTEgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XRUJYUlNQQUNFKFdlYlhS
Qm91bmRlZFJlZmVyZW5jZVNwYWNlLCBpc0JvdW5kZWRSZWZlcmVuY2VTcGFjZSgpKQorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6V2ViWFJSZWZlcmVuY2VT
cGFjZSYgZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5pc0JvdW5kZWRSZWZlcmVuY2VTcGFjZSgp
OyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldlYlhSU3BhY2UmIGVs
ZW1lbnQpIHsgcmV0dXJuIGlzPFdlYkNvcmU6OldlYlhSUmVmZXJlbmNlU3BhY2U+KGVsZW1lbnQp
ICYmIGlzVHlwZShkb3duY2FzdDxXZWJDb3JlOjpXZWJYUlJlZmVyZW5jZVNwYWNlPihlbGVtZW50
KSk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwKaW5kZXggZDViODgzMzc0MjNkMDZhYTlmYTRkNTU0
MWI2YzUxMDRmMGU0N2U0ZC4uNDM5NGNlNGY4MWVjNGIzNTQyMTg3YTQ4ODAxMjk3MWEwMGVjNDMw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwKQEAgLTI3LDYgKzI3LDggQEAKICAgICBFbmFibGVk
QXRSdW50aW1lPVdlYlhSLAogICAgIENvbmRpdGlvbmFsPVdFQlhSLAogICAgIFNlY3VyZUNvbnRl
eHQsCisgICAgQ3VzdG9tVG9KU09iamVjdCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3Qs
CiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSW50ZXJmYWNlTmFtZT1YUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZQogXSBpbnRlcmZhY2UgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgOiBXZWJYUlJl
ZmVyZW5jZVNwYWNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSUmVmZXJlbmNlU3BhY2UuY3BwCmluZGV4IDk1MjBlNWU3YjBlM2YyZGQyMzg0YjAwNTNjZTgz
ODQ2NDcyZmMxYWEuLjgwODNkM2RlMWQyMDRhOWY3ODU2NGYyMDlmMzBjMmYyZTg2ODVkZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNw
YWNlLmNwcApAQCAtOTUsMTEgKzk1LDExIEBAIFRyYW5zZm9ybWF0aW9uTWF0cml4IFdlYlhSUmVm
ZXJlbmNlU3BhY2U6Om5hdGl2ZU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGlkZW50aXR5Owog
fQogCi1SZWZQdHI8V2ViWFJSZWZlcmVuY2VTcGFjZT4gV2ViWFJSZWZlcmVuY2VTcGFjZTo6Z2V0
T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgb2Zmc2V0VHJh
bnNmb3JtKQorRXhjZXB0aW9uT3I8UmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+PiBXZWJYUlJlZmVy
ZW5jZVNwYWNlOjpnZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShjb25zdCBXZWJYUlJpZ2lkVHJhbnNm
b3JtJiBvZmZzZXRUcmFuc2Zvcm0pCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBpZiAoIWRvY3VtZW50KQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CiAKICAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlv
L3dlYnhyLyNkb20teHJyZWZlcmVuY2VzcGFjZS1nZXRvZmZzZXRyZWZlcmVuY2VzcGFjZQogICAg
IC8vIFNldCBvZmZzZXRTcGFjZeKAmXMgb3JpZ2luIG9mZnNldCB0byB0aGUgcmVzdWx0IG9mIG11
bHRpcGx5aW5nIGJhc2XigJlzIG9yaWdpbiBvZmZzZXQgYnkgb3JpZ2luT2Zmc2V0IGluIHRoZSBy
ZWxldmFudCByZWFsbSBvZiBiYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaAppbmRleCBkNTAyMjliOTI1MzI2ZmY4ZTczOWNjNThl
ODM4ZTM4ZGZhM2I5OTI0Li45MzQ5NTY0MWQxNDMwZGZjY2EzMzI4OTBlOGMxZDM5Y2ZjNTg0MGRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNl
U3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNl
U3BhY2UuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJYUlNlc3Npb24mIHNl
c3Npb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KICAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBuYXRpdmVPcmlnaW4oKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIFJlZlB0cjxXZWJYUlJlZmVyZW5jZVNwYWNlPiBnZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShj
b25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJik7CisgICAgdmlydHVhbCBFeGNlcHRpb25PcjxSZWY8
V2ViWFJSZWZlcmVuY2VTcGFjZT4+IGdldE9mZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFdlYlhS
UmlnaWRUcmFuc2Zvcm0mKTsKICAgICBYUlJlZmVyZW5jZVNwYWNlVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlOyB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsCmluZGV4IDgxZTQ0ZDM0ZGEx
NjdiOGZlNmRiMjM0YzI0MGM5Mzg1NjM1MjU5MGQuLmFmNTM5ZGE0ODIzZGZjZjljY2ZmNjlhMDVk
NjY5OGM2OTg2YzhiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmlkbApAQCAtMjgsMTIgKzI4LDEyIEBACiAgICAgQ29uZGl0
aW9uYWw9V0VCWFIsCiAgICAgU2VjdXJlQ29udGV4dCwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAg
ICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgIEpTR2Vu
ZXJhdGVUb05hdGl2ZU9iamVjdCwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBJbnRl
cmZhY2VOYW1lPVhSUmVmZXJlbmNlU3BhY2UKIF0gaW50ZXJmYWNlIFdlYlhSUmVmZXJlbmNlU3Bh
Y2UgOiBXZWJYUlNwYWNlIHsKLSAgICBbTmV3T2JqZWN0XSBXZWJYUlJlZmVyZW5jZVNwYWNlIGdl
dE9mZnNldFJlZmVyZW5jZVNwYWNlKFdlYlhSUmlnaWRUcmFuc2Zvcm0gb3JpZ2luT2Zmc2V0KTsK
KyAgICBbTmV3T2JqZWN0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gV2ViWFJSZWZlcmVuY2VTcGFjZSBn
ZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShXZWJYUlJpZ2lkVHJhbnNmb3JtIG9yaWdpbk9mZnNldCk7
CiAKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucmVzZXQ7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwKaW5kZXggYmI3OTRmMThiMjMzMTcwNjc2
ZDFkNTQ5OWI5YTE3MTE2YWVlN2NiMS4uZTM0YjcxMjdhZmQ0ZTliZWU2OWMzZmYyM2RlN2I2MTRk
ZjgyYTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNw
YWNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaWRs
CkBAIC0yNiw2ICsyNiw3IEBACiBbCiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKICAgICBD
b25kaXRpb25hbD1XRUJYUiwKKyAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgIFNlY3VyZUNvbnRl
eHQsCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSW50ZXJmYWNlTmFtZT1YUlNwYWNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDcyZGU2ZDE2ZDhmNGJkYTdjNDk3MmRkODBmYTlkMTBlNzA4NTBkZDQuLmI0
YjY1NmI0ZjYyNThlMDZiNmQ4MDJhOWI0MTRhMGNhNmZmNTZiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC02MTgsNiArNjE4LDggQEAgYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAK
IGJpbmRpbmdzL2pzL0pTV2ViQW5pbWF0aW9uQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1dlYlhSUmVmZXJlbmNlU3BhY2VDdXN0
b20uY3BwCitiaW5kaW5ncy9qcy9KU1dlYlhSU3BhY2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9K
U1dpbmRvd1Byb3h5LmNwcAogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3Bw
CiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY5NDQ0NzZh
ZWQ3NGNhOGI4MTI1MjkwYjJmMTFiZWFkNmY5ODA4YjYuLjBjOTA5YjhiOWRjMzMzOWEyZjdiNTZh
ODYyMmU3MTE4ZTk0ZDJkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNTAsNiArNjM1MCw4IEBACiAJCTExQ0IyNzg2MjAz
QkE1NzAwMDRBMURDOSAvKiBSZW5kZXJUcmVlQnVpbGRlckZ1bGxTY3JlZW4uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTFDQjI3ODcyMDNCQTU3MDAwNEExREM5IC8qIFJlbmRlclRyZWVC
dWlsZGVyRnVsbFNjcmVlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlckZ1bGxT
Y3JlZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTFEMTlDMkUyMzE1OUJBRTAw
OEYyNEQzIC8qIFRhYmxlRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxMUU2Q0YxQjI1RjE0MEUzMDAxM0QzRDUgLyogSlNXZWJYUlJlZmVy
ZW5jZVNwYWNlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViWFJSZWZlcmVuY2VTcGFjZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTExRTZDRjFEMjVGMTQwRTQwMDEzRDNENSAvKiBKU1dlYlhSU3BhY2VDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJYUlNwYWNlQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTFGRjAyRDUyMEJBM0M4MTAwODNG
MjVCIC8qIFZlcmlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWZXJpZmljYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMkY3NUE5QTg2RUEwM0RBRjI0Qjc5
NzEgLyogSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJv
eC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDAwRDdBNzE3MTM2RUE3MDA3N0NF
MDUgLyogU2NyaXB0V3JhcHBhYmxlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHRXcmFwcGFibGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMjg3Niw2ICsyMjg3OCw4IEBACiAJCQkJNzE1REE1RDMyMDFCQjkwMjAwMkVGMkIw
IC8qIEpTV2ViQW5pbWF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlEM0YzRDM1OTFBNjlBM0IwMDA1
OUZDMkIgLyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVF
RDE0QzEwNTE5NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
ICovLAorCQkJCTExRTZDRjFCMjVGMTQwRTMwMDEzRDNENSAvKiBKU1dlYlhSUmVmZXJlbmNlU3Bh
Y2VDdXN0b20uY3BwICovLAorCQkJCTExRTZDRjFEMjVGMTQwRTQwMDEzRDNENSAvKiBKU1dlYlhS
U3BhY2VDdXN0b20uY3BwICovLAogCQkJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dv
cmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLywKIAkJCQk0NkY5MUJDOTFGQ0REMEZFMDAxNTk5
QzMgLyogSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3BwICovLAogCQkJCTgzQTRBOUY4MUNFN0ZE
N0UwMDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViWFJSZWZlcmVuY2VTcGFjZUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlhSUmVmZXJlbmNlU3BhY2VDdXN0b20u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVkMGUzOTg0ZWQwNzFmZjQ5MDIyMTljNDQ2MjYxZTY2NmQ3ZGQzZjkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlhSUmVm
ZXJlbmNlU3BhY2VDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
RU5BQkxFKFdFQlhSKQorI2luY2x1ZGUgIkpTV2ViWFJSZWZlcmVuY2VTcGFjZS5oIgorCisjaW5j
bHVkZSAiSlNXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIgorI2luY2x1ZGUgIldlYlhSQm91
bmRlZFJlZmVyZW5jZVNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVz
cGFjZSBKU0M7CisKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0dsb2JhbE9iamVjdCosIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxXZWJYUlJlZmVyZW5jZVNwYWNlPiYm
IHNwYWNlKQoreworICAgIGlmIChzcGFjZS0+aXNCb3VuZGVkUmVmZXJlbmNlU3BhY2UoKSkKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U+KGds
b2JhbE9iamVjdCwgV1RGTW92ZShzcGFjZSkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFdl
YlhSUmVmZXJlbmNlU3BhY2U+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShzcGFjZSkpOworfQorCitK
U1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYlhSUmVmZXJlbmNlU3BhY2UmIHNwYWNlKQorewor
ICAgIHJldHVybiB3cmFwKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgc3BhY2Up
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlhSU3BhY2VDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJYUlNwYWNlQ3VzdG9tLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNGZlMjEzNGJjZWNmMDAzMWJmM2ZiYWY5MjFkZTAxYThiYzUzNzY2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJYUlNwYWNl
Q3VzdG9tLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJY
UikKKyNpbmNsdWRlICJKU1dlYlhSU3BhY2UuaCIKKworI2luY2x1ZGUgIldlYlhSUmVmZXJlbmNl
U3BhY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwor
SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8V2ViWFJTcGFjZT4mJiBz
cGFjZSkKK3sKKyAgICBpZiAoaXM8V2ViWFJSZWZlcmVuY2VTcGFjZT4oc3BhY2UpKQorICAgICAg
ICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QsIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxXZWJYUlJlZmVyZW5jZVNwYWNlPihXVEZNb3ZlKHNw
YWNlKSkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFdlYlhSU3BhY2U+KGdsb2JhbE9iamVj
dCwgV1RGTW92ZShzcGFjZSkpOworfQorCitKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYlhS
U3BhY2UmIHNwYWNlKQoreworICAgIHJldHVybiB3cmFwKGxleGljYWxHbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdCwgc3BhY2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94
ci9QbGF0Zm9ybVhSLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgK
aW5kZXggN2UwMGRmMDdiZTVlMWVlNTQ3ZjQyMzQ4YTc5N2Y5ZmYxNDVjZDY3Ni4uZDk3ZDRmMTgx
YjEzZDI2OTg5MmRiZjVlYmMzM2Y1NTkzM2UyNTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3hyL1BsYXRmb3JtWFIuaApAQCAtMTE0LDEyICsxMTQsMTggQEAgcHVibGljOgogICAgICAgICAg
ICAgUHJvamVjdGlvbiBwcm9qZWN0aW9uID0geyBudWxscHRyIH07CiAgICAgICAgIH07CiAKKyAg
ICAgICAgc3RydWN0IFN0YWdlUGFyYW1ldGVycyB7CisgICAgICAgICAgICBpbnQgaWQgeyAwIH07
CisgICAgICAgICAgICBWZWN0b3I8V2ViQ29yZTo6RmxvYXRQb2ludD4gYm91bmRzOworICAgICAg
ICB9OworCiAgICAgICAgIGJvb2wgaXNUcmFja2luZ1ZhbGlkIHsgZmFsc2UgfTsKICAgICAgICAg
Ym9vbCBpc1Bvc2l0aW9uVmFsaWQgeyBmYWxzZSB9OwogICAgICAgICBib29sIGlzUG9zaXRpb25F
bXVsYXRlZCB7IGZhbHNlIH07CiAgICAgICAgIGxvbmcgcHJlZGljdGVkRGlzcGxheVRpbWUgeyAw
IH07CiAgICAgICAgIFBvc2Ugb3JpZ2luOwogICAgICAgICBPcHRpb25hbDxQb3NlPiBmbG9vclRy
YW5zZm9ybTsKKyAgICAgICAgU3RhZ2VQYXJhbWV0ZXJzIHN0YWdlUGFyYW1ldGVyczsKICAgICAg
ICAgVmVjdG9yPFZpZXc+IHZpZXdzOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmNwcAppbmRleCBjYjI2YzMw
YjUzNDllNTc0N2RiNzUwMzRlZDg4MjJjNzMyMTIzZWVmLi4yMDVlNzgzYmZiZDVkMDA3NjMzZDZl
NTY4NzFlNTg2OWY3NTQ1ZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94
ci9vcGVueHIvUGxhdGZvcm1YUk9wZW5YUi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0veHIvb3BlbnhyL1BsYXRmb3JtWFJPcGVuWFIuY3BwCkBAIC0xNDMsNiArMTQzLDggQEAgdm9p
ZCBPcGVuWFJEZXZpY2U6OmluaXRpYWxpemVSZWZlcmVuY2VTcGFjZShQbGF0Zm9ybVhSOjpSZWZl
cmVuY2VTcGFjZVR5cGUgc3BhY2UKIHsKICAgICBpZiAoKHNwYWNlVHlwZSA9PSBSZWZlcmVuY2VT
cGFjZVR5cGU6OkxvY2FsRmxvb3IgfHwgc3BhY2VUeXBlID09IFJlZmVyZW5jZVNwYWNlVHlwZTo6
Qm91bmRlZEZsb29yKSAmJiBtX3N0YWdlU3BhY2UgPT0gWFJfTlVMTF9IQU5ETEUpCiAgICAgICAg
IG1fc3RhZ2VTcGFjZSA9IGNyZWF0ZVJlZmVyZW5jZVNwYWNlKFhSX1JFRkVSRU5DRV9TUEFDRV9U
WVBFX1NUQUdFKTsKKyAgICBpZiAoc3BhY2VUeXBlID09IFJlZmVyZW5jZVNwYWNlVHlwZTo6Qm91
bmRlZEZsb29yKQorICAgICAgICB1cGRhdGVTdGFnZVBhcmFtZXRlcnMoKTsKIH0KIAogdm9pZCBP
cGVuWFJEZXZpY2U6OnJlcXVlc3RGcmFtZShSZXF1ZXN0RnJhbWVDYWxsYmFjayYmIGNhbGxiYWNr
KQpAQCAtMTY5LDcgKzE3MSw3IEBAIHZvaWQgT3BlblhSRGV2aWNlOjpyZXF1ZXN0RnJhbWUoUmVx
dWVzdEZyYW1lQ2FsbGJhY2smJiBjYWxsYmFjaykKIAogICAgICAgICBEZXZpY2U6OkZyYW1lRGF0
YSBmcmFtZURhdGE7CiAgICAgICAgIGZyYW1lRGF0YS5wcmVkaWN0ZWREaXNwbGF5VGltZSA9IGZy
YW1lU3RhdGUucHJlZGljdGVkRGlzcGxheVRpbWU7Ci0KKyAgICAgICAgZnJhbWVEYXRhLnN0YWdl
UGFyYW1ldGVycyA9IG1fc3RhZ2VQYXJhbWV0ZXJzOwogCiAgICAgICAgIEFTU0VSVChtX2NvbmZp
Z3VyYXRpb25WaWV3cy5jb250YWlucyhtX2N1cnJlbnRWaWV3Q29uZmlndXJhdGlvblR5cGUpKTsK
ICAgICAgICAgY29uc3QgYXV0byYgY29uZmlndXJhdGlvblZpZXcgPSBtX2NvbmZpZ3VyYXRpb25W
aWV3cy5nZXQobV9jdXJyZW50Vmlld0NvbmZpZ3VyYXRpb25UeXBlKTsKQEAgLTI1Niw4ICsyNTgs
OSBAQCBEZXZpY2U6Okxpc3RPZkVuYWJsZWRGZWF0dXJlcyBPcGVuWFJEZXZpY2U6OmNvbGxlY3RF
bmFibGVkRmVhdHVyZXMoKQogICAgIC8vIFRoZSBzcGVjIHVzZXMgYSBlc3RpbWF0ZWQgaGVpZ2h0
IGlmIHdlIGRvbid0IHByb3ZpZGUgYSBmbG9vciB0cmFuc2Zvcm0gaW4gZnJhbWVEYXRhLgogICAg
IGZlYXR1cmVzLmFwcGVuZChSZWZlcmVuY2VTcGFjZVR5cGU6OkxvY2FsRmxvb3IpOwogCi0gICAg
Ly8gRklYTUU6IEVuYWJsZSBCb3VuZGVkRmxvb3Igd2hlbiB3ZSBpbXBsZW1lbnQgeHJHZXRSZWZl
cmVuY2VTcGFjZUJvdW5kc1JlY3QgYW5kIHRoZSByZWxhdGVkIGJpdHMgaW4gdGhlIERPTS4KLSAg
ICAvLyBlbmFibGVkRmVhdHVyZXMuYXBwZW5kKFJlZmVyZW5jZVNwYWNlVHlwZTo6Qm91bmRlZEZs
b29yKTsKKyAgICAvLyBNYXJrIEJvdW5kZWRGbG9vciBhcyBzdXBwb3J0ZWQgcmVnYXJkbGVzcyBp
ZiBYUl9SRUZFUkVOQ0VfU1BBQ0VfVFlQRV9TVEFHRSBpcyBhdmFpbGFibGUuCisgICAgLy8gVGhl
IHNwZWMgYWxsb3dzIHJlcG9ydGluZyBhbiBlbXB0eSBhcnJheSBpZiB4ckdldFJlZmVyZW5jZVNw
YWNlQm91bmRzUmVjdCBmYWlscy4KKyAgICBmZWF0dXJlcy5hcHBlbmQoUmVmZXJlbmNlU3BhY2VU
eXBlOjpCb3VuZGVkRmxvb3IpOwogCiAgICAgaWYgKG1fZXh0ZW5zaW9ucy5pc0V4dGVuc2lvblN1
cHBvcnRlZChYUl9NU0ZUX1VOQk9VTkRFRF9SRUZFUkVOQ0VfU1BBQ0VfRVhURU5TSU9OX05BTUUp
KQogICAgICAgICBmZWF0dXJlcy5hcHBlbmQoUmVmZXJlbmNlU3BhY2VUeXBlOjpVbmJvdW5kZWQp
OwpAQCAtMzU0LDE0ICszNTcsMTkgQEAgdm9pZCBPcGVuWFJEZXZpY2U6OnBvbGxFdmVudHMoKQog
ICAgIHdoaWxlICh4clBvbGxFdmVudChtX2luc3RhbmNlLCAmcnVudGltZUV2ZW50KSA9PSBYUl9T
VUNDRVNTKSB7CiAgICAgICAgIHN3aXRjaCAocnVudGltZUV2ZW50LnR5cGUpIHsKICAgICAgICAg
Y2FzZSBYUl9UWVBFX0VWRU5UX0RBVEFfU0VTU0lPTl9TVEFURV9DSEFOR0VEOiB7Ci0gICAgICAg
ICAgICBhdXRvKiBldmVudCA9IChYckV2ZW50RGF0YVNlc3Npb25TdGF0ZUNoYW5nZWQqKSZydW50
aW1lRXZlbnQ7CisgICAgICAgICAgICBhdXRvKiBldmVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8WHJF
dmVudERhdGFTZXNzaW9uU3RhdGVDaGFuZ2VkKj4oJnJ1bnRpbWVFdmVudCk7CiAgICAgICAgICAg
ICBtX3Nlc3Npb25TdGF0ZSA9IGV2ZW50LT5zdGF0ZTsKICAgICAgICAgICAgIGhhbmRsZVNlc3Np
b25TdGF0ZUNoYW5nZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBYUl9UWVBFX0VWRU5UX0RBVEFfRVZFTlRTX0xPU1Q6CiAgICAgICAgIGNhc2UgWFJfVFlQ
RV9FVkVOVF9EQVRBX0lOU1RBTkNFX0xPU1NfUEVORElORzoKLSAgICAgICAgY2FzZSBYUl9UWVBF
X0VWRU5UX0RBVEFfUkVGRVJFTkNFX1NQQUNFX0NIQU5HRV9QRU5ESU5HOgorICAgICAgICBjYXNl
IFhSX1RZUEVfRVZFTlRfREFUQV9SRUZFUkVOQ0VfU1BBQ0VfQ0hBTkdFX1BFTkRJTkc6IHsKKyAg
ICAgICAgICAgIGF1dG8qIGV2ZW50ID0gcmVpbnRlcnByZXRfY2FzdDxYckV2ZW50RGF0YVJlZmVy
ZW5jZVNwYWNlQ2hhbmdlUGVuZGluZyo+KCZydW50aW1lRXZlbnQpOworICAgICAgICAgICAgaWYg
KGV2ZW50LT5yZWZlcmVuY2VTcGFjZVR5cGUgPT0gWFJfUkVGRVJFTkNFX1NQQUNFX1RZUEVfU1RB
R0UpCisgICAgICAgICAgICAgICAgdXBkYXRlU3RhZ2VQYXJhbWV0ZXJzKCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBjYXNlIFhSX1RZUEVfRVZFTlRfREFUQV9JTlRF
UkFDVElPTl9QUk9GSUxFX0NIQU5HRUQ6CiAgICAgICAgIGNhc2UgWFJfVFlQRV9FVkVOVF9EQVRB
X01BSU5fU0VTU0lPTl9WSVNJQklMSVRZX0NIQU5HRURfRVhUWDoKICAgICAgICAgY2FzZSBYUl9U
WVBFX0VWRU5UX0RBVEFfVklTSUJJTElUWV9NQVNLX0NIQU5HRURfS0hSOgpAQCAtNDEzLDYgKzQy
MSwxMCBAQCB2b2lkIE9wZW5YUkRldmljZTo6cmVzZXRTZXNzaW9uKCkKICAgICAgICAgbV9zZXNz
aW9uID0gWFJfTlVMTF9IQU5ETEU7CiAgICAgfQogICAgIG1fc2Vzc2lvblN0YXRlID0gWFJfU0VT
U0lPTl9TVEFURV9VTktOT1dOOworICAgIG1fbG9jYWxTcGFjZSA9IFhSX05VTExfSEFORExFOwor
ICAgIG1fdmlld1NwYWNlICA9IFhSX05VTExfSEFORExFOworICAgIG1fc3RhZ2VTcGFjZSA9IFhS
X05VTExfSEFORExFOworICAgIG1fc3RhZ2VQYXJhbWV0ZXJzID0geyB9OwogCiAgICAgLy8gZGVh
bGxvY2F0ZSBncmFwaGljIHJlc291cmNlcwogICAgIG1fZWdsLnJlc2V0KCk7CkBAIC00MzAsNyAr
NDQyLDYgQEAgdm9pZCBPcGVuWFJEZXZpY2U6OmhhbmRsZVNlc3Npb25TdGF0ZUNoYW5nZSgpCiAg
ICAgfQogfQogCi0KIHZvaWQgT3BlblhSRGV2aWNlOjp3YWl0VW50aWxTdG9wcGluZygpCiB7CiAg
ICAgQVNTRVJUKCZSdW5Mb29wOjpjdXJyZW50KCkgPT0gJm1fcXVldWUucnVuTG9vcCgpKTsKQEAg
LTQ0Miw2ICs0NTMsMzIgQEAgdm9pZCBPcGVuWFJEZXZpY2U6OndhaXRVbnRpbFN0b3BwaW5nKCkK
ICAgICB9KTsKIH0KIAordm9pZCBPcGVuWFJEZXZpY2U6OnVwZGF0ZVN0YWdlUGFyYW1ldGVycygp
Cit7CisgICAgQVNTRVJUKCZSdW5Mb29wOjpjdXJyZW50KCkgPT0gJm1fcXVldWUucnVuTG9vcCgp
KTsKKyAgICBpZiAobV9zdGFnZVNwYWNlID09IFhSX05VTExfSEFORExFKQorICAgICAgICByZXR1
cm47IC8vIFN0YWdlIHNwYWNlIG5vdCByZXF1ZXN0ZWQuCisKKyAgICBtX3N0YWdlUGFyYW1ldGVy
cy5pZCsrOworCisgICAgWHJFeHRlbnQyRGYgYm91bmRzOworICAgIGlmIChYUl9TVUNDRUVERUQo
eHJHZXRSZWZlcmVuY2VTcGFjZUJvdW5kc1JlY3QobV9zZXNzaW9uLCBYUl9SRUZFUkVOQ0VfU1BB
Q0VfVFlQRV9TVEFHRSwgJmJvdW5kcykpKSB7CisgICAgICAgIC8vIGh0dHBzOi8vaW1tZXJzaXZl
LXdlYi5naXRodWIuaW8vd2VieHIvI3hyYm91bmRlZHJlZmVyZW5jZXNwYWNlLW5hdGl2ZS1ib3Vu
ZHMtZ2VvbWV0cnkKKyAgICAgICAgLy8gUG9pbnRzIE1VU1QgYmUgZ2l2ZW4gaW4gYSBjbG9ja3dp
c2Ugb3JkZXIgYXMgdmlld2VkIGZyb20gYWJvdmUsIGxvb2tpbmcgdG93YXJkcyB0aGUgbmVnYXRp
dmUgZW5kIG9mIHRoZSBZIGF4aXMuCisgICAgICAgIG1fc3RhZ2VQYXJhbWV0ZXJzLmJvdW5kcyA9
IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFBvaW50PiB7CisgICAgICAgICAgICB7IGJvdW5kcy53aWR0
aCAqIDAuNWYsIC1ib3VuZHMuaGVpZ2h0ICogMC41ZiB9LAorICAgICAgICAgICAgeyBib3VuZHMu
d2lkdGggKiAwLjVmLCBib3VuZHMuaGVpZ2h0ICogMC41ZiB9LAorICAgICAgICAgICAgeyAtYm91
bmRzLndpZHRoICogMC41ZiwgYm91bmRzLmhlaWdodCAqIDAuNWYgfSwKKyAgICAgICAgICAgIHsg
LWJvdW5kcy53aWR0aCAqIDAuNWYsIC1ib3VuZHMuaGVpZ2h0ICogMC41ZiB9CisgICAgICAgIH07
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5p
by93ZWJ4ci8jZG9tLXhyYm91bmRlZHJlZmVyZW5jZXNwYWNlLWJvdW5kc2dlb21ldHJ5CisgICAg
ICAgIC8vIElmIHRoZSBuYXRpdmUgYm91bmRzIGdlb21ldHJ5IGlzIHRlbXBvcmFyaWx5IHVuYXZh
aWxhYmxlLCB3aGljaCBtYXkgb2NjdXIgZm9yIHNldmVyYWwgcmVhc29ucyBzdWNoIGFzIGR1cmlu
ZyBYUiBkZXZpY2UgaW5pdGlhbGl6YXRpb24sCisgICAgICAgIC8vIGV4dGVuZGVkIHBlcmlvZHMg
b2YgdHJhY2tpbmcgbG9zcywgb3IgbW92ZW1lbnQgYmV0d2VlbiBwcmUtY29uZmlndXJlZCBzcGFj
ZXMsIHRoZSBib3VuZHNHZW9tZXRyeSBNVVNUIHJlcG9ydCBhbiBlbXB0eSBhcnJheS4KKyAgICAg
ICAgbV9zdGFnZVBhcmFtZXRlcnMuYm91bmRzLmNsZWFyKCk7CisgICAgfQorfQorCiB9IC8vIG5h
bWVzcGFjZSBQbGF0Zm9ybVhSCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpICYmIFVTRShPUEVO
WFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZv
cm1YUk9wZW5YUi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3Jt
WFJPcGVuWFIuaAppbmRleCAzMTc4MzY5MWY0YTkzYmJiZDQ4MDc5MTZiZDU2OWJjNjYwN2M5MTRj
Li5lNmFiMTg0ZjEyZTRmNTc2NThiZDhkNjZmOTk2MWI2OWFmZGRkNTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUk9wZW5YUi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmgKQEAg
LTY5LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0U2Vzc2lvbigpOwogICAgIHZv
aWQgaGFuZGxlU2Vzc2lvblN0YXRlQ2hhbmdlKCk7CiAgICAgdm9pZCB3YWl0VW50aWxTdG9wcGlu
ZygpOworICAgIHZvaWQgdXBkYXRlU3RhZ2VQYXJhbWV0ZXJzKCk7CiAKICAgICBYckluc3RhbmNl
IG1faW5zdGFuY2U7CiAgICAgWHJTeXN0ZW1JZCBtX3N5c3RlbUlkOwpAQCAtODcsNiArODgsNyBA
QCBwcml2YXRlOgogICAgIFhyU3BhY2UgbV9sb2NhbFNwYWNlIHsgWFJfTlVMTF9IQU5ETEUgfTsK
ICAgICBYclNwYWNlIG1fdmlld1NwYWNlIHsgWFJfTlVMTF9IQU5ETEUgfTsKICAgICBYclNwYWNl
IG1fc3RhZ2VTcGFjZSB7IFhSX05VTExfSEFORExFIH07CisgICAgRGV2aWNlOjpGcmFtZURhdGE6
OlN0YWdlUGFyYW1ldGVycyBtX3N0YWdlUGFyYW1ldGVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBsYXRmb3JtWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhS
RGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcApp
bmRleCA3ZTRhOWRjY2YzMWQ5YWE0M2NjOWJhNGZjNjNkNTM5NGJmZjQ1NDIzLi44MTQ5MDEyOWRj
YmEwZWIyNmQ1YTMyNzA3N2NiZDQ3NjVjYjhkOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9XZWJGYWtlWFJEZXZpY2UuY3BwCkBAIC01OSw2ICs1OSwxNCBAQCBTaW11bGF0ZWRYUkRldmlj
ZTo6flNpbXVsYXRlZFhSRGV2aWNlKCkKICAgICBzdG9wVGltZXIoKTsKIH0KIAordm9pZCBTaW11
bGF0ZWRYUkRldmljZTo6c2V0TmF0aXZlQm91bmRzR2VvbWV0cnkoY29uc3QgVmVjdG9yPEZha2VY
UkJvdW5kc1BvaW50PiYgZ2VvbWV0cnkpCit7CisgICAgbV9zdGFnZVBhcmFtZXRlcnMuaWQrKzsK
KyAgICBtX3N0YWdlUGFyYW1ldGVycy5ib3VuZHMuY2xlYXIoKTsKKyAgICBmb3IgKGF1dG8mIHBv
aW50IDogZ2VvbWV0cnkpCisgICAgICAgIG1fc3RhZ2VQYXJhbWV0ZXJzLmJvdW5kcy5hcHBlbmQo
eyBzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnQueCksIHN0YXRpY19jYXN0PGZsb2F0Pihwb2ludC56
KSB9KTsKK30KKwogdm9pZCBTaW11bGF0ZWRYUkRldmljZTo6c2ltdWxhdGVTaHV0ZG93bkNvbXBs
ZXRlZCgpCiB7CiAgICAgaWYgKG1fdHJhY2tpbmdBbmRSZW5kZXJpbmdDbGllbnQpCkBAIC0xMDAs
NiArMTA4LDggQEAgdm9pZCBTaW11bGF0ZWRYUkRldmljZTo6ZnJhbWVUaW1lckZpcmVkKCkKICAg
ICBpZiAobV9mbG9vck9yaWdpbikKICAgICAgICAgZGF0YS5mbG9vclRyYW5zZm9ybSA9IHsgKm1f
Zmxvb3JPcmlnaW4gfTsKIAorICAgIGRhdGEuc3RhZ2VQYXJhbWV0ZXJzID0gbV9zdGFnZVBhcmFt
ZXRlcnM7CisKICAgICBmb3IgKGF1dG8mIGZha2VWaWV3IDogbV92aWV3cykgewogICAgICAgICBG
cmFtZURhdGE6OlZpZXcgdmlldzsKICAgICAgICAgdmlldy5vZmZzZXQgPSBmYWtlVmlldy0+b2Zm
c2V0KCk7CkBAIC0xODIsOSArMTkyLDEyIEBAIHZvaWQgV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0
ZVZpc2liaWxpdHlDaGFuZ2UoWFJWaXNpYmlsaXR5U3RhdGUpCiB7CiB9CiAKLXZvaWQgV2ViRmFr
ZVhSRGV2aWNlOjpzZXRCb3VuZHNHZW9tZXRyeShWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+JiYp
Cit2b2lkIFdlYkZha2VYUkRldmljZTo6c2V0Qm91bmRzR2VvbWV0cnkoVmVjdG9yPEZha2VYUkJv
dW5kc1BvaW50PiYmIGJvdW5kcykKIHsKLX0KKyAgICBtX2RldmljZS5zY2hlZHVsZU9uTmV4dEZy
YW1lKFt0aGlzLCBib3VuZHMgPSBXVEZNb3ZlKGJvdW5kcyldKCkgeworICAgICAgICBtX2Rldmlj
ZS5zZXROYXRpdmVCb3VuZHNHZW9tZXRyeShib3VuZHMpOworICAgIH0pOworfSAKIAogdm9pZCBX
ZWJGYWtlWFJEZXZpY2U6OnNldEZsb29yT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBv
cmlnaW4pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRl
dmljZS5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaAppbmRleCBj
NWE1ZDE0NGQwMTJmNWYwMmJlMjIzOGFiMmFlMjAzMDRhMjllMWNlLi5lMTI3YzA1OWQzMTg2NGI0
YzhkMDgyNjNmZDFkMjlmY2E0MzUxYzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL1dlYkZha2VYUkRldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFr
ZVhSRGV2aWNlLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIFNpbXVsYXRlZFhSRGV2
aWNlKCk7CiAgICAgflNpbXVsYXRlZFhSRGV2aWNlKCk7CiAgICAgdm9pZCBzZXRWaWV3cyhWZWN0
b3I8UmVmPEZha2VYUlZpZXc+PiYmIHZpZXdzKSB7IG1fdmlld3MgPSBXVEZNb3ZlKHZpZXdzKTsg
fQotICAgIHZvaWQgc2V0TmF0aXZlQm91bmRzR2VvbWV0cnkoY29uc3QgVmVjdG9yPEZha2VYUkJv
dW5kc1BvaW50PiYgZ2VvbWV0cnkpIHsgbV9uYXRpdmVCb3VuZHNHZW9tZXRyeSA9IGdlb21ldHJ5
OyB9CisgICAgdm9pZCBzZXROYXRpdmVCb3VuZHNHZW9tZXRyeShjb25zdCBWZWN0b3I8RmFrZVhS
Qm91bmRzUG9pbnQ+Jik7CiAgICAgdm9pZCBzZXRWaWV3ZXJPcmlnaW4oT3B0aW9uYWw8RnJhbWVE
YXRhOjpQb3NlPiYmIG9yaWdpbikgeyBtX3ZpZXdlck9yaWdpbiA9IFdURk1vdmUob3JpZ2luKTsg
fQogICAgIHZvaWQgc2V0Rmxvb3JPcmlnaW4oT3B0aW9uYWw8RnJhbWVEYXRhOjpQb3NlPiYmIG9y
aWdpbikgeyBtX2Zsb29yT3JpZ2luID0gV1RGTW92ZShvcmlnaW4pOyB9CiAgICAgdm9pZCBzZXRF
bXVsYXRlZFBvc2l0aW9uKGJvb2wgZW11bGF0ZWQpIHsgbV9lbXVsYXRlZFBvc2l0aW9uID0gZW11
bGF0ZWQ7IH0KQEAgLTEwMCw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fZnJhbWVU
aW1lcjsKICAgICBSZXF1ZXN0RnJhbWVDYWxsYmFjayBtX0ZyYW1lQ2FsbGJhY2s7CiAgICAgVmVj
dG9yPEZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1VwZGF0ZXM7CisgICAgRnJhbWVEYXRhOjpT
dGFnZVBhcmFtZXRlcnMgbV9zdGFnZVBhcmFtZXRlcnM7CiB9OwogCiBjbGFzcyBXZWJGYWtlWFJE
ZXZpY2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGYWtlWFJEZXZpY2U+IHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA2MDcyMGNjNDE2NjIwYmNkNGYxM2FlYjY2ZDY5ZGY4NjJiMzJmNzEwLi5jZGRkYzY4ODJjOThl
YTQyMThlNzZjMTVkNzliMTJjNWFkMTVlMTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEt
MDMtMDQgIEltYW5vbCBGZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIGJvdW5kcyBnZW9tZXRyeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNzM3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFdl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIHRlc3QgZXhwZWN0YXRpb25zLgorCisgICAgICAgICog
cGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDMtMDQgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRsZSB0aGUgY2FzZSBvZiBzeW5j
aHJvbm91cyBmYWlsdXJlIGluIGxvYWRpbmcgYmxvYi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IGE0ODA5YTZjMTAzYTYwMWM4ODVhMGEyN2MyMmE1YmE0YjQ5ZWNhOWUuLmI0MzAw
ZTg0MmFjZmZkOTA1ODI4YzEzOTNmNTRhZGZkMTEwNDM5NTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAzLTA0ICBJbWFub2wgRmVybmFuZGV6
ICA8aWZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZSBib3VuZHMgZ2VvbWV0cnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjczNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZSB0ZXN0IGV4cGVjdGF0aW9ucy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4
ci94ckJvdW5kZWRSZWZlcmVuY2VTcGFjZV91cGRhdGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisKIDIwMjEtMDMtMDQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgaW5pdGlhbCB2YWx1ZSBmb3IgYm9yZGVyLWltYWdlLW91dHNldCBzaG91bGQgYmUg
MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJ4ci94ckJvdW5kZWRSZWZlcmVuY2VTcGFjZV91cGRhdGVzLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJC
b3VuZGVkUmVmZXJlbmNlU3BhY2VfdXBkYXRlcy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjkxMDFkZGExMDVlOGQwN2Y5M2E3OWJhMmM2YTNiZDJjYzVmZTAxZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIv
eHJCb3VuZGVkUmVmZXJlbmNlU3BhY2VfdXBkYXRlcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgJ1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlIHVwZGF0ZXMgcHJvcGVy
bHkgd2hlbiB0aGUgY2hhbmdlcyBhcmUgYXBwbGllZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dw
ZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGNiOWZkODZkZjEyOGY1ODM2MmMwMWM3NmIwN2VkNzMx
Y2Q0NTYxM2IuLjJiY2UwMDQ4M2U2YWFhYTc0ZjBhZDBlODYxNTk4MTBjY2RhMzE4NWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC02MDYsNiArNjA2LDcg
QEAgd2Via2l0Lm9yZy9iLzIxMzEzMSBodHRwL3Rlc3RzL21pc2MvZ2FtZXBhZHMtaW5zZWN1cmUu
aHRtbCBbIFNraXAgXQogCiAjIFdlYlhSCiB3ZWJraXQub3JnL2IvMjEyODk3IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbCBb
IEZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94ckJvdW5k
ZWRSZWZlcmVuY2VTcGFjZV91cGRhdGVzLmh0dHBzLmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcv
Yi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci93ZWJHTENhbnZh
c0NvbnRleHRfY3JlYXRlX3hyY29tcGF0aWJsZS5odHRwcy5odG1sIFsgUGFzcyBdCiB3ZWJraXQu
b3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvd2ViR0xD
YW52YXNDb250ZXh0X21ha2Vjb21wYXRpYmxlX2NvbnRleHRsb3N0Lmh0dHBzLmh0bWwgWyBQYXNz
IF0KIHdlYmtpdC5vcmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJ4ci93ZWJHTENhbnZhc0NvbnRleHRfbWFrZWNvbXBhdGlibGVfcmVlbnRyYW50Lmh0dHBzLmh0
bWwgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422242</attachid>
            <date>2021-03-04 09:43:38 -0800</date>
            <delta_ts>2021-03-05 02:50:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222737-20210304184337.patch</filename>
            <type>text/plain</type>
            <size>33756</size>
            <attacher name="Imanol Fernandez">ifernandez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTliZjVjZTkyOGVmMzU1
YTdjM2QzZTIxMDk5ZTk0MTVhMjQxMWU5Yi4uNmMxYzczYzkyOWMxOTE4MGMyMjEzNWY2YmIyYmQx
NTFhYzFmMzM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTAzLTA0ICBJbWFu
b2wgRmVybmFuZGV6ICA8aWZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSBib3VuZHMgZ2VvbWV0cnkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjczNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhdmluZyBib3VuZHMgZ2VvbWV0
cnkgaW4gV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgZW5hYmxlcyBXZWJYUiByb29tLXNjYWxl
IGFwcGxpY2F0aW9ucy4gWFIgc3lzdGVtcyBtYXkgaGF2ZSBsaW1pdGVkCisgICAgICAgIHJlYWwg
d29ybGQgc3BhdGlhbCByYW5nZXMgaW4gd2hpY2ggdXNlcnMgY2FuIGZyZWVseSBtb3ZlIGFyb3Vu
ZCB3aGlsZSByZW1haW5pbmcgdHJhY2tlZC4gV2ViWFIgQXBwbGljYXRpb25zIGNhbiBxdWVyeQor
ICAgICAgICB0aGVzZSBib3VuZGFyaWVzIGFuZCBhbHRlciBhcHBsaWNhdGlvbiBiZWhhdmlvciBv
ciBjb250ZW50IHBsYWNlbWVudCB0byBlbnN1cmUgdGhlIHVzZXIgY2FuIGNvbXBsZXRlIHRoZSBl
eHBlcmllbmNlIHdoaWxlCisgICAgICAgIHJlbWFpbmluZyB3aXRoaW4gdGhlIGJvdW5kYXJ5Lgor
CisgICAgICAgIFRlc3RlZCBieSBXZWJYUiBXUFQgdGVzdHMuCisKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSk6IENhbGwgdXBkYXRl
SWZOZWVkZWQKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpn
ZXRPZmZzZXRSZWZlcmVuY2VTcGFjZSk6IFVzZSBFeGNlcHRpb24gaW5zdGVhZCBvZiBudWxsIFJl
ZlB0cjw+CisgICAgICAgIChXZWJDb3JlOjpXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6dXBk
YXRlSWZOZWVkZWQpOiBVcGRhdGVzIGJvdW5kc0dlb21ldHJ5IHZlY3RvciB3aGVuIGRhdGEgY2hh
bmdlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpxdWFu
dGl6ZSk6IFV0aWxpdHkgbWV0aG9kIHRvIGF2b2lkIGZpbmdlcnByaW50aW5nLgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaDoKKworICAgICAgICAq
IE1vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGQgQ3VzdG9t
VG9KU09iamVjdAorCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSUmVmZXJlbmNlU3BhY2U6OmdldE9mZnNldFJl
ZmVyZW5jZVNwYWNlKTogVXNlIEV4Y2VwdGlvbiBpbnN0ZWFkIG9mIG51bGwgUmVmUHRyPD4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsOiBBZGQgQ3VzdG9tVG9KU09iamVj
dAorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGw6IEFkZCBDdXN0b21Ub0pT
T2JqZWN0CisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkIEN1c3RvbVRvSlNPYmplY3QgaW1w
bGVtZW50YXRpb25zCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJYUlJlZmVyZW5jZVNwYWNl
Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViWFJT
cGFjZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKworICAgICAgICAqIHBsYXRmb3JtL3hyL1Bs
YXRmb3JtWFIuaDogQWRkIFN0YWdlUGFyYW1ldGVycyB0byBGcmFtZURhdGEuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUk9wZW5YUi5jcHA6IEltcGxlbWVudCBib3Vu
ZHNHZW9tZXRyeSB1c2luZyBPcGVuWFIuCisgICAgICAgIChQbGF0Zm9ybVhSOjpPcGVuWFJEZXZp
Y2U6OmluaXRpYWxpemVSZWZlcmVuY2VTcGFjZSk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpPcGVu
WFJEZXZpY2U6OnJlcXVlc3RGcmFtZSk6CisgICAgICAgIChQbGF0Zm9ybVhSOjpPcGVuWFJEZXZp
Y2U6OmNvbGxlY3RFbmFibGVkRmVhdHVyZXMpOgorICAgICAgICAoUGxhdGZvcm1YUjo6T3BlblhS
RGV2aWNlOjpwb2xsRXZlbnRzKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Ok9wZW5YUkRldmljZTo6
cmVzZXRTZXNzaW9uKToKKyAgICAgICAgKFBsYXRmb3JtWFI6Ok9wZW5YUkRldmljZTo6dXBkYXRl
U3RhZ2VQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1Y
Uk9wZW5YUi5oOgorCisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwOiBJbXBs
ZW1lbnQgYm91bmRzR2VvbWV0cnkgZm9yIHRlc3RzLgorICAgICAgICAoV2ViQ29yZTo6U2ltdWxh
dGVkWFJEZXZpY2U6OnNldE5hdGl2ZUJvdW5kc0dlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OlNpbXVsYXRlZFhSRGV2aWNlOjpmcmFtZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViRmFrZVhSRGV2aWNlOjpzZXRCb3VuZHNHZW9tZXRyeSk6CisgICAgICAgICogdGVzdGluZy9X
ZWJGYWtlWFJEZXZpY2UuaDoKKwogMjAyMS0wMy0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGNhbWVyYSBhbmQgbWljcm9waG9uZSBjYXB0dXJl
IHN0YXRlIGNvbnRyb2wgV0tXZWJWaWV3IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAppbmRleCA5
NGQ4OWMyYjUzMjIyYjY0M2MxYzgwMjg5YTI0Mjk2OTMzZDUxNmU5Li4wYTFhYmVhODgzZDdjY2U2
NGM4N2YzY2E2ODcxZWE2YTI5OTZmMDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcApAQCAtMzYs
NiArMzYsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBodHRwczovL2ltbWVyc2l2
ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN4cmJvdW5kZWRyZWZlcmVuY2VzcGFjZS1uYXRpdmUtYm91
bmRzLWdlb21ldHJ5CisvLyBJdCBpcyBzdWdnZXN0ZWQgdGhhdCBwb2ludHMgb2YgdGhlIG5hdGl2
ZSBib3VuZHMgZ2VvbWV0cnkgYmUgcXVhbnRpemVkIHRvIHRoZSBuZWFyZXN0IDVjbS4KK3N0YXRp
YyBjb25zdGV4cHIgZmxvYXQgQm91bmRzUHJlY2lzaW9uSW5NZXRlcnMgPSAwLjA1OyAKKy8vIEEg
dmFsaWQgcG9seWdvbiBoYXMgYXQgbGVhc3QgMyB2ZXJ0aWNlcy4KK3N0YXRpYyBjb25zdGV4cHIg
aW50IE1pbmltdW1Cb3VuZHNWZXJ0aWNlcyA9IDM7IAorCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UpOwogCiBSZWY8V2ViWFJCb3VuZGVkUmVm
ZXJlbmNlU3BhY2U+IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCBSZWY8V2ViWFJTZXNzaW9uPiYmIHNlc3Npb24sIFhSUmVmZXJlbmNlU3BhY2VU
eXBlIHR5cGUpCkBAIC00MywxMyArNDksMTEgQEAgUmVmPFdlYlhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlPiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZTo6Y3JlYXRlKERvY3VtZW50JiBkb2MKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZShkb2N1bWVu
dCwgV1RGTW92ZShzZXNzaW9uKSwgV2ViWFJSaWdpZFRyYW5zZm9ybTo6Y3JlYXRlKCksIHR5cGUp
KTsKIH0KIAotCiBSZWY8V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U+IFdlYlhSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8V2ViWFJTZXNzaW9u
PiYmIHNlc3Npb24sIFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiYmIG9mZnNldCwgWFJSZWZlcmVu
Y2VTcGFjZVR5cGUgdHlwZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZShkb2N1bWVudCwgV1RGTW92ZShzZXNzaW9uKSwgV1RGTW92ZShvZmZz
ZXQpLCB0eXBlKSk7CiB9CiAKLQogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6OldlYlhSQm91
bmRlZFJlZmVyZW5jZVNwYWNlKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPFdlYlhSU2Vzc2lvbj4m
JiBzZXNzaW9uLCBSZWY8V2ViWFJSaWdpZFRyYW5zZm9ybT4mJiBvZmZzZXQsIFhSUmVmZXJlbmNl
U3BhY2VUeXBlIHR5cGUpCiAgICAgOiBXZWJYUlJlZmVyZW5jZVNwYWNlKGRvY3VtZW50LCBXVEZN
b3ZlKHNlc3Npb24pLCBXVEZNb3ZlKG9mZnNldCksIHR5cGUpCiB7CkBAIC02NCwyNCArNjgsNTIg
QEAgVHJhbnNmb3JtYXRpb25NYXRyaXggV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U6Om5hdGl2
ZU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGZsb29yT3JpZ2luVHJhbnNmb3JtKCk7CiB9CiAK
LWNvbnN0IFZlY3RvcjxSZWY8RE9NUG9pbnRSZWFkT25seT4+JiBXZWJYUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZTo6Ym91bmRzR2VvbWV0cnkoKSBjb25zdAorY29uc3QgVmVjdG9yPFJlZjxET01Qb2lu
dFJlYWRPbmx5Pj4mIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpib3VuZHNHZW9tZXRyeSgp
CiB7Ci0gICAgLy8gRklYTUU6IGdldCBkYXRhIGZyb20gZGV2aWNlCisgICAgdXBkYXRlSWZOZWVk
ZWQoKTsKICAgICByZXR1cm4gbV9ib3VuZHNHZW9tZXRyeTsKIH0KIAotUmVmUHRyPFdlYlhSUmVm
ZXJlbmNlU3BhY2U+IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjpnZXRPZmZzZXRSZWZlcmVu
Y2VTcGFjZShjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiBvZmZzZXRUcmFuc2Zvcm0pCitFeGNl
cHRpb25PcjxSZWY8V2ViWFJSZWZlcmVuY2VTcGFjZT4+IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNw
YWNlOjpnZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShjb25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJiBv
ZmZzZXRUcmFuc2Zvcm0pCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVu
dD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBpZiAoIWRvY3VtZW50KQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH07CiAKICAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhy
LyNkb20teHJyZWZlcmVuY2VzcGFjZS1nZXRvZmZzZXRyZWZlcmVuY2VzcGFjZQogICAgIC8vIFNl
dCBvZmZzZXRTcGFjZeKAmXMgb3JpZ2luIG9mZnNldCB0byB0aGUgcmVzdWx0IG9mIG11bHRpcGx5
aW5nIGJhc2XigJlzIG9yaWdpbiBvZmZzZXQgYnkgb3JpZ2luT2Zmc2V0IGluIHRoZSByZWxldmFu
dCByZWFsbSBvZiBiYXNlLgogICAgIGF1dG8gb2Zmc2V0ID0gV2ViWFJSaWdpZFRyYW5zZm9ybTo6
Y3JlYXRlKG9yaWdpbk9mZnNldCgpLnJhd1RyYW5zZm9ybSgpICogb2Zmc2V0VHJhbnNmb3JtLnJh
d1RyYW5zZm9ybSgpKTsKIAotICAgIC8vIEZJWE1FOiBzZXQgb2Zmc2V0U3BhY2XigJlzIGJvdW5k
c0dlb21ldHJ5IHRvIGJhc2XigJlzIGJvdW5kc0dlb21ldHJ5LCB3aXRoIGVhY2ggcG9pbnQgbXVs
dGlwbGllZCBieSB0aGUgaW52ZXJzZSBvZiBvcmlnaW5PZmZzZXQuCi0gICAgcmV0dXJuIGNyZWF0
ZSgqZG9jdW1lbnQsIG1fc2Vzc2lvbi5jb3B5UmVmKCksIFdURk1vdmUob2Zmc2V0KSwgbV90eXBl
KTsKKyAgICByZXR1cm4geyBjcmVhdGUoKmRvY3VtZW50LCBtX3Nlc3Npb24uY29weVJlZigpLCBX
VEZNb3ZlKG9mZnNldCksIG1fdHlwZSkgfTsKK30KKworLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2Vi
LmdpdGh1Yi5pby93ZWJ4ci8jZG9tLXhyYm91bmRlZHJlZmVyZW5jZXNwYWNlLWJvdW5kc2dlb21l
dHJ5Cit2b2lkIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlOjp1cGRhdGVJZk5lZWRlZCgpCit7
CisgICAgYXV0byYgZnJhbWVEYXRhID0gbV9zZXNzaW9uLT5mcmFtZURhdGEoKTsKKyAgICBpZiAo
ZnJhbWVEYXRhLnN0YWdlUGFyYW1ldGVycy5pZCA9PSBtX2xhc3RVcGRhdGVJZCkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fbGFzdFVwZGF0ZUlkID0gZnJhbWVEYXRhLnN0YWdlUGFyYW1ldGVycy5p
ZDsKKworICAgIG1fYm91bmRzR2VvbWV0cnkuY2xlYXIoKTsKKworICAgIGlmIChmcmFtZURhdGEu
c3RhZ2VQYXJhbWV0ZXJzLmJvdW5kcy5zaXplKCkgPj0gTWluaW11bUJvdW5kc1ZlcnRpY2VzKSB7
CisgICAgICAgIC8vIEVhY2ggcG9pbnQgaGFzIHRvIG11bHRpcGxpZWQgYnkgdGhlIGludmVyc2Ug
b2Ygb3JpZ2luT2Zmc2V0LgorICAgICAgICBhdXRvIHRyYW5zZm9ybSA9IG9yaWdpbk9mZnNldCgp
LnJhd1RyYW5zZm9ybSgpLmludmVyc2UoKS52YWx1ZU9yKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkp
OworICAgICAgICBmb3IgKGF1dG8mIHBvaW50IDogZnJhbWVEYXRhLnN0YWdlUGFyYW1ldGVycy5i
b3VuZHMpIHsKKyAgICAgICAgICAgIGF1dG8gbWFwcGVkUG9pbnQgPSB0cmFuc2Zvcm0ubWFwUG9p
bnQocG9pbnQpOworICAgICAgICAgICAgLy8gVGhlIHkgdmFsdWUgb2YgZWFjaCBwb2ludCBNVVNU
IGJlIDAuCisgICAgICAgICAgICBtX2JvdW5kc0dlb21ldHJ5LmFwcGVuZChET01Qb2ludFJlYWRP
bmx5OjpjcmVhdGUocXVhbnRpemUobWFwcGVkUG9pbnQueCgpKSwgMC4wLCBxdWFudGl6ZShtYXBw
ZWRQb2ludC55KCkpLCAxLjApKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gaHR0cHM6Ly9p
bW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jcXVhbnRpemF0aW9uCitmbG9hdCBXZWJYUkJv
dW5kZWRSZWZlcmVuY2VTcGFjZTo6cXVhbnRpemUoZmxvYXQgdmFsdWUpCit7CisgICAgLy8gRWFj
aCBwb2ludCBpbiB0aGUgbmF0aXZlIGJvdW5kcyBnZW9tZXRyeSBNVVNUIGFsc28gYmUgcXVhbnRp
emVkIHN1ZmZpY2llbnRseSB0byBwcmV2ZW50IGZpbmdlcnByaW50aW5nLgorICAgIC8vIEZvciB1
c2Vy4oCZcyBzYWZldHksIHF1YW50aXplZCBwb2ludHMgdmFsdWVzIE1VU1QgTk9UIGZhbGwgb3V0
c2lkZSB0aGUgYm91bmRzIHJlcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybS4KKyAgICByZXR1cm4gc3Rk
OjpmbG9vcih2YWx1ZSAvIEJvdW5kc1ByZWNpc2lvbkluTWV0ZXJzKSAqIEJvdW5kc1ByZWNpc2lv
bkluTWV0ZXJzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmgK
aW5kZXggNzE0ODUyMDFiN2Q3YTk1MDZiOWRmYjNmOWFkZTQ3NGE1YmIxOTU3YS4uNzZlMDk2YWE5
Y2M3ZDQ2YzRkODA0MTAzZTU3YWVjNGZjY2JiYTc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaApAQCAt
NDUsMTkgKzQ1LDI2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJYUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZSgpOwogCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbmF0aXZlT3JpZ2luKCkgY29u
c3QgZmluYWw7Ci0gICAgY29uc3QgVmVjdG9yPFJlZjxET01Qb2ludFJlYWRPbmx5Pj4mIGJvdW5k
c0dlb21ldHJ5KCkgY29uc3Q7Ci0gICAgUmVmUHRyPFdlYlhSUmVmZXJlbmNlU3BhY2U+IGdldE9m
ZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mKSBmaW5hbDsKKyAg
ICBjb25zdCBWZWN0b3I8UmVmPERPTVBvaW50UmVhZE9ubHk+PiYgYm91bmRzR2VvbWV0cnkoKTsK
KyAgICBFeGNlcHRpb25PcjxSZWY8V2ViWFJSZWZlcmVuY2VTcGFjZT4+IGdldE9mZnNldFJlZmVy
ZW5jZVNwYWNlKGNvbnN0IFdlYlhSUmlnaWRUcmFuc2Zvcm0mKSBmaW5hbDsKIAogcHJpdmF0ZToK
ICAgICBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZShEb2N1bWVudCYsIFJlZjxXZWJYUlNlc3Np
b24+JiYsIFJlZjxXZWJYUlJpZ2lkVHJhbnNmb3JtPiYmLCBYUlJlZmVyZW5jZVNwYWNlVHlwZSk7
CiAKICAgICBib29sIGlzQm91bmRlZFJlZmVyZW5jZVNwYWNlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gdHJ1ZTsgfQogCisgICAgdm9pZCB1cGRhdGVJZk5lZWRlZCgpOworICAgIGZsb2F0IHF1YW50
aXplKGZsb2F0KTsKKwogICAgIFZlY3RvcjxSZWY8RE9NUG9pbnRSZWFkT25seT4+IG1fYm91bmRz
R2VvbWV0cnk7CisgICAgaW50IG1fbGFzdFVwZGF0ZUlkIHsgLTEgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19XRUJYUlNQQUNFKFdlYlhS
Qm91bmRlZFJlZmVyZW5jZVNwYWNlLCBpc0JvdW5kZWRSZWZlcmVuY2VTcGFjZSgpKQorU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6V2ViWFJSZWZlcmVuY2VT
cGFjZSYgZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5pc0JvdW5kZWRSZWZlcmVuY2VTcGFjZSgp
OyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OldlYlhSU3BhY2UmIGVs
ZW1lbnQpIHsgcmV0dXJuIGlzPFdlYkNvcmU6OldlYlhSUmVmZXJlbmNlU3BhY2U+KGVsZW1lbnQp
ICYmIGlzVHlwZShkb3duY2FzdDxXZWJDb3JlOjpXZWJYUlJlZmVyZW5jZVNwYWNlPihlbGVtZW50
KSk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKIAogI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwKaW5kZXggZDViODgzMzc0MjNkMDZhYTlmYTRkNTU0
MWI2YzUxMDRmMGU0N2U0ZC4uNDM5NGNlNGY4MWVjNGIzNTQyMTg3YTQ4ODAxMjk3MWEwMGVjNDMw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwKQEAgLTI3LDYgKzI3LDggQEAKICAgICBFbmFibGVk
QXRSdW50aW1lPVdlYlhSLAogICAgIENvbmRpdGlvbmFsPVdFQlhSLAogICAgIFNlY3VyZUNvbnRl
eHQsCisgICAgQ3VzdG9tVG9KU09iamVjdCwKKyAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3Qs
CiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSW50ZXJmYWNlTmFtZT1YUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZQogXSBpbnRlcmZhY2UgV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UgOiBXZWJYUlJl
ZmVyZW5jZVNwYWNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJSZWZlcmVuY2VTcGFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSUmVmZXJlbmNlU3BhY2UuY3BwCmluZGV4IDk1MjBlNWU3YjBlM2YyZGQyMzg0YjAwNTNjZTgz
ODQ2NDcyZmMxYWEuLjgwODNkM2RlMWQyMDRhOWY3ODU2NGYyMDlmMzBjMmYyZTg2ODVkZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNw
YWNlLmNwcApAQCAtOTUsMTEgKzk1LDExIEBAIFRyYW5zZm9ybWF0aW9uTWF0cml4IFdlYlhSUmVm
ZXJlbmNlU3BhY2U6Om5hdGl2ZU9yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGlkZW50aXR5Owog
fQogCi1SZWZQdHI8V2ViWFJSZWZlcmVuY2VTcGFjZT4gV2ViWFJSZWZlcmVuY2VTcGFjZTo6Z2V0
T2Zmc2V0UmVmZXJlbmNlU3BhY2UoY29uc3QgV2ViWFJSaWdpZFRyYW5zZm9ybSYgb2Zmc2V0VHJh
bnNmb3JtKQorRXhjZXB0aW9uT3I8UmVmPFdlYlhSUmVmZXJlbmNlU3BhY2U+PiBXZWJYUlJlZmVy
ZW5jZVNwYWNlOjpnZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShjb25zdCBXZWJYUlJpZ2lkVHJhbnNm
b3JtJiBvZmZzZXRUcmFuc2Zvcm0pCiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBpZiAoIWRvY3VtZW50KQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yIH07CiAKICAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlv
L3dlYnhyLyNkb20teHJyZWZlcmVuY2VzcGFjZS1nZXRvZmZzZXRyZWZlcmVuY2VzcGFjZQogICAg
IC8vIFNldCBvZmZzZXRTcGFjZeKAmXMgb3JpZ2luIG9mZnNldCB0byB0aGUgcmVzdWx0IG9mIG11
bHRpcGx5aW5nIGJhc2XigJlzIG9yaWdpbiBvZmZzZXQgYnkgb3JpZ2luT2Zmc2V0IGluIHRoZSBy
ZWxldmFudCByZWFsbSBvZiBiYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaAppbmRleCBkNTAyMjliOTI1MzI2ZmY4ZTczOWNjNThl
ODM4ZTM4ZGZhM2I5OTI0Li45MzQ5NTY0MWQxNDMwZGZjY2EzMzI4OTBlOGMxZDM5Y2ZjNTg0MGRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNl
U3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNl
U3BhY2UuaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJYUlNlc3Npb24mIHNl
c3Npb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KICAgICBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBuYXRpdmVPcmlnaW4oKSBjb25zdCBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIFJlZlB0cjxXZWJYUlJlZmVyZW5jZVNwYWNlPiBnZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShj
b25zdCBXZWJYUlJpZ2lkVHJhbnNmb3JtJik7CisgICAgdmlydHVhbCBFeGNlcHRpb25PcjxSZWY8
V2ViWFJSZWZlcmVuY2VTcGFjZT4+IGdldE9mZnNldFJlZmVyZW5jZVNwYWNlKGNvbnN0IFdlYlhS
UmlnaWRUcmFuc2Zvcm0mKTsKICAgICBYUlJlZmVyZW5jZVNwYWNlVHlwZSB0eXBlKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlOyB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnhyL1dlYlhSUmVmZXJlbmNlU3BhY2UuaWRsCmluZGV4IDgxZTQ0ZDM0ZGEx
NjdiOGZlNmRiMjM0YzI0MGM5Mzg1NjM1MjU5MGQuLmFmNTM5ZGE0ODIzZGZjZjljY2ZmNjlhMDVk
NjY5OGM2OTg2YzhiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJSZWZlcmVuY2VTcGFjZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUlJlZmVyZW5jZVNwYWNlLmlkbApAQCAtMjgsMTIgKzI4LDEyIEBACiAgICAgQ29uZGl0
aW9uYWw9V0VCWFIsCiAgICAgU2VjdXJlQ29udGV4dCwKICAgICBFeHBvc2VkPVdpbmRvdywKLSAg
ICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgIEpTR2Vu
ZXJhdGVUb05hdGl2ZU9iamVjdCwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBJbnRl
cmZhY2VOYW1lPVhSUmVmZXJlbmNlU3BhY2UKIF0gaW50ZXJmYWNlIFdlYlhSUmVmZXJlbmNlU3Bh
Y2UgOiBXZWJYUlNwYWNlIHsKLSAgICBbTmV3T2JqZWN0XSBXZWJYUlJlZmVyZW5jZVNwYWNlIGdl
dE9mZnNldFJlZmVyZW5jZVNwYWNlKFdlYlhSUmlnaWRUcmFuc2Zvcm0gb3JpZ2luT2Zmc2V0KTsK
KyAgICBbTmV3T2JqZWN0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gV2ViWFJSZWZlcmVuY2VTcGFjZSBn
ZXRPZmZzZXRSZWZlcmVuY2VTcGFjZShXZWJYUlJpZ2lkVHJhbnNmb3JtIG9yaWdpbk9mZnNldCk7
CiAKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ucmVzZXQ7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwKaW5kZXggYmI3OTRmMThiMjMzMTcwNjc2
ZDFkNTQ5OWI5YTE3MTE2YWVlN2NiMS4uZTM0YjcxMjdhZmQ0ZTliZWU2OWMzZmYyM2RlN2I2MTRk
ZjgyYTZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlNw
YWNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaWRs
CkBAIC0yNiw2ICsyNiw3IEBACiBbCiAgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKICAgICBD
b25kaXRpb25hbD1XRUJYUiwKKyAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgIFNlY3VyZUNvbnRl
eHQsCiAgICAgRXhwb3NlZD1XaW5kb3csCiAgICAgSW50ZXJmYWNlTmFtZT1YUlNwYWNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDcyZGU2ZDE2ZDhmNGJkYTdjNDk3MmRkODBmYTlkMTBlNzA4NTBkZDQuLmI0
YjY1NmI0ZjYyNThlMDZiNmQ4MDJhOWI0MTRhMGNhNmZmNTZiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC02MTgsNiArNjE4LDggQEAgYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5jcHAK
IGJpbmRpbmdzL2pzL0pTV2ViQW5pbWF0aW9uQ3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJH
TDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCitiaW5kaW5ncy9qcy9KU1dlYlhSUmVmZXJlbmNlU3BhY2VDdXN0
b20uY3BwCitiaW5kaW5ncy9qcy9KU1dlYlhSU3BhY2VDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9K
U1dpbmRvd1Byb3h5LmNwcAogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3Bw
CiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY5NDQ0NzZh
ZWQ3NGNhOGI4MTI1MjkwYjJmMTFiZWFkNmY5ODA4YjYuLjBjOTA5YjhiOWRjMzMzOWEyZjdiNTZh
ODYyMmU3MTE4ZTk0ZDJkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNTAsNiArNjM1MCw4IEBACiAJCTExQ0IyNzg2MjAz
QkE1NzAwMDRBMURDOSAvKiBSZW5kZXJUcmVlQnVpbGRlckZ1bGxTY3JlZW4uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTFDQjI3ODcyMDNCQTU3MDAwNEExREM5IC8qIFJlbmRlclRyZWVC
dWlsZGVyRnVsbFNjcmVlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlckZ1bGxT
Y3JlZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTFEMTlDMkUyMzE1OUJBRTAw
OEYyNEQzIC8qIFRhYmxlRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxMUU2Q0YxQjI1RjE0MEUzMDAxM0QzRDUgLyogSlNXZWJYUlJlZmVy
ZW5jZVNwYWNlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViWFJSZWZlcmVuY2VTcGFjZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTExRTZDRjFEMjVGMTQwRTQwMDEzRDNENSAvKiBKU1dlYlhSU3BhY2VDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJYUlNwYWNlQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTFGRjAyRDUyMEJBM0M4MTAwODNG
MjVCIC8qIFZlcmlmaWNhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWZXJpZmljYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMkY3NUE5QTg2RUEwM0RBRjI0Qjc5
NzEgLyogSVNPUHJvdGVjdGlvblN5c3RlbVNwZWNpZmljSGVhZGVyQm94LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElTT1Byb3RlY3Rpb25TeXN0ZW1TcGVjaWZpY0hlYWRlckJv
eC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDAwRDdBNzE3MTM2RUE3MDA3N0NF
MDUgLyogU2NyaXB0V3JhcHBhYmxlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHRXcmFwcGFibGVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMjg3Niw2ICsyMjg3OCw4IEBACiAJCQkJNzE1REE1RDMyMDFCQjkwMjAwMkVGMkIw
IC8qIEpTV2ViQW5pbWF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlEM0YzRDM1OTFBNjlBM0IwMDA1
OUZDMkIgLyogSlNXZWJHTDJSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVF
RDE0QzEwNTE5NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
ICovLAorCQkJCTExRTZDRjFCMjVGMTQwRTMwMDEzRDNENSAvKiBKU1dlYlhSUmVmZXJlbmNlU3Bh
Y2VDdXN0b20uY3BwICovLAorCQkJCTExRTZDRjFEMjVGMTQwRTQwMDEzRDNENSAvKiBKU1dlYlhS
U3BhY2VDdXN0b20uY3BwICovLAogCQkJCUUxODI1OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dv
cmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLywKIAkJCQk0NkY5MUJDOTFGQ0REMEZFMDAxNTk5
QzMgLyogSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3BwICovLAogCQkJCTgzQTRBOUY4MUNFN0ZE
N0UwMDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViWFJSZWZlcmVuY2VTcGFjZUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlhSUmVmZXJlbmNlU3BhY2VDdXN0b20u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVkMGUzOTg0ZWQwNzFmZjQ5MDIyMTljNDQ2MjYxZTY2NmQ3ZGQzZjkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlhSUmVm
ZXJlbmNlU3BhY2VDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
RU5BQkxFKFdFQlhSKQorI2luY2x1ZGUgIkpTV2ViWFJSZWZlcmVuY2VTcGFjZS5oIgorCisjaW5j
bHVkZSAiSlNXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oIgorI2luY2x1ZGUgIldlYlhSQm91
bmRlZFJlZmVyZW5jZVNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5hbWVz
cGFjZSBKU0M7CisKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0dsb2JhbE9iamVjdCosIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxXZWJYUlJlZmVyZW5jZVNwYWNlPiYm
IHNwYWNlKQoreworICAgIGlmIChzcGFjZS0+aXNCb3VuZGVkUmVmZXJlbmNlU3BhY2UoKSkKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2U+KGds
b2JhbE9iamVjdCwgV1RGTW92ZShzcGFjZSkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFdl
YlhSUmVmZXJlbmNlU3BhY2U+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShzcGFjZSkpOworfQorCitK
U1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYlhSUmVmZXJlbmNlU3BhY2UmIHNwYWNlKQorewor
ICAgIHJldHVybiB3cmFwKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgc3BhY2Up
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlhSU3BhY2VDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJYUlNwYWNlQ3VzdG9tLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNGZlMjEzNGJjZWNmMDAzMWJmM2ZiYWY5MjFkZTAxYThiYzUzNzY2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJYUlNwYWNl
Q3VzdG9tLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJY
UikKKyNpbmNsdWRlICJKU1dlYlhSU3BhY2UuaCIKKworI2luY2x1ZGUgIldlYlhSUmVmZXJlbmNl
U3BhY2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpTQzsKKwor
SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8V2ViWFJTcGFjZT4mJiBz
cGFjZSkKK3sKKyAgICBpZiAoaXM8V2ViWFJSZWZlcmVuY2VTcGFjZT4oc3BhY2UpKQorICAgICAg
ICByZXR1cm4gdG9KU05ld2x5Q3JlYXRlZChsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QsIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxXZWJYUlJlZmVyZW5jZVNwYWNlPihXVEZNb3ZlKHNw
YWNlKSkpOworICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFdlYlhSU3BhY2U+KGdsb2JhbE9iamVj
dCwgV1RGTW92ZShzcGFjZSkpOworfQorCitKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdlYlhS
U3BhY2UmIHNwYWNlKQoreworICAgIHJldHVybiB3cmFwKGxleGljYWxHbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdCwgc3BhY2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94
ci9QbGF0Zm9ybVhSLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9QbGF0Zm9ybVhSLmgK
aW5kZXggN2UwMGRmMDdiZTVlMWVlNTQ3ZjQyMzQ4YTc5N2Y5ZmYxNDVjZDY3Ni4uZDk3ZDRmMTgx
YjEzZDI2OTg5MmRiZjVlYmMzM2Y1NTkzM2UyNTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0veHIvUGxhdGZvcm1YUi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3hyL1BsYXRmb3JtWFIuaApAQCAtMTE0LDEyICsxMTQsMTggQEAgcHVibGljOgogICAgICAgICAg
ICAgUHJvamVjdGlvbiBwcm9qZWN0aW9uID0geyBudWxscHRyIH07CiAgICAgICAgIH07CiAKKyAg
ICAgICAgc3RydWN0IFN0YWdlUGFyYW1ldGVycyB7CisgICAgICAgICAgICBpbnQgaWQgeyAwIH07
CisgICAgICAgICAgICBWZWN0b3I8V2ViQ29yZTo6RmxvYXRQb2ludD4gYm91bmRzOworICAgICAg
ICB9OworCiAgICAgICAgIGJvb2wgaXNUcmFja2luZ1ZhbGlkIHsgZmFsc2UgfTsKICAgICAgICAg
Ym9vbCBpc1Bvc2l0aW9uVmFsaWQgeyBmYWxzZSB9OwogICAgICAgICBib29sIGlzUG9zaXRpb25F
bXVsYXRlZCB7IGZhbHNlIH07CiAgICAgICAgIGxvbmcgcHJlZGljdGVkRGlzcGxheVRpbWUgeyAw
IH07CiAgICAgICAgIFBvc2Ugb3JpZ2luOwogICAgICAgICBPcHRpb25hbDxQb3NlPiBmbG9vclRy
YW5zZm9ybTsKKyAgICAgICAgU3RhZ2VQYXJhbWV0ZXJzIHN0YWdlUGFyYW1ldGVyczsKICAgICAg
ICAgVmVjdG9yPFZpZXc+IHZpZXdzOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmNwcAppbmRleCBjYjI2YzMw
YjUzNDllNTc0N2RiNzUwMzRlZDg4MjJjNzMyMTIzZWVmLi4yMDVlNzgzYmZiZDVkMDA3NjMzZDZl
NTY4NzFlNTg2OWY3NTQ1ZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94
ci9vcGVueHIvUGxhdGZvcm1YUk9wZW5YUi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0veHIvb3BlbnhyL1BsYXRmb3JtWFJPcGVuWFIuY3BwCkBAIC0xNDMsNiArMTQzLDggQEAgdm9p
ZCBPcGVuWFJEZXZpY2U6OmluaXRpYWxpemVSZWZlcmVuY2VTcGFjZShQbGF0Zm9ybVhSOjpSZWZl
cmVuY2VTcGFjZVR5cGUgc3BhY2UKIHsKICAgICBpZiAoKHNwYWNlVHlwZSA9PSBSZWZlcmVuY2VT
cGFjZVR5cGU6OkxvY2FsRmxvb3IgfHwgc3BhY2VUeXBlID09IFJlZmVyZW5jZVNwYWNlVHlwZTo6
Qm91bmRlZEZsb29yKSAmJiBtX3N0YWdlU3BhY2UgPT0gWFJfTlVMTF9IQU5ETEUpCiAgICAgICAg
IG1fc3RhZ2VTcGFjZSA9IGNyZWF0ZVJlZmVyZW5jZVNwYWNlKFhSX1JFRkVSRU5DRV9TUEFDRV9U
WVBFX1NUQUdFKTsKKyAgICBpZiAoc3BhY2VUeXBlID09IFJlZmVyZW5jZVNwYWNlVHlwZTo6Qm91
bmRlZEZsb29yKQorICAgICAgICB1cGRhdGVTdGFnZVBhcmFtZXRlcnMoKTsKIH0KIAogdm9pZCBP
cGVuWFJEZXZpY2U6OnJlcXVlc3RGcmFtZShSZXF1ZXN0RnJhbWVDYWxsYmFjayYmIGNhbGxiYWNr
KQpAQCAtMTY5LDcgKzE3MSw3IEBAIHZvaWQgT3BlblhSRGV2aWNlOjpyZXF1ZXN0RnJhbWUoUmVx
dWVzdEZyYW1lQ2FsbGJhY2smJiBjYWxsYmFjaykKIAogICAgICAgICBEZXZpY2U6OkZyYW1lRGF0
YSBmcmFtZURhdGE7CiAgICAgICAgIGZyYW1lRGF0YS5wcmVkaWN0ZWREaXNwbGF5VGltZSA9IGZy
YW1lU3RhdGUucHJlZGljdGVkRGlzcGxheVRpbWU7Ci0KKyAgICAgICAgZnJhbWVEYXRhLnN0YWdl
UGFyYW1ldGVycyA9IG1fc3RhZ2VQYXJhbWV0ZXJzOwogCiAgICAgICAgIEFTU0VSVChtX2NvbmZp
Z3VyYXRpb25WaWV3cy5jb250YWlucyhtX2N1cnJlbnRWaWV3Q29uZmlndXJhdGlvblR5cGUpKTsK
ICAgICAgICAgY29uc3QgYXV0byYgY29uZmlndXJhdGlvblZpZXcgPSBtX2NvbmZpZ3VyYXRpb25W
aWV3cy5nZXQobV9jdXJyZW50Vmlld0NvbmZpZ3VyYXRpb25UeXBlKTsKQEAgLTI1Niw4ICsyNTgs
OSBAQCBEZXZpY2U6Okxpc3RPZkVuYWJsZWRGZWF0dXJlcyBPcGVuWFJEZXZpY2U6OmNvbGxlY3RF
bmFibGVkRmVhdHVyZXMoKQogICAgIC8vIFRoZSBzcGVjIHVzZXMgYSBlc3RpbWF0ZWQgaGVpZ2h0
IGlmIHdlIGRvbid0IHByb3ZpZGUgYSBmbG9vciB0cmFuc2Zvcm0gaW4gZnJhbWVEYXRhLgogICAg
IGZlYXR1cmVzLmFwcGVuZChSZWZlcmVuY2VTcGFjZVR5cGU6OkxvY2FsRmxvb3IpOwogCi0gICAg
Ly8gRklYTUU6IEVuYWJsZSBCb3VuZGVkRmxvb3Igd2hlbiB3ZSBpbXBsZW1lbnQgeHJHZXRSZWZl
cmVuY2VTcGFjZUJvdW5kc1JlY3QgYW5kIHRoZSByZWxhdGVkIGJpdHMgaW4gdGhlIERPTS4KLSAg
ICAvLyBlbmFibGVkRmVhdHVyZXMuYXBwZW5kKFJlZmVyZW5jZVNwYWNlVHlwZTo6Qm91bmRlZEZs
b29yKTsKKyAgICAvLyBNYXJrIEJvdW5kZWRGbG9vciBhcyBzdXBwb3J0ZWQgcmVnYXJkbGVzcyBp
ZiBYUl9SRUZFUkVOQ0VfU1BBQ0VfVFlQRV9TVEFHRSBpcyBhdmFpbGFibGUuCisgICAgLy8gVGhl
IHNwZWMgYWxsb3dzIHJlcG9ydGluZyBhbiBlbXB0eSBhcnJheSBpZiB4ckdldFJlZmVyZW5jZVNw
YWNlQm91bmRzUmVjdCBmYWlscy4KKyAgICBmZWF0dXJlcy5hcHBlbmQoUmVmZXJlbmNlU3BhY2VU
eXBlOjpCb3VuZGVkRmxvb3IpOwogCiAgICAgaWYgKG1fZXh0ZW5zaW9ucy5pc0V4dGVuc2lvblN1
cHBvcnRlZChYUl9NU0ZUX1VOQk9VTkRFRF9SRUZFUkVOQ0VfU1BBQ0VfRVhURU5TSU9OX05BTUUp
KQogICAgICAgICBmZWF0dXJlcy5hcHBlbmQoUmVmZXJlbmNlU3BhY2VUeXBlOjpVbmJvdW5kZWQp
OwpAQCAtMzU0LDE0ICszNTcsMTkgQEAgdm9pZCBPcGVuWFJEZXZpY2U6OnBvbGxFdmVudHMoKQog
ICAgIHdoaWxlICh4clBvbGxFdmVudChtX2luc3RhbmNlLCAmcnVudGltZUV2ZW50KSA9PSBYUl9T
VUNDRVNTKSB7CiAgICAgICAgIHN3aXRjaCAocnVudGltZUV2ZW50LnR5cGUpIHsKICAgICAgICAg
Y2FzZSBYUl9UWVBFX0VWRU5UX0RBVEFfU0VTU0lPTl9TVEFURV9DSEFOR0VEOiB7Ci0gICAgICAg
ICAgICBhdXRvKiBldmVudCA9IChYckV2ZW50RGF0YVNlc3Npb25TdGF0ZUNoYW5nZWQqKSZydW50
aW1lRXZlbnQ7CisgICAgICAgICAgICBhdXRvKiBldmVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8WHJF
dmVudERhdGFTZXNzaW9uU3RhdGVDaGFuZ2VkKj4oJnJ1bnRpbWVFdmVudCk7CiAgICAgICAgICAg
ICBtX3Nlc3Npb25TdGF0ZSA9IGV2ZW50LT5zdGF0ZTsKICAgICAgICAgICAgIGhhbmRsZVNlc3Np
b25TdGF0ZUNoYW5nZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBYUl9UWVBFX0VWRU5UX0RBVEFfRVZFTlRTX0xPU1Q6CiAgICAgICAgIGNhc2UgWFJfVFlQ
RV9FVkVOVF9EQVRBX0lOU1RBTkNFX0xPU1NfUEVORElORzoKLSAgICAgICAgY2FzZSBYUl9UWVBF
X0VWRU5UX0RBVEFfUkVGRVJFTkNFX1NQQUNFX0NIQU5HRV9QRU5ESU5HOgorICAgICAgICBjYXNl
IFhSX1RZUEVfRVZFTlRfREFUQV9SRUZFUkVOQ0VfU1BBQ0VfQ0hBTkdFX1BFTkRJTkc6IHsKKyAg
ICAgICAgICAgIGF1dG8qIGV2ZW50ID0gcmVpbnRlcnByZXRfY2FzdDxYckV2ZW50RGF0YVJlZmVy
ZW5jZVNwYWNlQ2hhbmdlUGVuZGluZyo+KCZydW50aW1lRXZlbnQpOworICAgICAgICAgICAgaWYg
KGV2ZW50LT5yZWZlcmVuY2VTcGFjZVR5cGUgPT0gWFJfUkVGRVJFTkNFX1NQQUNFX1RZUEVfU1RB
R0UpCisgICAgICAgICAgICAgICAgdXBkYXRlU3RhZ2VQYXJhbWV0ZXJzKCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBjYXNlIFhSX1RZUEVfRVZFTlRfREFUQV9JTlRF
UkFDVElPTl9QUk9GSUxFX0NIQU5HRUQ6CiAgICAgICAgIGNhc2UgWFJfVFlQRV9FVkVOVF9EQVRB
X01BSU5fU0VTU0lPTl9WSVNJQklMSVRZX0NIQU5HRURfRVhUWDoKICAgICAgICAgY2FzZSBYUl9U
WVBFX0VWRU5UX0RBVEFfVklTSUJJTElUWV9NQVNLX0NIQU5HRURfS0hSOgpAQCAtNDEzLDYgKzQy
MSwxMCBAQCB2b2lkIE9wZW5YUkRldmljZTo6cmVzZXRTZXNzaW9uKCkKICAgICAgICAgbV9zZXNz
aW9uID0gWFJfTlVMTF9IQU5ETEU7CiAgICAgfQogICAgIG1fc2Vzc2lvblN0YXRlID0gWFJfU0VT
U0lPTl9TVEFURV9VTktOT1dOOworICAgIG1fbG9jYWxTcGFjZSA9IFhSX05VTExfSEFORExFOwor
ICAgIG1fdmlld1NwYWNlICA9IFhSX05VTExfSEFORExFOworICAgIG1fc3RhZ2VTcGFjZSA9IFhS
X05VTExfSEFORExFOworICAgIG1fc3RhZ2VQYXJhbWV0ZXJzID0geyB9OwogCiAgICAgLy8gZGVh
bGxvY2F0ZSBncmFwaGljIHJlc291cmNlcwogICAgIG1fZWdsLnJlc2V0KCk7CkBAIC00MzAsNyAr
NDQyLDYgQEAgdm9pZCBPcGVuWFJEZXZpY2U6OmhhbmRsZVNlc3Npb25TdGF0ZUNoYW5nZSgpCiAg
ICAgfQogfQogCi0KIHZvaWQgT3BlblhSRGV2aWNlOjp3YWl0VW50aWxTdG9wcGluZygpCiB7CiAg
ICAgQVNTRVJUKCZSdW5Mb29wOjpjdXJyZW50KCkgPT0gJm1fcXVldWUucnVuTG9vcCgpKTsKQEAg
LTQ0Miw2ICs0NTMsMzIgQEAgdm9pZCBPcGVuWFJEZXZpY2U6OndhaXRVbnRpbFN0b3BwaW5nKCkK
ICAgICB9KTsKIH0KIAordm9pZCBPcGVuWFJEZXZpY2U6OnVwZGF0ZVN0YWdlUGFyYW1ldGVycygp
Cit7CisgICAgQVNTRVJUKCZSdW5Mb29wOjpjdXJyZW50KCkgPT0gJm1fcXVldWUucnVuTG9vcCgp
KTsKKyAgICBpZiAobV9zdGFnZVNwYWNlID09IFhSX05VTExfSEFORExFKQorICAgICAgICByZXR1
cm47IC8vIFN0YWdlIHNwYWNlIG5vdCByZXF1ZXN0ZWQuCisKKyAgICBtX3N0YWdlUGFyYW1ldGVy
cy5pZCsrOworCisgICAgWHJFeHRlbnQyRGYgYm91bmRzOworICAgIGlmIChYUl9TVUNDRUVERUQo
eHJHZXRSZWZlcmVuY2VTcGFjZUJvdW5kc1JlY3QobV9zZXNzaW9uLCBYUl9SRUZFUkVOQ0VfU1BB
Q0VfVFlQRV9TVEFHRSwgJmJvdW5kcykpKSB7CisgICAgICAgIC8vIGh0dHBzOi8vaW1tZXJzaXZl
LXdlYi5naXRodWIuaW8vd2VieHIvI3hyYm91bmRlZHJlZmVyZW5jZXNwYWNlLW5hdGl2ZS1ib3Vu
ZHMtZ2VvbWV0cnkKKyAgICAgICAgLy8gUG9pbnRzIE1VU1QgYmUgZ2l2ZW4gaW4gYSBjbG9ja3dp
c2Ugb3JkZXIgYXMgdmlld2VkIGZyb20gYWJvdmUsIGxvb2tpbmcgdG93YXJkcyB0aGUgbmVnYXRp
dmUgZW5kIG9mIHRoZSBZIGF4aXMuCisgICAgICAgIG1fc3RhZ2VQYXJhbWV0ZXJzLmJvdW5kcyA9
IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFBvaW50PiB7CisgICAgICAgICAgICB7IGJvdW5kcy53aWR0
aCAqIDAuNWYsIC1ib3VuZHMuaGVpZ2h0ICogMC41ZiB9LAorICAgICAgICAgICAgeyBib3VuZHMu
d2lkdGggKiAwLjVmLCBib3VuZHMuaGVpZ2h0ICogMC41ZiB9LAorICAgICAgICAgICAgeyAtYm91
bmRzLndpZHRoICogMC41ZiwgYm91bmRzLmhlaWdodCAqIDAuNWYgfSwKKyAgICAgICAgICAgIHsg
LWJvdW5kcy53aWR0aCAqIDAuNWYsIC1ib3VuZHMuaGVpZ2h0ICogMC41ZiB9CisgICAgICAgIH07
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5p
by93ZWJ4ci8jZG9tLXhyYm91bmRlZHJlZmVyZW5jZXNwYWNlLWJvdW5kc2dlb21ldHJ5CisgICAg
ICAgIC8vIElmIHRoZSBuYXRpdmUgYm91bmRzIGdlb21ldHJ5IGlzIHRlbXBvcmFyaWx5IHVuYXZh
aWxhYmxlLCB3aGljaCBtYXkgb2NjdXIgZm9yIHNldmVyYWwgcmVhc29ucyBzdWNoIGFzIGR1cmlu
ZyBYUiBkZXZpY2UgaW5pdGlhbGl6YXRpb24sCisgICAgICAgIC8vIGV4dGVuZGVkIHBlcmlvZHMg
b2YgdHJhY2tpbmcgbG9zcywgb3IgbW92ZW1lbnQgYmV0d2VlbiBwcmUtY29uZmlndXJlZCBzcGFj
ZXMsIHRoZSBib3VuZHNHZW9tZXRyeSBNVVNUIHJlcG9ydCBhbiBlbXB0eSBhcnJheS4KKyAgICAg
ICAgbV9zdGFnZVBhcmFtZXRlcnMuYm91bmRzLmNsZWFyKCk7CisgICAgfQorfQorCiB9IC8vIG5h
bWVzcGFjZSBQbGF0Zm9ybVhSCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpICYmIFVTRShPUEVO
WFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZv
cm1YUk9wZW5YUi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0veHIvb3BlbnhyL1BsYXRmb3Jt
WFJPcGVuWFIuaAppbmRleCAzMTc4MzY5MWY0YTkzYmJiZDQ4MDc5MTZiZDU2OWJjNjYwN2M5MTRj
Li5lNmFiMTg0ZjEyZTRmNTc2NThiZDhkNjZmOTk2MWI2OWFmZGRkNTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS94ci9vcGVueHIvUGxhdGZvcm1YUk9wZW5YUi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3hyL29wZW54ci9QbGF0Zm9ybVhST3BlblhSLmgKQEAg
LTY5LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0U2Vzc2lvbigpOwogICAgIHZv
aWQgaGFuZGxlU2Vzc2lvblN0YXRlQ2hhbmdlKCk7CiAgICAgdm9pZCB3YWl0VW50aWxTdG9wcGlu
ZygpOworICAgIHZvaWQgdXBkYXRlU3RhZ2VQYXJhbWV0ZXJzKCk7CiAKICAgICBYckluc3RhbmNl
IG1faW5zdGFuY2U7CiAgICAgWHJTeXN0ZW1JZCBtX3N5c3RlbUlkOwpAQCAtODcsNiArODgsNyBA
QCBwcml2YXRlOgogICAgIFhyU3BhY2UgbV9sb2NhbFNwYWNlIHsgWFJfTlVMTF9IQU5ETEUgfTsK
ICAgICBYclNwYWNlIG1fdmlld1NwYWNlIHsgWFJfTlVMTF9IQU5ETEUgfTsKICAgICBYclNwYWNl
IG1fc3RhZ2VTcGFjZSB7IFhSX05VTExfSEFORExFIH07CisgICAgRGV2aWNlOjpGcmFtZURhdGE6
OlN0YWdlUGFyYW1ldGVycyBtX3N0YWdlUGFyYW1ldGVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFBsYXRmb3JtWFIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhS
RGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcApp
bmRleCA3ZTRhOWRjY2YzMWQ5YWE0M2NjOWJhNGZjNjNkNTM5NGJmZjQ1NDIzLi44MTQ5MDEyOWRj
YmEwZWIyNmQ1YTMyNzA3N2NiZDQ3NjVjYjhkOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9XZWJGYWtlWFJEZXZpY2UuY3BwCkBAIC01OSw2ICs1OSwxNCBAQCBTaW11bGF0ZWRYUkRldmlj
ZTo6flNpbXVsYXRlZFhSRGV2aWNlKCkKICAgICBzdG9wVGltZXIoKTsKIH0KIAordm9pZCBTaW11
bGF0ZWRYUkRldmljZTo6c2V0TmF0aXZlQm91bmRzR2VvbWV0cnkoY29uc3QgVmVjdG9yPEZha2VY
UkJvdW5kc1BvaW50PiYgZ2VvbWV0cnkpCit7CisgICAgbV9zdGFnZVBhcmFtZXRlcnMuaWQrKzsK
KyAgICBtX3N0YWdlUGFyYW1ldGVycy5ib3VuZHMuY2xlYXIoKTsKKyAgICBmb3IgKGF1dG8mIHBv
aW50IDogZ2VvbWV0cnkpCisgICAgICAgIG1fc3RhZ2VQYXJhbWV0ZXJzLmJvdW5kcy5hcHBlbmQo
eyBzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnQueCksIHN0YXRpY19jYXN0PGZsb2F0Pihwb2ludC56
KSB9KTsKK30KKwogdm9pZCBTaW11bGF0ZWRYUkRldmljZTo6c2ltdWxhdGVTaHV0ZG93bkNvbXBs
ZXRlZCgpCiB7CiAgICAgaWYgKG1fdHJhY2tpbmdBbmRSZW5kZXJpbmdDbGllbnQpCkBAIC0xMDAs
NiArMTA4LDggQEAgdm9pZCBTaW11bGF0ZWRYUkRldmljZTo6ZnJhbWVUaW1lckZpcmVkKCkKICAg
ICBpZiAobV9mbG9vck9yaWdpbikKICAgICAgICAgZGF0YS5mbG9vclRyYW5zZm9ybSA9IHsgKm1f
Zmxvb3JPcmlnaW4gfTsKIAorICAgIGRhdGEuc3RhZ2VQYXJhbWV0ZXJzID0gbV9zdGFnZVBhcmFt
ZXRlcnM7CisKICAgICBmb3IgKGF1dG8mIGZha2VWaWV3IDogbV92aWV3cykgewogICAgICAgICBG
cmFtZURhdGE6OlZpZXcgdmlldzsKICAgICAgICAgdmlldy5vZmZzZXQgPSBmYWtlVmlldy0+b2Zm
c2V0KCk7CkBAIC0xODIsOSArMTkyLDEyIEBAIHZvaWQgV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0
ZVZpc2liaWxpdHlDaGFuZ2UoWFJWaXNpYmlsaXR5U3RhdGUpCiB7CiB9CiAKLXZvaWQgV2ViRmFr
ZVhSRGV2aWNlOjpzZXRCb3VuZHNHZW9tZXRyeShWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+JiYp
Cit2b2lkIFdlYkZha2VYUkRldmljZTo6c2V0Qm91bmRzR2VvbWV0cnkoVmVjdG9yPEZha2VYUkJv
dW5kc1BvaW50PiYmIGJvdW5kcykKIHsKLX0KKyAgICBtX2RldmljZS5zY2hlZHVsZU9uTmV4dEZy
YW1lKFt0aGlzLCBib3VuZHMgPSBXVEZNb3ZlKGJvdW5kcyldKCkgeworICAgICAgICBtX2Rldmlj
ZS5zZXROYXRpdmVCb3VuZHNHZW9tZXRyeShib3VuZHMpOworICAgIH0pOworfSAKIAogdm9pZCBX
ZWJGYWtlWFJEZXZpY2U6OnNldEZsb29yT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBv
cmlnaW4pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRl
dmljZS5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaAppbmRleCBj
NWE1ZDE0NGQwMTJmNWYwMmJlMjIzOGFiMmFlMjAzMDRhMjllMWNlLi5lMTI3YzA1OWQzMTg2NGI0
YzhkMDgyNjNmZDFkMjlmY2E0MzUxYzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL1dlYkZha2VYUkRldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFr
ZVhSRGV2aWNlLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIFNpbXVsYXRlZFhSRGV2
aWNlKCk7CiAgICAgflNpbXVsYXRlZFhSRGV2aWNlKCk7CiAgICAgdm9pZCBzZXRWaWV3cyhWZWN0
b3I8UmVmPEZha2VYUlZpZXc+PiYmIHZpZXdzKSB7IG1fdmlld3MgPSBXVEZNb3ZlKHZpZXdzKTsg
fQotICAgIHZvaWQgc2V0TmF0aXZlQm91bmRzR2VvbWV0cnkoY29uc3QgVmVjdG9yPEZha2VYUkJv
dW5kc1BvaW50PiYgZ2VvbWV0cnkpIHsgbV9uYXRpdmVCb3VuZHNHZW9tZXRyeSA9IGdlb21ldHJ5
OyB9CisgICAgdm9pZCBzZXROYXRpdmVCb3VuZHNHZW9tZXRyeShjb25zdCBWZWN0b3I8RmFrZVhS
Qm91bmRzUG9pbnQ+Jik7CiAgICAgdm9pZCBzZXRWaWV3ZXJPcmlnaW4oT3B0aW9uYWw8RnJhbWVE
YXRhOjpQb3NlPiYmIG9yaWdpbikgeyBtX3ZpZXdlck9yaWdpbiA9IFdURk1vdmUob3JpZ2luKTsg
fQogICAgIHZvaWQgc2V0Rmxvb3JPcmlnaW4oT3B0aW9uYWw8RnJhbWVEYXRhOjpQb3NlPiYmIG9y
aWdpbikgeyBtX2Zsb29yT3JpZ2luID0gV1RGTW92ZShvcmlnaW4pOyB9CiAgICAgdm9pZCBzZXRF
bXVsYXRlZFBvc2l0aW9uKGJvb2wgZW11bGF0ZWQpIHsgbV9lbXVsYXRlZFBvc2l0aW9uID0gZW11
bGF0ZWQ7IH0KQEAgLTEwMCw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fZnJhbWVU
aW1lcjsKICAgICBSZXF1ZXN0RnJhbWVDYWxsYmFjayBtX0ZyYW1lQ2FsbGJhY2s7CiAgICAgVmVj
dG9yPEZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1VwZGF0ZXM7CisgICAgRnJhbWVEYXRhOjpT
dGFnZVBhcmFtZXRlcnMgbV9zdGFnZVBhcmFtZXRlcnM7CiB9OwogCiBjbGFzcyBXZWJGYWtlWFJE
ZXZpY2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGYWtlWFJEZXZpY2U+IHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA2MDcyMGNjNDE2NjIwYmNkNGYxM2FlYjY2ZDY5ZGY4NjJiMzJmNzEwLi5jZGRkYzY4ODJjOThl
YTQyMThlNzZjMTVkNzliMTJjNWFkMTVlMTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEt
MDMtMDQgIEltYW5vbCBGZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIGJvdW5kcyBnZW9tZXRyeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNzM3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFdl
YlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlIHRlc3QgZXhwZWN0YXRpb25zLgorCisgICAgICAgICog
cGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMDMtMDQgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRsZSB0aGUgY2FzZSBvZiBzeW5j
aHJvbm91cyBmYWlsdXJlIGluIGxvYWRpbmcgYmxvYi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCmluZGV4IGE0ODA5YTZjMTAzYTYwMWM4ODVhMGEyN2MyMmE1YmE0YjQ5ZWNhOWUuLmI0MzAw
ZTg0MmFjZmZkOTA1ODI4YzEzOTNmNTRhZGZkMTEwNDM5NTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTAzLTA0ICBJbWFub2wgRmVybmFuZGV6
ICA8aWZlcm5hbmRlekBpZ2FsaWEuY29tPgorCisgICAgICAgIEltcGxlbWVudCBXZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZSBib3VuZHMgZ2VvbWV0cnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjczNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZSB0ZXN0IGV4cGVjdGF0aW9ucy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4
ci94ckJvdW5kZWRSZWZlcmVuY2VTcGFjZV91cGRhdGVzLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisKIDIwMjEtMDMtMDQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgaW5pdGlhbCB2YWx1ZSBmb3IgYm9yZGVyLWltYWdlLW91dHNldCBzaG91bGQgYmUg
MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJ4ci94ckJvdW5kZWRSZWZlcmVuY2VTcGFjZV91cGRhdGVzLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIveHJC
b3VuZGVkUmVmZXJlbmNlU3BhY2VfdXBkYXRlcy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjkxMDFkZGExMDVlOGQwN2Y5M2E3OWJhMmM2YTNiZDJjYzVmZTAxZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIv
eHJCb3VuZGVkUmVmZXJlbmNlU3BhY2VfdXBkYXRlcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgJ1hSQm91bmRlZFJlZmVyZW5jZVNwYWNlIHVwZGF0ZXMgcHJvcGVy
bHkgd2hlbiB0aGUgY2hhbmdlcyBhcmUgYXBwbGllZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dw
ZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGNiOWZkODZkZjEyOGY1ODM2MmMwMWM3NmIwN2VkNzMx
Y2Q0NTYxM2IuLjJiY2UwMDQ4M2U2YWFhYTc0ZjBhZDBlODYxNTk4MTBjY2RhMzE4NWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC02MDYsNiArNjA2LDcg
QEAgd2Via2l0Lm9yZy9iLzIxMzEzMSBodHRwL3Rlc3RzL21pc2MvZ2FtZXBhZHMtaW5zZWN1cmUu
aHRtbCBbIFNraXAgXQogCiAjIFdlYlhSCiB3ZWJraXQub3JnL2IvMjEyODk3IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvaWRsaGFybmVzcy5odHRwcy53aW5kb3cuaHRtbCBb
IEZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci94ckJvdW5k
ZWRSZWZlcmVuY2VTcGFjZV91cGRhdGVzLmh0dHBzLmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcv
Yi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci93ZWJHTENhbnZh
c0NvbnRleHRfY3JlYXRlX3hyY29tcGF0aWJsZS5odHRwcy5odG1sIFsgUGFzcyBdCiB3ZWJraXQu
b3JnL2IvMjA5ODU5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvd2ViR0xD
YW52YXNDb250ZXh0X21ha2Vjb21wYXRpYmxlX2NvbnRleHRsb3N0Lmh0dHBzLmh0bWwgWyBQYXNz
IF0KIHdlYmtpdC5vcmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJ4ci93ZWJHTENhbnZhc0NvbnRleHRfbWFrZWNvbXBhdGlibGVfcmVlbnRyYW50Lmh0dHBzLmh0
bWwgWyBQYXNzIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>