<?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>233433</bug_id>
          
          <creation_ts>2021-11-22 14:11:07 -0800</creation_ts>
          <short_desc>Remove old concurrent display list logic that&apos;s no longer necessary</short_desc>
          <delta_ts>2022-06-23 14:41:58 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1817340</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-22 14:11:07 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817348</commentid>
    <comment_count>1</comment_count>
      <attachid>444984</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-22 14:45:36 -0800</bug_when>
    <thetext>Created attachment 444984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817363</commentid>
    <comment_count>2</comment_count>
      <attachid>444992</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-22 16:49:20 -0800</bug_when>
    <thetext>Created attachment 444992
Try to fix build (unified sources)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817374</commentid>
    <comment_count>3</comment_count>
      <attachid>444992</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-22 18:12:06 -0800</bug_when>
    <thetext>Comment on attachment 444992
Try to fix build (unified sources)

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817375</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-22 18:25:06 -0800</bug_when>
    <thetext>Committed r286125 (244512@main): &lt;https://commits.webkit.org/244512@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444992.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817376</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-22 18:26:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/85687354&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1877880</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-06-23 14:41:58 -0700</bug_when>
    <thetext>*** Bug 231596 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444984</attachid>
            <date>2021-11-22 14:45:36 -0800</date>
            <delta_ts>2021-11-22 16:16:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233433-20211122144535.patch</filename>
            <type>text/plain</type>
            <size>56872</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2YwMDE3ZjIxOWMxYmIy
ZDliMWM0MmJmY2JjYmZkYTczY2YzZWJjNC4uOTQ3MmVjNjJlMjFmYTQxZjNmOTJlOTUxZTM5ZWEx
NmU4Yjk5MjdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTExLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBvbGQg
Y29uY3VycmVudCBkaXNwbGF5IGxpc3QgbG9naWMgdGhhdCdzIG5vIGxvbmdlciBuZWNlc3NhcnkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQzMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyB0aGF0
IGNvbmN1cnJlbnQgZGlzcGxheSBsaXN0cyAoaS5lLiBmb3IgMkQgY2FudmFzIGFuZCBET00gcmVu
ZGVyaW5nIGluIHRoZSBHUFUgcHJvY2VzcykgdXNlcyB0aGUgc2FtZSBzaGFyZWQKKyAgICAgICAg
SVBDIHN0cmVhbWluZyBtZWNoYW5pc20gYXMgV2ViR0wsIHdlIGNhbiByZW1vdmUgdGhlIG9sZCBj
b25jdXJyZW50IGRpc3BsYXkgbGlzdCBwcm9jZXNzaW5nIGxvZ2ljIGFyb3VuZCBkaXNwbGF5Cisg
ICAgICAgIGxpc3RzIGFuZCB0aGUgcmVtb3RlIHJlbmRlcmluZyBiYWNrZW5kIGluIFdlYktpdDIu
CisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLCBzaW5jZSB0aGlzIGNvZGUgaXMgbm93
IGFsbCAoZWZmZWN0aXZlbHkpIHVudXNlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1IYW5kbGU6OnNhZmVDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtQnVmZmVyOjpzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZCk6CisKKyAg
ICAgICAgQWRkaXRpb25hbGx5IHJlbW92ZSBhIGNvdXBsZSBvZiBkaXNwbGF5IGxpc3QgaXRlbXMg
dGhhdCB3ZXJlIG9ubHkgdXNlZCBmb3IgY29uY3VycmVudCBkaXNwbGF5IGxpc3QgcHJvY2Vzc2lu
Zy4KKyAgICAgICAgSW4gYSBmb2xsb3d1cCwgd2Ugc2hvdWxkIHJlbW92ZSBtb3JlIGxvZ2ljIGFy
b3VuZCB0aGlzIGFyZWEgcGVydGFpbmluZyB0byBkaXNwbGF5IGxpc3QgcmVhZGVyIGFuZCB3cml0
ZXIKKyAgICAgICAgY2xpZW50cywgYW5kIHRoZSBkaXNwbGF5IGxpc3QgcmVwbGF5ZXIgZGVsZWdh
dGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6c2l6ZU9mSXRl
bUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzRHJhd2luZ0l0ZW0p
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzSW5saW5lSXRlbSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZm
ZXI6Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyOjppZGVudGlmaWVy
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpNZXRhQ29t
bWFuZENoYW5nZUl0ZW1CdWZmZXI6OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1
ZmZlcjo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0
aW9uSW1hZ2VCdWZmZXI6OmlkZW50aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZl
cjo6aXNWYWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OlJlcGxheWVyOjpyZXBsYXkpOgorCiAyMDIxLTExLTE4ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIGJhc2ljIGhldXJp
c3RpYyBmb3Igc2l6aW5nIHRleHQgaW4gaW1hZ2Ugb3ZlcmxheSBibG9ja3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
YTRiMmQzMTViZTQxNDg2ZWM5ZmU1M2Y0ZmU0ZGYwM2YyYTA1ZTRlMC4uZDdhZWIzZTYzMDkwM2U1
OTAxOTljYTAyZDliZmUyYmNmMDBlZGI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAy
MS0xMS0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgb2xkIGNvbmN1cnJlbnQgZGlzcGxheSBsaXN0IGxvZ2ljIHRoYXQncyBubyBsb25n
ZXIgbmVjZXNzYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzM0MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWUgV2ViQ29yZSBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRTdGF0ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzV2Fr
ZXVwTWVzc2FnZUFyZ3VtZW50cy5oOiBSZW1vdmVkLgorICAgICAgICAqIFNoYXJlZC9TaGFyZWRE
aXNwbGF5TGlzdEhhbmRsZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9EaXNwbGF5TGlzdFdyaXRlckhhbmRs
ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5oOgorCiAyMDIxLTExLTIyICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFdLQ29udGVudFZpZXcgc2hvdWxkIGFsbG93
IC1jYXB0dXJlVGV4dEZyb21DYW1lcmE6IHdpdGggYSBjYXJldCBzZWxlY3Rpb24gdW5sZXNzIHRo
ZSBzZW5kZXIgaXMgdGhlIGNhbGxvdXQgYmFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRl
eCA4M2ZjYjg0OGY0MTgyYzc0MzE5ZjMwYjY4NTBlNTE0YWU1YzQ2ZGUyLi5lNjE1YTdiZDZkNGE3
MDg1NWFmMDlmZWEwYzM5ZDU4MjAzOWRmZTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAK
QEAgLTI5NSwxMCArMjk1LDYgQEAgdm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUg
aXRlbSkKICAgICAgICAgcmV0dXJuIGFwcGVuZDxGaWxsRWxsaXBzZT4oaXRlbS5nZXQ8RmlsbEVs
bGlwc2U+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKICAgICAgICAgcmV0
dXJuIGFwcGVuZDxGbHVzaENvbnRleHQ+KGl0ZW0uZ2V0PEZsdXNoQ29udGV4dD4oKSk7Ci0gICAg
Y2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyOgot
ICAgICAgICByZXR1cm4gYXBwZW5kPE1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1
ZmZlcj4oaXRlbS5nZXQ8TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyPigp
KTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI6Ci0gICAg
ICAgIHJldHVybiBhcHBlbmQ8TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyPihpdGVtLmdldDxN
ZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OkdldFBp
eGVsQnVmZmVyOgogICAgICAgICByZXR1cm4gYXBwZW5kPEdldFBpeGVsQnVmZmVyPihpdGVtLmdl
dDxHZXRQaXhlbEJ1ZmZlcj4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IGMxMzll
NTA5NDg1MTgwYjllYmQ5MDE3MjcyYmU5NmFhNTIyNjc1ZmUuLmU4MDUwOWVjY2EwNWQyY2M4ZWQx
MDY2MDcwNDFmNWNjY2MzZTM3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1CdWZmZXIuY3BwCkBAIC0xOTEsOSArMTkxLDYgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0
OgogICAgICAgICBnZXQ8Rmx1c2hDb250ZXh0PigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbklt
YWdlQnVmZmVyOgotICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZl
cjoKLSAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSXRlbVR5cGU6OkdldFBpeGVsQnVmZmVyOgog
ICAgIGNhc2UgSXRlbVR5cGU6OlB1dFBpeGVsQnVmZmVyOgogICAgICAgICAvLyBTaG91bGQgYWxy
ZWFkeSBiZSBoYW5kbGVkIGJ5IHRoZSBkZWxlZ2F0ZS4KQEAgLTM5MiwxMiArMzg5LDYgQEAgdm9p
ZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6
CiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPEZs
dXNoQ29udGV4dD46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6
Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcjoKLSAgICAgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8TWV0YUNvbW1hbmRDaGFuZ2VE
ZXN0aW5hdGlvbkltYWdlQnVmZmVyPjo6dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgY2Fz
ZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyOgotICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxNZXRhQ29tbWFuZENoYW5nZUl0
ZW1CdWZmZXI+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKICNpZiBFTkFCTEUoVklERU8pCiAg
ICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxQYWludEZyYW1lRm9yTWVkaWE+Ojp2
YWx1ZSk7CkBAIC01OTAsMTAgKzU4MSw2IEBAIGJvb2wgSXRlbUhhbmRsZTo6c2FmZUNvcHkoSXRl
bVR5cGUgaXRlbVR5cGUsIEl0ZW1IYW5kbGUgZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAgIHJl
dHVybiBjb3B5SW50bzxGaWxsUmVjdD4oaXRlbU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRl
bVR5cGU6OkZsdXNoQ29udGV4dDoKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPEZsdXNoQ29udGV4
dD4oaXRlbU9mZnNldCwgKnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hh
bmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIGNvcHlJbnRvPE1ldGFD
b21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcj4oaXRlbU9mZnNldCwgKnRoaXMpOwot
ICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcjoKLSAgICAgICAg
cmV0dXJuIGNvcHlJbnRvPE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcj4oaXRlbU9mZnNldCwg
KnRoaXMpOwogI2lmIEVOQUJMRShWSURFTykKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1l
Rm9yTWVkaWE6CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxQYWludEZyYW1lRm9yTWVkaWE+KGl0
ZW1PZmZzZXQsICp0aGlzKTsKQEAgLTcyNSwxNCArNzEyLDEyIEBAIHZvaWQgSXRlbUJ1ZmZlcjo6
c2hyaW5rVG9GaXQoKQogCiBEaWRDaGFuZ2VJdGVtQnVmZmVyIEl0ZW1CdWZmZXI6OnN3YXBXcml0
YWJsZUJ1ZmZlcklmTmVlZGVkKHNpemVfdCBudW1iZXJPZkJ5dGVzKQogewotICAgIGF1dG8gc2l6
ZUZvckJ1ZmZlclN3aXRjaEl0ZW0gPSBwYWRkZWRTaXplT2ZUeXBlQW5kSXRlbUluQnl0ZXMoSXRl
bVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcik7Ci0gICAgaWYgKG1fd3JpdHRlbk51
bWJlck9mQnl0ZXMgKyBudW1iZXJPZkJ5dGVzICsgc2l6ZUZvckJ1ZmZlclN3aXRjaEl0ZW0gPD0g
bV93cml0YWJsZUJ1ZmZlci5jYXBhY2l0eSkKKyAgICBpZiAobV93cml0dGVuTnVtYmVyT2ZCeXRl
cyArIG51bWJlck9mQnl0ZXMgPD0gbV93cml0YWJsZUJ1ZmZlci5jYXBhY2l0eSkKICAgICAgICAg
cmV0dXJuIERpZENoYW5nZUl0ZW1CdWZmZXI6Ok5vOwogCi0gICAgYXV0byBuZXh0QnVmZmVyID0g
Y3JlYXRlSXRlbUJ1ZmZlcihudW1iZXJPZkJ5dGVzICsgc2l6ZUZvckJ1ZmZlclN3aXRjaEl0ZW0p
OworICAgIGF1dG8gbmV4dEJ1ZmZlciA9IGNyZWF0ZUl0ZW1CdWZmZXIobnVtYmVyT2ZCeXRlcyk7
CiAgICAgYm9vbCBoYWRQcmV2aW91c0J1ZmZlciA9IG1fd3JpdGFibGVCdWZmZXIgJiYgbV93cml0
YWJsZUJ1ZmZlci5pZGVudGlmaWVyICE9IG5leHRCdWZmZXIuaWRlbnRpZmllcjsKICAgICBpZiAo
aGFkUHJldmlvdXNCdWZmZXIpIHsKLSAgICAgICAgdW5jaGVja2VkQXBwZW5kPE1ldGFDb21tYW5k
Q2hhbmdlSXRlbUJ1ZmZlcj4oRGlkQ2hhbmdlSXRlbUJ1ZmZlcjo6Tm8sIG5leHRCdWZmZXIuaWRl
bnRpZmllcik7CiAgICAgICAgIG1fd3JpdGFibGVCdWZmZXIuY2FwYWNpdHkgPSBtX3dyaXR0ZW5O
dW1iZXJPZkJ5dGVzOwogICAgICAgICBtX3JlYWRPbmx5QnVmZmVycy5hcHBlbmQobV93cml0YWJs
ZUJ1ZmZlcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3Bw
CmluZGV4IDI0NGUwZTM1YzEyNzU2MjA5NjljNWFiYTU4NjQyMDUxOGFlNGVkNDAuLmJkZWM2NTRi
NTJiZDQ2ZDYzOWNhMmU5YWVhYjlkNjFlODYzZGMzODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtVHlwZS5jcHAKQEAgLTEzMiwxMCArMTMyLDYgQEAgc3RhdGljIHNpemVfdCBz
aXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKEZp
bGxFbGxpcHNlKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6CiAgICAgICAgIHJl
dHVybiBzaXplb2YoRmx1c2hDb250ZXh0KTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFu
ZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI6Ci0gICAgICAgIHJldHVybiBzaXplb2YoTWV0
YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyKTsKLSAgICBjYXNlIEl0ZW1UeXBl
OjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI6Ci0gICAgICAgIHJldHVybiBzaXplb2YoTWV0
YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpHZXRQaXhlbEJ1
ZmZlcjoKICAgICAgICAgcmV0dXJuIHNpemVvZihHZXRQaXhlbEJ1ZmZlcik7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6CkBAIC0yMDAsOCArMTk2LDYgQEAgYm9vbCBpc0RyYXdp
bmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6RW5kQ2xpcFRvRHJhd2lu
Z0NvbW1hbmRzOgogICAgIGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgIGNhc2Ug
SXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKLSAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENo
YW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI6Ci0gICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1h
bmRDaGFuZ2VJdGVtQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6OlJlc3RvcmU6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6Um90YXRlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNhdmU6CkBAIC0zNDMsOCAr
MzM3LDYgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICNlbmRpZgogICAgIGNh
c2UgSXRlbVR5cGU6OkZpbGxSZWN0OgogICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoK
LSAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZm
ZXI6Ci0gICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyOgogI2lm
IEVOQUJMRShWSURFTykKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCmluZGV4IDk5MTk0NThk
MjM2NTljZWVjYjc1ODUzODdmMTI4ZWZhZjBkNDdhMjUuLjgwODQ0ZThiOWRmMDU1ZTVhMTZjMzY3
Y2UyYmYyOTBhOTNjZTYzNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUu
aApAQCAtNzksOCArNzksNiBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAg
RmlsbFBhdGgsCiAgICAgRmlsbEVsbGlwc2UsCiAgICAgRmx1c2hDb250ZXh0LAotICAgIE1ldGFD
b21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlciwKLSAgICBNZXRhQ29tbWFuZENoYW5n
ZUl0ZW1CdWZmZXIsCiAgICAgR2V0UGl4ZWxCdWZmZXIsCiAgICAgUHV0UGl4ZWxCdWZmZXIsCiAj
aWYgRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4
IGU3MjZkOTRmMzAwNTAwMjMxMmJjNjQyYjMwMTVlY2JhZTMxNDg0OGMuLjcyZmM2ZDFhNzM0NDYx
NDI1ZjBjZTU2N2Y2YjgwYzA0NzIyYzBhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHAKQEAgLTEwMzQsMTggKzEwMzQsNiBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRmx1c2hDb250ZXh0JiBpdGVtKQogICAgIHJldHVy
biB0czsKIH0KIAotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IGNvbnN0IE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlciYgaXRlbSkKLXsKLSAgICB0cy5kdW1w
UHJvcGVydHkoImlkZW50aWZpZXIiLCBpdGVtLmlkZW50aWZpZXIoKSk7Ci0gICAgcmV0dXJuIHRz
OwotfQotCi1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29u
c3QgTWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyJiBpdGVtKQotewotICAg
IHRzLmR1bXBQcm9wZXJ0eSgiaWRlbnRpZmllciIsIGl0ZW0uaWRlbnRpZmllcigpKTsKLSAgICBy
ZXR1cm4gdHM7Ci19Ci0KIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBJdGVtVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtMTA5OCw4ICsx
MDg2LDYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0
ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFBhdGg6IHRzIDw8ICJmaWxsLXBh
dGgiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsRWxsaXBzZTogdHMgPDwgImZpbGwt
ZWxsaXBzZSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDogdHMgPDwg
ImZsdXNoLWNvbnRleHQiOyBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENo
YW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI6IHRzIDw8ICJtZXRhLWNvbW1hbmQtY2hhbmdlLWRl
c3RpbmF0aW9uLWltYWdlLWJ1ZmZlciI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFD
b21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcjogdHMgPDwgIm1ldGEtY29tbWFuZC1jaGFuZ2UtaXRlbS1i
dWZmZXIiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpHZXRQaXhlbEJ1ZmZlcjogdHMgPDwg
ImdldC1waXhlbC1idWZmZXIiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1
ZmZlcjogdHMgPDwgInB1dC1waXhlbC1idWZmZXIiOyBicmVhazsKICNpZiBFTkFCTEUoVklERU8p
CkBAIC0xMjY5LDEyICsxMjU1LDYgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFt
JiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoK
ICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8Rmx1c2hDb250ZXh0PigpOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZm
ZXI6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PE1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25J
bWFnZUJ1ZmZlcj4oKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNv
bW1hbmRDaGFuZ2VJdGVtQnVmZmVyOgotICAgICAgICB0cyA8PCBpdGVtLmdldDxNZXRhQ29tbWFu
ZENoYW5nZUl0ZW1CdWZmZXI+KCk7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6
OkdldFBpeGVsQnVmZmVyOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxHZXRQaXhlbEJ1ZmZlcj4o
KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCBj
ZWJmMzY5YmZhMmVmMGY2N2YxMzFmYjg1MjM2ZTlhYTg5N2Q0NDgwLi5lMTRhNDI5OTNhMGYyYWZk
YjJmNGIxNmEwYWFiZjk1ZWUxNGRiMzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmgKQEAgLTIzOTEsNDQgKzIzOTEsNiBAQCBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dEZs
dXNoSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiB9OwogCi0vLyBGSVhNRTogVGhpcyBzaG91bGQg
YmUgcmVmYWN0b3JlZCBzbyB0aGF0IHRoZSBjb21tYW5kIHRvICJzd2l0Y2ggdG8gdGhlIG5leHQg
aXRlbSBidWZmZXIiCi0vLyBpcyBub3QgaXRzZWxmIGEgZGlzcGxheSBsaXN0IGl0ZW0uCi1jbGFz
cyBNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXIgewotcHVibGljOgotICAgIHN0YXRpYyBjb25z
dGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVt
QnVmZmVyOwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwot
ICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0KLSAgICBl
eHBsaWNpdCBNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXIoSXRlbUJ1ZmZlcklkZW50aWZpZXIg
aWRlbnRpZmllcikKLSAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAgICB7Ci0g
ICAgfQotCi0gICAgSXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faWRlbnRpZmllcjsgfQotICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllci5pc1ZhbGlkKCk7IH0KLQotcHJpdmF0ZToKLSAgICBJdGVtQnVmZmVySWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7Ci19OwotCi1jbGFzcyBNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0
aW9uSW1hZ2VCdWZmZXIgewotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUg
aXRlbVR5cGUgPSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVm
ZmVyOwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOwotICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7Ci0KLSAgICBleHBs
aWNpdCBNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCi0gICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCi0gICAgewotICAgIH0KLQotICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyLmlzVmFsaWQoKTsgfQotCi1wcml2YXRl
OgotICAgIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Ci19OwotCiB1
c2luZyBEaXNwbGF5TGlzdEl0ZW0gPSBzdGQ6OnZhcmlhbnQKICAgICA8IEFwcGx5RGV2aWNlU2Nh
bGVGYWN0b3IKICAgICAsIEJlZ2luQ2xpcFRvRHJhd2luZ0NvbW1hbmRzCkBAIC0yNDY1LDggKzI0
MjcsNiBAQCB1c2luZyBEaXNwbGF5TGlzdEl0ZW0gPSBzdGQ6OnZhcmlhbnQKICAgICAsIEZpbGxS
b3VuZGVkUmVjdAogICAgICwgRmx1c2hDb250ZXh0CiAgICAgLCBHZXRQaXhlbEJ1ZmZlcgotICAg
ICwgTWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyCi0gICAgLCBNZXRhQ29t
bWFuZENoYW5nZUl0ZW1CdWZmZXIKICAgICAsIFB1dFBpeGVsQnVmZmVyCiAgICAgLCBSZXN0b3Jl
CiAgICAgLCBSb3RhdGUKQEAgLTI1NzAsOCArMjUzMCw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAgICAgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsUGF0aCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OkZpbGxFbGxpcHNlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6Rmx1c2hDb250ZXh0LAotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyLAotICAgIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyLAogICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6R2V0UGl4ZWxCdWZmZXIsCiAgICAgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlciwKICNpZiBFTkFCTEUoVklE
RU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKaW5kZXggOTQxYzIw
OTNjZjU2ZjIyMjExM2FiZjAwM2VkMDlmMmM4NTMzYjY1NS4uMjE4NjUwYWY1OGE0YTdiY2YyYzE0
MTBmZjBlZjAwNTA2ODFiNmVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxh
eWVyLmNwcApAQCAtMjI1LDEzICsyMjUsNiBAQCBSZXBsYXlSZXN1bHQgUmVwbGF5ZXI6OnJlcGxh
eShjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBib29sIHRyYWNrUmVwbGF5TGlzdAogCiAg
ICAgICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGlzdHMsIHN0cmVhbSA8PCAiYXBwbHlpbmcg
IiA8PCBpKysgPDwgIiAiIDw8IGl0ZW0pOwogCi0gICAgICAgIGlmIChpdGVtLmlzPE1ldGFDb21t
YW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcj4oKSkgewotICAgICAgICAgICAgcmVzdWx0
Lm51bWJlck9mQnl0ZXNSZWFkICs9IGl0ZW1TaXplSW5CdWZmZXI7Ci0gICAgICAgICAgICByZXN1
bHQucmVhc29uRm9yU3RvcHBpbmcgPSBTdG9wUmVwbGF5UmVhc29uOjpDaGFuZ2VEZXN0aW5hdGlv
bkltYWdlQnVmZmVyOwotICAgICAgICAgICAgcmVzdWx0Lm5leHREZXN0aW5hdGlvbkltYWdlQnVm
ZmVyID0gaXRlbS5nZXQ8TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyPigp
LmlkZW50aWZpZXIoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KICAgICAgICAg
aWYgKGF1dG8gW3JlYXNvbkZvclN0b3BwaW5nLCBtaXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlm
aWVyXSA9IGFwcGx5SXRlbShpdGVtKTsgcmVhc29uRm9yU3RvcHBpbmcpIHsKICAgICAgICAgICAg
IHJlc3VsdC5yZWFzb25Gb3JTdG9wcGluZyA9ICpyZWFzb25Gb3JTdG9wcGluZzsKICAgICAgICAg
ICAgIHJlc3VsdC5taXNzaW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyID0gV1RGTW92ZShtaXNz
aW5nQ2FjaGVkUmVzb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9EaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGZmMzg4YTkxNzljMmNhNzMwOTZiZDkyNTVi
OTdiNmRiZTkwMTMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9EaXNwbGF5TGlzdFJlYWRlckhh
bmRsZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmgiCi0K
LSNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotc3RkOjpvcHRpb25hbDxzaXplX3Q+IERpc3Bs
YXlMaXN0UmVhZGVySGFuZGxlOjphZHZhbmNlKHNpemVfdCBhbW91bnQpCi17Ci0gICAgYXV0byBw
cmV2aW91c1VucmVhZEJ5dGVzID0gaGVhZGVyKCkudW5yZWFkQnl0ZXMuZXhjaGFuZ2VTdWIoYW1v
dW50KTsKLSAgICBpZiAoVU5MSUtFTFkocHJldmlvdXNVbnJlYWRCeXRlcyA8IGFtb3VudCkpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHByZXZpb3VzVW5yZWFkQnl0
ZXMgLSBhbW91bnQ7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3Q+IERpc3BsYXlMaXN0UmVhZGVySGFuZGxlOjpkaXNwbGF5TGlzdEZvclJlYWRpbmcoc2l6ZV90
IG9mZnNldCwgc2l6ZV90IGNhcGFjaXR5LCBEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlclJlYWRpbmdD
bGllbnQmIGNsaWVudCkgY29uc3QKLXsKLSAgICBhdXRvIGNoZWNrZWRFeHRlbnQgPSBjaGVja2Vk
U3VtPHNpemVfdD4ob2Zmc2V0LCBjYXBhY2l0eSk7Ci0gICAgaWYgKFVOTElLRUxZKGNoZWNrZWRF
eHRlbnQuaGFzT3ZlcmZsb3dlZCgpIHx8IGNoZWNrZWRFeHRlbnQgPiBzaGFyZWRNZW1vcnkoKS5z
aXplKCkpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8gZGlzcGxheUxpc3Qg
PSBtYWtlVW5pcXVlPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4oRGlzcGxheUxpc3Q6Okl0ZW1C
dWZmZXJIYW5kbGVzIHt7IGlkZW50aWZpZXIoKSwgZGF0YSgpICsgb2Zmc2V0LCBjYXBhY2l0eSB9
fSk7Ci0gICAgZGlzcGxheUxpc3QtPnNldEl0ZW1CdWZmZXJSZWFkaW5nQ2xpZW50KCZjbGllbnQp
OwotICAgIHJldHVybiBkaXNwbGF5TGlzdDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvRGlzcGxheUxpc3RS
ZWFkZXJIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9EaXNwbGF5
TGlzdFJlYWRlckhhbmRsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODViMzhk
N2U5OTI5Y2RjZDU0ZjA1ZDNkMWY1MGMxMWJkNTZiODczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9EaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiU2hhcmVkRGlzcGxheUxp
c3RIYW5kbGUuaCIKLSNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KLSNpbmNsdWRlIDx3dGYvRmFz
dE1hbGxvYy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgRGlzcGxheUxpc3RSZWFk
ZXJIYW5kbGUgOiBwdWJsaWMgU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKERpc3BsYXlMaXN0UmVhZGVySGFuZGxlKTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5TGlzdFJlYWRlckhhbmRs
ZT4gY3JlYXRlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZWY8U2hhcmVkTWVtb3J5PiYmIHNoYXJlZE1lbW9yeSkKLSAgICB7Ci0gICAgICAg
IGlmIChzaGFyZWRNZW1vcnktPnNpemUoKSA8PSBoZWFkZXJTaXplKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaXNwbGF5TGlzdFJl
YWRlckhhbmRsZShpZGVudGlmaWVyLCBXVEZNb3ZlKHNoYXJlZE1lbW9yeSkpKTsKLSAgICB9Ci0K
LSAgICBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gYWR2YW5jZShzaXplX3QgYW1vdW50KTsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PiBkaXNwbGF5
TGlzdEZvclJlYWRpbmcoc2l6ZV90IG9mZnNldCwgc2l6ZV90IGNhcGFjaXR5LCBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQmKSBjb25zdDsKLQotICAgIHZvaWQg
c3RhcnRXYWl0aW5nKCkKLSAgICB7Ci0gICAgICAgIGhlYWRlcigpLndhaXRpbmdTdGF0dXMuc3Rv
cmUoc3RhdGljX2Nhc3Q8U2hhcmVkRGlzcGxheUxpc3RIYW5kbGU6OldhaXRpbmdTdGF0dXNTdG9y
YWdlVHlwZT4oU2hhcmVkRGlzcGxheUxpc3RIYW5kbGU6OldhaXRpbmdTdGF0dXM6OldhaXRpbmcp
KTsKLSAgICB9Ci0KLSAgICBlbnVtIGNsYXNzIFN0b3BXYWl0aW5nRmFpbHVyZVJlYXNvbiA6IHVp
bnQ4X3QgeyBJbnZhbGlkV2FpdGluZ1N0YXR1cyB9OwotICAgIEV4cGVjdGVkPHN0ZDo6b3B0aW9u
YWw8U2hhcmVkRGlzcGxheUxpc3RIYW5kbGU6OlJlc3VtZVJlYWRpbmdJbmZvcm1hdGlvbj4sIFN0
b3BXYWl0aW5nRmFpbHVyZVJlYXNvbj4gc3RvcFdhaXRpbmcoKQotICAgIHsKLSAgICAgICAgYXV0
byYgaGVhZGVyID0gdGhpcy0+aGVhZGVyKCk7Ci0gICAgICAgIGF1dG8gcHJldmlvdXNTdGF0dXMg
PSBoZWFkZXIud2FpdGluZ1N0YXR1cy5leGNoYW5nZShzdGF0aWNfY2FzdDxTaGFyZWREaXNwbGF5
TGlzdEhhbmRsZTo6V2FpdGluZ1N0YXR1c1N0b3JhZ2VUeXBlPihTaGFyZWREaXNwbGF5TGlzdEhh
bmRsZTo6V2FpdGluZ1N0YXR1czo6Tm90V2FpdGluZykpOwotICAgICAgICBpZiAoIWlzVmFsaWRF
bnVtPFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlOjpXYWl0aW5nU3RhdHVzPihwcmV2aW91c1N0YXR1
cykpCi0gICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoU3RvcFdhaXRpbmdGYWlsdXJl
UmVhc29uOjpJbnZhbGlkV2FpdGluZ1N0YXR1cyk7Ci0KLSAgICAgICAgaWYgKHN0YXRpY19jYXN0
PFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlOjpXYWl0aW5nU3RhdHVzPihwcmV2aW91c1N0YXR1cykg
PT0gU2hhcmVkRGlzcGxheUxpc3RIYW5kbGU6OldhaXRpbmdTdGF0dXM6OlJlc3VtaW5nKQotICAg
ICAgICAgICAgcmV0dXJuIHsgaGVhZGVyLnJlc3VtZVJlYWRpbmdJbmZvIH07Ci0KLSAgICAgICAg
cmV0dXJuIHsgc3RkOjpudWxsb3B0IH07Ci0gICAgfQotCi1wcml2YXRlOgotICAgIERpc3BsYXlM
aXN0UmVhZGVySGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBSZWY8U2hhcmVkTWVtb3J5PiYmIHNoYXJlZE1lbW9yeSkKLSAgICAgICAg
OiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShpZGVudGlmaWVyLCBXVEZNb3ZlKHNoYXJlZE1lbW9y
eSkpCi0gICAgewotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKaW5kZXggMTlmYjE3ZjAyNWZiMmM2NWYxZGRlMjcyYzMwYmIwZGU5NDVjYWY5Zi4u
OTg5YmM5MzBmNDg2ZTFjNmRlN2QxNjZhNDM0YWI1ZWUwNmFjOWVmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2lu
Y2x1ZGUgIlF1YWxpZmllZFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IlJlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIuaCIKLSNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kU3RhdGUuaCIKICNpbmNsdWRlICJSZW1vdGVSZXNvdXJjZUNhY2hlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZW5kZXJpbmdVcGRh
dGVJRC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBhMTRjODdjOGRkNWI1NTQ0MTk5MmZhNTE3NGJmMDhkZmQ2MmEyMTc3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaAorKysgL2Rl
di9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0gY2xhc3Mg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlIDogdWludDhfdCB7Ci0gICAgSW5pdGlhbGl6ZWQs
Ci0gICAgQmVnYW5SZXBsYXlpbmdEaXNwbGF5TGlzdCwKLSAgICBGaW5pc2hlZFJlcGxheWluZ0Rp
c3BsYXlMaXN0LAotICAgIFdhaXRpbmdGb3JDYWNoZWRSZXNvdXJjZSwKLSAgICBXYWl0aW5nRm9y
SXRlbUJ1ZmZlciwKLSAgICBXYWl0aW5nRm9yRGVzdGluYXRpb25JbWFnZUJ1ZmZlciwKLX07Ci0K
LUFMV0FZU19JTkxJTkUgY29uc3QgY2hhciogbmFtZShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3Rh
dGUgc3RhdGUpCi17Ci0gICAgc3dpdGNoIChzdGF0ZSkgewotICAgIGNhc2UgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFN0YXRlOjpJbml0aWFsaXplZDoKLSAgICAgICAgcmV0dXJuICJJbml0aWFsaXpl
ZCI7Ci0gICAgY2FzZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGU6OkJlZ2FuUmVwbGF5aW5n
RGlzcGxheUxpc3Q6Ci0gICAgICAgIHJldHVybiAiQmVnYW5SZXBsYXlpbmdEaXNwbGF5TGlzdCI7
Ci0gICAgY2FzZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGU6OkZpbmlzaGVkUmVwbGF5aW5n
RGlzcGxheUxpc3Q6Ci0gICAgICAgIHJldHVybiAiRmluaXNoZWRSZXBsYXlpbmdEaXNwbGF5TGlz
dCI7Ci0gICAgY2FzZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGU6OldhaXRpbmdGb3JDYWNo
ZWRSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuICJXYWl0aW5nRm9yQ2FjaGVkUmVzb3VyY2UiOwot
ICAgIGNhc2UgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlOjpXYWl0aW5nRm9ySXRlbUJ1ZmZl
cjoKLSAgICAgICAgcmV0dXJuICJXYWl0aW5nRm9ySXRlbUJ1ZmZlciI7Ci0gICAgY2FzZSBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kU3RhdGU6OldhaXRpbmdGb3JEZXN0aW5hdGlvbkltYWdlQnVmZmVy
OgotICAgICAgICByZXR1cm4gIldhaXRpbmdGb3JEZXN0aW5hdGlvbkltYWdlQnVmZmVyIjsKLSAg
ICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuICJJbnZhbGlkIjsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzV2FrZXVwTWVzc2Fn
ZUFyZ3VtZW50cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc1dha2V1cE1lc3Nh
Z2VBcmd1bWVudHMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ0MmJlYjEwMjZi
NjI2MTJmN2VkMTdiYjE1NzY1MGMzYzdmYzRkZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzV2FrZXVw
TWVzc2FnZUFyZ3VtZW50cy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTkgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotCi0jaW5jbHVk
ZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1lbnVtIGNsYXNzIEdQ
VVByb2Nlc3NXYWtldXBSZWFzb24gOiB1aW50OF90IHsKLSAgICBVbnNwZWNpZmllZCwKLSAgICBJ
dGVtQ291bnRIeXN0ZXJlc2lzRXhjZWVkZWQKLX07Ci0KLXN0cnVjdCBHUFVQcm9jZXNzV2FrZXVw
TWVzc2FnZUFyZ3VtZW50cyB7Ci0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJ
ZGVudGlmaWVyIGl0ZW1CdWZmZXJJZGVudGlmaWVyOwotICAgIHVpbnQ2NF90IG9mZnNldCB7IDAg
fTsKLSAgICBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25J
bWFnZUJ1ZmZlcklkZW50aWZpZXI7Ci0gICAgR1BVUHJvY2Vzc1dha2V1cFJlYXNvbiByZWFzb24g
eyBHUFVQcm9jZXNzV2FrZXVwUmVhc29uOjpVbnNwZWNpZmllZCB9OwotCi0gICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEdQVVByb2Nlc3NXYWtldXBNZXNz
YWdlQXJndW1lbnRzPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KLXZvaWQgR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHM6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgaXRlbUJ1ZmZlcklkZW50aWZp
ZXI7Ci0gICAgZW5jb2RlciA8PCBvZmZzZXQ7Ci0gICAgZW5jb2RlciA8PCBkZXN0aW5hdGlvbklt
YWdlQnVmZmVySWRlbnRpZmllcjsKLSAgICBlbmNvZGVyIDw8IHJlYXNvbjsKLX0KLQotdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KLXN0ZDo6b3B0aW9uYWw8R1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VB
cmd1bWVudHM+IEdQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRzOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtQnVmZmVySWRlbnRpZmllcj4gaXRlbUJ1ZmZlcklkZW50aWZpZXI7Ci0gICAgZGVjb2RlciA+
PiBpdGVtQnVmZmVySWRlbnRpZmllcjsKLSAgICBpZiAoIWl0ZW1CdWZmZXJJZGVudGlmaWVyKQot
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gb2Zmc2V0OwotICAgIGRlY29kZXIgPj4gb2Zmc2V0OwotICAgIGlmICghb2Zmc2V0KQotICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IGRlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlm
aWVyOwotICAgIGRlY29kZXIgPj4gZGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXI7Ci0g
ICAgaWYgKCFkZXN0aW5hdGlvbkltYWdlQnVmZmVySWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLQotICAgIHN0ZDo6b3B0aW9uYWw8R1BVUHJvY2Vzc1dha2V1cFJlYXNv
bj4gcmVhc29uOwotICAgIGRlY29kZXIgPj4gcmVhc29uOwotICAgIGlmICghcmVhc29uKQotICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHt7ICppdGVtQnVmZmVySWRl
bnRpZmllciwgKm9mZnNldCwgKmRlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyLCAqcmVh
c29uIH19OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotbmFtZXNwYWNlIFdURiB7Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpHUFVQcm9jZXNzV2FrZXVwUmVh
c29uPiB7Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViS2l0OjpH
UFVQcm9jZXNzV2FrZXVwUmVhc29uLAotICAgICAgICBXZWJLaXQ6OkdQVVByb2Nlc3NXYWtldXBS
ZWFzb246OlVuc3BlY2lmaWVkLAotICAgICAgICBXZWJLaXQ6OkdQVVByb2Nlc3NXYWtldXBSZWFz
b246Okl0ZW1Db3VudEh5c3RlcmVzaXNFeGNlZWRlZAotICAgID47Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXVEYKLQotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9TaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjYjZhZmFiYjE1NWU0YjEwZDczZjQ5MGU2YzY5NjFlNjJmZGVhMGIzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1NoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiU2hhcmVkTWVt
b3J5LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdC5oPgotI2luY2x1ZGUgPHd0Zi9B
dG9taWNzLmg+Ci0jaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLS8vIFRoaXMgaXMgYSBza2VsZXRvbiBvbmx5IHVzZWQgYnkgdGhlIERpc3BsYXlMaXN0
V3JpdGVySGFuZGxlICYgRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUgc3ViY2xhc3Nlcy4KLWNsYXNz
IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRGlzcGxh
eUxpc3RIYW5kbGU+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TaGFyZWREaXNwbGF5TGlzdEhh
bmRsZSgpID0gZGVmYXVsdDsKLQotICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGhlYWRlclNp
emUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJvdW5kVXBUb011bHRpcGxlT2Y8YWxpZ25vZihz
dGQ6Om1heF9hbGlnbl90KT4oc2l6ZW9mKERpc3BsYXlMaXN0U2hhcmVkTWVtb3J5SGVhZGVyKSk7
Ci0gICAgfQotCi0gICAgU2hhcmVkTWVtb3J5JiBzaGFyZWRNZW1vcnkoKSB7IHJldHVybiBtX3No
YXJlZE1lbW9yeS5nZXQoKTsgfQotICAgIGNvbnN0IFNoYXJlZE1lbW9yeSYgc2hhcmVkTWVtb3J5
KCkgY29uc3QgeyByZXR1cm4gbV9zaGFyZWRNZW1vcnkuZ2V0KCk7IH0KLQotICAgIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgdWludDhfdCogZGF0YSgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzaGFyZWRNZW1vcnkoKS5kYXRhKCkpOyB9Ci0KLSAgICB1
aW50NjRfdCB1bnJlYWRCeXRlcygpCi0gICAgewotICAgICAgICByZXR1cm4gaGVhZGVyKCkudW5y
ZWFkQnl0ZXMubG9hZCgpOwotICAgIH0KLQotICAgIGVudW0gY2xhc3MgV2FpdGluZ1N0YXR1cyA6
IHVpbnQ4X3QgewotICAgICAgICBOb3RXYWl0aW5nLAotICAgICAgICBXYWl0aW5nLAotICAgICAg
ICBSZXN1bWluZwotICAgIH07Ci0gICAgdXNpbmcgV2FpdGluZ1N0YXR1c1N0b3JhZ2VUeXBlID0g
c3RkOjp1bmRlcmx5aW5nX3R5cGVfdDxXYWl0aW5nU3RhdHVzPjsKLQotICAgIHN0cnVjdCBSZXN1
bWVSZWFkaW5nSW5mb3JtYXRpb24gewotICAgICAgICB1aW50NjRfdCBvZmZzZXQ7Ci0gICAgICAg
IHVpbnQ2NF90IGRlc3RpbmF0aW9uOwotICAgIH07Ci0KLXByb3RlY3RlZDoKLSAgICBTaGFyZWRE
aXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgUmVmPFNoYXJlZE1lbW9yeT4mJiBzaGFyZWRNZW1vcnkpCi0gICAgICAg
IDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbV9zaGFyZWRNZW1vcnkoV1RG
TW92ZShzaGFyZWRNZW1vcnkpKQotICAgIHsKLSAgICB9Ci0KLSAgICBzdHJ1Y3QgRGlzcGxheUxp
c3RTaGFyZWRNZW1vcnlIZWFkZXIgewotICAgICAgICBEaXNwbGF5TGlzdFNoYXJlZE1lbW9yeUhl
YWRlcigpID0gZGVsZXRlOwotICAgICAgICB+RGlzcGxheUxpc3RTaGFyZWRNZW1vcnlIZWFkZXIo
KSA9IGRlbGV0ZTsKLQotICAgICAgICBBdG9taWM8dWludDY0X3Q+IHVucmVhZEJ5dGVzOwotICAg
ICAgICBSZXN1bWVSZWFkaW5nSW5mb3JtYXRpb24gcmVzdW1lUmVhZGluZ0luZm87Ci0gICAgICAg
IEF0b21pYzxXYWl0aW5nU3RhdHVzU3RvcmFnZVR5cGU+IHdhaXRpbmdTdGF0dXM7Ci0gICAgfTsK
LQotICAgIGNvbnN0IERpc3BsYXlMaXN0U2hhcmVkTWVtb3J5SGVhZGVyJiBoZWFkZXIoKSBjb25z
dCB7IHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCBEaXNwbGF5TGlzdFNoYXJlZE1lbW9y
eUhlYWRlcio+KGRhdGEoKSk7IH0KLSAgICBEaXNwbGF5TGlzdFNoYXJlZE1lbW9yeUhlYWRlciYg
aGVhZGVyKCkgeyByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8RGlzcGxheUxpc3RTaGFyZWRNZW1v
cnlIZWFkZXIqPihkYXRhKCkpOyB9Ci0KLXByaXZhdGU6Ci0gICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLSAgICBSZWY8U2hhcmVkTWVt
b3J5PiBtX3NoYXJlZE1lbW9yeTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi1uYW1l
c3BhY2UgV1RGIHsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJLaXQ6OlNoYXJl
ZERpc3BsYXlMaXN0SGFuZGxlOjpXYWl0aW5nU3RhdHVzPiB7Ci0gICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKLSAgICAgICAgV2ViS2l0OjpTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6V2Fp
dGluZ1N0YXR1cywKLSAgICAgICAgV2ViS2l0OjpTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6V2Fp
dGluZ1N0YXR1czo6Tm90V2FpdGluZywKLSAgICAgICAgV2ViS2l0OjpTaGFyZWREaXNwbGF5TGlz
dEhhbmRsZTo6V2FpdGluZ1N0YXR1czo6V2FpdGluZywKLSAgICAgICAgV2ViS2l0OjpTaGFyZWRE
aXNwbGF5TGlzdEhhbmRsZTo6V2FpdGluZ1N0YXR1czo6UmVzdW1pbmcKLSAgICA+OwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA2NDFkZjE2NGY5ZTNjODVlM2U0Nzg3
MTE4YTM1OTNmNjc4NzUxYmE4Li5kYzJkYmQ1MjZkNWI4YWE0ZTkxMTkwMWI3MjA0NjdmMGUyM2Qz
Mjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTI0LDcgKzI0LDYgQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vz
cy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nl
c3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKLUdQVVByb2Nlc3MvZ3JhcGhpY3Mv
RGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZURp
c3BsYXlMaXN0UmVjb3JkZXIuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwCiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
LmNwcApAQCAtNzA2LDcgKzcwNSw2IEBAIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVTaGFkZXJNb2R1bGVQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQ
VS9SZW1vdGVUZXh0dXJlUHJveHkuY3BwCiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUv
UmVtb3RlVGV4dHVyZVZpZXdQcm94eS5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1dlYkdQ
VS9XZWJHUFVEb3duY2FzdENvbnZlcnRUb0JhY2tpbmdDb250ZXh0LmNwcAotV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvRGlzcGxheUxpc3RXcml0ZXJIYW5kbGUuY3BwCiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwCiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJh
dGVkLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDhjNTczMDcyMWNiMjI4ZTUwMTNjMzcxNTEwZGZjY2FkZGE1ODY1ODUuLjY1NDBl
YjBiY2Y2YzZiMTMxZDE3ODQ0ZmVkYTM1YzA3MGNkMWNhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTk4MywxMSArMTk4Myw3IEBA
CiAJCUU1Q0IwN0RDMjBFMTY3OEYwMDIyQzE4MyAvKiBXS0Zvcm1Db2xvckNvbnRyb2wuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0IwN0RBMjBFMTY3
OEYwMDIyQzE4MyAvKiBXS0Zvcm1Db2xvckNvbnRyb2wuaCAqLzsgfTsKIAkJRTVERUZBNjgyNkY4
RjQyNjAwQUI2OERCIC8qIFBob3Rvc1VJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlT
UEkuaCAqLzsgfTsKIAkJRUQ4MkE3RjIxMjhDNkZBRjAwNDQ3N0IzIC8qIFdLQnVuZGxlUGFnZU92
ZXJsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
MjJGMEZGMTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjQwOTRDQkQyNTUzMDUz
RDAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5NENCQjI1NTMwNEFGMDAzRDczRTMgLyog
RGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuaCAqLzsgfTsKLQkJRjQwOTRDQkUyNTUzMDU0MDAwM0Q3
M0UzIC8qIERpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5NENCOTI1NTMwNDdFMDAzRDczRTMgLyogRGlzcGxh
eUxpc3RXcml0ZXJIYW5kbGUuaCAqLzsgfTsKIAkJRjQwOUJBMTgxRTZFNjRCQzAwOURBMjhFIC8q
IFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVzdGlu
YXRpb25BY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQlGNDBCQkI0MTI1N0ZGNDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1lc3Nh
Z2VBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0MEJCQjQwMjU3RkY0NkUwMDY3NDYzQSAvKiBHUFVQcm9jZXNzV2FrZXVwTWVzc2FnZUFy
Z3VtZW50cy5oICovOyB9OwotCQlGNDE0Q0UyRDI2OURFNkVBMDBCRDIxNkEgLyogUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDE0Q0UyQzI2OURFNkVBMDBCRDIxNkEgLyogUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFN0YXRlLmggKi87IH07CiAJCUY0Mjk5NTA3MjcwRTIzNEQwMDMyMjk4QiAvKiBTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0Mjk5NTA2MjcwRTIzNEMwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
aCAqLzsgfTsKIAkJRjQyRDYzNDEyMkEwRUZERjAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9u
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQy
RDYzM0YyMkEwRUZEMzAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oICovOyB9Owog
CQlGNDMwRTk0MjIyNDczMzVGMDA1RkUwNTMgLyogV2Vic2l0ZU1ldGFWaWV3cG9ydFBvbGljeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQzMEU5NDEy
MjQ3MzJBOTAwNUZFMDUzIC8qIFdlYnNpdGVNZXRhVmlld3BvcnRQb2xpY3kuaCAqLzsgfTsKQEAg
LTIwMTAsNyArMjAwNiw2IEBACiAJCUY0OTZBNDMxMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJv
cEludGVyYWN0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0OTZBNDJGMUY1OEEyNzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9u
U3RhdGUuaCAqLzsgfTsKIAkJRjQ5NzRFNzYyNjVFQ0JCQzAwQjQ5QjhDIC8qIFdLUmV2ZWFsSXRl
bVByZXNlbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQ0NkVERUYyNjVFQjJCMDAwMzFEQThGIC8qIFdLUmV2ZWFsSXRlbVByZXNlbnRlci5oICov
OyB9OwogCQlGNDk3NUNGMjI2MjRCODBBMDAzQzYyNkUgLyogV0tRdWlja0xvb2tQcmV2aWV3Q29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQ5NzVDRjEyNjI0QjgwQTAwM0M2MjZFIC8qIFdLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIu
aCAqLzsgfTsKLQkJRjRBNkQ2QkMyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0
SGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEE2RDZCQjI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCAqLzsg
fTsKIAkJRjRCQTMzRjIyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVS
ZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXIuaCAqLzsgfTsKIAkJRjRDQjA5RTUyMjVENUEwOTAwODkxNDg3IC8qIFdlYnNpdGVNZWRp
YVNvdXJjZVBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjRDQjA5RTQyMjVENUEwMzAwODkxNDg3IC8qIFdlYnNpdGVNZWRpYVNvdXJjZVBvbGlj
eS5oICovOyB9OwogCQlGNENGMUU5RDI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVyZVJlY29nbml6
ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNENGMUU5QjI1RTQwRENDMDAwRjlENzMgLyogR2VzdHVyZVJlY29nbml6
ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLmggKi87IH07CkBAIC02MjA0LDE1ICs2MTk5LDkgQEAKIAkJ
RUNBNjgwRDMxRTY5MDRCNTAwNzMxRDIwIC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JU
QVBJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVDQkZDMURCMUU2QTRENjYwMDAz
MDBDNyAvKiBFeHRyYVB1YmxpY1N5bWJvbHNGb3JUQVBJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dHJh
UHVibGljU3ltYm9sc0ZvclRBUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjAz
Njk3ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNvbG9yUGlja2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yUGlja2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRjQwOTRDQjkyNTUzMDQ3RTAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0
V3JpdGVySGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0MDk0Q0JBMjU1MzA0N0UwMDNENzNFMyAv
KiBEaXNwbGF5TGlzdFdyaXRlckhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5
TGlzdFdyaXRlckhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0MDk0
Q0JCMjU1MzA0QUYwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlGNDA5NENCQzI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5k
bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyog
V0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRjQwQkJCNDAyNTdGRjQ2RTAwNjc0NjNBIC8qIEdQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJn
dW1lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MEQxQjY4MjIwQkRDMEYwMEI0OUEw
MSAvKiBXZWJBdXRvY29ycmVjdGlvbkNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXV0b2Nv
cnJlY3Rpb25Db250ZXh0Lmg7IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MTA1NjYxMjEzMDY5OUEwMDkyMjgxRCAv
KiBBUElBdHRhY2htZW50Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBUElBdHRhY2ht
ZW50Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0MTRDRTJDMjY5REU2
RUEwMEJEMjE2QSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0Mjk5NTA2MjcwRTIzNEMwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyZWFtTWVzc2FnZVJlY2VpdmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkQ2MzNGMjJBMEVGRDMwMEQyRkIz
QSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmg7IHBhdGggPSBpb3MvV2ViQXV0b2NvcnJlY3Rp
b25EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0MkQ2MzQwMjJBMEVGRDMw
MEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJBdXRvY29ycmVjdGlvbkRhdGEubW07IHBhdGggPSBpb3Mv
V2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjI1MSw3ICs2MjQwLDYgQEAKIAkJRjQ5NkE0MzAxRjU4QTI3MjAwNEMxNzU3IC8qIERyYWdEcm9w
SW50ZXJhY3Rpb25TdGF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IERyYWdEcm9wSW50ZXJh
Y3Rpb25TdGF0ZS5tbTsgcGF0aCA9IGlvcy9EcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAvKiBX
S1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUXVpY2tMb29r
UHJldmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ5NzVD
RjMyNjI0QjkxODAwM0M2MjZFIC8qIFdLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNEE2RDZCQjI1NENBM0U5MDBCNjVGQUEgLyogU2hh
cmVkRGlzcGxheUxpc3RIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVkRGlzcGxheUxpc3RI
YW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRBN0NFODQyNjY3RUI0RTAw
MjI4Njg1IC8qIFRleHRSZWNvZ25pdGlvblVwZGF0ZVJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
ZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjRBQzY1NUUyMkEzMTQwRTAwQTA1NjA3IC8qIFdlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYlByZWZl
cmVuY2VzRGVmYXVsdFZhbHVlc0lPUy5tbTsgcGF0aCA9IGlvcy9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QjM3OEQwMjFE
REJCQUIwMDk1QTM3OCAvKiBXZWJVbmRvU3RlcElELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVuZG9T
dGVwSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY5MTcsNyArNjkwNSw2IEBA
CiAJCQkJNUMxMjFFODMyNDEwMUY3MDAwNDg2RjlCIC8qIEZyYW1lVHJlZU5vZGVEYXRhLmggKi8s
CiAJCQkJNDEwRjBENEIyNzAxRUZFQTAwRjk2REZDIC8qIEdQVVByb2Nlc3NDb25uZWN0aW9uSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi8sCiAJCQkJNDZBQzUzMjQyNURFRDgxRTAwM0I1N0VD
IC8qIEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oICovLAotCQkJCUY0MEJCQjQwMjU3
RkY0NkUwMDY3NDYzQSAvKiBHUFVQcm9jZXNzV2FrZXVwTWVzc2FnZUFyZ3VtZW50cy5oICovLAog
CQkJCTFBQzc1QTFBMUIzMzY4MjcwMDU2NzQ1QiAvKiBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIuaCAq
LywKIAkJCQkwRkQyQ0IyNTI2Q0REN0EzMDAwOEIxMUMgLyogSWRlbnRpZmllclR5cGVzLmggKi8s
CiAJCQkJQkNDRjZCMjMxMkM5M0U3QTAwOEY5QzM1IC8qIEltYWdlT3B0aW9ucy5oICovLApAQCAt
Njk2Niw3ICs2OTUzLDYgQEAKIAkJCQkxQTY0MjBFMzEyRENFMkZGMDBDQUFFMkMgLyogU2hhcmVh
YmxlQml0bWFwLmggKi8sCiAJCQkJNTEyMTc0NUUxNjRDMjBFMzAwMzdBNUMxIC8qIFNoYXJlYWJs
ZVJlc291cmNlLmNwcCAqLywKIAkJCQk1MTIxNzQ1RjE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVh
YmxlUmVzb3VyY2UuaCAqLywKLQkJCQlGNEE2RDZCQjI1NENBM0U5MDBCNjVGQUEgLyogU2hhcmVk
RGlzcGxheUxpc3RIYW5kbGUuaCAqLywKIAkJCQk4MzEzRjdFQTFGN0RBRTA0MDBCOTQ0RUIgLyog
U2hhcmVkU3RyaW5nSGFzaFN0b3JlLmNwcCAqLywKIAkJCQk4MzEzRjdFOTFGN0RBRTAzMDBCOTQ0
RUIgLyogU2hhcmVkU3RyaW5nSGFzaFN0b3JlLmggKi8sCiAJCQkJODMxM0Y3RTgxRjdEQUUwMzAw
Qjk0NEVCIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZS5jcHAgKi8sCkBAIC05MzU3LDggKzkzNDMs
NiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNzI3QTdGMzMyNDA3ODUyNzAwNEQyOTMxIC8qIGNv
Y29hICovLAogCQkJCTFDQjc0NjE5Mjc0MzZERTMwMEYxOTg3NCAvKiBXZWJHUFUgKi8sCi0JCQkJ
RjQwOTRDQkEyNTUzMDQ3RTAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmNwcCAq
LywKLQkJCQlGNDA5NENCOTI1NTMwNDdFMDAzRDczRTMgLyogRGlzcGxheUxpc3RXcml0ZXJIYW5k
bGUuaCAqLywKIAkJCQk3QjY0QzBCNjI1NEM1QzI1MDAwNkI0QUYgLyogR3JhcGhpY3NDb250ZXh0
R0xJZGVudGlmaWVyLmggKi8sCiAJCQkJNzI3QTdGMzkyNDA3ODhGMTAwNEQyOTMxIC8qIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZS5oICovLAogCQkJCTcyN0E3RjM3MjQwNzg4RjAwMDREMjkzMSAv
KiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuY3BwICovLApAQCAtOTM4Niw4ICs5
MzcwLDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMUM5OEMw
MUMyNzQ0NjkyNjAwMkNDQjc4IC8qIFdlYkdQVSAqLywKLQkJCQlGNDA5NENCQzI1NTMwNEFGMDAz
RDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuY3BwICovLAotCQkJCUY0MDk0Q0JCMjU1
MzA0QUYwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5oICovLAogCQkJCTdCMTYx
OTEzMjcxOUFFNzYwMEM0MEVBQyAvKiBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaCAqLywK
IAkJCQk1NUFEMDk0MzI0MDhBMEU2MDBERTREMkYgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZl
ci5oICovLAogCQkJCTFDQzU0QUZEMjcwRjk2NTQwMDVCRjhCRSAvKiBRdWFsaWZpZWRSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKQEAgLTk0MDUsNyArOTM4Nyw2IEBACiAJCQkJNTUw
NjQwQTMyNDA3MUE2MTAwQUFFMDQ1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCAqLywKIAkJ
CQk1NTA2NDBBNDI0MDcxQzIxMDBBQUUwNDUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNz
YWdlcy5pbiAqLywKIAkJCQk0NjA4ODlGRjI2MUZBOEE5MDBFMjUwMEQgLyogUmVtb3RlUmVuZGVy
aW5nQmFja2VuZENyZWF0aW9uUGFyYW1ldGVycy5oICovLAotCQkJCUY0MTRDRTJDMjY5REU2RUEw
MEJEMjE2QSAvKiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGUuaCAqLywKIAkJCQk3MjZENTZE
RDI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgKi8sCiAJCQkJNzI2
RDU2REUyNTNBNjQ4MTAwMDJFRjkwIC8qIFJlbW90ZVJlc291cmNlQ2FjaGUuaCAqLywKIAkJCQk3
QkNGNzBDQTI2MTQ5MzVFMDBFNEZCNzAgLyogU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVz
dC5jcHAgKi8sCkBAIC0xMjU0Niw4ICsxMjUyNyw2IEBACiAJCQkJODM4OTFCNkMxQTY4QzMwQjAw
MzBGMzg2IC8qIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlD
MTgxNzM2MTIwNTg0MjQ3MDBERkRBNjUgLyogRGlzcGxheUxpbmsuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMTg5Q0FDMjQ3NDlGMkYwMEU1OEQ4MSAvKiBEaXNwbGF5TGlua09ic2VydmVySUQuaCBp
biBIZWFkZXJzICovLAotCQkJCUY0MDk0Q0JEMjU1MzA1M0QwMDNENzNFMyAvKiBEaXNwbGF5TGlz
dFJlYWRlckhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjQwOTRDQkUyNTUzMDU0MDAwM0Q3
M0UzIC8qIERpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzE0
MjcwMjFDMjNGODRDMDBENDExODMgLyogRG93bmxvYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
MTQyNzA1MUMyM0Y4NEMwMEQ0MTE4MyAvKiBEb3dubG9hZElELmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1QzE0MjcwNzFDMjNGODRDMDBENDExODMgLyogRG93bmxvYWRNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTEyNTk3LDcgKzEyNTc2LDYgQEAKIAkJCQkyREE5NDRBNDE4ODRFNEYwMDBFRDg2
REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTBGMEQ0QzI3MDFFRkY5
MDBGOTZERkMgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb25Jbml0aWFsaXphdGlvblBhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MTRGMTMyMjVERUQ4NzUwMDcwMDZFNyAvKiBHUFVQcm9j
ZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCUY0MEJCQjQxMjU3
RkY0NkUwMDY3NDYzQSAvKiBHUFVQcm9jZXNzV2FrZXVwTWVzc2FnZUFyZ3VtZW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkRBMDQ5QjgxODBDQ0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJD
QVJlbW90ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBDRTcyQUQxMjQ3RTc4RDAwQkMwRUM0IC8q
IEhhbmRsZU1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzc1QTFCMUIzMzY4MjcwMDU2
NzQ1QiAvKiBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTI4NTgs
NyArMTI4MzYsNiBAQAogCQkJCTQ2MDg4QTAxMjYxRkE4QzQwMEUyNTAwRCAvKiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDUx
N0Q3QzI2RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZE1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGNDUxN0Q3QjI2RkJDRDM5MDA0Qzg0NzUgLyogUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZE1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjQxNENF
MkQyNjlERTZFQTAwQkQyMTZBIC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1OTQ3OTAxODdCM0IzQTAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU5NDdBODE4N0I1MTc2MDA0Mzc4
NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY1OTQ3OUIxODdCM0I2MDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuaCBpbiBIZWFkZXJzICovLApAQCAtMTI4OTksNyArMTI4NzYsNiBAQAogCQkJCTUx
MjE3NDYxMTY0QzIwRTMwMDM3QTVDMSAvKiBTaGFyZWFibGVSZXNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTE4MzQ5NDIyNEVGNDY3ODAwQkRDOUE4IC8qIFNoYXJlZEJ1ZmZlckNvcHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTJEQzE4RkY2RUYyQTMxMzBDMTMwMTc2NyAvKiBTaGFyZWRCdWZm
ZXJEYXRhUmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGNEE2RDZCQzI1NENBM0U5MDBC
NjVGQUEgLyogU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MTIyQzg2MjcxMENDREYwMDFEODE5RiAvKiBTaGFyZWRGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTI0QkVENTEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDRCNEQ5RDFFNzY1RTAwMDBEMjcwOTIgLyogU2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9EaXNwbGF5TGlzdFdyaXRlckhhbmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgxOTg3N2Y0ZGVhZDU0MWU5ZjQyMzA1
Mzc2NzkzM2RjNGNjZDFjYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0
V3JpdGVySGFuZGxlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGlzcGxheUxpc3RXcml0ZXJIYW5k
bGUuaCIKLQotI2luY2x1ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1zaXplX3QgRGlzcGxheUxpc3RX
cml0ZXJIYW5kbGU6OmFkdmFuY2Uoc2l6ZV90IGFtb3VudCkKLXsKLSAgICBtX3dyaXRhYmxlT2Zm
c2V0ID0gQ2hlY2tlZFNpemUgeyBtX3dyaXRhYmxlT2Zmc2V0IH0gKyBhbW91bnQ7Ci0gICAgcmV0
dXJuIENoZWNrZWRTaXplIHsgaGVhZGVyKCkudW5yZWFkQnl0ZXMuZXhjaGFuZ2VBZGQoYW1vdW50
KSB9ICsgYW1vdW50OwotfQotCi1zaXplX3QgRGlzcGxheUxpc3RXcml0ZXJIYW5kbGU6OmF2YWls
YWJsZUNhcGFjaXR5KCkgY29uc3QKLXsKLSAgICBpZiAoVU5MSUtFTFkoc2hhcmVkTWVtb3J5KCku
c2l6ZSgpIDwgd3JpdGFibGVPZmZzZXQoKSkpCi0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0KLSAgICByZXR1cm4gc2hhcmVkTWVtb3J5KCkuc2l6ZSgpIC0gd3JpdGFibGVP
ZmZzZXQoKTsKLX0KLQotRGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJIYW5kbGUgRGlzcGxheUxpc3RX
cml0ZXJIYW5kbGU6OmNyZWF0ZUhhbmRsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHsKLSAgICAg
ICAgaWRlbnRpZmllcigpLAotICAgICAgICBkYXRhKCkgKyB3cml0YWJsZU9mZnNldCgpLAotICAg
ICAgICBhdmFpbGFibGVDYXBhY2l0eSgpCi0gICAgfTsKLX0KLQotYm9vbCBEaXNwbGF5TGlzdFdy
aXRlckhhbmRsZTo6bW92ZVdyaXRhYmxlT2Zmc2V0VG9TdGFydElmUG9zc2libGUoKQotewotICAg
IGlmIChtX3dyaXRhYmxlT2Zmc2V0IDw9IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlOjpoZWFkZXJT
aXplKCkpIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQobV93cml0YWJsZU9mZnNldCA9PSBTaGFy
ZWREaXNwbGF5TGlzdEhhbmRsZTo6aGVhZGVyU2l6ZSgpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotCi0gICAgaWYgKHVucmVhZEJ5dGVzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIG1fd3JpdGFibGVPZmZzZXQgPSBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6aGVhZGVy
U2l6ZSgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvRGlzcGxheUxp
c3RXcml0ZXJIYW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
RGlzcGxheUxpc3RXcml0ZXJIYW5kbGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmIxZTNlMDBhZjg0NDAyODhlZWFmZmQ1MDMxNWI2OWJlMThiYWUzYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJTaGFy
ZWREaXNwbGF5TGlzdEhhbmRsZS5oIgotI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBEaXNwbGF5TGlzdFdyaXRlckhhbmRsZSA6IHB1Ymxp
YyBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGlz
cGxheUxpc3RXcml0ZXJIYW5kbGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPERpc3BsYXlMaXN0V3JpdGVySGFuZGxlPiBjcmVhdGUoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxTaGFy
ZWRNZW1vcnk+JiYgc2hhcmVkTWVtb3J5KQotICAgIHsKLSAgICAgICAgaWYgKHNoYXJlZE1lbW9y
eS0+c2l6ZSgpIDw9IGhlYWRlclNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpc3BsYXlMaXN0V3JpdGVySGFuZGxlKGlkZW50
aWZpZXIsIFdURk1vdmUoc2hhcmVkTWVtb3J5KSkpOwotICAgIH0KLQotICAgIHNpemVfdCB3cml0
YWJsZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JpdGFibGVPZmZzZXQ7IH0KLSAgICBzaXpl
X3QgYXZhaWxhYmxlQ2FwYWNpdHkoKSBjb25zdDsKLQotICAgIGJvb2wgbW92ZVdyaXRhYmxlT2Zm
c2V0VG9TdGFydElmUG9zc2libGUoKTsKLQotICAgIHNpemVfdCBhZHZhbmNlKHNpemVfdCBhbW91
bnQpOwotICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySGFuZGxlIGNyZWF0ZUhh
bmRsZSgpIGNvbnN0OwotCi0gICAgYm9vbCB0cnlUb1Jlc3VtZShTaGFyZWREaXNwbGF5TGlzdEhh
bmRsZTo6UmVzdW1lUmVhZGluZ0luZm9ybWF0aW9uJiYgaW5mbykKLSAgICB7Ci0gICAgICAgIGF1
dG8mIGhlYWRlciA9IHRoaXMtPmhlYWRlcigpOwotICAgICAgICBoZWFkZXIucmVzdW1lUmVhZGlu
Z0luZm8gPSBXVEZNb3ZlKGluZm8pOwotICAgICAgICByZXR1cm4gaGVhZGVyLndhaXRpbmdTdGF0
dXMuY29tcGFyZUV4Y2hhbmdlV2VhaygKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PFNoYXJlZERp
c3BsYXlMaXN0SGFuZGxlOjpXYWl0aW5nU3RhdHVzU3RvcmFnZVR5cGU+KFNoYXJlZERpc3BsYXlM
aXN0SGFuZGxlOjpXYWl0aW5nU3RhdHVzOjpXYWl0aW5nKSwKLSAgICAgICAgICAgIHN0YXRpY19j
YXN0PFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlOjpXYWl0aW5nU3RhdHVzU3RvcmFnZVR5cGU+KFNo
YXJlZERpc3BsYXlMaXN0SGFuZGxlOjpXYWl0aW5nU3RhdHVzOjpSZXN1bWluZykKLSAgICAgICAg
KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgRGlzcGxheUxpc3RXcml0ZXJIYW5kbGUoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxTaGFy
ZWRNZW1vcnk+JiYgc2hhcmVkTWVtb3J5KQotICAgICAgICA6IFNoYXJlZERpc3BsYXlMaXN0SGFu
ZGxlKGlkZW50aWZpZXIsIFdURk1vdmUoc2hhcmVkTWVtb3J5KSkKLSAgICAgICAgLCBtX3dyaXRh
YmxlT2Zmc2V0KFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlOjpoZWFkZXJTaXplKCkpCi0gICAgewot
ICAgIH0KLQotICAgIHNpemVfdCBtX3dyaXRhYmxlT2Zmc2V0IHsgMCB9OwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaAppbmRl
eCBmYTgzMjk5MTE5YmZlMWQxYTMyOGQxZTY4MmEwMzA3OTVjOGQ3Yzk3Li4wOWM4OTEwN2FkOTdk
YmE0MWJiYzMyMTAzYmFjYWQyOWMwMTJlMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
ICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIkdQVVByb2Nlc3NX
YWtldXBNZXNzYWdlQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggNDcyMmI2ZGQ4NzQzOGYzZGIyNzNjYzlhM2E2ZmYzZTcyODYxNWMxZS4uYmQyYzg5Y2RiYjRh
YmZiOTEwODQzZTMwMGZjZjA1YTg1MzNiMWE5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTExLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBvbGQg
Y29uY3VycmVudCBkaXNwbGF5IGxpc3QgbG9naWMgdGhhdCdzIG5vIGxvbmdlciBuZWNlc3NhcnkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQzMwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSBXZWJD
b3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisKIDIwMjEtMTEtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgV0tDb250ZW50VmlldyBzaG91bGQgYWxsb3cgLWNhcHR1cmVU
ZXh0RnJvbUNhbWVyYTogd2l0aCBhIGNhcmV0IHNlbGVjdGlvbiB1bmxlc3MgdGhlIHNlbmRlciBp
cyB0aGUgY2FsbG91dCBiYXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAppbmRleCBmMjU5ZWY5ZmM2ZjRlMDA4MzA2YjUw
YjQyZjZhNjFiNWY0ZDUzMmZhLi5iOTg2YTJhNTg4ODQ2NWJlMTkyMGE2ZTA2NjhkNzBkYjI0OTA2
ZWFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxh
eUxpc3RUZXN0cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rp
c3BsYXlMaXN0VGVzdHMuY3BwCkBAIC0xMjIsOCArMTIyLDYgQEAgVEVTVChEaXNwbGF5TGlzdFRl
c3RzLCBBcHBlbmRJdGVtcykKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjZW5kaWYK
LSAgICAgICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyOgotICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgICAgIG9ic2VydmVk
VW5leHBlY3RlZEl0ZW0gPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7Cg==
</data>
<flag name="review"
          id="470110"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="470120"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444992</attachid>
            <date>2021-11-22 16:49:20 -0800</date>
            <delta_ts>2021-11-22 18:25:07 -0800</delta_ts>
            <desc>Try to fix build (unified sources)</desc>
            <filename>bug-233433-20211122164918.patch</filename>
            <type>text/plain</type>
            <size>58413</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2YwMDE3ZjIxOWMxYmIy
ZDliMWM0MmJmY2JjYmZkYTczY2YzZWJjNC4uMTVjMWQ0NjgwZTQxZTI1OGE1MDgzODAzN2IzY2Nm
ZThiYWVkODAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTExLTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBvbGQg
Y29uY3VycmVudCBkaXNwbGF5IGxpc3QgbG9naWMgdGhhdCdzIG5vIGxvbmdlciBuZWNlc3NhcnkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzQzMwor
CisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgTm93IHRoYXQgY29u
Y3VycmVudCBkaXNwbGF5IGxpc3RzIChpLmUuIGZvciAyRCBjYW52YXMgYW5kIERPTSByZW5kZXJp
bmcgaW4gdGhlIEdQVSBwcm9jZXNzKSB1c2VzIHRoZSBzYW1lIHNoYXJlZAorICAgICAgICBJUEMg
c3RyZWFtaW5nIG1lY2hhbmlzbSBhcyBXZWJHTCwgd2UgY2FuIHJlbW92ZSB0aGUgb2xkIGNvbmN1
cnJlbnQgZGlzcGxheSBsaXN0IHByb2Nlc3NpbmcgbG9naWMgYXJvdW5kIGRpc3BsYXkKKyAgICAg
ICAgbGlzdHMgYW5kIHRoZSByZW1vdGUgcmVuZGVyaW5nIGJhY2tlbmQgaW4gV2ViS2l0Mi4KKwor
ICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IsIHNpbmNlIHRoaXMgY29kZSBpcyBub3cgYWxs
IChlZmZlY3RpdmVseSkgdW51c2VkLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1CdWZmZXI6OnN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKToKKworICAgICAg
ICBBZGRpdGlvbmFsbHkgcmVtb3ZlIGEgY291cGxlIG9mIGRpc3BsYXkgbGlzdCBpdGVtcyB0aGF0
IHdlcmUgb25seSB1c2VkIGZvciBjb25jdXJyZW50IGRpc3BsYXkgbGlzdCBwcm9jZXNzaW5nLgor
ICAgICAgICBJbiBhIGZvbGxvd3VwLCB3ZSBzaG91bGQgcmVtb3ZlIG1vcmUgbG9naWMgYXJvdW5k
IHRoaXMgYXJlYSBwZXJ0YWluaW5nIHRvIGRpc3BsYXkgbGlzdCByZWFkZXIgYW5kIHdyaXRlcgor
ICAgICAgICBjbGllbnRzLCBhbmQgdGhlIGRpc3BsYXkgbGlzdCByZXBsYXllciBkZWxlZ2F0ZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1UeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5C
eXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcjo6
TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI6OmlkZW50aWZpZXIgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5k
Q2hhbmdlSXRlbUJ1ZmZlcjo6aXNWYWxpZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVy
OjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25J
bWFnZUJ1ZmZlcjo6aWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyOjpp
c1ZhbGlkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6UmVwbGF5ZXI6OnJlcGxheSk6CisKIDIwMjEtMTEtMTggIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgYmFzaWMgaGV1cmlzdGlj
IGZvciBzaXppbmcgdGV4dCBpbiBpbWFnZSBvdmVybGF5IGJsb2NrcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhNGIy
ZDMxNWJlNDE0ODZlYzlmZTUzZjRmZTRkZjAzZjJhMDVlNGUwLi44NGE1NDIzOTk2MjBhMjgzZGRj
Yzc0ZTUyNjI1NzAxZGYwYzY4ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEx
LTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJl
bW92ZSBvbGQgY29uY3VycmVudCBkaXNwbGF5IGxpc3QgbG9naWMgdGhhdCdzIG5vIGxvbmdlciBu
ZWNlc3NhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMzQzMworCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgU2Vl
IFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL0Rpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0Rpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmg6IFJlbW92
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
U3RhdGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9S
ZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmNwcDoKKworICAgICAgICBBZGQgbWlzc2luZyBpbmNs
dWRlIHRvIGZpeCB0aGUgYnVpbGQgd2l0aCB1bmlmaWVkIHNvdXJjZXMuCisKKyAgICAgICAgKiBT
aGFyZWQvR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBTaGFyZWQvU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9EaXNwbGF5TGlzdFdyaXRlckhh
bmRsZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvRGlz
cGxheUxpc3RXcml0ZXJIYW5kbGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmg6CisKKyAgICAg
ICAgQWRkIGFub3RoZXIgbWlzc2luZyBpbmNsdWRlIHRvIGZpeCB0aGUgYnVpbGQgd2l0aCB1bmlm
aWVkIHNvdXJjZXMuCisKIDIwMjEtMTEtMjIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgV0tDb250ZW50VmlldyBzaG91bGQgYWxsb3cgLWNhcHR1cmVU
ZXh0RnJvbUNhbWVyYTogd2l0aCBhIGNhcmV0IHNlbGVjdGlvbiB1bmxlc3MgdGhlIHNlbmRlciBp
cyB0aGUgY2FsbG91dCBiYXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IDgzZmNiODQ4
ZjQxODJjNzQzMTlmMzBiNjg1MGU1MTRhZTVjNDZkZTIuLmU2MTVhN2JkNmQ0YTcwODU1YWYwOWZl
YTBjMzlkNTgyMDM5ZGZlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMjk1LDEw
ICsyOTUsNiBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAg
ICAgICByZXR1cm4gYXBwZW5kPEZpbGxFbGxpcHNlPihpdGVtLmdldDxGaWxsRWxsaXBzZT4oKSk7
CiAgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OgogICAgICAgICByZXR1cm4gYXBwZW5k
PEZsdXNoQ29udGV4dD4oaXRlbS5nZXQ8Rmx1c2hDb250ZXh0PigpKTsKLSAgICBjYXNlIEl0ZW1U
eXBlOjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI6Ci0gICAgICAgIHJl
dHVybiBhcHBlbmQ8TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyPihpdGVt
LmdldDxNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI+KCkpOwotICAgIGNh
c2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcjoKLSAgICAgICAgcmV0dXJu
IGFwcGVuZDxNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI+KGl0ZW0uZ2V0PE1ldGFDb21tYW5k
Q2hhbmdlSXRlbUJ1ZmZlcj4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6R2V0UGl4ZWxCdWZmZXI6
CiAgICAgICAgIHJldHVybiBhcHBlbmQ8R2V0UGl4ZWxCdWZmZXI+KGl0ZW0uZ2V0PEdldFBpeGVs
QnVmZmVyPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRQaXhlbEJ1ZmZlcjoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggYzEzOWU1MDk0ODUxODBi
OWViZDkwMTcyNzJiZTk2YWE1MjI2NzVmZS4uZTgwNTA5ZWNjYTA1ZDJjYzhlZDEwNjYwNzA0MWY1
Y2NjYzNlMzc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5j
cHAKQEAgLTE5MSw5ICsxOTEsNiBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCkKICAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6CiAgICAgICAg
IGdldDxGbHVzaENvbnRleHQ+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI6
Ci0gICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyOgotICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6R2V0UGl4ZWxCdWZmZXI6CiAgICAgY2FzZSBJ
dGVtVHlwZTo6UHV0UGl4ZWxCdWZmZXI6CiAgICAgICAgIC8vIFNob3VsZCBhbHJlYWR5IGJlIGhh
bmRsZWQgYnkgdGhlIGRlbGVnYXRlLgpAQCAtMzkyLDEyICszODksNiBAQCB2b2lkIEl0ZW1IYW5k
bGU6OmRlc3Ryb3koKQogICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKICAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8Rmx1c2hDb250ZXh0
Pjo6dmFsdWUpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1h
bmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyOgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9u
SW1hZ2VCdWZmZXI+Ojp2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBl
OjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI6Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcj46
OnZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwogI2lmIEVOQUJMRShWSURFTykKICAgICBjYXNlIEl0
ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFBhaW50RnJhbWVGb3JNZWRpYT46OnZhbHVlKTsKQEAg
LTU5MCwxMCArNTgxLDYgQEAgYm9vbCBJdGVtSGFuZGxlOjpzYWZlQ29weShJdGVtVHlwZSBpdGVt
VHlwZSwgSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJ
bnRvPEZpbGxSZWN0PihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6Rmx1
c2hDb250ZXh0OgogICAgICAgICByZXR1cm4gY29weUludG88Rmx1c2hDb250ZXh0PihpdGVtT2Zm
c2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5h
dGlvbkltYWdlQnVmZmVyOgotICAgICAgICByZXR1cm4gY29weUludG88TWV0YUNvbW1hbmRDaGFu
Z2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyPihpdGVtT2Zmc2V0LCAqdGhpcyk7Ci0gICAgY2FzZSBJ
dGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyOgotICAgICAgICByZXR1cm4gY29w
eUludG88TWV0YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyPihpdGVtT2Zmc2V0LCAqdGhpcyk7CiAj
aWYgRU5BQkxFKFZJREVPKQogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToK
ICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFBhaW50RnJhbWVGb3JNZWRpYT4oaXRlbU9mZnNldCwg
KnRoaXMpOwpAQCAtNzI1LDE0ICs3MTIsMTIgQEAgdm9pZCBJdGVtQnVmZmVyOjpzaHJpbmtUb0Zp
dCgpCiAKIERpZENoYW5nZUl0ZW1CdWZmZXIgSXRlbUJ1ZmZlcjo6c3dhcFdyaXRhYmxlQnVmZmVy
SWZOZWVkZWQoc2l6ZV90IG51bWJlck9mQnl0ZXMpCiB7Ci0gICAgYXV0byBzaXplRm9yQnVmZmVy
U3dpdGNoSXRlbSA9IHBhZGRlZFNpemVPZlR5cGVBbmRJdGVtSW5CeXRlcyhJdGVtVHlwZTo6TWV0
YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyKTsKLSAgICBpZiAobV93cml0dGVuTnVtYmVyT2ZCeXRl
cyArIG51bWJlck9mQnl0ZXMgKyBzaXplRm9yQnVmZmVyU3dpdGNoSXRlbSA8PSBtX3dyaXRhYmxl
QnVmZmVyLmNhcGFjaXR5KQorICAgIGlmIChtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzICsgbnVtYmVy
T2ZCeXRlcyA8PSBtX3dyaXRhYmxlQnVmZmVyLmNhcGFjaXR5KQogICAgICAgICByZXR1cm4gRGlk
Q2hhbmdlSXRlbUJ1ZmZlcjo6Tm87CiAKLSAgICBhdXRvIG5leHRCdWZmZXIgPSBjcmVhdGVJdGVt
QnVmZmVyKG51bWJlck9mQnl0ZXMgKyBzaXplRm9yQnVmZmVyU3dpdGNoSXRlbSk7CisgICAgYXV0
byBuZXh0QnVmZmVyID0gY3JlYXRlSXRlbUJ1ZmZlcihudW1iZXJPZkJ5dGVzKTsKICAgICBib29s
IGhhZFByZXZpb3VzQnVmZmVyID0gbV93cml0YWJsZUJ1ZmZlciAmJiBtX3dyaXRhYmxlQnVmZmVy
LmlkZW50aWZpZXIgIT0gbmV4dEJ1ZmZlci5pZGVudGlmaWVyOwogICAgIGlmIChoYWRQcmV2aW91
c0J1ZmZlcikgewotICAgICAgICB1bmNoZWNrZWRBcHBlbmQ8TWV0YUNvbW1hbmRDaGFuZ2VJdGVt
QnVmZmVyPihEaWRDaGFuZ2VJdGVtQnVmZmVyOjpObywgbmV4dEJ1ZmZlci5pZGVudGlmaWVyKTsK
ICAgICAgICAgbV93cml0YWJsZUJ1ZmZlci5jYXBhY2l0eSA9IG1fd3JpdHRlbk51bWJlck9mQnl0
ZXM7CiAgICAgICAgIG1fcmVhZE9ubHlCdWZmZXJzLmFwcGVuZChtX3dyaXRhYmxlQnVmZmVyKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKaW5kZXggMjQ0
ZTBlMzVjMTI3NTYyMDk2OWM1YWJhNTg2NDIwNTE4YWU0ZWQ0MC4uYmRlYzY1NGI1MmJkNDZkNjM5
Y2EyZTlhZWFiOWQ2MWU4NjNkYzM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0
ZW1UeXBlLmNwcApAQCAtMTMyLDEwICsxMzIsNiBAQCBzdGF0aWMgc2l6ZV90IHNpemVPZkl0ZW1J
bkJ5dGVzKEl0ZW1UeXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXplb2YoRmlsbEVsbGlwc2Up
OwogICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKICAgICAgICAgcmV0dXJuIHNpemVv
ZihGbHVzaENvbnRleHQpOwotICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlRGVz
dGluYXRpb25JbWFnZUJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHNpemVvZihNZXRhQ29tbWFuZENo
YW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIpOwotICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21t
YW5kQ2hhbmdlSXRlbUJ1ZmZlcjoKLSAgICAgICAgcmV0dXJuIHNpemVvZihNZXRhQ29tbWFuZENo
YW5nZUl0ZW1CdWZmZXIpOwogICAgIGNhc2UgSXRlbVR5cGU6OkdldFBpeGVsQnVmZmVyOgogICAg
ICAgICByZXR1cm4gc2l6ZW9mKEdldFBpeGVsQnVmZmVyKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQ
dXRQaXhlbEJ1ZmZlcjoKQEAgLTIwMCw4ICsxOTYsNiBAQCBib29sIGlzRHJhd2luZ0l0ZW0oSXRl
bVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRDbGlwVG9EcmF3aW5nQ29tbWFuZHM6
CiAgICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06CiAgICAgY2FzZSBJdGVtVHlwZTo6
Rmx1c2hDb250ZXh0OgotICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGlu
YXRpb25JbWFnZUJ1ZmZlcjoKLSAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0
ZW1CdWZmZXI6CiAgICAgY2FzZSBJdGVtVHlwZTo6UmVzdG9yZToKICAgICBjYXNlIEl0ZW1UeXBl
OjpSb3RhdGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2F2ZToKQEAgLTM0Myw4ICszMzcsNiBAQCBi
b29sIGlzSW5saW5lSXRlbShJdGVtVHlwZSB0eXBlKQogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlw
ZTo6RmlsbFJlY3Q6CiAgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OgotICAgIGNhc2Ug
SXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcjoKLSAgICBj
YXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI6CiAjaWYgRU5BQkxFKFZJ
REVPKQogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbVR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKaW5kZXggOTkxOTQ1OGQyMzY1OWNlZWNi
NzU4NTM4N2YxMjhlZmFmMGQ0N2EyNS4uODA4NDRlOGI5ZGYwNTVlNWExNmMzNjdjZTJiZjI5MGE5
M2NlNjM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCkBAIC03OSw4
ICs3OSw2IEBAIGVudW0gY2xhc3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICAgICBGaWxsUGF0aCwK
ICAgICBGaWxsRWxsaXBzZSwKICAgICBGbHVzaENvbnRleHQsCi0gICAgTWV0YUNvbW1hbmRDaGFu
Z2VEZXN0aW5hdGlvbkltYWdlQnVmZmVyLAotICAgIE1ldGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZl
ciwKICAgICBHZXRQaXhlbEJ1ZmZlciwKICAgICBQdXRQaXhlbEJ1ZmZlciwKICNpZiBFTkFCTEUo
VklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggZTcyNmQ5NGYz
MDA1MDAyMzEyYmM2NDJiMzAxNWVjYmFlMzE0ODQ4Yy4uNzJmYzZkMWE3MzQ0NjE0MjVmMGNlNTY3
ZjZiODBjMDQ3MjJjMGFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApA
QCAtMTAzNCwxOCArMTAzNCw2IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBjb25zdCBGbHVzaENvbnRleHQmIGl0ZW0pCiAgICAgcmV0dXJuIHRzOwogfQog
Ci1zdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgTWV0
YUNvbW1hbmRDaGFuZ2VJdGVtQnVmZmVyJiBpdGVtKQotewotICAgIHRzLmR1bXBQcm9wZXJ0eSgi
aWRlbnRpZmllciIsIGl0ZW0uaWRlbnRpZmllcigpKTsKLSAgICByZXR1cm4gdHM7Ci19Ci0KLXN0
YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBNZXRhQ29t
bWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXImIGl0ZW0pCi17Ci0gICAgdHMuZHVtcFBy
b3BlcnR5KCJpZGVudGlmaWVyIiwgaXRlbS5pZGVudGlmaWVyKCkpOwotICAgIHJldHVybiB0czsK
LX0KLQogc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1U
eXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC0xMDk4LDggKzEwODYsNiBAQCBz
dGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlw
ZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUGF0aDogdHMgPDwgImZpbGwtcGF0aCI7IGJyZWFr
OwogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxFbGxpcHNlOiB0cyA8PCAiZmlsbC1lbGxpcHNlIjsg
YnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OiB0cyA8PCAiZmx1c2gtY29u
dGV4dCI7IGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGlu
YXRpb25JbWFnZUJ1ZmZlcjogdHMgPDwgIm1ldGEtY29tbWFuZC1jaGFuZ2UtZGVzdGluYXRpb24t
aW1hZ2UtYnVmZmVyIjsgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRDaGFu
Z2VJdGVtQnVmZmVyOiB0cyA8PCAibWV0YS1jb21tYW5kLWNoYW5nZS1pdGVtLWJ1ZmZlciI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkdldFBpeGVsQnVmZmVyOiB0cyA8PCAiZ2V0LXBpeGVs
LWJ1ZmZlciI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlB1dFBpeGVsQnVmZmVyOiB0cyA8
PCAicHV0LXBpeGVsLWJ1ZmZlciI7IGJyZWFrOwogI2lmIEVOQUJMRShWSURFTykKQEAgLTEyNjks
MTIgKzEyNTUsNiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVt
SGFuZGxlIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OgogICAgICAgICB0
cyA8PCBpdGVtLmdldDxGbHVzaENvbnRleHQ+KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
SXRlbVR5cGU6Ok1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcjoKLSAgICAg
ICAgdHMgPDwgaXRlbS5nZXQ8TWV0YUNvbW1hbmRDaGFuZ2VEZXN0aW5hdGlvbkltYWdlQnVmZmVy
PigpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5n
ZUl0ZW1CdWZmZXI6Ci0gICAgICAgIHRzIDw8IGl0ZW0uZ2V0PE1ldGFDb21tYW5kQ2hhbmdlSXRl
bUJ1ZmZlcj4oKTsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6R2V0UGl4ZWxC
dWZmZXI6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PEdldFBpeGVsQnVmZmVyPigpOwogICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IGNlYmYzNjliZmEy
ZWYwZjY3ZjEzMWZiODUyMzZlOWFhODk3ZDQ0ODAuLmUxNGE0Mjk5M2EwZjJhZmRiMmY0YjE2YTBh
YWJmOTVlZTE0ZGIzN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtMjM5
MSw0NCArMjM5MSw2IEBAIHByaXZhdGU6CiAgICAgR3JhcGhpY3NDb250ZXh0Rmx1c2hJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKIH07CiAKLS8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZWZhY3Rv
cmVkIHNvIHRoYXQgdGhlIGNvbW1hbmQgdG8gInN3aXRjaCB0byB0aGUgbmV4dCBpdGVtIGJ1ZmZl
ciIKLS8vIGlzIG5vdCBpdHNlbGYgYSBkaXNwbGF5IGxpc3QgaXRlbS4KLWNsYXNzIE1ldGFDb21t
YW5kQ2hhbmdlSXRlbUJ1ZmZlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVt
VHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI7Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLQotICAgIGV4cGxpY2l0IE1l
dGFDb21tYW5kQ2hhbmdlSXRlbUJ1ZmZlcihJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVy
KQotICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgIHsKLSAgICB9Ci0KLSAg
ICBJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9Ci0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
LmlzVmFsaWQoKTsgfQotCi1wcml2YXRlOgotICAgIEl0ZW1CdWZmZXJJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKLX07Ci0KLWNsYXNzIE1ldGFDb21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1
ZmZlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9
IEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI7Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLQotICAgIGV4cGxpY2l0IE1ldGFD
b21tYW5kQ2hhbmdlRGVzdGluYXRpb25JbWFnZUJ1ZmZlcihSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgaWRlbnRpZmllcikKLSAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKLSAg
ICB7Ci0gICAgfQotCi0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLSAgICBib29sIGlzVmFsaWQoKSBjb25z
dCB7IHJldHVybiBtX2lkZW50aWZpZXIuaXNWYWxpZCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLX07Ci0KIHVzaW5nIERpc3Bs
YXlMaXN0SXRlbSA9IHN0ZDo6dmFyaWFudAogICAgIDwgQXBwbHlEZXZpY2VTY2FsZUZhY3Rvcgog
ICAgICwgQmVnaW5DbGlwVG9EcmF3aW5nQ29tbWFuZHMKQEAgLTI0NjUsOCArMjQyNyw2IEBAIHVz
aW5nIERpc3BsYXlMaXN0SXRlbSA9IHN0ZDo6dmFyaWFudAogICAgICwgRmlsbFJvdW5kZWRSZWN0
CiAgICAgLCBGbHVzaENvbnRleHQKICAgICAsIEdldFBpeGVsQnVmZmVyCi0gICAgLCBNZXRhQ29t
bWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIKLSAgICAsIE1ldGFDb21tYW5kQ2hhbmdl
SXRlbUJ1ZmZlcgogICAgICwgUHV0UGl4ZWxCdWZmZXIKICAgICAsIFJlc3RvcmUKICAgICAsIFJv
dGF0ZQpAQCAtMjU3MCw4ICsyNTMwLDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OkZpbGxQYXRoLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6RmlsbEVsbGlwc2UsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGbHVz
aENvbnRleHQsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpNZXRhQ29tbWFu
ZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXIsCi0gICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXIsCiAgICAgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpHZXRQaXhlbEJ1ZmZlciwKICAgICBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OlB1dFBpeGVsQnVmZmVyLAogI2lmIEVOQUJMRShWSURFTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlcGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlcGxheWVyLmNwcAppbmRleCA5NDFjMjA5M2NmNTZmMjIy
MTEzYWJmMDAzZWQwOWYyYzg1MzNiNjU1Li4yMTg2NTBhZjU4YTRhN2JjZjJjMTQxMGZmMGVmMDA1
MDY4MWI2ZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZXBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuY3BwCkBA
IC0yMjUsMTMgKzIyNSw2IEBAIFJlcGxheVJlc3VsdCBSZXBsYXllcjo6cmVwbGF5KGNvbnN0IEZs
b2F0UmVjdCYgaW5pdGlhbENsaXAsIGJvb2wgdHJhY2tSZXBsYXlMaXN0CiAKICAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKERpc3BsYXlMaXN0cywgc3RyZWFtIDw8ICJhcHBseWluZyAiIDw8IGkrKyA8
PCAiICIgPDwgaXRlbSk7CiAKLSAgICAgICAgaWYgKGl0ZW0uaXM8TWV0YUNvbW1hbmRDaGFuZ2VE
ZXN0aW5hdGlvbkltYWdlQnVmZmVyPigpKSB7Ci0gICAgICAgICAgICByZXN1bHQubnVtYmVyT2ZC
eXRlc1JlYWQgKz0gaXRlbVNpemVJbkJ1ZmZlcjsKLSAgICAgICAgICAgIHJlc3VsdC5yZWFzb25G
b3JTdG9wcGluZyA9IFN0b3BSZXBsYXlSZWFzb246OkNoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZm
ZXI7Ci0gICAgICAgICAgICByZXN1bHQubmV4dERlc3RpbmF0aW9uSW1hZ2VCdWZmZXIgPSBpdGVt
LmdldDxNZXRhQ29tbWFuZENoYW5nZURlc3RpbmF0aW9uSW1hZ2VCdWZmZXI+KCkuaWRlbnRpZmll
cigpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoYXV0byBb
cmVhc29uRm9yU3RvcHBpbmcsIG1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXJdID0gYXBw
bHlJdGVtKGl0ZW0pOyByZWFzb25Gb3JTdG9wcGluZykgewogICAgICAgICAgICAgcmVzdWx0LnJl
YXNvbkZvclN0b3BwaW5nID0gKnJlYXNvbkZvclN0b3BwaW5nOwogICAgICAgICAgICAgcmVzdWx0
Lm1pc3NpbmdDYWNoZWRSZXNvdXJjZUlkZW50aWZpZXIgPSBXVEZNb3ZlKG1pc3NpbmdDYWNoZWRS
ZXNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL0Rpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9EaXNwbGF5TGlzdFJlYWRlckhhbmRsZS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZkZmYzODhhOTE3OWMyY2E3MzA5NmJkOTI1NWI5N2I2ZGJlOTAx
MzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0Rpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuaCIKLQotI2luY2x1ZGUg
PHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCi1zdGQ6Om9wdGlvbmFsPHNpemVfdD4gRGlzcGxheUxpc3RSZWFk
ZXJIYW5kbGU6OmFkdmFuY2Uoc2l6ZV90IGFtb3VudCkKLXsKLSAgICBhdXRvIHByZXZpb3VzVW5y
ZWFkQnl0ZXMgPSBoZWFkZXIoKS51bnJlYWRCeXRlcy5leGNoYW5nZVN1YihhbW91bnQpOwotICAg
IGlmIChVTkxJS0VMWShwcmV2aW91c1VucmVhZEJ5dGVzIDwgYW1vdW50KSkKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gcHJldmlvdXNVbnJlYWRCeXRlcyAtIGFtb3Vu
dDsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPERpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdD4gRGlzcGxh
eUxpc3RSZWFkZXJIYW5kbGU6OmRpc3BsYXlMaXN0Rm9yUmVhZGluZyhzaXplX3Qgb2Zmc2V0LCBz
aXplX3QgY2FwYWNpdHksIERpc3BsYXlMaXN0OjpJdGVtQnVmZmVyUmVhZGluZ0NsaWVudCYgY2xp
ZW50KSBjb25zdAotewotICAgIGF1dG8gY2hlY2tlZEV4dGVudCA9IGNoZWNrZWRTdW08c2l6ZV90
PihvZmZzZXQsIGNhcGFjaXR5KTsKLSAgICBpZiAoVU5MSUtFTFkoY2hlY2tlZEV4dGVudC5oYXNP
dmVyZmxvd2VkKCkgfHwgY2hlY2tlZEV4dGVudCA+IHNoYXJlZE1lbW9yeSgpLnNpemUoKSkpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgYXV0byBkaXNwbGF5TGlzdCA9IG1ha2VVbmlx
dWU8RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0PihEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlckhhbmRs
ZXMge3sgaWRlbnRpZmllcigpLCBkYXRhKCkgKyBvZmZzZXQsIGNhcGFjaXR5IH19KTsKLSAgICBk
aXNwbGF5TGlzdC0+c2V0SXRlbUJ1ZmZlclJlYWRpbmdDbGllbnQoJmNsaWVudCk7Ci0gICAgcmV0
dXJuIGRpc3BsYXlMaXN0OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9EaXNwbGF5TGlzdFJlYWRlckhhbmRs
ZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0Rpc3BsYXlMaXN0UmVhZGVy
SGFuZGxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4NWIzOGQ3ZTk5MjljZGNk
NTRmMDVkM2QxZjUwYzExYmQ1NmI4NzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0Rpc3BsYXlM
aXN0UmVhZGVySGFuZGxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5o
IgotI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgotI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBEaXNwbGF5TGlzdFJlYWRlckhhbmRsZSA6
IHB1YmxpYyBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPERpc3BsYXlMaXN0UmVhZGVySGFuZGxlPiBjcmVhdGUo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJl
ZjxTaGFyZWRNZW1vcnk+JiYgc2hhcmVkTWVtb3J5KQotICAgIHsKLSAgICAgICAgaWYgKHNoYXJl
ZE1lbW9yeS0+c2l6ZSgpIDw9IGhlYWRlclNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpc3BsYXlMaXN0UmVhZGVySGFuZGxl
KGlkZW50aWZpZXIsIFdURk1vdmUoc2hhcmVkTWVtb3J5KSkpOwotICAgIH0KLQotICAgIHN0ZDo6
b3B0aW9uYWw8c2l6ZV90PiBhZHZhbmNlKHNpemVfdCBhbW91bnQpOwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q+IGRpc3BsYXlMaXN0Rm9yUmVh
ZGluZyhzaXplX3Qgb2Zmc2V0LCBzaXplX3QgY2FwYWNpdHksIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtQnVmZmVyUmVhZGluZ0NsaWVudCYpIGNvbnN0OwotCi0gICAgdm9pZCBzdGFydFdhaXRp
bmcoKQotICAgIHsKLSAgICAgICAgaGVhZGVyKCkud2FpdGluZ1N0YXR1cy5zdG9yZShzdGF0aWNf
Y2FzdDxTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6V2FpdGluZ1N0YXR1c1N0b3JhZ2VUeXBlPihT
aGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6V2FpdGluZ1N0YXR1czo6V2FpdGluZykpOwotICAgIH0K
LQotICAgIGVudW0gY2xhc3MgU3RvcFdhaXRpbmdGYWlsdXJlUmVhc29uIDogdWludDhfdCB7IElu
dmFsaWRXYWl0aW5nU3RhdHVzIH07Ci0gICAgRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxTaGFyZWRE
aXNwbGF5TGlzdEhhbmRsZTo6UmVzdW1lUmVhZGluZ0luZm9ybWF0aW9uPiwgU3RvcFdhaXRpbmdG
YWlsdXJlUmVhc29uPiBzdG9wV2FpdGluZygpCi0gICAgewotICAgICAgICBhdXRvJiBoZWFkZXIg
PSB0aGlzLT5oZWFkZXIoKTsKLSAgICAgICAgYXV0byBwcmV2aW91c1N0YXR1cyA9IGhlYWRlci53
YWl0aW5nU3RhdHVzLmV4Y2hhbmdlKHN0YXRpY19jYXN0PFNoYXJlZERpc3BsYXlMaXN0SGFuZGxl
OjpXYWl0aW5nU3RhdHVzU3RvcmFnZVR5cGU+KFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlOjpXYWl0
aW5nU3RhdHVzOjpOb3RXYWl0aW5nKSk7Ci0gICAgICAgIGlmICghaXNWYWxpZEVudW08U2hhcmVk
RGlzcGxheUxpc3RIYW5kbGU6OldhaXRpbmdTdGF0dXM+KHByZXZpb3VzU3RhdHVzKSkKLSAgICAg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChTdG9wV2FpdGluZ0ZhaWx1cmVSZWFzb246Oklu
dmFsaWRXYWl0aW5nU3RhdHVzKTsKLQotICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8U2hhcmVkRGlz
cGxheUxpc3RIYW5kbGU6OldhaXRpbmdTdGF0dXM+KHByZXZpb3VzU3RhdHVzKSA9PSBTaGFyZWRE
aXNwbGF5TGlzdEhhbmRsZTo6V2FpdGluZ1N0YXR1czo6UmVzdW1pbmcpCi0gICAgICAgICAgICBy
ZXR1cm4geyBoZWFkZXIucmVzdW1lUmVhZGluZ0luZm8gfTsKLQotICAgICAgICByZXR1cm4geyBz
dGQ6Om51bGxvcHQgfTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgRGlzcGxheUxpc3RSZWFkZXJI
YW5kbGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFJlZjxTaGFyZWRNZW1vcnk+JiYgc2hhcmVkTWVtb3J5KQotICAgICAgICA6IFNoYXJlZERp
c3BsYXlMaXN0SGFuZGxlKGlkZW50aWZpZXIsIFdURk1vdmUoc2hhcmVkTWVtb3J5KSkKLSAgICB7
Ci0gICAgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApp
bmRleCAxOWZiMTdmMDI1ZmIyYzY1ZjFkZGUyNzJjMzBiYjBkZTk0NWNhZjlmLi45ODliYzkzMGY0
ODZlMWM2ZGU3ZDE2NmE0MzRhYjVlZTA2YWM5ZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAg
LTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiUXVh
bGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlRGlz
cGxheUxpc3RSZWNvcmRlci5oIgotI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0
ZS5oIgogI2luY2x1ZGUgIlJlbW90ZVJlc291cmNlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlbmRlcmluZ1VwZGF0ZUlELmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFN0YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGExNGM4N2M4ZGQ1YjU1NDQxOTkyZmE1MTc0YmYwOGRmZDYyYTIxNzcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotZW51bSBjbGFzcyBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kU3RhdGUgOiB1aW50OF90IHsKLSAgICBJbml0aWFsaXplZCwKLSAgICBCZWdh
blJlcGxheWluZ0Rpc3BsYXlMaXN0LAotICAgIEZpbmlzaGVkUmVwbGF5aW5nRGlzcGxheUxpc3Qs
Ci0gICAgV2FpdGluZ0ZvckNhY2hlZFJlc291cmNlLAotICAgIFdhaXRpbmdGb3JJdGVtQnVmZmVy
LAotICAgIFdhaXRpbmdGb3JEZXN0aW5hdGlvbkltYWdlQnVmZmVyLAotfTsKLQotQUxXQVlTX0lO
TElORSBjb25zdCBjaGFyKiBuYW1lKFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZSBzdGF0ZSkK
LXsKLSAgICBzd2l0Y2ggKHN0YXRlKSB7Ci0gICAgY2FzZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
U3RhdGU6OkluaXRpYWxpemVkOgotICAgICAgICByZXR1cm4gIkluaXRpYWxpemVkIjsKLSAgICBj
YXNlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZTo6QmVnYW5SZXBsYXlpbmdEaXNwbGF5TGlz
dDoKLSAgICAgICAgcmV0dXJuICJCZWdhblJlcGxheWluZ0Rpc3BsYXlMaXN0IjsKLSAgICBjYXNl
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZTo6RmluaXNoZWRSZXBsYXlpbmdEaXNwbGF5TGlz
dDoKLSAgICAgICAgcmV0dXJuICJGaW5pc2hlZFJlcGxheWluZ0Rpc3BsYXlMaXN0IjsKLSAgICBj
YXNlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZTo6V2FpdGluZ0ZvckNhY2hlZFJlc291cmNl
OgotICAgICAgICByZXR1cm4gIldhaXRpbmdGb3JDYWNoZWRSZXNvdXJjZSI7Ci0gICAgY2FzZSBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kU3RhdGU6OldhaXRpbmdGb3JJdGVtQnVmZmVyOgotICAgICAg
ICByZXR1cm4gIldhaXRpbmdGb3JJdGVtQnVmZmVyIjsKLSAgICBjYXNlIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRTdGF0ZTo6V2FpdGluZ0ZvckRlc3RpbmF0aW9uSW1hZ2VCdWZmZXI6Ci0gICAgICAg
IHJldHVybiAiV2FpdGluZ0ZvckRlc3RpbmF0aW9uSW1hZ2VCdWZmZXIiOwotICAgIH0KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gIkludmFsaWQiOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9XZWJHUFUvUmVtb3RlUmVuZGVy
QnVuZGxlRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvV2Vi
R1BVL1JlbW90ZVJlbmRlckJ1bmRsZUVuY29kZXIuY3BwCmluZGV4IDM1YmE2NTI5ODEzMjFhYWMw
YTE5YWZmNmRiYzM4Njg3ZDM3ZGE2NjcuLjc3MmNmODJhOTE2MGE4NmUzMDQxNDg4NDQ2OWNiMTJh
OGU5ZjVjYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9X
ZWJHUFUvUmVtb3RlUmVuZGVyQnVuZGxlRW5jb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1dlYkdQVS9SZW1vdGVSZW5kZXJCdW5kbGVFbmNvZGVyLmNwcApA
QCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlJlbW90ZVJlbmRlckJ1bmRsZS5oIgogI2luY2x1
ZGUgIldlYkdQVU9iamVjdEhlYXAuaCIKICNpbmNsdWRlICJXZWJHUFVPYmplY3RSZWdpc3RyeS5o
IgorI2luY2x1ZGUgPHBhbC9ncmFwaGljcy9XZWJHUFUvV2ViR1BVUmVuZGVyQnVuZGxlLmg+CiAj
aW5jbHVkZSA8cGFsL2dyYXBoaWNzL1dlYkdQVS9XZWJHUFVSZW5kZXJCdW5kbGVFbmNvZGVyLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
R1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0dQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZkNDJiZWIxMDI2YjYyNjEyZjdlZDE3YmIxNTc2NTBjM2M3ZmM0ZGUuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaAorKysgL2Rldi9udWxsCkBA
IC0xLDk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKLQotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3QuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oPgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotZW51bSBjbGFzcyBHUFVQcm9jZXNzV2FrZXVwUmVhc29uIDogdWludDhfdCB7Ci0g
ICAgVW5zcGVjaWZpZWQsCi0gICAgSXRlbUNvdW50SHlzdGVyZXNpc0V4Y2VlZGVkCi19OwotCi1z
dHJ1Y3QgR1BVUHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMgewotICAgIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpdGVtQnVmZmVySWRlbnRpZmllcjsKLSAg
ICB1aW50NjRfdCBvZmZzZXQgeyAwIH07Ci0gICAgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyOwotICAgIEdQVVByb2Nl
c3NXYWtldXBSZWFzb24gcmVhc29uIHsgR1BVUHJvY2Vzc1dha2V1cFJlYXNvbjo6VW5zcGVjaWZp
ZWQgfTsKLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxHUFVQcm9jZXNzV2FrZXVwTWVzc2FnZUFyZ3VtZW50cz4gZGVjb2RlKERlY29kZXImKTsKLX07
Ci0KLXRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lkIEdQVVByb2Nlc3NXYWtldXBNZXNzYWdl
QXJndW1lbnRzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVy
IDw8IGl0ZW1CdWZmZXJJZGVudGlmaWVyOwotICAgIGVuY29kZXIgPDwgb2Zmc2V0OwotICAgIGVu
Y29kZXIgPDwgZGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZpZXI7Ci0gICAgZW5jb2RlciA8
PCByZWFzb247Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1zdGQ6Om9wdGlvbmFsPEdQ
VVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRzPiBHUFVQcm9jZXNzV2FrZXVwTWVzc2FnZUFy
Z3VtZW50czo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXI+IGl0ZW1CdWZmZXJJZGVu
dGlmaWVyOwotICAgIGRlY29kZXIgPj4gaXRlbUJ1ZmZlcklkZW50aWZpZXI7Ci0gICAgaWYgKCFp
dGVtQnVmZmVySWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAg
IHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG9mZnNldDsKLSAgICBkZWNvZGVyID4+IG9mZnNldDsK
LSAgICBpZiAoIW9mZnNldCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiBkZXN0aW5h
dGlvbkltYWdlQnVmZmVySWRlbnRpZmllcjsKLSAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uSW1h
Z2VCdWZmZXJJZGVudGlmaWVyOwotICAgIGlmICghZGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50
aWZpZXIpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBzdGQ6Om9wdGlvbmFs
PEdQVVByb2Nlc3NXYWtldXBSZWFzb24+IHJlYXNvbjsKLSAgICBkZWNvZGVyID4+IHJlYXNvbjsK
LSAgICBpZiAoIXJlYXNvbikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHJl
dHVybiB7eyAqaXRlbUJ1ZmZlcklkZW50aWZpZXIsICpvZmZzZXQsICpkZXN0aW5hdGlvbkltYWdl
QnVmZmVySWRlbnRpZmllciwgKnJlYXNvbiB9fTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktp
dDo6R1BVUHJvY2Vzc1dha2V1cFJlYXNvbj4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8Ci0gICAgICAgIFdlYktpdDo6R1BVUHJvY2Vzc1dha2V1cFJlYXNvbiwKLSAgICAgICAgV2Vi
S2l0OjpHUFVQcm9jZXNzV2FrZXVwUmVhc29uOjpVbnNwZWNpZmllZCwKLSAgICAgICAgV2ViS2l0
OjpHUFVQcm9jZXNzV2FrZXVwUmVhc29uOjpJdGVtQ291bnRIeXN0ZXJlc2lzRXhjZWVkZWQKLSAg
ICA+OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLSNlbmRpZiAvLyBFTkFCTEUoR1BVX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWREaXNwbGF5TGlz
dEhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2I2YWZhYmIxNTVlNGIxMGQ3M2Y0OTBl
NmM2OTYxZTYyZmRlYTBiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oCisr
KyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxp
c3QuaD4KLSNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgotI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRz
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0vLyBUaGlzIGlzIGEgc2tlbGV0b24gb25seSB1
c2VkIGJ5IHRoZSBEaXNwbGF5TGlzdFdyaXRlckhhbmRsZSAmIERpc3BsYXlMaXN0UmVhZGVySGFu
ZGxlIHN1YmNsYXNzZXMuCi1jbGFzcyBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+U2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoKSA9IGRlZmF1bHQ7Ci0KLSAgICBzdGF0aWMgY29u
c3RleHByIHNpemVfdCBoZWFkZXJTaXplKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiByb3VuZFVw
VG9NdWx0aXBsZU9mPGFsaWdub2Yoc3RkOjptYXhfYWxpZ25fdCk+KHNpemVvZihEaXNwbGF5TGlz
dFNoYXJlZE1lbW9yeUhlYWRlcikpOwotICAgIH0KLQotICAgIFNoYXJlZE1lbW9yeSYgc2hhcmVk
TWVtb3J5KCkgeyByZXR1cm4gbV9zaGFyZWRNZW1vcnkuZ2V0KCk7IH0KLSAgICBjb25zdCBTaGFy
ZWRNZW1vcnkmIHNoYXJlZE1lbW9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkTWVtb3J5Lmdl
dCgpOyB9Ci0KLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIg
aWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotICAgIHVpbnQ4X3Qq
IGRhdGEoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90Kj4oc2hhcmVkTWVtb3J5
KCkuZGF0YSgpKTsgfQotCi0gICAgdWludDY0X3QgdW5yZWFkQnl0ZXMoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGhlYWRlcigpLnVucmVhZEJ5dGVzLmxvYWQoKTsKLSAgICB9Ci0KLSAgICBlbnVt
IGNsYXNzIFdhaXRpbmdTdGF0dXMgOiB1aW50OF90IHsKLSAgICAgICAgTm90V2FpdGluZywKLSAg
ICAgICAgV2FpdGluZywKLSAgICAgICAgUmVzdW1pbmcKLSAgICB9OwotICAgIHVzaW5nIFdhaXRp
bmdTdGF0dXNTdG9yYWdlVHlwZSA9IHN0ZDo6dW5kZXJseWluZ190eXBlX3Q8V2FpdGluZ1N0YXR1
cz47Ci0KLSAgICBzdHJ1Y3QgUmVzdW1lUmVhZGluZ0luZm9ybWF0aW9uIHsKLSAgICAgICAgdWlu
dDY0X3Qgb2Zmc2V0OwotICAgICAgICB1aW50NjRfdCBkZXN0aW5hdGlvbjsKLSAgICB9OwotCi1w
cm90ZWN0ZWQ6Ci0gICAgU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxTaGFyZWRNZW1vcnk+JiYg
c2hhcmVkTWVtb3J5KQotICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICAg
ICAsIG1fc2hhcmVkTWVtb3J5KFdURk1vdmUoc2hhcmVkTWVtb3J5KSkKLSAgICB7Ci0gICAgfQot
Ci0gICAgc3RydWN0IERpc3BsYXlMaXN0U2hhcmVkTWVtb3J5SGVhZGVyIHsKLSAgICAgICAgRGlz
cGxheUxpc3RTaGFyZWRNZW1vcnlIZWFkZXIoKSA9IGRlbGV0ZTsKLSAgICAgICAgfkRpc3BsYXlM
aXN0U2hhcmVkTWVtb3J5SGVhZGVyKCkgPSBkZWxldGU7Ci0KLSAgICAgICAgQXRvbWljPHVpbnQ2
NF90PiB1bnJlYWRCeXRlczsKLSAgICAgICAgUmVzdW1lUmVhZGluZ0luZm9ybWF0aW9uIHJlc3Vt
ZVJlYWRpbmdJbmZvOwotICAgICAgICBBdG9taWM8V2FpdGluZ1N0YXR1c1N0b3JhZ2VUeXBlPiB3
YWl0aW5nU3RhdHVzOwotICAgIH07Ci0KLSAgICBjb25zdCBEaXNwbGF5TGlzdFNoYXJlZE1lbW9y
eUhlYWRlciYgaGVhZGVyKCkgY29uc3QgeyByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
RGlzcGxheUxpc3RTaGFyZWRNZW1vcnlIZWFkZXIqPihkYXRhKCkpOyB9Ci0gICAgRGlzcGxheUxp
c3RTaGFyZWRNZW1vcnlIZWFkZXImIGhlYWRlcigpIHsgcmV0dXJuICpyZWludGVycHJldF9jYXN0
PERpc3BsYXlMaXN0U2hhcmVkTWVtb3J5SGVhZGVyKj4oZGF0YSgpKTsgfQotCi1wcml2YXRlOgot
ICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7Ci0gICAgUmVmPFNoYXJlZE1lbW9yeT4gbV9zaGFyZWRNZW1vcnk7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViS2l0OjpTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6V2FpdGluZ1N0YXR1cz4g
ewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYktpdDo6U2hhcmVk
RGlzcGxheUxpc3RIYW5kbGU6OldhaXRpbmdTdGF0dXMsCi0gICAgICAgIFdlYktpdDo6U2hhcmVk
RGlzcGxheUxpc3RIYW5kbGU6OldhaXRpbmdTdGF0dXM6Ok5vdFdhaXRpbmcsCi0gICAgICAgIFdl
YktpdDo6U2hhcmVkRGlzcGxheUxpc3RIYW5kbGU6OldhaXRpbmdTdGF0dXM6OldhaXRpbmcsCi0g
ICAgICAgIFdlYktpdDo6U2hhcmVkRGlzcGxheUxpc3RIYW5kbGU6OldhaXRpbmdTdGF0dXM6OlJl
c3VtaW5nCi0gICAgPjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXgg
NjQxZGYxNjRmOWUzYzg1ZTNlNDc4NzExOGEzNTkzZjY3ODc1MWJhOC4uZGMyZGJkNTI2ZDViOGFh
NGU5MTE5MDFiNzIwNDY3ZjBlMjNkMzI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNCw3ICsyNCw2IEBA
CiBHUFVQcm9jZXNzL0dQVVByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
Ci1HUFVQcm9jZXNzL2dyYXBoaWNzL0Rpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcAogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVEaXNwbGF5TGlzdFJlY29yZGVyLmNwcAogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTcwNiw3ICs3MDUsNiBAQCBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlU2hhZGVyTW9kdWxlUHJveHkuY3BwCiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvUmVtb3RlVGV4dHVyZVByb3h5LmNwcAogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvV2ViR1BVL1JlbW90ZVRleHR1cmVWaWV3UHJveHkuY3BwCiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9XZWJHUFUvV2ViR1BVRG93bmNhc3RDb252ZXJ0VG9CYWNraW5nQ29u
dGV4dC5jcHAKLVdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0V3JpdGVySGFuZGxl
LmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBC
YWNrZW5kLmNwcAogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAKIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4YzU3MzA3MjFjYjIyOGU1MDEzYzM3MTUx
MGRmY2NhZGRhNTg2NTg1Li42NTQwZWIwYmNmNmM2YjEzMWQxNzg0NGZlZGEzNWMwNzBjZDFjYTBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE5ODMsMTEgKzE5ODMsNyBAQAogCQlFNUNCMDdEQzIwRTE2NzhGMDAyMkMxODMgLyogV0tG
b3JtQ29sb3JDb250cm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNUNCMDdEQTIwRTE2NzhGMDAyMkMxODMgLyogV0tGb3JtQ29sb3JDb250cm9sLmgg
Ki87IH07CiAJCUU1REVGQTY4MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVERUZBNjcyNkY4RjQy
NjAwQUI2OERCIC8qIFBob3Rvc1VJU1BJLmggKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0
NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQ
YWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCUY0MDk0Q0JEMjU1MzA1M0QwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFJlYWRlckhhbmRs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOTRD
QkIyNTUzMDRBRjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmggKi87IH07Ci0J
CUY0MDk0Q0JFMjU1MzA1NDAwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFdyaXRlckhhbmRsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOTRDQjkyNTUz
MDQ3RTAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmggKi87IH07CiAJCUY0MDlC
QTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOUJBMTcxRTZFNjRCMzAw
OURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjQwQkJCNDEyNTdGRjQ2RTAwNjc0NjNBIC8q
IEdQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDBCQkI0MDI1N0ZGNDZFMDA2NzQ2M0EgLyogR1BV
UHJvY2Vzc1dha2V1cE1lc3NhZ2VBcmd1bWVudHMuaCAqLzsgfTsKLQkJRjQxNENFMkQyNjlERTZF
QTAwQkQyMTZBIC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxNENFMkMyNjlERTZFQTAwQkQyMTZB
IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oICovOyB9OwogCQlGNDI5OTUwNzI3MEUy
MzREMDAzMjI5OEIgLyogU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDI5OTUwNjI3MEUyMzRDMDAzMjI5OEIgLyog
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmggKi87IH07CiAJCUY0MkQ2MzQxMjJBMEVGREYwMEQyRkIz
QSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0MkQ2MzNGMjJBMEVGRDMwMEQyRkIzQSAvKiBXZWJBdXRvY29y
cmVjdGlvbkRhdGEuaCAqLzsgfTsKIAkJRjQzMEU5NDIyMjQ3MzM1RjAwNUZFMDUzIC8qIFdlYnNp
dGVNZXRhVmlld3BvcnRQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0MzBFOTQxMjI0NzMyQTkwMDVGRTA1MyAvKiBXZWJzaXRlTWV0YVZpZXdw
b3J0UG9saWN5LmggKi87IH07CkBAIC0yMDEwLDcgKzIwMDYsNiBAQAogCQlGNDk2QTQzMTFGNThB
MjcyMDA0QzE3NTcgLyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDk2QTQyRjFGNThBMjcyMDA0QzE3NTcg
LyogRHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLmggKi87IH07CiAJCUY0OTc0RTc2MjY1RUNCQkMw
MEI0OUI4QyAvKiBXS1JldmVhbEl0ZW1QcmVzZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDZFREVGMjY1RUIyQjAwMDMxREE4RiAvKiBXS1Jl
dmVhbEl0ZW1QcmVzZW50ZXIuaCAqLzsgfTsKIAkJRjQ5NzVDRjIyNjI0QjgwQTAwM0M2MjZFIC8q
IFdLUXVpY2tMb29rUHJldmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0OTc1Q0YxMjYyNEI4MEEwMDNDNjI2RSAvKiBXS1F1aWNr
TG9va1ByZXZpZXdDb250cm9sbGVyLmggKi87IH07Ci0JCUY0QTZENkJDMjU0Q0EzRTkwMEI2NUZB
QSAvKiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRBNkQ2QkIyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERp
c3BsYXlMaXN0SGFuZGxlLmggKi87IH07CiAJCUY0QkEzM0YyMjU3NTdFODkwMDBBM0NFOCAvKiBX
S0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmggKi87IH07CiAJCUY0Q0IwOUU1MjI1RDVBMDkw
MDg5MTQ4NyAvKiBXZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Q0IwOUU0MjI1RDVBMDMwMDg5MTQ4NyAvKiBX
ZWJzaXRlTWVkaWFTb3VyY2VQb2xpY3kuaCAqLzsgfTsKIAkJRjRDRjFFOUQyNUU0MERDQzAwMEY5
RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDRjFFOUIyNUU0MERDQzAwMEY5
RDczIC8qIEdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oICovOyB9OwpAQCAt
NjIwNCwxNSArNjE5OSw5IEBACiAJCUVDQTY4MEQzMUU2OTA0QjUwMDczMUQyMCAvKiBFeHRyYVBy
aXZhdGVTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFQ0JGQzFEQjFFNkE0RDY2MDAwMzAwQzcgLyogRXh0cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFeHRyYVB1YmxpY1N5bWJvbHNGb3JUQVBJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBp
Y2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvclBp
Y2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0MDk0Q0I5MjU1MzA0N0Uw
MDNENzNFMyAvKiBEaXNwbGF5TGlzdFdyaXRlckhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNw
bGF5TGlzdFdyaXRlckhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDA5
NENCQTI1NTMwNDdFMDAzRDczRTMgLyogRGlzcGxheUxpc3RXcml0ZXJIYW5kbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGlzcGxheUxpc3RXcml0ZXJIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlGNDA5NENCQjI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RS
ZWFkZXJIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQwOTRDQkMyNTUzMDRBRjAwM0Q3M0UzIC8q
IERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlM
aXN0UmVhZGVySGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQwOUJB
MTcxRTZFNjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0MEJCQjQwMjU3RkY0NkUwMDY3NDYzQSAvKiBHUFVQ
cm9jZXNzV2FrZXVwTWVzc2FnZUFyZ3VtZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHUFVQcm9jZXNz
V2FrZXVwTWVzc2FnZUFyZ3VtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDBEMUI2ODIyMEJEQzBGMDBCNDlBMDEgLyogV2ViQXV0b2NvcnJlY3Rpb25Db250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYkF1dG9jb3JyZWN0aW9uQ29udGV4dC5oOyBwYXRoID0gaW9zL1dlYkF1
dG9jb3JyZWN0aW9uQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDEw
NTY2MTIxMzA2OTlBMDA5MjI4MUQgLyogQVBJQXR0YWNobWVudENvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQVBJQXR0YWNobWVudENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlGNDE0Q0UyQzI2OURFNkVBMDBCRDIxNkEgLyogUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRTdGF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDI5OTUwNjI3MEUyMzRDMDAzMjI5OEIgLyog
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDJENjMzRjIyQTBFRkQzMDBEMkZCM0EgLyogV2ViQXV0b2NvcnJlY3Rpb25EYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oOyBwYXRo
ID0gaW9zL1dlYkF1dG9jb3JyZWN0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNDJENjM0MDIyQTBFRkQzMDBEMkZCM0EgLyogV2ViQXV0b2NvcnJlY3Rpb25EYXRhLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViQXV0b2NvcnJlY3Rp
b25EYXRhLm1tOyBwYXRoID0gaW9zL1dlYkF1dG9jb3JyZWN0aW9uRGF0YS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYyNTEsNyArNjI0MCw2IEBACiAJCUY0OTZBNDMwMUY1OEEy
NzIwMDRDMTc1NyAvKiBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBEcmFnRHJvcEludGVyYWN0aW9uU3RhdGUubW07IHBhdGggPSBpb3MvRHJhZ0Ryb3BJ
bnRlcmFjdGlvblN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDk3NUNG
MTI2MjRCODBBMDAzQzYyNkUgLyogV0tRdWlja0xvb2tQcmV2aWV3Q29udHJvbGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1F1aWNrTG9va1ByZXZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0OTc1Q0YzMjYyNEI5MTgwMDNDNjI2RSAvKiBXS1F1aWNrTG9va1By
ZXZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tRdWlja0xvb2tQcmV2
aWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjRBNkQ2QkIy
NTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0QTdDRTg0MjY2N0VCNEUwMDIyODY4NSAvKiBUZXh0UmVjb2duaXRpb25VcGRhdGVSZXN1
bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QUM2NTVFMjJBMzE0MEUwMEEwNTYwNyAvKiBXZWJQ
cmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBXZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXNJT1MubW07IHBhdGggPSBp
b3MvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNEIzNzhEMDIxRERCQkFCMDA5NUEzNzggLyogV2ViVW5kb1N0ZXBJRC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJVbmRvU3RlcElELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC02OTE3LDcgKzY5MDUsNiBAQAogCQkJCTVDMTIxRTgzMjQxMDFGNzAwMDQ4NkY5QiAvKiBG
cmFtZVRyZWVOb2RlRGF0YS5oICovLAogCQkJCTQxMEYwRDRCMjcwMUVGRUEwMEY5NkRGQyAvKiBH
UFVQcm9jZXNzQ29ubmVjdGlvbkluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oICovLAogCQkJCTQ2
QUM1MzI0MjVERUQ4MUUwMDNCNTdFQyAvKiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMu
aCAqLywKLQkJCQlGNDBCQkI0MDI1N0ZGNDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1l
c3NhZ2VBcmd1bWVudHMuaCAqLywKIAkJCQkxQUM3NUExQTFCMzM2ODI3MDA1Njc0NUIgLyogSGFu
Z0RldGVjdGlvbkRpc2FibGVyLmggKi8sCiAJCQkJMEZEMkNCMjUyNkNERDdBMzAwMDhCMTFDIC8q
IElkZW50aWZpZXJUeXBlcy5oICovLAogCQkJCUJDQ0Y2QjIzMTJDOTNFN0EwMDhGOUMzNSAvKiBJ
bWFnZU9wdGlvbnMuaCAqLywKQEAgLTY5NjYsNyArNjk1Myw2IEBACiAJCQkJMUE2NDIwRTMxMkRD
RTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5oICovLAogCQkJCTUxMjE3NDVFMTY0QzIw
RTMwMDM3QTVDMSAvKiBTaGFyZWFibGVSZXNvdXJjZS5jcHAgKi8sCiAJCQkJNTEyMTc0NUYxNjRD
MjBFMzAwMzdBNUMxIC8qIFNoYXJlYWJsZVJlc291cmNlLmggKi8sCi0JCQkJRjRBNkQ2QkIyNTRD
QTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmggKi8sCiAJCQkJODMxM0Y3
RUExRjdEQUUwNDAwQjk0NEVCIC8qIFNoYXJlZFN0cmluZ0hhc2hTdG9yZS5jcHAgKi8sCiAJCQkJ
ODMxM0Y3RTkxRjdEQUUwMzAwQjk0NEVCIC8qIFNoYXJlZFN0cmluZ0hhc2hTdG9yZS5oICovLAog
CQkJCTgzMTNGN0U4MUY3REFFMDMwMEI5NDRFQiAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGUuY3Bw
ICovLApAQCAtOTM1Nyw4ICs5MzQzLDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTcyN0E3RjMz
MjQwNzg1MjcwMDREMjkzMSAvKiBjb2NvYSAqLywKIAkJCQkxQ0I3NDYxOTI3NDM2REUzMDBGMTk4
NzQgLyogV2ViR1BVICovLAotCQkJCUY0MDk0Q0JBMjU1MzA0N0UwMDNENzNFMyAvKiBEaXNwbGF5
TGlzdFdyaXRlckhhbmRsZS5jcHAgKi8sCi0JCQkJRjQwOTRDQjkyNTUzMDQ3RTAwM0Q3M0UzIC8q
IERpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmggKi8sCiAJCQkJN0I2NEMwQjYyNTRDNUMyNTAwMDZC
NEFGIC8qIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllci5oICovLAogCQkJCTcyN0E3RjM5MjQw
Nzg4RjEwMDREMjkzMSAvKiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUuaCAqLywKIAkJCQk3MjdB
N0YzNzI0MDc4OEYwMDA0RDI5MzEgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5k
LmNwcCAqLywKQEAgLTkzODYsOCArOTM3MCw2IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAogCQkJCTFDOThDMDFDMjc0NDY5MjYwMDJDQ0I3OCAvKiBXZWJHUFUgKi8sCi0J
CQkJRjQwOTRDQkMyNTUzMDRBRjAwM0Q3M0UzIC8qIERpc3BsYXlMaXN0UmVhZGVySGFuZGxlLmNw
cCAqLywKLQkJCQlGNDA5NENCQjI1NTMwNEFGMDAzRDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJI
YW5kbGUuaCAqLywKIAkJCQk3QjE2MTkxMzI3MTlBRTc2MDBDNDBFQUMgLyogR1BVUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMLmggKi8sCiAJCQkJNTVBRDA5NDMyNDA4QTBFNjAwREU0RDJGIC8qIFBs
YXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXIuaCAqLywKIAkJCQkxQ0M1NEFGRDI3MEY5NjU0MDA1QkY4
QkUgLyogUXVhbGlmaWVkUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggKi8sCkBAIC05NDA1
LDcgKzkzODcsNiBAQAogCQkJCTU1MDY0MEEzMjQwNzFBNjEwMEFBRTA0NSAvKiBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmggKi8sCiAJCQkJNTUwNjQwQTQyNDA3MUMyMTAwQUFFMDQ1IC8qIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDYwODg5RkYyNjFGQThBOTAw
RTI1MDBEIC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRDcmVhdGlvblBhcmFtZXRlcnMuaCAqLywK
LQkJCQlGNDE0Q0UyQzI2OURFNkVBMDBCRDIxNkEgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZFN0
YXRlLmggKi8sCiAJCQkJNzI2RDU2REQyNTNBNjQ4MTAwMDJFRjkwIC8qIFJlbW90ZVJlc291cmNl
Q2FjaGUuY3BwICovLAogCQkJCTcyNkQ1NkRFMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1vdGVSZXNv
dXJjZUNhY2hlLmggKi8sCiAJCQkJN0JDRjcwQ0EyNjE0OTM1RTAwRTRGQjcwIC8qIFNjb3BlZFJl
bmRlcmluZ1Jlc291cmNlc1JlcXVlc3QuY3BwICovLApAQCAtMTI1NDYsOCArMTI1MjcsNiBAQAog
CQkJCTgzODkxQjZDMUE2OEMzMEIwMDMwRjM4NiAvKiBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzE4MTczNjEyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlM
aW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE4OUNBQzI0NzQ5RjJGMDBFNThEODEgLyogRGlz
cGxheUxpbmtPYnNlcnZlcklELmggaW4gSGVhZGVycyAqLywKLQkJCQlGNDA5NENCRDI1NTMwNTNE
MDAzRDczRTMgLyogRGlzcGxheUxpc3RSZWFkZXJIYW5kbGUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUY0MDk0Q0JFMjU1MzA1NDAwMDNENzNFMyAvKiBEaXNwbGF5TGlzdFdyaXRlckhhbmRsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUMxNDI3MDIxQzIzRjg0QzAwRDQxMTgzIC8qIERvd25sb2FkLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1QzE0MjcwNTFDMjNGODRDMDBENDExODMgLyogRG93bmxvYWRJ
RC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMxNDI3MDcxQzIzRjg0QzAwRDQxMTgzIC8qIERvd25s
b2FkTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjU5Nyw3ICsxMjU3Niw2IEBACiAJCQkJ
MkRBOTQ0QTQxODg0RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEwRjBENEMyNzAxRUZGOTAwRjk2REZDIC8qIEdQVVByb2Nlc3NDb25uZWN0aW9uSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjE0RjEzMjI1REVE
ODc1MDA3MDA2RTcgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlGNDBCQkI0MTI1N0ZGNDZFMDA2NzQ2M0EgLyogR1BVUHJvY2Vzc1dha2V1cE1l
c3NhZ2VBcmd1bWVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQTA0OUI4MTgwQ0NEMEEwMEFB
RkE5RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1vdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMwQ0U3
MkFEMTI0N0U3OEQwMEJDMEVDNCAvKiBIYW5kbGVNZXNzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUM3NUExQjFCMzM2ODI3MDA1Njc0NUIgLyogSGFuZ0RldGVjdGlvbkRpc2FibGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTEyODU4LDcgKzEyODM2LDYgQEAKIAkJCQk0NjA4OEEwMTI2MUZBOEM0
MDBFMjUwMEQgLyogUmVtb3RlUmVuZGVyaW5nQmFja2VuZENyZWF0aW9uUGFyYW1ldGVycy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjQ1MTdEN0MyNkZCQ0QzOTAwNEM4NDc1IC8qIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ1MTdEN0IyNkZCQ0Qz
OTAwNEM4NDc1IC8qIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRNZXNzYWdlc1JlcGxpZXMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUY0MTRDRTJEMjY5REU2RUEwMEJEMjE2QSAvKiBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0NzkwMTg3QjNCM0EwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY1OTQ3QTgxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTk0NzlCMTg3QjNCNjAwMDQzNzg1NyAvKiBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTEyODk5
LDcgKzEyODc2LDYgQEAKIAkJCQk1MTIxNzQ2MTE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxl
UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUExODM0OTQyMjRFRjQ2NzgwMEJEQzlBOCAv
KiBTaGFyZWRCdWZmZXJDb3B5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREMxOEZGNkVGMkEzMTMw
QzEzMDE3NjcgLyogU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJRjRBNkQ2QkMyNTRDQTNFOTAwQjY1RkFBIC8qIFNoYXJlZERpc3BsYXlMaXN0SGFuZGxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzEyMkM4NjI3MTBDQ0RGMDAxRDgxOUYgLyogU2hhcmVkRmls
ZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyNEJFRDUxMjA4OTREMTAwRkJCMDU5IC8q
IFNoYXJlZE1lbW9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q0QjREOUQxRTc2NUUwMDAwRDI3
MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvRGlzcGxheUxpc3RXcml0
ZXJIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9EaXNw
bGF5TGlzdFdyaXRlckhhbmRsZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4
MTk4NzdmNGRlYWQ1NDFlOWY0MjMwNTM3Njc5MzNkYzRjY2QxY2MuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9EaXNwbGF5TGlzdFdyaXRlckhhbmRsZS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkRpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmgiCi0KLSNpbmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRo
bWV0aWMuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotc2l6ZV90IERpc3BsYXlMaXN0V3JpdGVySGFuZGxlOjphZHZhbmNlKHNpemVfdCBhbW91bnQp
Ci17Ci0gICAgbV93cml0YWJsZU9mZnNldCA9IENoZWNrZWRTaXplIHsgbV93cml0YWJsZU9mZnNl
dCB9ICsgYW1vdW50OwotICAgIHJldHVybiBDaGVja2VkU2l6ZSB7IGhlYWRlcigpLnVucmVhZEJ5
dGVzLmV4Y2hhbmdlQWRkKGFtb3VudCkgfSArIGFtb3VudDsKLX0KLQotc2l6ZV90IERpc3BsYXlM
aXN0V3JpdGVySGFuZGxlOjphdmFpbGFibGVDYXBhY2l0eSgpIGNvbnN0Ci17Ci0gICAgaWYgKFVO
TElLRUxZKHNoYXJlZE1lbW9yeSgpLnNpemUoKSA8IHdyaXRhYmxlT2Zmc2V0KCkpKQotICAgICAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotCi0gICAgcmV0dXJuIHNoYXJlZE1lbW9y
eSgpLnNpemUoKSAtIHdyaXRhYmxlT2Zmc2V0KCk7Ci19Ci0KLURpc3BsYXlMaXN0OjpJdGVtQnVm
ZmVySGFuZGxlIERpc3BsYXlMaXN0V3JpdGVySGFuZGxlOjpjcmVhdGVIYW5kbGUoKSBjb25zdAot
ewotICAgIHJldHVybiB7Ci0gICAgICAgIGlkZW50aWZpZXIoKSwKLSAgICAgICAgZGF0YSgpICsg
d3JpdGFibGVPZmZzZXQoKSwKLSAgICAgICAgYXZhaWxhYmxlQ2FwYWNpdHkoKQotICAgIH07Ci19
Ci0KLWJvb2wgRGlzcGxheUxpc3RXcml0ZXJIYW5kbGU6Om1vdmVXcml0YWJsZU9mZnNldFRvU3Rh
cnRJZlBvc3NpYmxlKCkKLXsKLSAgICBpZiAobV93cml0YWJsZU9mZnNldCA8PSBTaGFyZWREaXNw
bGF5TGlzdEhhbmRsZTo6aGVhZGVyU2l6ZSgpKSB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKG1f
d3JpdGFibGVPZmZzZXQgPT0gU2hhcmVkRGlzcGxheUxpc3RIYW5kbGU6OmhlYWRlclNpemUoKSk7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmICh1bnJlYWRCeXRlcygpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX3dyaXRhYmxlT2Zmc2V0ID0gU2hhcmVkRGlz
cGxheUxpc3RIYW5kbGU6OmhlYWRlclNpemUoKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL0Rpc3BsYXlMaXN0V3JpdGVySGFuZGxlLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiMWUzZTAwYWY4NDQwMjg4ZWVhZmZkNTAzMTViNjliZTE4
YmFlM2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9EaXNwbGF5TGlzdFdyaXRlckhhbmRs
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSAiU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUuaCIKLSNpbmNsdWRlIDx3
dGYvRmFzdE1hbGxvYy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgRGlzcGxheUxp
c3RXcml0ZXJIYW5kbGUgOiBwdWJsaWMgU2hhcmVkRGlzcGxheUxpc3RIYW5kbGUgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKERpc3BsYXlMaXN0V3JpdGVySGFuZGxlKTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5TGlzdFdyaXRl
ckhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBSZWY8U2hhcmVkTWVtb3J5PiYmIHNoYXJlZE1lbW9yeSkKLSAgICB7Ci0g
ICAgICAgIGlmIChzaGFyZWRNZW1vcnktPnNpemUoKSA8PSBoZWFkZXJTaXplKCkpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaXNwbGF5
TGlzdFdyaXRlckhhbmRsZShpZGVudGlmaWVyLCBXVEZNb3ZlKHNoYXJlZE1lbW9yeSkpKTsKLSAg
ICB9Ci0KLSAgICBzaXplX3Qgd3JpdGFibGVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3dyaXRh
YmxlT2Zmc2V0OyB9Ci0gICAgc2l6ZV90IGF2YWlsYWJsZUNhcGFjaXR5KCkgY29uc3Q7Ci0KLSAg
ICBib29sIG1vdmVXcml0YWJsZU9mZnNldFRvU3RhcnRJZlBvc3NpYmxlKCk7Ci0KLSAgICBzaXpl
X3QgYWR2YW5jZShzaXplX3QgYW1vdW50KTsKLSAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bUJ1ZmZlckhhbmRsZSBjcmVhdGVIYW5kbGUoKSBjb25zdDsKLQotICAgIGJvb2wgdHJ5VG9SZXN1
bWUoU2hhcmVkRGlzcGxheUxpc3RIYW5kbGU6OlJlc3VtZVJlYWRpbmdJbmZvcm1hdGlvbiYmIGlu
Zm8pCi0gICAgewotICAgICAgICBhdXRvJiBoZWFkZXIgPSB0aGlzLT5oZWFkZXIoKTsKLSAgICAg
ICAgaGVhZGVyLnJlc3VtZVJlYWRpbmdJbmZvID0gV1RGTW92ZShpbmZvKTsKLSAgICAgICAgcmV0
dXJuIGhlYWRlci53YWl0aW5nU3RhdHVzLmNvbXBhcmVFeGNoYW5nZVdlYWsoCi0gICAgICAgICAg
ICBzdGF0aWNfY2FzdDxTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6V2FpdGluZ1N0YXR1c1N0b3Jh
Z2VUeXBlPihTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6V2FpdGluZ1N0YXR1czo6V2FpdGluZyks
Ci0gICAgICAgICAgICBzdGF0aWNfY2FzdDxTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6V2FpdGlu
Z1N0YXR1c1N0b3JhZ2VUeXBlPihTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6V2FpdGluZ1N0YXR1
czo6UmVzdW1pbmcpCi0gICAgICAgICk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIERpc3BsYXlM
aXN0V3JpdGVySGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBSZWY8U2hhcmVkTWVtb3J5PiYmIHNoYXJlZE1lbW9yeSkKLSAgICAgICAg
OiBTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShpZGVudGlmaWVyLCBXVEZNb3ZlKHNoYXJlZE1lbW9y
eSkpCi0gICAgICAgICwgbV93cml0YWJsZU9mZnNldChTaGFyZWREaXNwbGF5TGlzdEhhbmRsZTo6
aGVhZGVyU2l6ZSgpKQotICAgIHsKLSAgICB9Ci0KLSAgICBzaXplX3QgbV93cml0YWJsZU9mZnNl
dCB7IDAgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5LmgKaW5kZXggZmE4MzI5OTExOWJmZTFkMWEzMjhkMWU2ODJhMDMwNzk1
YzhkN2M5Ny4uMDljODkxMDdhZDk3ZGJhNDFiYmMzMjEwM2JhY2FkMjljMDEyZTJhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIK
LSNpbmNsdWRlICJHUFVQcm9jZXNzV2FrZXVwTWVzc2FnZUFyZ3VtZW50cy5oIgogI2luY2x1ZGUg
IklQQ1NlbWFwaG9yZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZEhhbmRsZS5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29ya01hbmFn
ZXIuaAppbmRleCAyNTQ5NDRjYjdmNGEzOTMzOWEwMDQ0M2VkNGIzMmQ2NmEwMjY2ZWU1Li44OTY3
YzdmYzczMDRmZDVjYjBiODM1YzQxYWJlMzAxYTBkMjVmYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29ya01hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRD
TmV0d29ya01hbmFnZXIuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiV2ViUlRDTW9u
aXRvci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1Byb2Nlc3NRdWFsaWZpZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JUQ05ldHdv
cmtNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggNDcyMmI2ZGQ4NzQzOGYzZGIyNzNjYzlhM2E2ZmYzZTcyODYxNWMxZS4uOTNjZTBk
M2IxOGQ0YjNiZDU4MjQxYjZiY2U0ODU1ZDRkZmQ4YzViZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTExLTIy
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBvbGQgY29uY3VycmVudCBkaXNwbGF5IGxpc3QgbG9naWMgdGhhdCdzIG5vIGxvbmdlciBuZWNl
c3NhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MzQzMworCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgU2VlIFdl
YkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RUZXN0cy5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKwogMjAyMS0xMS0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBXS0NvbnRlbnRWaWV3IHNob3VsZCBhbGxvdyAtY2FwdHVy
ZVRleHRGcm9tQ2FtZXJhOiB3aXRoIGEgY2FyZXQgc2VsZWN0aW9uIHVubGVzcyB0aGUgc2VuZGVy
IGlzIHRoZSBjYWxsb3V0IGJhcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCmluZGV4IGYyNTllZjlmYzZmNGUwMDgzMDZi
NTBiNDJmNmE2MWI1ZjRkNTMyZmEuLmI5ODZhMmE1ODg4NDY1YmUxOTIwYTZlMDY2OGQ3MGRiMjQ5
MDZlYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNw
bGF5TGlzdFRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RGlzcGxheUxpc3RUZXN0cy5jcHAKQEAgLTEyMiw4ICsxMjIsNiBAQCBURVNUKERpc3BsYXlMaXN0
VGVzdHMsIEFwcGVuZEl0ZW1zKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICNlbmRp
ZgotICAgICAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZENoYW5nZUl0ZW1CdWZmZXI6Ci0g
ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgb2JzZXJ2
ZWRVbmV4cGVjdGVkSXRlbSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsK
</data>

          </attachment>
      

    </bug>

</bugzilla>