<?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>204555</bug_id>
          
          <creation_ts>2019-11-24 04:21:30 -0800</creation_ts>
          <short_desc>[JSC] Introduce IsoHeapCellType</short_desc>
          <delta_ts>2019-11-25 00:30:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1593266</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-24 04:21:30 -0800</bug_when>
    <thetext>[JSC] Introduce IsoHeapCellType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593267</commentid>
    <comment_count>1</comment_count>
      <attachid>384251</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-24 04:24:26 -0800</bug_when>
    <thetext>Created attachment 384251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593268</commentid>
    <comment_count>2</comment_count>
      <attachid>384252</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-24 04:30:19 -0800</bug_when>
    <thetext>Created attachment 384252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593284</commentid>
    <comment_count>3</comment_count>
      <attachid>384252</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-24 09:49:59 -0800</bug_when>
    <thetext>Comment on attachment 384252
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=384252&amp;action=review

Nice work.  r=me with suggestions.

&gt; Source/JavaScriptCore/heap/IsoHeapCellType.h:35
&gt; +class IsoHeapCellType final : public HeapCellType {
&gt; +public:
&gt; +    IsoHeapCellType()
&gt; +        : HeapCellType(CellAttributes(CellType::needsDestruction ? NeedsDestruction : DoesNotNeedDestruction, HeapCell::JSCell))

If I understand you correctly, you intend to only use IsoHeapCellType for destructible types, yes?  Why not:
1. name it IsoHeapDestructibleCellType?
2. Always pass NeedsDestruction down to HeapCellType constructor here?
3. static_assert(CellType::needsDestruction)?

&gt; Source/JavaScriptCore/heap/IsoHeapCellType.h:53
&gt; +        DestroyFunc()(vm, cell);

Why not just go direct to CellType::destroy(cell) here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593290</commentid>
    <comment_count>4</comment_count>
      <attachid>384252</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-24 14:37:37 -0800</bug_when>
    <thetext>Comment on attachment 384252
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=384252&amp;action=review

Thanks!

&gt;&gt; Source/JavaScriptCore/heap/IsoHeapCellType.h:35
&gt;&gt; +        : HeapCellType(CellAttributes(CellType::needsDestruction ? NeedsDestruction : DoesNotNeedDestruction, HeapCell::JSCell))
&gt; 
&gt; If I understand you correctly, you intend to only use IsoHeapCellType for destructible types, yes?  Why not:
&gt; 1. name it IsoHeapDestructibleCellType?
&gt; 2. Always pass NeedsDestruction down to HeapCellType constructor here?
&gt; 3. static_assert(CellType::needsDestruction)?

Currently, I&apos;m considering using this for all IsoSubspace types (or, merging it into IsoSubspace if possible). So for now, I would like to make it usable for non destructible cell type too.

&gt;&gt; Source/JavaScriptCore/heap/IsoHeapCellType.h:53
&gt;&gt; +        DestroyFunc()(vm, cell);
&gt; 
&gt; Why not just go direct to CellType::destroy(cell) here?

It is OK too. Changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593291</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-24 14:39:15 -0800</bug_when>
    <thetext>Committed r252843: &lt;https://trac.webkit.org/changeset/252843&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593292</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-24 14:40:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/57461757&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593297</commentid>
    <comment_count>7</comment_count>
      <attachid>384252</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-11-24 15:09:42 -0800</bug_when>
    <thetext>Comment on attachment 384252
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=384252&amp;action=review

&gt;&gt;&gt; Source/JavaScriptCore/heap/IsoHeapCellType.h:35
&gt;&gt;&gt; +        : HeapCellType(CellAttributes(CellType::needsDestruction ? NeedsDestruction : DoesNotNeedDestruction, HeapCell::JSCell))
&gt;&gt; 
&gt;&gt; If I understand you correctly, you intend to only use IsoHeapCellType for destructible types, yes?  Why not:
&gt;&gt; 1. name it IsoHeapDestructibleCellType?
&gt;&gt; 2. Always pass NeedsDestruction down to HeapCellType constructor here?
&gt;&gt; 3. static_assert(CellType::needsDestruction)?
&gt; 
&gt; Currently, I&apos;m considering using this for all IsoSubspace types (or, merging it into IsoSubspace if possible). So for now, I would like to make it usable for non destructible cell type too.

How is it possible to use this class for non-destructible cell types too given that instantiation of this class requires that the underlying CellType has a destroy() function?  Or are you proposing to add no-op destroy() functions to all non-destructible cell types?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593349</commentid>
    <comment_count>8</comment_count>
      <attachid>384252</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-11-25 00:30:33 -0800</bug_when>
    <thetext>Comment on attachment 384252
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=384252&amp;action=review

&gt;&gt;&gt;&gt; Source/JavaScriptCore/heap/IsoHeapCellType.h:35
&gt;&gt;&gt;&gt; +        : HeapCellType(CellAttributes(CellType::needsDestruction ? NeedsDestruction : DoesNotNeedDestruction, HeapCell::JSCell))
&gt;&gt;&gt; 
&gt;&gt;&gt; If I understand you correctly, you intend to only use IsoHeapCellType for destructible types, yes?  Why not:
&gt;&gt;&gt; 1. name it IsoHeapDestructibleCellType?
&gt;&gt;&gt; 2. Always pass NeedsDestruction down to HeapCellType constructor here?
&gt;&gt;&gt; 3. static_assert(CellType::needsDestruction)?
&gt;&gt; 
&gt;&gt; Currently, I&apos;m considering using this for all IsoSubspace types (or, merging it into IsoSubspace if possible). So for now, I would like to make it usable for non destructible cell type too.
&gt; 
&gt; How is it possible to use this class for non-destructible cell types too given that instantiation of this class requires that the underlying CellType has a destroy() function?  Or are you proposing to add no-op destroy() functions to all non-destructible cell types?

JSCell class has destroy() function, which has RELEASE_ASSERT. So instantiating this works. And it is not called since DoesNotNeedDestruction is specified. So, IsoHeapCellType&lt;NonDestructibleCell&gt; just works.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384251</attachid>
            <date>2019-11-24 04:24:26 -0800</date>
            <delta_ts>2019-11-24 04:30:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204555-20191124042426.patch</filename>
            <type>text/plain</type>
            <size>44300</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTM5Nzk1MDJmOTU4NmQyYTU1MzQ4N2M2ZTZhNmZmOTMwMzc2NWVlLi4xNDI0MGIzZjZiNzI0N2E0
MjQ0Y2E2YmZmYmVlYzIxYTNmMjE3YjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxOS0xMS0yNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEludHJvZHVjZSBJc29IZWFwQ2VsbFR5cGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDU1NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGludHJvZHVjZSBJc29IZWFw
Q2VsbFR5cGU8Q2VsbFR5cGU+LCB3aGljaCBkZXN0cm95cyBjZWxsIGJhc2VkIG9uIENlbGxUeXBl
IGluZm9ybWF0aW9uLCB3aGljaCBzaG91bGQgYmUgaW4gSXNvU3Vic3BhY2UuCisgICAgICAgIEJ5
IHVzaW5nIHRoaXMsIHdlIGNhbiBhdm9pZCBpbmhlcml0aW5nIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
LiBGb3IgZWFjaCBJc29TdWJzcGFjZSwgd2Uga25vdyBob3cgdG8gZGVzdHJveSBjZWxscyBpZiB3
ZSB1c2UKKyAgICAgICAgSXNvSGVhcENlbGxUeXBlPENlbGxUeXBlPiB3aXRob3V0IHVzaW5nIG1l
dGhvZFRhYmxlLiBXZSBzdGFydCB1c2luZyBpdCBmb3IsIEpTU3RyaW5nLCBKU1dlYWtNYXAsIEpT
V2Vha1NldCwgV2ViQXNzZW1ibHlGdW5jdGlvbiwKKyAgICAgICAgYW5kIEpTV2ViQXNzZW1ibHlD
b2RlQmxvY2suIEFuZCB3ZSB1c2UgSlNOb25GaW5hbE9iamVjdCBmb3IgdGhlIGJhc2Ugb2YgSlNX
ZWFrTWFwIGFuZCBKU1dlYWtTZXQsIHdoaWNoIHNocmlua3Mgc2l6ZSBvZiB0aGVtCisgICAgICAg
IGZyb20gNDggdG8gMzIuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIGhlYXAvSXNvSGVhcENlbGxUeXBlLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxU
eXBlLmguCisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6OkpT
U3RyaW5nOjpkZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmg6
CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpkZXN0cm95KToKKyAgICAgICAgKiBydW50aW1lL0pT
U3RyaW5nSGVhcENlbGxUeXBlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50aW1lL0pTU3Ry
aW5nSGVhcENlbGxUeXBlLmg6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9WTS5jcHA6Cisg
ICAgICAgIChKU0M6OlZNOjpWTSk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAq
IHJ1bnRpbWUvV2Vha01hcEltcGwuaDoKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlD
b2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHdhc20vanMvSlNX
ZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5jcHA6IFJlbW92ZWQuCisKIDIw
MTktMTEtMjMgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAg
ICAgIFtKU0NdIEdldFN1YnN0aXR1dGlvbiBpcyBwZXJmb3JtZWQgaW5jb3JyZWN0bHkgdmlhIFJl
Z0V4cC5wcm90b3R5cGVbQEByZXBsYWNlXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDBmOGM0MTk0MDY0ZmYwM2E3YzA2ODA0MDZhNGZjZjZlYWRjNjA0MjMuLmM4ZmVjOTQ2
YjU3ZmFkZWY5OWRkNDU1ZGE4ZDVlYjI3NGVmMTE3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTk5LDcgKzk5LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX09CSkVDVF9M
VVRfU09VUkNFUwogICAgIHdhc20vanMvSlNUb1dhc21JQ0NhbGxlZS5jcHAKICAgICB3YXNtL2pz
L1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCiAgICAgd2FzbS9qcy9XZWJB
c3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5jcHAKLSAgICB3YXNtL2pzL1dlYkFzc2VtYmx5
RnVuY3Rpb25IZWFwQ2VsbFR5cGUuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNl
Q29uc3RydWN0b3IuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBl
LmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAg
LTYxNCw2ICs2MTMsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGhlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5oCiAgICAgaGVhcC9JbmNyZW1lbnRh
bFN3ZWVwZXIuaAogICAgIGhlYXAvSXNvQ2VsbFNldC5oCisgICAgaGVhcC9Jc29IZWFwQ2VsbFR5
cGUuaAogICAgIGhlYXAvSXNvU3Vic3BhY2UuaAogICAgIGhlYXAvSXNvU3Vic3BhY2VJbmxpbmVz
LmgKICAgICBoZWFwL0lzb1N1YnNwYWNlUGVyVk0uaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNDE2NjhiNGJlYmI4ZTE3MzdhNTFlZGY4ZDU5NWUzYWE4MDA2MjAzLi45MjNhMThm
MWJlMWE4ZDQ5NjQ3Mzk1NjkyYmM4ZWZjMzEyMDEwNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNDU0LDcgKzQ1NCw2IEBACiAJCTBGN0RGMTM3MUUyOTcwRTEwMDk1OTUxQiAv
KiBTdWJzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY3REYxMzIxRTI5NzBENTAwOTU5NTFCIC8qIFN1YnNwYWNlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3REYxMzgxRTI5NzBFNDAwOTU5
NTFCIC8qIFN1YnNwYWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY3REYxMzMxRTI5NzBENTAwOTU5NTFCIC8qIFN1YnNwYWNlSW5saW5l
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
N0RGMTNDMUUyOTcxMTMwMDk1OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlw
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3REYx
M0ExRTI5NzEwRTAwOTU5NTFCIC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY3REYx
M0YxRTJBRkM0RDAwOTU5NTFCIC8qIEpTU3RyaW5nSGVhcENlbGxUeXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdERjEzRTFFMkFGQzRCMDA5NTk1
MUIgLyogSlNTdHJpbmdIZWFwQ2VsbFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdERjE0NjFFMkJFRjZBMDA5NTk1MUIgLyogQmxvY2tE
aXJlY3RvcnlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjdERjE0NTFFMkJFRjY4MDA5NTk1MUIgLyogQmxvY2tEaXJlY3RvcnlJbmxpbmVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3
Rjk4OEMxRDk1OTZDODAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFzZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3Rjk4OEEx
RDk1OTZDMzAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFzZS5oICovOyB9
OwogCQkwRjgwMjNFQTE2MTM4MzJCMDBBMEJBNDUgLyogQnlWYWxJbmZvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjgwMjNFOTE2MTM4MzIzMDBBMEJB
NDUgLyogQnlWYWxJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTg5NCw3ICs4OTMsNiBAQAogCQk1MjExMzFGNzFGODJCRjE0MDA3Q0NFRUUg
LyogUG9seVByb3RvQWNjZXNzQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUyMTEzMUY2MUY4MkJGMTEwMDdDQ0VFRSAvKiBQb2x5UHJvdG9BY2Nl
c3NDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyMTMyMjQ2MUVDQkNFODIwMEY2NTYxNSAvKiBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTIxMzIyNDQx
RUNCQ0U4MjAwRjY1NjE1IC8qIFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlLmggKi87IH07CiAJCTUy
MjkyN0Q1MjM1RkQwQjkwMDVDQjE2OSAvKiBHQ01lbW9yeU9wZXJhdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzI5ODdCMjM1RkM4QkEwMDVD
OTgyQyAvKiBHQ01lbW9yeU9wZXJhdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQk1MjNGRDg4RTIyNTU2NkM5MDAzQjNEQ0MgLyogV2ViQXNz
ZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTIzRkQ4OEMyMjU1NjZDMzAwM0IzRENDIC8qIFdlYkFzc2VtYmx5
RnVuY3Rpb25IZWFwQ2VsbFR5cGUuaCAqLzsgfTsKIAkJNTI0RTlENzMyMjA5MkI1MjAwQTZCRUVF
IC8qIEFpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNEU5RDcyMjIwOTJCNDYw
MEE2QkVFRSAvKiBBaXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmgg
Ki87IH07CiAJCTUyNTBEMkQyMUU4REEwNUEwMDI5QTkzMiAvKiBXYXNtVGh1bmtzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjUwRDJEMDFFOERBMDVB
MDAyOUE5MzIgLyogV2FzbVRodW5rcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTUyNUMwRERBMUU5MzU4NDcwMDIxODRDRCAvKiBXYXNtQ2FsbGVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjVDMERE
ODFFOTM1ODQ3MDAyMTg0Q0QgLyogV2FzbUNhbGxlZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjE3LDcgKzEyMTUsNiBAQAogCQk3OURBRTI3
QTFFMDNDODIyMDBCNTI2QUEgLyogV2FzbUV4Y2VwdGlvblR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5REFFMjc5MUUwM0M4MjIwMEI1MjZBQSAv
KiBXYXNtRXhjZXB0aW9uVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTc5REZDQkRCMUQ4OEM1OTYwMDUyN0QwMyAvKiBIYXNPd25Qcm9wZXJ0
eUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OURGQ0JEQTFEODhDNTk2MDA1MjdEMDMgLyogSGFzT3duUHJvcGVydHlDYWNoZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5RUUwQzAwMUI0QUZC
ODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFy
aWFibGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTc5RUZENDg0MUVCQzA0NUMwMEYzREZFQSAvKiBKU1dlYkFzc2VtYmx5Q29k
ZUJsb2NrSGVhcENlbGxUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3OUVGRDQ4MjFFQkMwNDVDMDBGM0RGRUEgLyogSlNXZWJBc3NlbWJseUNvZGVC
bG9ja0hlYXBDZWxsVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTc5RkM4QTA4MUUzMkU5RjAwMEQ4OEYwRSAvKiBERkdSZWdpc3RlcmVkU3Ry
dWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OUZDOEEwNzFFMzJFOUYwMDBEODhGMEUgLyogREZHUmVnaXN0ZXJlZFN0cnVjdHVyZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdBOTc3NEE4MjA2
QjgyRTQwMDhEMDNEMCAvKiBKU1dlYWtWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0E5Nzc0QTcyMDZCODJDOTAwOEQwM0QwIC8qIEpTV2Vha1Zh
bHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0JDNTQ3RDMxQjY5NTlBMTAwOTU5QjU4IC8qIFdhc21Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQzU0N0QyMUI2OTU5OUIwMDk1OUI1OCAv
KiBXYXNtRm9ybWF0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTI3MzcsOCArMjczNCw2IEBACiAJCTBGN0RGMTMzMUUyOTcwRDUwMDk1OTUxQiAv
KiBTdWJzcGFjZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Vi
c3BhY2VJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0RGMTM5MUUy
OTcxMEUwMDk1OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdEhl
YXBDZWxsVHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0RGMTNBMUUy
OTcxMEUwMDk1OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxs
VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjdERjEzRDFFMkFGQzRCMDA5
NTk1MUIgLyogSlNTdHJpbmdIZWFwQ2VsbFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTdHJpbmdIZWFwQ2VsbFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwRjdERjEzRTFFMkFGQzRCMDA5NTk1MUIgLyogSlNTdHJpbmdIZWFwQ2Vs
bFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdIZWFwQ2Vs
bFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3REYxNDUxRTJCRUY2ODAw
OTU5NTFCIC8qIEJsb2NrRGlyZWN0b3J5SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCbG9ja0RpcmVjdG9yeUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY3Rjk4ODkxRDk1OTZDMzAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmllckNsdXN0
ZXJpbmdQaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdT
dG9yZUJhcnJpZXJDbHVzdGVyaW5nUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RGR1N0b3JlQmFycmll
ckNsdXN0ZXJpbmdQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0Y5
ODhBMUQ5NTk2QzMwMEY0RjEyRSAvKiBERkdTdG9yZUJhcnJpZXJDbHVzdGVyaW5nUGhhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHU3RvcmVCYXJyaWVyQ2x1c3Rlcmlu
Z1BoYXNlLmg7IHBhdGggPSBkZmcvREZHU3RvcmVCYXJyaWVyQ2x1c3RlcmluZ1BoYXNlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTQxLDggKzM1MzYsNiBAQAogCQk1MjEzMjI0
MzFFQ0JDRTgyMDBGNjU2MTUgLyogV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuY3Bw
OyBwYXRoID0ganMvV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MjEzMjI0NDFFQ0JDRTgyMDBGNjU2MTUgLyogV2ViQXNzZW1ibHlGdW5j
dGlvbkJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXNzZW1ibHlG
dW5jdGlvbkJhc2UuaDsgcGF0aCA9IGpzL1dlYkFzc2VtYmx5RnVuY3Rpb25CYXNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyMzM1NjI4MjI1RUI4RTkwMDI2OEJEMiAvKiBDUFUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNTIzRkQ4OEMyMjU1NjZDMzAwM0IzRENDIC8qIFdlYkFzc2VtYmx5RnVuY3Rpb25IZWFw
Q2VsbFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlw
ZS5oOyBwYXRoID0ganMvV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1MjNGRDg4RDIyNTU2NkM0MDAzQjNEQ0MgLyogV2ViQXNz
ZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJBc3Nl
bWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlLmNwcDsgcGF0aCA9IGpzL1dlYkFzc2VtYmx5RnVuY3Rp
b25IZWFwQ2VsbFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjRFOUQ3
MTIyMDkyQjQ1MDBBNkJFRUUgLyogQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0FuZEdlbmVy
YXRlQ29kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBaXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0
YWNrQW5kR2VuZXJhdGVDb2RlLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVy
c0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTI0RTlENzIyMjA5MkI0NjAwQTZCRUVFIC8qIEFpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3Rh
Y2tBbmRHZW5lcmF0ZUNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWlyQWxsb2NhdGVSZWdpc3RlcnNB
bmRTdGFja0FuZEdlbmVyYXRlQ29kZS5oOyBwYXRoID0gYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0
ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTI1MEQyQ0YxRThEQTA1QTAwMjlBOTMyIC8qIFdhc21UaHVua3MuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbVRodW5rcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00MDIxLDggKzQwMTQsNiBAQAogCQk3OURGQ0JEQTFEODhDNTk2MDA1
MjdEMDMgLyogSGFzT3duUHJvcGVydHlDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIYXNPd25Qcm9wZXJ0eUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc5RUUwQkZEMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhcmlhYmxlRW52aXJvbm1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVFMEJGRTFCNEFGQjg1MDAwMzg1
QzkgLyogVmFyaWFibGVFbnZpcm9ubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWYXJpYWJsZUVudmlyb25tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTc5RUZENDgxMUVCQzA0NUMwMEYzREZFQSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENl
bGxUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2ViQXNz
ZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwOyBwYXRoID0ganMvSlNXZWJBc3NlbWJseUNv
ZGVCbG9ja0hlYXBDZWxsVHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc5
RUZENDgyMUVCQzA0NUMwMEYzREZFQSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxU
eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViQXNzZW1ibHlDb2Rl
QmxvY2tIZWFwQ2VsbFR5cGUuaDsgcGF0aCA9IGpzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFw
Q2VsbFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlGQzhBMDcxRTMyRTlG
MDAwRDg4RjBFIC8qIERGR1JlZ2lzdGVyZWRTdHJ1Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gREZHUmVnaXN0ZXJlZFN0cnVjdHVyZS5oOyBwYXRoID0gZGZnL0RGR1Jl
Z2lzdGVyZWRTdHJ1Y3R1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5Nzc0
QTYyMDZCODI4QzAwOEQwM0QwIC8qIEpTV2Vha1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2Vha1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0E5Nzc0QTcyMDZCODJDOTAwOEQwM0QwIC8qIEpTV2Vha1ZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2Vha1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03MzI1LDggKzczMTYsNiBAQAogCQkJCTMwMzIxNzVERjFBRDQ3RDg5
OThCMzRFMSAvKiBKU1NvdXJjZUNvZGUuaCAqLywKIAkJCQlCQzAyRTlCNjBFMTg0MkZBMDAwRjky
OTcgLyogSlNTdHJpbmcuY3BwICovLAogCQkJCUY2OTJBODYyMDI1NTU5N0QwMUZGNjBGNyAvKiBK
U1N0cmluZy5oICovLAotCQkJCTBGN0RGMTNEMUUyQUZDNEIwMDk1OTUxQiAvKiBKU1N0cmluZ0hl
YXBDZWxsVHlwZS5jcHAgKi8sCi0JCQkJMEY3REYxM0UxRTJBRkM0QjAwOTU5NTFCIC8qIEpTU3Ry
aW5nSGVhcENlbGxUeXBlLmggKi8sCiAJCQkJRkVGRDZGQzUxRDVFNzk3MDAwOEYyRjBCIC8qIEpT
U3RyaW5nSW5saW5lcy5oICovLAogCQkJCTcwRUMwRUJDMUFBMEQ3REEwMEI2QUFGQSAvKiBKU1N0
cmluZ0l0ZXJhdG9yLmNwcCAqLywKIAkJCQk3MEVDMEVCRDFBQTBEN0RBMDBCNkFBRkEgLyogSlNT
dHJpbmdJdGVyYXRvci5oICovLApAQCAtODIxMywxMCArODIwMiwxMCBAQAogCQkJCTE0QUQ5MTE2
MURDQTk3RkQwMDE0RjlGRSAvKiBGdW5jdGlvbkNvZGVCbG9jay5jcHAgKi8sCiAJCQkJMTRBRDkx
MDcxRENBOTI5NDAwMTRGOUZFIC8qIEZ1bmN0aW9uQ29kZUJsb2NrLmggKi8sCiAJCQkJMTQ5OENB
RDUyMTRCRjM2RDAwNzEwODc5IC8qIEdldEJ5SWRNZXRhZGF0YS5oICovLAotCQkJCTBGOTMzMjk1
MTRDQTdEQzEwMDg1RjNDNiAvKiBHZXRCeVN0YXR1cy5jcHAgKi8sCi0JCQkJMEY5MzMyOTYxNENB
N0RDMTAwODVGM0M2IC8qIEdldEJ5U3RhdHVzLmggKi8sCiAJCQkJMEYwMzMyQzExOEIwMTc2MzAw
NUY5NzlBIC8qIEdldEJ5SWRWYXJpYW50LmNwcCAqLywKIAkJCQkwRjAzMzJDMjE4QjAxNzYzMDA1
Rjk3OUEgLyogR2V0QnlJZFZhcmlhbnQuaCAqLywKKwkJCQkwRjkzMzI5NTE0Q0E3REMxMDA4NUYz
QzYgLyogR2V0QnlTdGF0dXMuY3BwICovLAorCQkJCTBGOTMzMjk2MTRDQTdEQzEwMDg1RjNDNiAv
KiBHZXRCeVN0YXR1cy5oICovLAogCQkJCTUyMEQ5OUYwMjM4OENDNzgwMDA1MDlBMyAvKiBHZXRC
eVZhbEhpc3RvcnkuaCAqLywKIAkJCQkxNEFEOTEwODFEQ0E5Mjk0MDAxNEY5RkUgLyogR2xvYmFs
Q29kZUJsb2NrLmggKi8sCiAJCQkJMEYwQjgzQTgxNEJDRjU1RTAwODg1QjRGIC8qIEhhbmRsZXJJ
bmZvLmggKi8sCkBAIC04NTk5LDggKzg1ODgsNiBAQAogCQkJCUFERDA5QUYzMUY2MjQ4MkUwMDEz
MTNDMiAvKiBKU1dlYkFzc2VtYmx5LmggKi8sCiAJCQkJNTM4M0FBMkYxRTY1RThBMTAwQTUzMkZD
IC8qIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2suY3BwICovLAogCQkJCUFEOUU4NTJFMUU4QTBDNkUw
MDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmggKi8sCi0JCQkJNzlFRkQ0ODExRUJD
MDQ1QzAwRjNERkVBIC8qIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwICov
LAotCQkJCTc5RUZENDgyMUVCQzA0NUMwMEYzREZFQSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2Nr
SGVhcENlbGxUeXBlLmggKi8sCiAJCQkJQUQyRkNCQTYxREI1OERBNDAwQjNFNzM2IC8qIEpTV2Vi
QXNzZW1ibHlDb21waWxlRXJyb3IuY3BwICovLAogCQkJCUFEMkZDQkE3MURCNThEQTQwMEIzRTcz
NiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmggKi8sCiAJCQkJNzk2RkI0MzkxREZGOEMz
RjAwMzlDOTVEIC8qIEpTV2ViQXNzZW1ibHlIZWxwZXJzLmggKi8sCkBAIC04NjI2LDggKzg2MTMs
NiBAQAogCQkJCUFENDkzN0NBMURERDI3MzQwMDc3QzgwNyAvKiBXZWJBc3NlbWJseUZ1bmN0aW9u
LmggKi8sCiAJCQkJNTIxMzIyNDMxRUNCQ0U4MjAwRjY1NjE1IC8qIFdlYkFzc2VtYmx5RnVuY3Rp
b25CYXNlLmNwcCAqLywKIAkJCQk1MjEzMjI0NDFFQ0JDRTgyMDBGNjU2MTUgLyogV2ViQXNzZW1i
bHlGdW5jdGlvbkJhc2UuaCAqLywKLQkJCQk1MjNGRDg4RDIyNTU2NkM0MDAzQjNEQ0MgLyogV2Vi
QXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5jcHAgKi8sCi0JCQkJNTIzRkQ4OEMyMjU1NjZD
MzAwM0IzRENDIC8qIFdlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGUuaCAqLywKIAkJCQlB
RDJGQ0JCNDFEQjU4REE0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9y
LmNwcCAqLywKIAkJCQlBRDJGQ0JCNTFEQjU4REE0MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0
YW5jZUNvbnN0cnVjdG9yLmggKi8sCiAJCQkJQUQyRkNCQjYxREI1OERBNDAwQjNFNzM2IC8qIFdl
YkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuY3BwICovLApAQCAtOTA1Niw3ICs5MDQxLDYgQEAK
IAkJCQk2NUI4MzkyRTFCQUNBRDM2MDA0NEU4MjQgLyogQ2FjaGVkUmVjb3ZlcnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0RjA5QzJBMjIzMTkyMzEwMENGODhFQiAvKiBDYWNoZWRUeXBlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTQwOUVDQzEyMjVFMTc4QzAwQkVERDU0IC8qIENhY2hlUGF5bG9h
ZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTIwRDk5RjEyMzg4Q0M4MTAwMDUwOUEzIC8qIEdldEJ5
VmFsSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwOUVDQzAyMjVFMTc4MTAwQkVERDU0
IC8qIENhY2hlVXBkYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDM0M2MDFGMzc5RjUzMDBG
NTlCNkMgLyogQ2FnZWRCYXJyaWVyUHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNFRDBF
MTZGNUNEMDBCMzQ0NjAgLyogQ2FsbERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtOTQ5Nyw4ICs5
NDgxLDkgQEAKIAkJCQkwRjJCNjZFMDE3QjZCNUFCMDBBN0FFM0YgLyogR2VuZXJpY1R5cGVkQXJy
YXlWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCNjZFMTE3QjZCNUFCMDBBN0FFM0YgLyog
R2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ5OENB
RDYyMTRCRjM2RDAwNzEwODc5IC8qIEdldEJ5SWRNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY5MzMyQTAxNENBN0RDRDAwODVGM0M2IC8qIEdldEJ5U3RhdHVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjAzMzJDNDE4QjAxNzYzMDA1Rjk3OUEgLyogR2V0QnlJZFZhcmlhbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGOTMzMkEwMTRDQTdEQ0QwMDg1RjNDNiAvKiBHZXRCeVN0YXR1cy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTIwRDk5RjEyMzg4Q0M4MTAwMDUwOUEzIC8qIEdldEJ5VmFs
SGlzdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzk2NDY1NkExQjk1MkZGMDAwMzA1OUVFIC8q
IEdldFB1dEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTUzNEUwMzU4MUU1M0JGMkYwMDIxM0Y2
NCAvKiBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTFENkQ2
RjIzNjI1OEZFMDA3QTVDMjYgLyogR2V0Vk0uaCBpbiBIZWFkZXJzICovLApAQCAtOTc4OSw3ICs5
Nzc0LDYgQEAKIAkJCQlBNzkwREQ3MDE4MkY0OTk3MDA1ODg4MDcgLyogSlNTZXRJdGVyYXRvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkRGQ0IyQkJFOTBGNDEzNDlFMUIwQkVEIC8qIEpTU291cmNl
Q29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MjcwRTE2RjVDRDAwQjM0NDYwIC8qIEpT
U3RyaW5nLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjdERjEzRjFFMkFGQzREMDA5NTk1MUIgLyog
SlNTdHJpbmdIZWFwQ2VsbFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRkQ2RkM2MUQ1RTc5
OTIwMDhGMkYwQiAvKiBKU1N0cmluZ0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTcwRUMw
RUMzMUFBMEQ3REEwMEI2QUFGQSAvKiBKU1N0cmluZ0l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyNjAwQjVBNzE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtOTgyOCw3ICs5ODEyLDYgQEAKIAkJCQk3QTk3NzRBODIwNkI4MkU0MDA4RDAz
RDAgLyogSlNXZWFrVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENUMzNkVCMUY3NUFENzMw
MDBCQ0FBRiAvKiBKU1dlYkFzc2VtYmx5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDlFODUyRjFF
OEEwQzdDMDA4REUzOUUgLyogSlNXZWJBc3NlbWJseUNvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNzlFRkQ0ODQxRUJDMDQ1QzAwRjNERkVBIC8qIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tI
ZWFwQ2VsbFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEMkZDQkUzMURCNThEQUQwMEIzRTcz
NiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTZG
QjQzQTFERkY4QzNGMDAzOUM5NUQgLyogSlNXZWJBc3NlbWJseUhlbHBlcnMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUFEMkZDQkU1MURCNThEQUQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UuaCBpbiBIZWFkZXJzICovLApAQCAtMTAyOTUsNyArMTAyNzgsNiBAQAogCQkJCUFEMkZDQzE3
MURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5sdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUFENDkzN0Q0MURERDI3REUwMDc3QzgwNyAvKiBXZWJBc3Nl
bWJseUZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MjEzMjI0NjFFQ0JDRTgyMDBGNjU2
MTUgLyogV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTUyM0ZE
ODhFMjI1NTY2QzkwMDNCM0RDQyAvKiBXZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBRDJGQ0JGMTFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1i
bHlJbnN0YW5jZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBRDJGQ0MxODFEQjU5
Q0IyMDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmx1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQUQyRkNCRjMxREI1OERBRDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0
CmluZGV4IDNkNzBlZDgzNWRjYmQ5MGUwMzU1NTg0NmFhMmQ4M2E5ZTZiMmQwNDIuLmVjMDM3Mjdh
YjMzZmZmZDEyMWU3YTc2YjFiMDY3MWRhODk5YmE5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNl
cy50eHQKQEAgLTg2Myw3ICs4NjMsNiBAQCBydW50aW1lL0pTU291cmNlQ29kZS5jcHAKIHJ1bnRp
bWUvSlNTdHJpbmcuY3BwCiBydW50aW1lL0pTU3RyaW5nSXRlcmF0b3IuY3BwCiBydW50aW1lL0pT
U3RyaW5nSm9pbmVyLmNwcAotcnVudGltZS9KU1N0cmluZ0hlYXBDZWxsVHlwZS5jcHAKIHJ1bnRp
bWUvSlNTeW1ib2xUYWJsZU9iamVjdC5jcHAKIHJ1bnRpbWUvSlNUZW1wbGF0ZU9iamVjdERlc2Ny
aXB0b3IuY3BwCiBydW50aW1lL0pTVHlwZS5jcHAKQEAgLTEwNDIsNyArMTA0MSw2IEBAIHdhc20v
anMvSlNUb1dhc20uaAogd2FzbS9qcy9KU1RvV2FzbUlDQ2FsbGVlLmNwcAogd2FzbS9qcy9KU1dl
YkFzc2VtYmx5LmNwcAogd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmNwcAotd2FzbS9q
cy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmNwcAogd2FzbS9qcy9KU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yLmNwcAogd2FzbS9qcy9KU1dlYkFzc2VtYmx5SW5zdGFuY2UuY3Bw
CiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlMaW5rRXJyb3IuY3BwCkBAIC0xMDU2LDcgKzEwNTQsNiBA
QCB3YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCiB3YXNtL2pz
L1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBlLmNwcAogd2FzbS9qcy9XZWJBc3NlbWJs
eUZ1bmN0aW9uLmNwcAogd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uQmFzZS5jcHAKLXdhc20v
anMvV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5jcHAKIHdhc20vanMvV2ViQXNzZW1i
bHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcAogd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJv
dG90eXBlLmNwcAogd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSGVhcENlbGxUeXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29IZWFwQ2VsbFR5cGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40M2U0NTcyOGU2NjllMDlhODdhNjgxNTljNzhkYzdmOWMyYWJlYzgxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvSGVhcENlbGxUeXBlLmgKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJIZWFwQ2VsbFR5cGUuaCIKKyNpbmNsdWRlICJNYXJrZWRCbG9ja0lubGluZXMu
aCIKKworbmFtZXNwYWNlIEpTQyB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlPgorY2xh
c3MgSXNvSGVhcENlbGxUeXBlIGZpbmFsIDogcHVibGljIEhlYXBDZWxsVHlwZSB7CitwdWJsaWM6
CisgICAgSXNvSGVhcENlbGxUeXBlKCkKKyAgICAgICAgOiBIZWFwQ2VsbFR5cGUoQ2VsbEF0dHJp
YnV0ZXMoQ2VsbFR5cGU6Om5lZWRzRGVzdHJ1Y3Rpb24gPyBOZWVkc0Rlc3RydWN0aW9uIDogRG9l
c05vdE5lZWREZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2VsbCkpCisgICAgeworICAgIH0KKwor
ICAgIHN0cnVjdCBEZXN0cm95RnVuYyB7CisgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCBvcGVy
YXRvcigpKFZNJiwgSlNDZWxsKiBjZWxsKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBD
ZWxsVHlwZTo6ZGVzdHJveShjZWxsKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB2b2lkIGZp
bmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUmIGhhbmRsZSwgRnJlZUxpc3QqIGZyZWVMaXN0
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaGFuZGxlLmZpbmlzaFN3ZWVwS25vd2luZ0hlYXBD
ZWxsVHlwZShmcmVlTGlzdCwgRGVzdHJveUZ1bmMoKSk7CisgICAgfQorCisgICAgdm9pZCBkZXN0
cm95KFZNJiB2bSwgSlNDZWxsKiBjZWxsKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgRGVzdHJv
eUZ1bmMoKSh2bSwgY2VsbCk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAppbmRleCBjZTUwYTIwMjk0
NTlmOTE4Yjk3OTQwOWI3Nzk1NDZjNjY2ZmVhOWIzLi40MDkxYTYxN2MwYmFhYjE1ODBhYWRiMWY1
YmU0ZWEyOTgyMzJiYTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuY3BwCkBAIC02NCwxMSArNjQsNiBAQCB2b2lkIEpTUm9wZVN0cmluZzo6Um9wZUJ1aWxkZXI8
UmVjb3JkT3ZlcmZsb3c+OjpleHBhbmQoKQogICAgIG1fc3RyaW5ncy5hcHBlbmQoc3RyaW5nKTsK
IH0KIAotdm9pZCBKU1N0cmluZzo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCi17Ci0gICAgc3RhdGlj
X2Nhc3Q8SlNTdHJpbmcqPihjZWxsKS0+SlNTdHJpbmc6On5KU1N0cmluZygpOwotfQotCiB2b2lk
IEpTU3RyaW5nOjpkdW1wVG9TdHJlYW0oY29uc3QgSlNDZWxsKiBjZWxsLCBQcmludFN0cmVhbSYg
b3V0KQogewogICAgIFZNJiB2bSA9IGNlbGwtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNTdHJpbmcuaAppbmRleCA2NTZiMWRhNjczYjljMjRkY2VmZWU4OTQzZTVlYTg4MWFm
MTU1Nzk0Li4wNDJhOGM5ZWNjZTJkZGQ4ODJhZjE5Y2I1NDQ0YWI1M2Q2NWQ3NzJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKQEAgLTkyLDcgKzkyLDEwIEBAIGNs
YXNzIEpTU3RyaW5nIDogcHVibGljIEpTQ2VsbCB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVu
V2hlbkxlbmd0aElzTm90WmVybyB8IFN0cnVjdHVyZUlzSW1tb3J0YWwgfCBPdmVycmlkZXNUb1Ro
aXM7CiAKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7
Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKyAgICBzdGF0aWMgQUxXQVlTX0lO
TElORSB2b2lkIGRlc3Ryb3koSlNDZWxsKiBjZWxsKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Nh
c3Q8SlNTdHJpbmcqPihjZWxsKS0+SlNTdHJpbmc6On5KU1N0cmluZygpOworICAgIH0KICAgICAK
ICAgICAvLyBXZSBzcGVjaWFsaXplIHRoZSBzdHJpbmcgc3Vic3BhY2UgdG8gZ2V0IHRoZSBmYXN0
ZXN0IHBvc3NpYmxlIHN3ZWVwLiBUaGlzIHdvdWxkbid0IGJlCiAgICAgLy8gbmVjZXNzYXJ5IGlm
IEpTU3RyaW5nIGRpZG4ndCBoYXZlIGEgZGVzdHJ1Y3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSGVhcENlbGxUeXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSGVhcENlbGxUeXBlLmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMzQ3NTIxYTI4MjYwMTk1ZWFjYjU0YzNhYzc3OTBhZDUwNGQ1
ZDQ3Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZ0hlYXBDZWxsVHlwZS5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTU3Ry
aW5nSGVhcENlbGxUeXBlLmgiCi0KLSNpbmNsdWRlICJNYXJrZWRCbG9ja0lubGluZXMuaCIKLSNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1zdHJ1Y3QgSlNTdHJp
bmdEZXN0cm95RnVuYyB7Ci0gICAgQUxXQVlTX0lOTElORSB2b2lkIG9wZXJhdG9yKCkoVk0mLCBK
U0NlbGwqIGNlbGwpIGNvbnN0Ci0gICAgewotICAgICAgICBzdGF0aWNfY2FzdDxKU1N0cmluZyo+
KGNlbGwpLT5KU1N0cmluZzo6fkpTU3RyaW5nKCk7Ci0gICAgfQotfTsKLQotSlNTdHJpbmdIZWFw
Q2VsbFR5cGU6OkpTU3RyaW5nSGVhcENlbGxUeXBlKCkKLSAgICA6IEhlYXBDZWxsVHlwZShDZWxs
QXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkKLXsKLX0KLQot
SlNTdHJpbmdIZWFwQ2VsbFR5cGU6On5KU1N0cmluZ0hlYXBDZWxsVHlwZSgpCi17Ci19Ci0KLXZv
aWQgSlNTdHJpbmdIZWFwQ2VsbFR5cGU6OmZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUm
IGhhbmRsZSwgRnJlZUxpc3QqIGZyZWVMaXN0KQotewotICAgIGhhbmRsZS5maW5pc2hTd2VlcEtu
b3dpbmdIZWFwQ2VsbFR5cGUoZnJlZUxpc3QsIEpTU3RyaW5nRGVzdHJveUZ1bmMoKSk7Ci19Ci0K
LXZvaWQgSlNTdHJpbmdIZWFwQ2VsbFR5cGU6OmRlc3Ryb3koVk0mIHZtLCBKU0NlbGwqIGNlbGwp
Ci17Ci0gICAgSlNTdHJpbmdEZXN0cm95RnVuYygpKHZtLCBjZWxsKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nSGVhcENlbGxUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0
cmluZ0hlYXBDZWxsVHlwZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjJiODhm
YTUyMGQ3MTZiYjI3NzU1NWUyYjNhMGM5ZjAzOWVhZjQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nSGVhcENlbGxUeXBlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEgb25jZQot
Ci0jaW5jbHVkZSAiSGVhcENlbGxUeXBlLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBK
U1N0cmluZ0hlYXBDZWxsVHlwZSA6IHB1YmxpYyBIZWFwQ2VsbFR5cGUgewotcHVibGljOgotICAg
IEpTX0VYUE9SVF9QUklWQVRFIEpTU3RyaW5nSGVhcENlbGxUeXBlKCk7Ci0gICAgSlNfRVhQT1JU
X1BSSVZBVEUgdmlydHVhbCB+SlNTdHJpbmdIZWFwQ2VsbFR5cGUoKTsKLSAgICAKLSAgICB2b2lk
IGZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUmLCBGcmVlTGlzdCopIG92ZXJyaWRlOwot
ICAgIHZvaWQgZGVzdHJveShWTSYsIEpTQ2VsbCopIG92ZXJyaWRlOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCAwNzE0YzNl
MDczZjJhYTQyMmE3ZGIxYjI0YjhmYjBiMmJkODQ1MmM3Li5lMDMzZmU2M2E5NmZiZGRmNjM1NTI4
MDI2MGQ1OGM5ZWZhOGZkYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBA
IC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSAiSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3Iu
aCIKICNpbmNsdWRlICJJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJJ
bnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIklzb0hlYXBDZWxsVHlwZS5o
IgogI2luY2x1ZGUgIkpJVENvZGUuaCIKICNpbmNsdWRlICJKSVRXb3JrbGlzdC5oIgogI2luY2x1
ZGUgIkpTQVBJVmFsdWVXcmFwcGVyLmgiCkBAIC05NiwxNCArOTcsMTIgQEAKICNpbmNsdWRlICJK
U1NldC5oIgogI2luY2x1ZGUgIkpTU2V0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1NvdXJjZUNv
ZGUuaCIKLSNpbmNsdWRlICJKU1N0cmluZ0hlYXBDZWxsVHlwZS5oIgogI2luY2x1ZGUgIkpTVGVt
cGxhdGVPYmplY3REZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiSlNXZWFrTWFwLmgiCiAjaW5jbHVk
ZSAiSlNXZWFrT2JqZWN0UmVmLmgiCiAjaW5jbHVkZSAiSlNXZWFrU2V0LmgiCiAjaW5jbHVkZSAi
SlNXZWJBc3NlbWJseS5oIgogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDb2RlQmxvY2suaCIKLSNp
bmNsdWRlICJKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmgiCiAjaW5jbHVkZSAi
SlNXZWJBc3NlbWJseU1lbW9yeS5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCiAjaW5jbHVk
ZSAiTExJbnREYXRhLmgiCkBAIC0xNTEsNyArMTUwLDYgQEAKICNpbmNsdWRlICJXYXRjaGRvZy5o
IgogI2luY2x1ZGUgIldlYWtHQ01hcElubGluZXMuaCIKICNpbmNsdWRlICJXZWJBc3NlbWJseUZ1
bmN0aW9uLmgiCi0jaW5jbHVkZSAiV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5oIgog
I2luY2x1ZGUgIldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1By
b2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi9SZWFkV3JpdGVMb2NrLmg+CkBAIC0yNjMsMTEgKzI2
MSwxMyBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgLCBp
bW11dGFibGVCdXR0ZXJmbHlIZWFwQ2VsbFR5cGUobWFrZVVuaXF1ZTxIZWFwQ2VsbFR5cGU+KENl
bGxBdHRyaWJ1dGVzKERvZXNOb3ROZWVkRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpKU0NlbGxXaXRo
SW50ZXJpb3JQb2ludGVycykpKQogICAgICwgY2VsbEhlYXBDZWxsVHlwZShtYWtlVW5pcXVlPEhl
YXBDZWxsVHlwZT4oQ2VsbEF0dHJpYnV0ZXMoRG9lc05vdE5lZWREZXN0cnVjdGlvbiwgSGVhcENl
bGw6OkpTQ2VsbCkpKQogICAgICwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZShtYWtlVW5p
cXVlPEhlYXBDZWxsVHlwZT4oQ2VsbEF0dHJpYnV0ZXMoTmVlZHNEZXN0cnVjdGlvbiwgSGVhcENl
bGw6OkpTQ2VsbCkpKQotICAgICwgc3RyaW5nSGVhcENlbGxUeXBlKG1ha2VVbmlxdWU8SlNTdHJp
bmdIZWFwQ2VsbFR5cGU+KCkpCisgICAgLCBzdHJpbmdIZWFwQ2VsbFR5cGUobWFrZVVuaXF1ZTxJ
c29IZWFwQ2VsbFR5cGU8SlNTdHJpbmc+PigpKQorICAgICwgd2Vha01hcEhlYXBDZWxsVHlwZSht
YWtlVW5pcXVlPElzb0hlYXBDZWxsVHlwZTxKU1dlYWtNYXA+PigpKQorICAgICwgd2Vha1NldEhl
YXBDZWxsVHlwZShtYWtlVW5pcXVlPElzb0hlYXBDZWxsVHlwZTxKU1dlYWtTZXQ+PigpKQogICAg
ICwgZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlKG1ha2VVbmlxdWU8SlNEZXN0cnVjdGli
bGVPYmplY3RIZWFwQ2VsbFR5cGU+KCkpCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgICwg
d2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUobWFrZVVuaXF1ZTxKU1dlYkFzc2VtYmx5
Q29kZUJsb2NrSGVhcENlbGxUeXBlPigpKQotICAgICwgd2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBD
ZWxsVHlwZShtYWtlVW5pcXVlPFdlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGU+KCkpCisg
ICAgLCB3ZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZShtYWtlVW5pcXVlPElzb0hlYXBD
ZWxsVHlwZTxKU1dlYkFzc2VtYmx5Q29kZUJsb2NrPj4oKSkKKyAgICAsIHdlYkFzc2VtYmx5RnVu
Y3Rpb25IZWFwQ2VsbFR5cGUobWFrZVVuaXF1ZTxJc29IZWFwQ2VsbFR5cGU8V2ViQXNzZW1ibHlG
dW5jdGlvbj4+KCkpCiAjZW5kaWYKICAgICAsIHByaW1pdGl2ZUdpZ2FjYWdlQXV4aWxpYXJ5U3Bh
Y2UoIlByaW1pdGl2ZSBHaWdhY2FnZSBBdXhpbGlhcnkiLCBoZWFwLCBhdXhpbGlhcnlIZWFwQ2Vs
bFR5cGUuZ2V0KCksIHByaW1pdGl2ZUdpZ2FjYWdlQWxsb2NhdG9yLmdldCgpKSAvLyBIYXNoOjB4
M2U3Y2Q3NjIKICAgICAsIGpzVmFsdWVHaWdhY2FnZUF1eGlsaWFyeVNwYWNlKCJKU1ZhbHVlIEdp
Z2FjYWdlIEF1eGlsaWFyeSIsIGhlYXAsIGF1eGlsaWFyeUhlYXBDZWxsVHlwZS5nZXQoKSwganNW
YWx1ZUdpZ2FjYWdlQWxsb2NhdG9yLmdldCgpKSAvLyBIYXNoOjB4MjQxZTk0NgpAQCAtMTMwNyw4
ICsxMzA3LDggQEAgRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHVubGlu
a2VkRXZhbENvZGVCbG9ja1NwYWNlLCBkZXN0cnVjdGlibGUKIERZTkFNSUNfSVNPX1NVQlNQQUNF
X0RFRklORV9NRU1CRVJfU0xPVyh1bmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrU3BhY2UsIGRlc3Ry
dWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sp
CiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1codW5saW5rZWRNb2R1bGVQ
cm9ncmFtQ29kZUJsb2NrU3BhY2UsIGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCks
IFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaykKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RF
RklORV9NRU1CRVJfU0xPVyh1bmxpbmtlZFByb2dyYW1Db2RlQmxvY2tTcGFjZSwgZGVzdHJ1Y3Rp
YmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKQotRFlO
QU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHdlYWtNYXBTcGFjZSwgZGVzdHJ1
Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1dlYWtNYXApIC8vIEhhc2g6MHg2NjJi
MTJhMwotRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHdlYWtTZXRTcGFj
ZSwgZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1dlYWtTZXQpIC8vIEhh
c2g6MHg0Yzc4MWIzMAorRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHdl
YWtNYXBTcGFjZSwgd2Vha01hcEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNXZWFrTWFwKSAvLyBIYXNo
OjB4NjYyYjEyYTMKK0RZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh3ZWFr
U2V0U3BhY2UsIHdlYWtTZXRIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2Vha1NldCkgLy8gSGFzaDow
eDRjNzgxYjMwCiBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2Vha09i
amVjdFJlZlNwYWNlLCBjZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1dlYWtPYmplY3RSZWYpIC8v
IEhhc2g6MHg4ZWM2OGYxZgogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVECiBEWU5BTUlDX0lTT19T
VUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cob2JqQ0NhbGxiYWNrRnVuY3Rpb25TcGFjZSwgZGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBPYmpDQ2FsbGJhY2tGdW5jdGlvbikg
Ly8gSGFzaDoweDEwZjYxMGI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAppbmRleCA4YWQ3
ZTljNzMwNGNjMDMyMmJiOGFhNmZhMmM5OGQ4YmQyZjZjNTFlLi44NDNiODY4NjlkNGY2OTE2NzI0
MTdjZTMwYzM4YjQwYTE1ZTkxYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKQEAg
LTEyNyw4ICsxMjcsOSBAQCBjbGFzcyBKU09iamVjdDsKIGNsYXNzIEpTUHJvbWlzZTsKIGNsYXNz
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjsKIGNsYXNzIEpTUnVuTG9vcFRpbWVyOwotY2xhc3Mg
SlNTdHJpbmdIZWFwQ2VsbFR5cGU7Ci1jbGFzcyBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENl
bGxUeXBlOworY2xhc3MgSlNXZWFrTWFwOworY2xhc3MgSlNXZWFrU2V0OworY2xhc3MgSlNXZWJB
c3NlbWJseUNvZGVCbG9jazsKIGNsYXNzIEpTV2ViQXNzZW1ibHlJbnN0YW5jZTsKIGNsYXNzIExM
SW50T2Zmc2V0c0V4dHJhY3RvcjsKIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7CkBAIC0xNjIsNyAr
MTYzLDkgQEAgY2xhc3MgVG9wTGV2ZWxHbG9iYWxPYmplY3RTY29wZTsKIGNsYXNzIFdhdGNoZG9n
OwogY2xhc3MgV2F0Y2hwb2ludDsKIGNsYXNzIFdhdGNocG9pbnRTZXQ7Ci1jbGFzcyBXZWJBc3Nl
bWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlOworY2xhc3MgV2ViQXNzZW1ibHlGdW5jdGlvbjsKKwor
dGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGU+IGNsYXNzIElzb0hlYXBDZWxsVHlwZTsKIAogI2lm
IEVOQUJMRShGVExfSklUKQogbmFtZXNwYWNlIEZUTCB7CkBAIC0zMzksMTEgKzM0MiwxMyBAQCBj
bGFzcyBWTSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxWTT4sIHB1YmxpYyBEb3VibHlM
aW5rZWRMaXN0Tm9kZTxWTT4gewogICAgIHN0ZDo6dW5pcXVlX3B0cjxIZWFwQ2VsbFR5cGU+IGlt
bXV0YWJsZUJ1dHRlcmZseUhlYXBDZWxsVHlwZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SGVhcENl
bGxUeXBlPiBjZWxsSGVhcENlbGxUeXBlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIZWFwQ2VsbFR5
cGU+IGRlc3RydWN0aWJsZUNlbGxIZWFwQ2VsbFR5cGU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEpT
U3RyaW5nSGVhcENlbGxUeXBlPiBzdHJpbmdIZWFwQ2VsbFR5cGU7CisgICAgc3RkOjp1bmlxdWVf
cHRyPElzb0hlYXBDZWxsVHlwZTxKU1N0cmluZz4+IHN0cmluZ0hlYXBDZWxsVHlwZTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8SXNvSGVhcENlbGxUeXBlPEpTV2Vha01hcD4+IHdlYWtNYXBIZWFwQ2Vs
bFR5cGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPElzb0hlYXBDZWxsVHlwZTxKU1dlYWtTZXQ+PiB3
ZWFrU2V0SGVhcENlbGxUeXBlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0Rlc3RydWN0aWJsZU9i
amVjdEhlYXBDZWxsVHlwZT4gZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlOwogI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8SlNXZWJBc3NlbWJseUNvZGVC
bG9ja0hlYXBDZWxsVHlwZT4gd2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGU7Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGU+IHdlYkFzc2Vt
Ymx5RnVuY3Rpb25IZWFwQ2VsbFR5cGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPElzb0hlYXBDZWxs
VHlwZTxKU1dlYkFzc2VtYmx5Q29kZUJsb2NrPj4gd2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2Vs
bFR5cGU7CisgICAgc3RkOjp1bmlxdWVfcHRyPElzb0hlYXBDZWxsVHlwZTxXZWJBc3NlbWJseUZ1
bmN0aW9uPj4gd2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZTsKICNlbmRpZgogICAgIAog
ICAgIENvbXBsZXRlU3Vic3BhY2UgcHJpbWl0aXZlR2lnYWNhZ2VBdXhpbGlhcnlTcGFjZTsgLy8g
VHlwZWQgYXJyYXlzLCBzdHJpbmdzLCBiaXR2ZWN0b3JzLCBldGMgZ28gaGVyZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwSW1wbC5oCmluZGV4IDhiNDVmZmUxNTkxMjkz
N2QwMWM4YmIxMGE3NjdlYzkzZDNkZWQ2NWEuLjY2NjUyMWM3N2M3N2I0YWVmNGI1YTBiNjg3N2Uy
NzA0OGRjZDQyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dl
YWtNYXBJbXBsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcElt
cGwuaApAQCAtMTkyLDEzICsxOTIsMTQgQEAgY2xhc3MgV2Vha01hcEJ1ZmZlciB7CiB9OwogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgV2Vha01hcEJ1Y2tldFR5cGU+Ci1jbGFzcyBXZWFrTWFwSW1wbCA6
IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7Ci0gICAgdXNpbmcgQmFzZSA9IEpTRGVzdHJ1
Y3RpYmxlT2JqZWN0OworY2xhc3MgV2Vha01hcEltcGwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CisgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7CiAgICAgdXNpbmcgV2Vha01h
cEJ1ZmZlclR5cGUgPSBXZWFrTWFwQnVmZmVyPFdlYWtNYXBCdWNrZXRUeXBlPjsKIAogcHVibGlj
OgogICAgIHVzaW5nIEJ1Y2tldFR5cGUgPSBXZWFrTWFwQnVja2V0VHlwZTsKIAorICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKICAgICBzdGF0aWMgdm9p
ZCBkZXN0cm95KEpTQ2VsbCopOwogCiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0Nl
bGwqLCBTbG90VmlzaXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA1YTU1NWE1MjcwN2RhMmZkNTA1NzEy
ZjczOWRkMzA4MjBjMDg2NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJs
b2NrSGVhcENlbGxUeXBlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuaCIKLQot
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLQotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNs
dWRlICJKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmgiCi0jaW5jbHVkZSAiTWFya2VkQmxvY2tJbmxp
bmVzLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1zdHJ1Y3QgSlNXZWJBc3NlbWJseUNvZGVCbG9j
a0Rlc3Ryb3lGdW5jIHsKLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgb3BlcmF0b3IoKShWTSYsIEpT
Q2VsbCogY2VsbCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19m
aW5hbDxKU1dlYkFzc2VtYmx5Q29kZUJsb2NrPjo6dmFsdWUsICJPdGhlcndpc2UsIHRoaXMgY29k
ZSB3b3VsZCBub3QgYmUgY29ycmVjdC4iKTsKLSAgICAgICAgSlNXZWJBc3NlbWJseUNvZGVCbG9j
azo6ZGVzdHJveShjZWxsKTsKLSAgICB9Ci19OwotCi1KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVh
cENlbGxUeXBlOjpKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlKCkKLSAgICA6IEhl
YXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlND
ZWxsKSkKLXsKLX0KLQotSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZTo6fkpTV2Vi
QXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUoKQotewotfQotCi12b2lkIEpTV2ViQXNzZW1i
bHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGU6OmZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpIYW5kbGUm
IGhhbmRsZSwgRnJlZUxpc3QqIGZyZWVMaXN0KQotewotICAgIGhhbmRsZS5maW5pc2hTd2VlcEtu
b3dpbmdIZWFwQ2VsbFR5cGUoZnJlZUxpc3QsIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tEZXN0cm95
RnVuYygpKTsKLX0KLQotdm9pZCBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlOjpk
ZXN0cm95KFZNJiB2bSwgSlNDZWxsKiBjZWxsKQotewotICAgIEpTV2ViQXNzZW1ibHlDb2RlQmxv
Y2tEZXN0cm95RnVuYygpKHZtLCBjZWxsKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNl
bmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxU
eXBlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkNGJhNjNhZGNkM2I3OTU2MmZl
NTVhYzIwZTViMGJjYjIyNmFhNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUNv
ZGVCbG9ja0hlYXBDZWxsVHlwZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLQotI2luY2x1ZGUgIkhlYXBDZWxsVHlwZS5oIgot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxs
VHlwZSA6IHB1YmxpYyBIZWFwQ2VsbFR5cGUgewotcHVibGljOgotICAgIEpTV2ViQXNzZW1ibHlD
b2RlQmxvY2tIZWFwQ2VsbFR5cGUoKTsKLSAgICB2aXJ0dWFsIH5KU1dlYkFzc2VtYmx5Q29kZUJs
b2NrSGVhcENlbGxUeXBlKCk7Ci0gICAgCi0gICAgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9j
azo6SGFuZGxlJiwgRnJlZUxpc3QqKSBvdmVycmlkZTsKLSAgICB2b2lkIGRlc3Ryb3koVk0mLCBK
U0NlbGwqKSBvdmVycmlkZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8g
RU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGEwNzYzOTE4NDZiNTU2Nzg4MTE1OTNmOGY4N2Ji
MGQxM2VjOWZlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENl
bGxUeXBlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIldlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGUuaCIKLQotI2lmIEVOQUJMRShX
RUJBU1NFTUJMWSkKLQotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlICJNYXJrZWRC
bG9ja0lubGluZXMuaCIKLSNpbmNsdWRlICJXZWJBc3NlbWJseUZ1bmN0aW9uLmgiCi0KLW5hbWVz
cGFjZSBKU0MgewotCi1zdHJ1Y3QgV2ViQXNzZW1ibHlGdW5jdGlvbkRlc3Ryb3lGdW5jIHsKLSAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgb3BlcmF0b3IoKShWTSYsIEpTQ2VsbCogY2VsbCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19maW5hbDxXZWJBc3NlbWJseUZ1
bmN0aW9uPjo6dmFsdWUsICJPdGhlcndpc2UsIHRoaXMgY29kZSB3b3VsZCBub3QgYmUgY29ycmVj
dC4iKTsKLSAgICAgICAgV2ViQXNzZW1ibHlGdW5jdGlvbjo6ZGVzdHJveShjZWxsKTsKLSAgICB9
Ci19OwotCi1XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlOjpXZWJBc3NlbWJseUZ1bmN0
aW9uSGVhcENlbGxUeXBlKCkKLSAgICA6IEhlYXBDZWxsVHlwZShDZWxsQXR0cmlidXRlcyhOZWVk
c0Rlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkKLXsKLX0KLQotV2ViQXNzZW1ibHlGdW5j
dGlvbkhlYXBDZWxsVHlwZTo6fldlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGUoKQotewot
fQotCi12b2lkIFdlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGU6OmZpbmlzaFN3ZWVwKE1h
cmtlZEJsb2NrOjpIYW5kbGUmIGhhbmRsZSwgRnJlZUxpc3QqIGZyZWVMaXN0KQotewotICAgIGhh
bmRsZS5maW5pc2hTd2VlcEtub3dpbmdIZWFwQ2VsbFR5cGUoZnJlZUxpc3QsIFdlYkFzc2VtYmx5
RnVuY3Rpb25EZXN0cm95RnVuYygpKTsKLX0KLQotdm9pZCBXZWJBc3NlbWJseUZ1bmN0aW9uSGVh
cENlbGxUeXBlOjpkZXN0cm95KFZNJiB2bSwgSlNDZWxsKiBjZWxsKQotewotICAgIFdlYkFzc2Vt
Ymx5RnVuY3Rpb25EZXN0cm95RnVuYygpKHZtLCBjZWxsKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
SlNDCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENl
bGxUeXBlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3ZWJkOWRkYWFhYTg4YjUz
YmFlMmNiZThlMGZmMTBlYWY2ZGM0YjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlG
dW5jdGlvbkhlYXBDZWxsVHlwZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLQotI2luY2x1ZGUgIkhlYXBDZWxsVHlwZS5oIgot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlw
ZSA6IHB1YmxpYyBIZWFwQ2VsbFR5cGUgewotcHVibGljOgotICAgIFdlYkFzc2VtYmx5RnVuY3Rp
b25IZWFwQ2VsbFR5cGUoKTsKLSAgICB2aXJ0dWFsIH5XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENl
bGxUeXBlKCk7Ci0gICAgCi0gICAgdm9pZCBmaW5pc2hTd2VlcChNYXJrZWRCbG9jazo6SGFuZGxl
JiwgRnJlZUxpc3QqKSBvdmVycmlkZTsKLSAgICB2b2lkIGRlc3Ryb3koVk0mLCBKU0NlbGwqKSBv
dmVycmlkZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKFdF
QkFTU0VNQkxZKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384252</attachid>
            <date>2019-11-24 04:30:19 -0800</date>
            <delta_ts>2019-11-24 09:49:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204555-20191124043018.patch</filename>
            <type>text/plain</type>
            <size>48010</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTM5Nzk1MDJmOTU4NmQyYTU1MzQ4N2M2ZTZhNmZmOTMwMzc2NWVlLi4xNDI0MGIzZjZiNzI0N2E0
MjQ0Y2E2YmZmYmVlYzIxYTNmMjE3YjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxOS0xMS0yNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEludHJvZHVjZSBJc29IZWFwQ2VsbFR5cGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDU1NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGludHJvZHVjZSBJc29IZWFw
Q2VsbFR5cGU8Q2VsbFR5cGU+LCB3aGljaCBkZXN0cm95cyBjZWxsIGJhc2VkIG9uIENlbGxUeXBl
IGluZm9ybWF0aW9uLCB3aGljaCBzaG91bGQgYmUgaW4gSXNvU3Vic3BhY2UuCisgICAgICAgIEJ5
IHVzaW5nIHRoaXMsIHdlIGNhbiBhdm9pZCBpbmhlcml0aW5nIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
LiBGb3IgZWFjaCBJc29TdWJzcGFjZSwgd2Uga25vdyBob3cgdG8gZGVzdHJveSBjZWxscyBpZiB3
ZSB1c2UKKyAgICAgICAgSXNvSGVhcENlbGxUeXBlPENlbGxUeXBlPiB3aXRob3V0IHVzaW5nIG1l
dGhvZFRhYmxlLiBXZSBzdGFydCB1c2luZyBpdCBmb3IsIEpTU3RyaW5nLCBKU1dlYWtNYXAsIEpT
V2Vha1NldCwgV2ViQXNzZW1ibHlGdW5jdGlvbiwKKyAgICAgICAgYW5kIEpTV2ViQXNzZW1ibHlD
b2RlQmxvY2suIEFuZCB3ZSB1c2UgSlNOb25GaW5hbE9iamVjdCBmb3IgdGhlIGJhc2Ugb2YgSlNX
ZWFrTWFwIGFuZCBKU1dlYWtTZXQsIHdoaWNoIHNocmlua3Mgc2l6ZSBvZiB0aGVtCisgICAgICAg
IGZyb20gNDggdG8gMzIuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIGhlYXAvSXNvSGVhcENlbGxUeXBlLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxU
eXBlLmguCisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6OkpT
U3RyaW5nOjpkZXN0cm95KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmg6
CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpkZXN0cm95KToKKyAgICAgICAgKiBydW50aW1lL0pT
U3RyaW5nSGVhcENlbGxUeXBlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50aW1lL0pTU3Ry
aW5nSGVhcENlbGxUeXBlLmg6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9WTS5jcHA6Cisg
ICAgICAgIChKU0M6OlZNOjpWTSk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAq
IHJ1bnRpbWUvV2Vha01hcEltcGwuaDoKKyAgICAgICAgKiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlD
b2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHdhc20vanMvSlNX
ZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHdh
c20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5jcHA6IFJlbW92ZWQuCisKIDIw
MTktMTEtMjMgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAg
ICAgIFtKU0NdIEdldFN1YnN0aXR1dGlvbiBpcyBwZXJmb3JtZWQgaW5jb3JyZWN0bHkgdmlhIFJl
Z0V4cC5wcm90b3R5cGVbQEByZXBsYWNlXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDBmOGM0MTk0MDY0ZmYwM2E3YzA2ODA0MDZhNGZjZjZlYWRjNjA0MjMuLmM4ZmVjOTQ2
YjU3ZmFkZWY5OWRkNDU1ZGE4ZDVlYjI3NGVmMTE3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTk5LDcgKzk5LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX09CSkVDVF9M
VVRfU09VUkNFUwogICAgIHdhc20vanMvSlNUb1dhc21JQ0NhbGxlZS5jcHAKICAgICB3YXNtL2pz
L1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCiAgICAgd2FzbS9qcy9XZWJB
c3NlbWJseUNvbXBpbGVFcnJvclByb3RvdHlwZS5jcHAKLSAgICB3YXNtL2pzL1dlYkFzc2VtYmx5
RnVuY3Rpb25IZWFwQ2VsbFR5cGUuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNl
Q29uc3RydWN0b3IuY3BwCiAgICAgd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBl
LmNwcAogICAgIHdhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAg
LTYxNCw2ICs2MTMsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGhlYXAvSGVhcFNuYXBzaG90QnVpbGRlci5oCiAgICAgaGVhcC9JbmNyZW1lbnRh
bFN3ZWVwZXIuaAogICAgIGhlYXAvSXNvQ2VsbFNldC5oCisgICAgaGVhcC9Jc29IZWFwQ2VsbFR5
cGUuaAogICAgIGhlYXAvSXNvU3Vic3BhY2UuaAogICAgIGhlYXAvSXNvU3Vic3BhY2VJbmxpbmVz
LmgKICAgICBoZWFwL0lzb1N1YnNwYWNlUGVyVk0uaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNDE2NjhiNGJlYmI4ZTE3MzdhNTFlZGY4ZDU5NWUzYWE4MDA2MjAzLi41ZTg3NzNi
MDZhZDE1YzI5M2U5NjcyNzliODg5NjU5YTUwZTg0MDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNDU0LDcgKzQ1NCw2IEBACiAJCTBGN0RGMTM3MUUyOTcwRTEwMDk1OTUxQiAv
KiBTdWJzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY3REYxMzIxRTI5NzBENTAwOTU5NTFCIC8qIFN1YnNwYWNlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3REYxMzgxRTI5NzBFNDAwOTU5
NTFCIC8qIFN1YnNwYWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY3REYxMzMxRTI5NzBENTAwOTU5NTFCIC8qIFN1YnNwYWNlSW5saW5l
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
N0RGMTNDMUUyOTcxMTMwMDk1OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlw
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3REYx
M0ExRTI5NzEwRTAwOTU5NTFCIC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY3REYx
M0YxRTJBRkM0RDAwOTU5NTFCIC8qIEpTU3RyaW5nSGVhcENlbGxUeXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdERjEzRTFFMkFGQzRCMDA5NTk1
MUIgLyogSlNTdHJpbmdIZWFwQ2VsbFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdERjE0NjFFMkJFRjZBMDA5NTk1MUIgLyogQmxvY2tE
aXJlY3RvcnlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjdERjE0NTFFMkJFRjY4MDA5NTk1MUIgLyogQmxvY2tEaXJlY3RvcnlJbmxpbmVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3
Rjk4OEMxRDk1OTZDODAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFzZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3Rjk4OEEx
RDk1OTZDMzAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFzZS5oICovOyB9
OwogCQkwRjgwMjNFQTE2MTM4MzJCMDBBMEJBNDUgLyogQnlWYWxJbmZvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjgwMjNFOTE2MTM4MzIzMDBBMEJB
NDUgLyogQnlWYWxJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTg5NCw3ICs4OTMsNiBAQAogCQk1MjExMzFGNzFGODJCRjE0MDA3Q0NFRUUg
LyogUG9seVByb3RvQWNjZXNzQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUyMTEzMUY2MUY4MkJGMTEwMDdDQ0VFRSAvKiBQb2x5UHJvdG9BY2Nl
c3NDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyMTMyMjQ2MUVDQkNFODIwMEY2NTYxNSAvKiBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTIxMzIyNDQx
RUNCQ0U4MjAwRjY1NjE1IC8qIFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlLmggKi87IH07CiAJCTUy
MjkyN0Q1MjM1RkQwQjkwMDVDQjE2OSAvKiBHQ01lbW9yeU9wZXJhdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzI5ODdCMjM1RkM4QkEwMDVD
OTgyQyAvKiBHQ01lbW9yeU9wZXJhdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQk1MjNGRDg4RTIyNTU2NkM5MDAzQjNEQ0MgLyogV2ViQXNz
ZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTIzRkQ4OEMyMjU1NjZDMzAwM0IzRENDIC8qIFdlYkFzc2VtYmx5
RnVuY3Rpb25IZWFwQ2VsbFR5cGUuaCAqLzsgfTsKIAkJNTI0RTlENzMyMjA5MkI1MjAwQTZCRUVF
IC8qIEFpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3RhY2tBbmRHZW5lcmF0ZUNvZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNEU5RDcyMjIwOTJCNDYw
MEE2QkVFRSAvKiBBaXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2VuZXJhdGVDb2RlLmgg
Ki87IH07CiAJCTUyNTBEMkQyMUU4REEwNUEwMDI5QTkzMiAvKiBXYXNtVGh1bmtzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjUwRDJEMDFFOERBMDVB
MDAyOUE5MzIgLyogV2FzbVRodW5rcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTUyNUMwRERBMUU5MzU4NDcwMDIxODRDRCAvKiBXYXNtQ2FsbGVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjVDMERE
ODFFOTM1ODQ3MDAyMTg0Q0QgLyogV2FzbUNhbGxlZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjE3LDcgKzEyMTUsNiBAQAogCQk3OURBRTI3
QTFFMDNDODIyMDBCNTI2QUEgLyogV2FzbUV4Y2VwdGlvblR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5REFFMjc5MUUwM0M4MjIwMEI1MjZBQSAv
KiBXYXNtRXhjZXB0aW9uVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTc5REZDQkRCMUQ4OEM1OTYwMDUyN0QwMyAvKiBIYXNPd25Qcm9wZXJ0
eUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OURGQ0JEQTFEODhDNTk2MDA1MjdEMDMgLyogSGFzT3duUHJvcGVydHlDYWNoZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc5RUUwQzAwMUI0QUZC
ODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFy
aWFibGVFbnZpcm9ubWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTc5RUZENDg0MUVCQzA0NUMwMEYzREZFQSAvKiBKU1dlYkFzc2VtYmx5Q29k
ZUJsb2NrSGVhcENlbGxUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3OUVGRDQ4MjFFQkMwNDVDMDBGM0RGRUEgLyogSlNXZWJBc3NlbWJseUNvZGVC
bG9ja0hlYXBDZWxsVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTc5RkM4QTA4MUUzMkU5RjAwMEQ4OEYwRSAvKiBERkdSZWdpc3RlcmVkU3Ry
dWN0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OUZDOEEwNzFFMzJFOUYwMDBEODhGMEUgLyogREZHUmVnaXN0ZXJlZFN0cnVjdHVyZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdBOTc3NEE4MjA2
QjgyRTQwMDhEMDNEMCAvKiBKU1dlYWtWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0E5Nzc0QTcyMDZCODJDOTAwOEQwM0QwIC8qIEpTV2Vha1Zh
bHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0JDNTQ3RDMxQjY5NTlBMTAwOTU5QjU4IC8qIFdhc21Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQzU0N0QyMUI2OTU5OUIwMDk1OUI1OCAv
KiBXYXNtRm9ybWF0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTE4MzYsNiArMTgzMyw3IEBACiAJCUUzQTQyMTQzMUQ2RjU4OTMwMDA3QzYxNyAv
KiBQcmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFM0E0MjE0MjFENkY1ODhGMDAwN0M2MTcgLyogUHJlY2lzZUp1
bXBUYXJnZXRzSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzQUMyNzc3MjFGREI0OTQwMDI0NDUyQyAvKiBSZWdFeHBDYWNoZWRSZXN1
bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2Rjc1
RUZDMTUxQzA2MkYwMDdDOUJBMyAvKiBSZWdFeHBDYWNoZWRSZXN1bHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0JEMkI3NjIyRjI3NTAyMDAx
MTc2NUMgLyogV2FzbUNvbXBpbGF0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCRDJCNzUyMkYyNzUwMjAwMTE3NjVDIC8qIFdhc21Db21w
aWxhdGlvbk1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlFM0JGMUJBRTIzOEFBRURCMDAzQTFDMkIgLyogSXNvSGVhcENlbGxUeXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0JGMUJBRDIzOEFB
RUQxMDAzQTFDMkIgLyogSXNvSGVhcENlbGxUeXBlLmggKi87IH07CiAJCUUzQkZBNUQwMjFFODUz
QTEwMDlDMEVCQSAvKiBERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkZBNUNEMjFFODUzQTEwMDlDMEVCQSAv
KiBERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaCAqLzsgfTsKIAkJRTNCRkQwQkMxREFGODA4RTAw
NjVERUEyIC8qIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0JGRDBCQTFEQUY4MDdDMDA2NURFQTIgLyogQWNj
ZXNzQ2FzZVNuaXBwZXRQYXJhbXMuaCAqLzsgfTsKIAkJRTNDMjk1REQxRUQyQ0JEQTAwRDMwMTZG
IC8qIE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0MyOTVEQzFFRDJDQkFBMDBEMzAx
NkYgLyogT2JqZWN0UHJvcGVydHlDaGFuZ2VBZGFwdGl2ZVdhdGNocG9pbnQuaCAqLzsgfTsKQEAg
LTI3MzcsOCArMjczNSw2IEBACiAJCTBGN0RGMTMzMUUyOTcwRDUwMDk1OTUxQiAvKiBTdWJzcGFj
ZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Vic3BhY2VJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0RGMTM5MUUyOTcxMEUwMDk1
OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlw
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0RGMTNBMUUyOTcxMEUwMDk1
OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjdERjEzRDFFMkFGQzRCMDA5NTk1MUIgLyog
SlNTdHJpbmdIZWFwQ2VsbFR5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNTdHJpbmdIZWFwQ2VsbFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRjdERjEzRTFFMkFGQzRCMDA5NTk1MUIgLyogSlNTdHJpbmdIZWFwQ2VsbFR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdIZWFwQ2VsbFR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3REYxNDUxRTJCRUY2ODAwOTU5NTFCIC8q
IEJsb2NrRGlyZWN0b3J5SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCbG9ja0RpcmVjdG9yeUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY3Rjk4ODkxRDk1OTZDMzAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmllckNsdXN0ZXJpbmdQaGFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdTdG9yZUJhcnJp
ZXJDbHVzdGVyaW5nUGhhc2UuY3BwOyBwYXRoID0gZGZnL0RGR1N0b3JlQmFycmllckNsdXN0ZXJp
bmdQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0Y5ODhBMUQ5NTk2
QzMwMEY0RjEyRSAvKiBERkdTdG9yZUJhcnJpZXJDbHVzdGVyaW5nUGhhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHU3RvcmVCYXJyaWVyQ2x1c3RlcmluZ1BoYXNlLmg7
IHBhdGggPSBkZmcvREZHU3RvcmVCYXJyaWVyQ2x1c3RlcmluZ1BoYXNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zNTQxLDggKzM1MzcsNiBAQAogCQk1MjEzMjI0MzFFQ0JDRTgy
MDBGNjU2MTUgLyogV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuY3BwOyBwYXRoID0g
anMvV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MjEzMjI0NDFFQ0JDRTgyMDBGNjU2MTUgLyogV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQXNzZW1ibHlGdW5jdGlvbkJh
c2UuaDsgcGF0aCA9IGpzL1dlYkFzc2VtYmx5RnVuY3Rpb25CYXNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUyMzM1NjI4MjI1RUI4RTkwMDI2OEJEMiAvKiBDUFUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ1BVLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTIz
RkQ4OEMyMjU1NjZDMzAwM0IzRENDIC8qIFdlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5oOyBwYXRo
ID0ganMvV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1MjNGRDg4RDIyNTU2NkM0MDAzQjNEQ0MgLyogV2ViQXNzZW1ibHlGdW5j
dGlvbkhlYXBDZWxsVHlwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJBc3NlbWJseUZ1bmN0
aW9uSGVhcENlbGxUeXBlLmNwcDsgcGF0aCA9IGpzL1dlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2Vs
bFR5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjRFOUQ3MTIyMDkyQjQ1
MDBBNkJFRUUgLyogQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0FuZEdlbmVyYXRlQ29kZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBaXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNrQW5kR2Vu
ZXJhdGVDb2RlLmNwcDsgcGF0aCA9IGIzL2Fpci9BaXJBbGxvY2F0ZVJlZ2lzdGVyc0FuZFN0YWNr
QW5kR2VuZXJhdGVDb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI0RTlE
NzIyMjA5MkI0NjAwQTZCRUVFIC8qIEFpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3RhY2tBbmRHZW5l
cmF0ZUNvZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWlyQWxsb2NhdGVSZWdpc3RlcnNBbmRTdGFja0Fu
ZEdlbmVyYXRlQ29kZS5oOyBwYXRoID0gYjMvYWlyL0FpckFsbG9jYXRlUmVnaXN0ZXJzQW5kU3Rh
Y2tBbmRHZW5lcmF0ZUNvZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI1MEQy
Q0YxRThEQTA1QTAwMjlBOTMyIC8qIFdhc21UaHVua3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2FzbVRodW5rcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC00MDIxLDggKzQwMTUsNiBAQAogCQk3OURGQ0JEQTFEODhDNTk2MDA1MjdEMDMgLyog
SGFzT3duUHJvcGVydHlDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
YXNPd25Qcm9wZXJ0eUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc5RUUw
QkZEMUI0QUZCODUwMDAzODVDOSAvKiBWYXJpYWJsZUVudmlyb25tZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZhcmlhYmxlRW52aXJvbm1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUVFMEJGRTFCNEFGQjg1MDAwMzg1QzkgLyogVmFy
aWFibGVFbnZpcm9ubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYXJp
YWJsZUVudmlyb25tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc5RUZENDgx
MUVCQzA0NUMwMEYzREZFQSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2ViQXNzZW1ibHlDb2Rl
QmxvY2tIZWFwQ2VsbFR5cGUuY3BwOyBwYXRoID0ganMvSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hl
YXBDZWxsVHlwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTc5RUZENDgyMUVC
QzA0NUMwMEYzREZFQSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFw
Q2VsbFR5cGUuaDsgcGF0aCA9IGpzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlGQzhBMDcxRTMyRTlGMDAwRDg4RjBF
IC8qIERGR1JlZ2lzdGVyZWRTdHJ1Y3R1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gREZHUmVnaXN0ZXJlZFN0cnVjdHVyZS5oOyBwYXRoID0gZGZnL0RGR1JlZ2lzdGVyZWRT
dHJ1Y3R1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E5Nzc0QTYyMDZCODI4
QzAwOEQwM0QwIC8qIEpTV2Vha1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTV2Vha1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0E5Nzc0QTcyMDZCODJDOTAwOEQwM0QwIC8qIEpTV2Vha1ZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2Vha1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC00OTgwLDYgKzQ5NzIsNyBAQAogCQlFM0EzMkJDNjFGQzgzMTJFMDA3RDdFNzYgLyog
V2Vha01hcEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vha01hcElt
cGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNBNDIxNDIxRDZGNTg4RjAwMDdD
NjE3IC8qIFByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUHJlY2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFM0JEMkI3NTIyRjI3NTAyMDAxMTc2NUMgLyogV2FzbUNvbXBpbGF0aW9u
TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtQ29tcGlsYXRpb25N
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQkYxQkFEMjM4QUFFRDEwMDNB
MUMyQiAvKiBJc29IZWFwQ2VsbFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSXNvSGVhcENlbGxUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkZBNUNCMjFFODUzQTAwMDlDMEVC
QSAvKiBERkdEZXNpcmVkR2xvYmFsUHJvcGVydGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdEZXNpcmVkR2xvYmFsUHJvcGVydGllcy5jcHA7IHBhdGggPSBk
ZmcvREZHRGVzaXJlZEdsb2JhbFByb3BlcnRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFM0JGQTVDQzIxRTg1M0EwMDA5QzBFQkEgLyogREZHRGVzaXJlZEdsb2JhbFByb3Bl
cnRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRGVzaXJlZEdsb2Jh
bFByb3BlcnRpZXMuaDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkR2xvYmFsUHJvcGVydGllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGQTVDRDIxRTg1M0ExMDA5QzBFQkEgLyog
REZHRGVzaXJlZEdsb2JhbFByb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERGR0Rlc2lyZWRHbG9iYWxQcm9wZXJ0eS5oOyBwYXRoID0gZGZnL0RGR0Rlc2lyZWRHbG9i
YWxQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjE5OSw2ICs2MTky
LDcgQEAKIAkJCQkwRkI0Njc3QzFGRERBNkQ5MDAzRkNCMDkgLyogSXNvQ2VsbFNldC5jcHAgKi8s
CiAJCQkJMEZCNDY3N0QxRkREQTZEOTAwM0ZDQjA5IC8qIElzb0NlbGxTZXQuaCAqLywKIAkJCQkw
RkI0Njc3QjFGRERBNkQ4MDAzRkNCMDkgLyogSXNvQ2VsbFNldElubGluZXMuaCAqLywKKwkJCQlF
M0JGMUJBRDIzOEFBRUQxMDAzQTFDMkIgLyogSXNvSGVhcENlbGxUeXBlLmggKi8sCiAJCQkJMEZE
Q0UxMkMxRkFGQjRERTAwNkYzOTAxIC8qIElzb1N1YnNwYWNlLmNwcCAqLywKIAkJCQkwRkRDRTEy
QjFGQUZCNERFMDA2RjM5MDEgLyogSXNvU3Vic3BhY2UuaCAqLywKIAkJCQkwRkQyRkQ5MjIwQjUy
QkRDMDBGMDk0NDEgLyogSXNvU3Vic3BhY2VJbmxpbmVzLmggKi8sCkBAIC03MzI1LDggKzczMTks
NiBAQAogCQkJCTMwMzIxNzVERjFBRDQ3RDg5OThCMzRFMSAvKiBKU1NvdXJjZUNvZGUuaCAqLywK
IAkJCQlCQzAyRTlCNjBFMTg0MkZBMDAwRjkyOTcgLyogSlNTdHJpbmcuY3BwICovLAogCQkJCUY2
OTJBODYyMDI1NTU5N0QwMUZGNjBGNyAvKiBKU1N0cmluZy5oICovLAotCQkJCTBGN0RGMTNEMUUy
QUZDNEIwMDk1OTUxQiAvKiBKU1N0cmluZ0hlYXBDZWxsVHlwZS5jcHAgKi8sCi0JCQkJMEY3REYx
M0UxRTJBRkM0QjAwOTU5NTFCIC8qIEpTU3RyaW5nSGVhcENlbGxUeXBlLmggKi8sCiAJCQkJRkVG
RDZGQzUxRDVFNzk3MDAwOEYyRjBCIC8qIEpTU3RyaW5nSW5saW5lcy5oICovLAogCQkJCTcwRUMw
RUJDMUFBMEQ3REEwMEI2QUFGQSAvKiBKU1N0cmluZ0l0ZXJhdG9yLmNwcCAqLywKIAkJCQk3MEVD
MEVCRDFBQTBEN0RBMDBCNkFBRkEgLyogSlNTdHJpbmdJdGVyYXRvci5oICovLApAQCAtODIxMywx
MCArODIwNSwxMCBAQAogCQkJCTE0QUQ5MTE2MURDQTk3RkQwMDE0RjlGRSAvKiBGdW5jdGlvbkNv
ZGVCbG9jay5jcHAgKi8sCiAJCQkJMTRBRDkxMDcxRENBOTI5NDAwMTRGOUZFIC8qIEZ1bmN0aW9u
Q29kZUJsb2NrLmggKi8sCiAJCQkJMTQ5OENBRDUyMTRCRjM2RDAwNzEwODc5IC8qIEdldEJ5SWRN
ZXRhZGF0YS5oICovLAotCQkJCTBGOTMzMjk1MTRDQTdEQzEwMDg1RjNDNiAvKiBHZXRCeVN0YXR1
cy5jcHAgKi8sCi0JCQkJMEY5MzMyOTYxNENBN0RDMTAwODVGM0M2IC8qIEdldEJ5U3RhdHVzLmgg
Ki8sCiAJCQkJMEYwMzMyQzExOEIwMTc2MzAwNUY5NzlBIC8qIEdldEJ5SWRWYXJpYW50LmNwcCAq
LywKIAkJCQkwRjAzMzJDMjE4QjAxNzYzMDA1Rjk3OUEgLyogR2V0QnlJZFZhcmlhbnQuaCAqLywK
KwkJCQkwRjkzMzI5NTE0Q0E3REMxMDA4NUYzQzYgLyogR2V0QnlTdGF0dXMuY3BwICovLAorCQkJ
CTBGOTMzMjk2MTRDQTdEQzEwMDg1RjNDNiAvKiBHZXRCeVN0YXR1cy5oICovLAogCQkJCTUyMEQ5
OUYwMjM4OENDNzgwMDA1MDlBMyAvKiBHZXRCeVZhbEhpc3RvcnkuaCAqLywKIAkJCQkxNEFEOTEw
ODFEQ0E5Mjk0MDAxNEY5RkUgLyogR2xvYmFsQ29kZUJsb2NrLmggKi8sCiAJCQkJMEYwQjgzQTgx
NEJDRjU1RTAwODg1QjRGIC8qIEhhbmRsZXJJbmZvLmggKi8sCkBAIC04NTk5LDggKzg1OTEsNiBA
QAogCQkJCUFERDA5QUYzMUY2MjQ4MkUwMDEzMTNDMiAvKiBKU1dlYkFzc2VtYmx5LmggKi8sCiAJ
CQkJNTM4M0FBMkYxRTY1RThBMTAwQTUzMkZDIC8qIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2suY3Bw
ICovLAogCQkJCUFEOUU4NTJFMUU4QTBDNkUwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJs
b2NrLmggKi8sCi0JCQkJNzlFRkQ0ODExRUJDMDQ1QzAwRjNERkVBIC8qIEpTV2ViQXNzZW1ibHlD
b2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwICovLAotCQkJCTc5RUZENDgyMUVCQzA0NUMwMEYzREZF
QSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmggKi8sCiAJCQkJQUQyRkNC
QTYxREI1OERBNDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwICovLAog
CQkJCUFEMkZDQkE3MURCNThEQTQwMEIzRTczNiAvKiBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
LmggKi8sCiAJCQkJNzk2RkI0MzkxREZGOEMzRjAwMzlDOTVEIC8qIEpTV2ViQXNzZW1ibHlIZWxw
ZXJzLmggKi8sCkBAIC04NjI2LDggKzg2MTYsNiBAQAogCQkJCUFENDkzN0NBMURERDI3MzQwMDc3
QzgwNyAvKiBXZWJBc3NlbWJseUZ1bmN0aW9uLmggKi8sCiAJCQkJNTIxMzIyNDMxRUNCQ0U4MjAw
RjY1NjE1IC8qIFdlYkFzc2VtYmx5RnVuY3Rpb25CYXNlLmNwcCAqLywKIAkJCQk1MjEzMjI0NDFF
Q0JDRTgyMDBGNjU2MTUgLyogV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuaCAqLywKLQkJCQk1MjNG
RDg4RDIyNTU2NkM0MDAzQjNEQ0MgLyogV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5j
cHAgKi8sCi0JCQkJNTIzRkQ4OEMyMjU1NjZDMzAwM0IzRENDIC8qIFdlYkFzc2VtYmx5RnVuY3Rp
b25IZWFwQ2VsbFR5cGUuaCAqLywKIAkJCQlBRDJGQ0JCNDFEQjU4REE0MDBCM0U3MzYgLyogV2Vi
QXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcCAqLywKIAkJCQlBRDJGQ0JCNTFEQjU4REE0
MDBCM0U3MzYgLyogV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmggKi8sCiAJCQkJQUQy
RkNCQjYxREI1OERBNDAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuY3Bw
ICovLApAQCAtOTA1Niw3ICs5MDQ0LDYgQEAKIAkJCQk2NUI4MzkyRTFCQUNBRDM2MDA0NEU4MjQg
LyogQ2FjaGVkUmVjb3ZlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RjA5QzJBMjIzMTkyMzEw
MENGODhFQiAvKiBDYWNoZWRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwOUVDQzEyMjVF
MTc4QzAwQkVERDU0IC8qIENhY2hlUGF5bG9hZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTIwRDk5
RjEyMzg4Q0M4MTAwMDUwOUEzIC8qIEdldEJ5VmFsSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTQwOUVDQzAyMjVFMTc4MTAwQkVERDU0IC8qIENhY2hlVXBkYXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVDM0M2MDFGMzc5RjUzMDBGNTlCNkMgLyogQ2FnZWRCYXJyaWVyUHRyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzNFRDBFMTZGNUNEMDBCMzQ0NjAgLyogQ2FsbERhdGEuaCBp
biBIZWFkZXJzICovLApAQCAtOTQ5Nyw4ICs5NDg0LDkgQEAKIAkJCQkwRjJCNjZFMDE3QjZCNUFC
MDBBN0FFM0YgLyogR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjJCNjZFMTE3QjZCNUFCMDBBN0FFM0YgLyogR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ5OENBRDYyMTRCRjM2RDAwNzEwODc5IC8qIEdldEJ5SWRN
ZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5MzMyQTAxNENBN0RDRDAwODVGM0M2IC8q
IEdldEJ5U3RhdHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjAzMzJDNDE4QjAxNzYzMDA1Rjk3
OUEgLyogR2V0QnlJZFZhcmlhbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOTMzMkEwMTRDQTdE
Q0QwMDg1RjNDNiAvKiBHZXRCeVN0YXR1cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTIwRDk5RjEy
Mzg4Q0M4MTAwMDUwOUEzIC8qIEdldEJ5VmFsSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Nzk2NDY1NkExQjk1MkZGMDAwMzA1OUVFIC8qIEdldFB1dEluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTUzNEUwMzU4MUU1M0JGMkYwMDIxM0Y2NCAvKiBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRTFENkQ2RjIzNjI1OEZFMDA3QTVDMjYgLyogR2V0Vk0uaCBp
biBIZWFkZXJzICovLApAQCAtOTYxMyw2ICs5NjAxLDcgQEAKIAkJCQkwRkRDRTEzMjFGQjExREE0
MDA2RjM5MDEgLyogSXNvQWxpZ25lZE1lbW9yeUFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZCNDY3ODAxRkREQTZGMTAwM0ZDQjA5IC8qIElzb0NlbGxTZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQjQ2NzgxMUZEREE2RjcwMDNGQ0IwOSAvKiBJc29DZWxsU2V0SW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTNCRjFCQUUyMzhBQUVEQjAwM0ExQzJCIC8qIElzb0hlYXBDZWxs
VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQ0UxMkQxRkFGQjRFNTAwNkYzOTAxIC8qIElz
b1N1YnNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQyRkQ5NTIwQjUyQkUyMDBGMDk0NDEg
LyogSXNvU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVFMEZFNzIwODZB
RDQ4MDA5N0YwREUgLyogSXNvU3Vic3BhY2VQZXJWTS5oIGluIEhlYWRlcnMgKi8sCkBAIC05Nzg5
LDcgKzk3NzgsNiBAQAogCQkJCUE3OTBERDcwMTgyRjQ5OTcwMDU4ODgwNyAvKiBKU1NldEl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCREZDQjJCQkU5MEY0MTM0OUUxQjBCRUQgLyogSlNT
b3VyY2VDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyNzBFMTZGNUNEMDBCMzQ0NjAg
LyogSlNTdHJpbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGN0RGMTNGMUUyQUZDNEQwMDk1OTUx
QiAvKiBKU1N0cmluZ0hlYXBDZWxsVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVGRDZGQzYx
RDVFNzk5MjAwOEYyRjBCIC8qIEpTU3RyaW5nSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzBFQzBFQzMxQUEwRDdEQTAwQjZBQUZBIC8qIEpTU3RyaW5nSXRlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI2MDBCNUE3MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC05ODI4LDcgKzk4MTYsNiBAQAogCQkJCTdBOTc3NEE4MjA2QjgyRTQw
MDhEMDNEMCAvKiBKU1dlYWtWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ1QzM2RUIxRjc1
QUQ3MzAwMEJDQUFGIC8qIEpTV2ViQXNzZW1ibHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEOUU4
NTJGMUU4QTBDN0MwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk3OUVGRDQ4NDFFQkMwNDVDMDBGM0RGRUEgLyogSlNXZWJBc3NlbWJseUNvZGVC
bG9ja0hlYXBDZWxsVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQyRkNCRTMxREI1OERBRDAw
QjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc5NkZCNDNBMURGRjhDM0YwMDM5Qzk1RCAvKiBKU1dlYkFzc2VtYmx5SGVscGVycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQUQyRkNCRTUxREI1OERBRDAwQjNFNzM2IC8qIEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDI5NSw3ICsxMDI4Miw2IEBACiAJCQkJQUQy
RkNDMTcxREI1OUNCMjAwQjNFNzM2IC8qIFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yUHJvdG90eXBl
Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUQ0OTM3RDQxREREMjdERTAwNzdDODA3IC8qIFdl
YkFzc2VtYmx5RnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUyMTMyMjQ2MUVDQkNFODIw
MEY2NTYxNSAvKiBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NTIzRkQ4OEUyMjU1NjZDOTAwM0IzRENDIC8qIFdlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEMkZDQkYxMURCNThEQUQwMEIzRTczNiAvKiBXZWJB
c3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUFEMkZDQzE4
MURCNTlDQjIwMEIzRTczNiAvKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IubHV0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBRDJGQ0JGMzFEQjU4REFEMDBCM0U3MzYgLyogV2ViQXNzZW1i
bHlJbnN0YW5jZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNl
cy50eHQKaW5kZXggM2Q3MGVkODM1ZGNiZDkwZTAzNTU1ODQ2YWEyZDgzYTllNmIyZDA0Mi4uZWMw
MzcyN2FiMzNmZmZkMTIxZTdhNzZiMWIwNjcxZGE4OTliYTljZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9T
b3VyY2VzLnR4dApAQCAtODYzLDcgKzg2Myw2IEBAIHJ1bnRpbWUvSlNTb3VyY2VDb2RlLmNwcAog
cnVudGltZS9KU1N0cmluZy5jcHAKIHJ1bnRpbWUvSlNTdHJpbmdJdGVyYXRvci5jcHAKIHJ1bnRp
bWUvSlNTdHJpbmdKb2luZXIuY3BwCi1ydW50aW1lL0pTU3RyaW5nSGVhcENlbGxUeXBlLmNwcAog
cnVudGltZS9KU1N5bWJvbFRhYmxlT2JqZWN0LmNwcAogcnVudGltZS9KU1RlbXBsYXRlT2JqZWN0
RGVzY3JpcHRvci5jcHAKIHJ1bnRpbWUvSlNUeXBlLmNwcApAQCAtMTA0Miw3ICsxMDQxLDYgQEAg
d2FzbS9qcy9KU1RvV2FzbS5oCiB3YXNtL2pzL0pTVG9XYXNtSUNDYWxsZWUuY3BwCiB3YXNtL2pz
L0pTV2ViQXNzZW1ibHkuY3BwCiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2suY3BwCi13
YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwCiB3YXNtL2pzL0pT
V2ViQXNzZW1ibHlDb21waWxlRXJyb3IuY3BwCiB3YXNtL2pzL0pTV2ViQXNzZW1ibHlJbnN0YW5j
ZS5jcHAKIHdhc20vanMvSlNXZWJBc3NlbWJseUxpbmtFcnJvci5jcHAKQEAgLTEwNTYsNyArMTA1
NCw2IEBAIHdhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKIHdh
c20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JQcm90b3R5cGUuY3BwCiB3YXNtL2pzL1dlYkFz
c2VtYmx5RnVuY3Rpb24uY3BwCiB3YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb25CYXNlLmNwcAot
d2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlLmNwcAogd2FzbS9qcy9XZWJB
c3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCiB3YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFu
Y2VQcm90b3R5cGUuY3BwCiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3Iu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29IZWFwQ2VsbFR5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb0hlYXBDZWxsVHlwZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQzZTQ1NzI4ZTY2OWUwOWE4N2E2ODE1OWM3OGRjN2Y5YzJhYmVjODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29IZWFwQ2VsbFR5cGUuaApA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgIkhlYXBDZWxsVHlwZS5oIgorI2luY2x1ZGUgIk1hcmtlZEJsb2NrSW5s
aW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGU+
CitjbGFzcyBJc29IZWFwQ2VsbFR5cGUgZmluYWwgOiBwdWJsaWMgSGVhcENlbGxUeXBlIHsKK3B1
YmxpYzoKKyAgICBJc29IZWFwQ2VsbFR5cGUoKQorICAgICAgICA6IEhlYXBDZWxsVHlwZShDZWxs
QXR0cmlidXRlcyhDZWxsVHlwZTo6bmVlZHNEZXN0cnVjdGlvbiA/IE5lZWRzRGVzdHJ1Y3Rpb24g
OiBEb2VzTm90TmVlZERlc3RydWN0aW9uLCBIZWFwQ2VsbDo6SlNDZWxsKSkKKyAgICB7CisgICAg
fQorCisgICAgc3RydWN0IERlc3Ryb3lGdW5jIHsKKyAgICAgICAgQUxXQVlTX0lOTElORSB2b2lk
IG9wZXJhdG9yKCkoVk0mLCBKU0NlbGwqIGNlbGwpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAg
ICAgIENlbGxUeXBlOjpkZXN0cm95KGNlbGwpOworICAgICAgICB9CisgICAgfTsKKworICAgIHZv
aWQgZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYgaGFuZGxlLCBGcmVlTGlzdCogZnJl
ZUxpc3QpIG92ZXJyaWRlCisgICAgeworICAgICAgICBoYW5kbGUuZmluaXNoU3dlZXBLbm93aW5n
SGVhcENlbGxUeXBlKGZyZWVMaXN0LCBEZXN0cm95RnVuYygpKTsKKyAgICB9CisKKyAgICB2b2lk
IGRlc3Ryb3koVk0mIHZtLCBKU0NlbGwqIGNlbGwpIG92ZXJyaWRlCisgICAgeworICAgICAgICBE
ZXN0cm95RnVuYygpKHZtLCBjZWxsKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCmluZGV4IGNlNTBh
MjAyOTQ1OWY5MThiOTc5NDA5Yjc3OTU0NmM2NjZmZWE5YjMuLjQwOTFhNjE3YzBiYWFiMTU4MGFh
ZGIxZjViZTRlYTI5ODIzMmJhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0cmluZy5jcHAKQEAgLTY0LDExICs2NCw2IEBAIHZvaWQgSlNSb3BlU3RyaW5nOjpSb3BlQnVp
bGRlcjxSZWNvcmRPdmVyZmxvdz46OmV4cGFuZCgpCiAgICAgbV9zdHJpbmdzLmFwcGVuZChzdHJp
bmcpOwogfQogCi12b2lkIEpTU3RyaW5nOjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKLXsKLSAgICBz
dGF0aWNfY2FzdDxKU1N0cmluZyo+KGNlbGwpLT5KU1N0cmluZzo6fkpTU3RyaW5nKCk7Ci19Ci0K
IHZvaWQgSlNTdHJpbmc6OmR1bXBUb1N0cmVhbShjb25zdCBKU0NlbGwqIGNlbGwsIFByaW50U3Ry
ZWFtJiBvdXQpCiB7CiAgICAgVk0mIHZtID0gY2VsbC0+dm0oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDY1NmIxZGE2NzNiOWMyNGRjZWZlZTg5NDNlNWVh
ODgxYWYxNTU3OTQuLjA0MmE4YzllY2NlMmRkZDg4MmFmMTljYjU0NDRhYjUzZDY1ZDc3MmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtOTIsNyArOTIsMTAg
QEAgY2xhc3MgSlNTdHJpbmcgOiBwdWJsaWMgSlNDZWxsIHsKICAgICBzdGF0aWMgY29uc3RleHBy
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgU3RydWN0dXJlSXNJbW1vcnRhbCB8IE92ZXJyaWRl
c1RvVGhpczsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0g
dHJ1ZTsKLSAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOworICAgIHN0YXRpYyBBTFdB
WVNfSU5MSU5FIHZvaWQgZGVzdHJveShKU0NlbGwqIGNlbGwpCisgICAgeworICAgICAgICBzdGF0
aWNfY2FzdDxKU1N0cmluZyo+KGNlbGwpLT5KU1N0cmluZzo6fkpTU3RyaW5nKCk7CisgICAgfQog
ICAgIAogICAgIC8vIFdlIHNwZWNpYWxpemUgdGhlIHN0cmluZyBzdWJzcGFjZSB0byBnZXQgdGhl
IGZhc3Rlc3QgcG9zc2libGUgc3dlZXAuIFRoaXMgd291bGRuJ3QgYmUKICAgICAvLyBuZWNlc3Nh
cnkgaWYgSlNTdHJpbmcgZGlkbid0IGhhdmUgYSBkZXN0cnVjdG9yLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdIZWFwQ2VsbFR5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdIZWFwQ2VsbFR5cGUuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDc1MjFhMjgyNjAxOTVlYWNiNTRjM2FjNzc5MGFk
NTA0ZDVkNDc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nSGVhcENlbGxUeXBlLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
SlNTdHJpbmdIZWFwQ2VsbFR5cGUuaCIKLQotI2luY2x1ZGUgIk1hcmtlZEJsb2NrSW5saW5lcy5o
IgotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLXN0cnVjdCBK
U1N0cmluZ0Rlc3Ryb3lGdW5jIHsKLSAgICBBTFdBWVNfSU5MSU5FIHZvaWQgb3BlcmF0b3IoKShW
TSYsIEpTQ2VsbCogY2VsbCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHN0YXRpY19jYXN0PEpTU3Ry
aW5nKj4oY2VsbCktPkpTU3RyaW5nOjp+SlNTdHJpbmcoKTsKLSAgICB9Ci19OwotCi1KU1N0cmlu
Z0hlYXBDZWxsVHlwZTo6SlNTdHJpbmdIZWFwQ2VsbFR5cGUoKQotICAgIDogSGVhcENlbGxUeXBl
KENlbGxBdHRyaWJ1dGVzKE5lZWRzRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpKU0NlbGwpKQotewot
fQotCi1KU1N0cmluZ0hlYXBDZWxsVHlwZTo6fkpTU3RyaW5nSGVhcENlbGxUeXBlKCkKLXsKLX0K
LQotdm9pZCBKU1N0cmluZ0hlYXBDZWxsVHlwZTo6ZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6Okhh
bmRsZSYgaGFuZGxlLCBGcmVlTGlzdCogZnJlZUxpc3QpCi17Ci0gICAgaGFuZGxlLmZpbmlzaFN3
ZWVwS25vd2luZ0hlYXBDZWxsVHlwZShmcmVlTGlzdCwgSlNTdHJpbmdEZXN0cm95RnVuYygpKTsK
LX0KLQotdm9pZCBKU1N0cmluZ0hlYXBDZWxsVHlwZTo6ZGVzdHJveShWTSYgdm0sIEpTQ2VsbCog
Y2VsbCkKLXsKLSAgICBKU1N0cmluZ0Rlc3Ryb3lGdW5jKCkodm0sIGNlbGwpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBKU0MKLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmdIZWFwQ2VsbFR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nSGVhcENlbGxUeXBlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2
MmI4OGZhNTIwZDcxNmJiMjc3NTU1ZTJiM2EwYzlmMDM5ZWFmNDAuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmdIZWFwQ2VsbFR5cGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlICJIZWFwQ2VsbFR5cGUuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNs
YXNzIEpTU3RyaW5nSGVhcENlbGxUeXBlIDogcHVibGljIEhlYXBDZWxsVHlwZSB7Ci1wdWJsaWM6
Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNTdHJpbmdIZWFwQ2VsbFR5cGUoKTsKLSAgICBKU19F
WFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5KU1N0cmluZ0hlYXBDZWxsVHlwZSgpOwotICAgIAotICAg
IHZvaWQgZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYsIEZyZWVMaXN0Kikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBkZXN0cm95KFZNJiwgSlNDZWxsKikgb3ZlcnJpZGU7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBKU0MKLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmluZGV4IDA3
MTRjM2UwNzNmMmFhNDIyYTdkYjFiMjRiOGZiMGIyYmQ4NDUyYzcuLmUwMzNmZTYzYTk2ZmJkZGY2
MzU1MjgwMjYwZDU4YzllZmE4ZmRiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1
Y3Rvci5oIgogI2luY2x1ZGUgIkludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5oIgogI2luY2x1
ZGUgIkludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiSXNvSGVhcENlbGxU
eXBlLmgiCiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1ZGUgIkpJVFdvcmtsaXN0LmgiCiAj
aW5jbHVkZSAiSlNBUElWYWx1ZVdyYXBwZXIuaCIKQEAgLTk2LDE0ICs5NywxMiBAQAogI2luY2x1
ZGUgIkpTU2V0LmgiCiAjaW5jbHVkZSAiSlNTZXRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkpTU291
cmNlQ29kZS5oIgotI2luY2x1ZGUgIkpTU3RyaW5nSGVhcENlbGxUeXBlLmgiCiAjaW5jbHVkZSAi
SlNUZW1wbGF0ZU9iamVjdERlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJKU1dlYWtNYXAuaCIKICNp
bmNsdWRlICJKU1dlYWtPYmplY3RSZWYuaCIKICNpbmNsdWRlICJKU1dlYWtTZXQuaCIKICNpbmNs
dWRlICJKU1dlYkFzc2VtYmx5LmgiCiAjaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNvZGVCbG9jay5o
IgotI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuaCIKICNpbmNs
dWRlICJKU1dlYkFzc2VtYmx5TWVtb3J5LmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNp
bmNsdWRlICJMTEludERhdGEuaCIKQEAgLTE1MSw3ICsxNTAsNiBAQAogI2luY2x1ZGUgIldhdGNo
ZG9nLmgiCiAjaW5jbHVkZSAiV2Vha0dDTWFwSW5saW5lcy5oIgogI2luY2x1ZGUgIldlYkFzc2Vt
Ymx5RnVuY3Rpb24uaCIKLSNpbmNsdWRlICJXZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBl
LmgiCiAjaW5jbHVkZSAiV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uaCIKICNpbmNsdWRlIDx3
dGYvUHJvY2Vzc0lELmg+CiAjaW5jbHVkZSA8d3RmL1JlYWRXcml0ZUxvY2suaD4KQEAgLTI2Mywx
MSArMjYxLDEzIEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAg
ICAsIGltbXV0YWJsZUJ1dHRlcmZseUhlYXBDZWxsVHlwZShtYWtlVW5pcXVlPEhlYXBDZWxsVHlw
ZT4oQ2VsbEF0dHJpYnV0ZXMoRG9lc05vdE5lZWREZXN0cnVjdGlvbiwgSGVhcENlbGw6OkpTQ2Vs
bFdpdGhJbnRlcmlvclBvaW50ZXJzKSkpCiAgICAgLCBjZWxsSGVhcENlbGxUeXBlKG1ha2VVbmlx
dWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhEb2VzTm90TmVlZERlc3RydWN0aW9uLCBI
ZWFwQ2VsbDo6SlNDZWxsKSkpCiAgICAgLCBkZXN0cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlKG1h
a2VVbmlxdWU8SGVhcENlbGxUeXBlPihDZWxsQXR0cmlidXRlcyhOZWVkc0Rlc3RydWN0aW9uLCBI
ZWFwQ2VsbDo6SlNDZWxsKSkpCi0gICAgLCBzdHJpbmdIZWFwQ2VsbFR5cGUobWFrZVVuaXF1ZTxK
U1N0cmluZ0hlYXBDZWxsVHlwZT4oKSkKKyAgICAsIHN0cmluZ0hlYXBDZWxsVHlwZShtYWtlVW5p
cXVlPElzb0hlYXBDZWxsVHlwZTxKU1N0cmluZz4+KCkpCisgICAgLCB3ZWFrTWFwSGVhcENlbGxU
eXBlKG1ha2VVbmlxdWU8SXNvSGVhcENlbGxUeXBlPEpTV2Vha01hcD4+KCkpCisgICAgLCB3ZWFr
U2V0SGVhcENlbGxUeXBlKG1ha2VVbmlxdWU8SXNvSGVhcENlbGxUeXBlPEpTV2Vha1NldD4+KCkp
CiAgICAgLCBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUobWFrZVVuaXF1ZTxKU0Rlc3Ry
dWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZT4oKSkKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0g
ICAgLCB3ZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZShtYWtlVW5pcXVlPEpTV2ViQXNz
ZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGU+KCkpCi0gICAgLCB3ZWJBc3NlbWJseUZ1bmN0aW9u
SGVhcENlbGxUeXBlKG1ha2VVbmlxdWU8V2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZT4o
KSkKKyAgICAsIHdlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlKG1ha2VVbmlxdWU8SXNv
SGVhcENlbGxUeXBlPEpTV2ViQXNzZW1ibHlDb2RlQmxvY2s+PigpKQorICAgICwgd2ViQXNzZW1i
bHlGdW5jdGlvbkhlYXBDZWxsVHlwZShtYWtlVW5pcXVlPElzb0hlYXBDZWxsVHlwZTxXZWJBc3Nl
bWJseUZ1bmN0aW9uPj4oKSkKICNlbmRpZgogICAgICwgcHJpbWl0aXZlR2lnYWNhZ2VBdXhpbGlh
cnlTcGFjZSgiUHJpbWl0aXZlIEdpZ2FjYWdlIEF1eGlsaWFyeSIsIGhlYXAsIGF1eGlsaWFyeUhl
YXBDZWxsVHlwZS5nZXQoKSwgcHJpbWl0aXZlR2lnYWNhZ2VBbGxvY2F0b3IuZ2V0KCkpIC8vIEhh
c2g6MHgzZTdjZDc2MgogICAgICwganNWYWx1ZUdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2UoIkpTVmFs
dWUgR2lnYWNhZ2UgQXV4aWxpYXJ5IiwgaGVhcCwgYXV4aWxpYXJ5SGVhcENlbGxUeXBlLmdldCgp
LCBqc1ZhbHVlR2lnYWNhZ2VBbGxvY2F0b3IuZ2V0KCkpIC8vIEhhc2g6MHgyNDFlOTQ2CkBAIC0x
MzA3LDggKzEzMDcsOCBAQCBEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1co
dW5saW5rZWRFdmFsQ29kZUJsb2NrU3BhY2UsIGRlc3RydWN0aWJsZQogRFlOQU1JQ19JU09fU1VC
U1BBQ0VfREVGSU5FX01FTUJFUl9TTE9XKHVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2tTcGFjZSwg
ZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgVW5saW5rZWRGdW5jdGlvbkNvZGVC
bG9jaykKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh1bmxpbmtlZE1v
ZHVsZVByb2dyYW1Db2RlQmxvY2tTcGFjZSwgZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZS5n
ZXQoKSwgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKQogRFlOQU1JQ19JU09fU1VCU1BB
Q0VfREVGSU5FX01FTUJFUl9TTE9XKHVubGlua2VkUHJvZ3JhbUNvZGVCbG9ja1NwYWNlLCBkZXN0
cnVjdGlibGVDZWxsSGVhcENlbGxUeXBlLmdldCgpLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sp
Ci1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2Vha01hcFNwYWNlLCBk
ZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2Vha01hcCkgLy8gSGFzaDow
eDY2MmIxMmEzCi1EWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NMT1cod2Vha1Nl
dFNwYWNlLCBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2Vha1NldCkg
Ly8gSGFzaDoweDRjNzgxYjMwCitEWU5BTUlDX0lTT19TVUJTUEFDRV9ERUZJTkVfTUVNQkVSX1NM
T1cod2Vha01hcFNwYWNlLCB3ZWFrTWFwSGVhcENlbGxUeXBlLmdldCgpLCBKU1dlYWtNYXApIC8v
IEhhc2g6MHg2NjJiMTJhMworRFlOQU1JQ19JU09fU1VCU1BBQ0VfREVGSU5FX01FTUJFUl9TTE9X
KHdlYWtTZXRTcGFjZSwgd2Vha1NldEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNXZWFrU2V0KSAvLyBI
YXNoOjB4NGM3ODFiMzAKIERZTkFNSUNfSVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyh3
ZWFrT2JqZWN0UmVmU3BhY2UsIGNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTV2Vha09iamVjdFJl
ZikgLy8gSGFzaDoweDhlYzY4ZjFmCiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKIERZTkFNSUNf
SVNPX1NVQlNQQUNFX0RFRklORV9NRU1CRVJfU0xPVyhvYmpDQ2FsbGJhY2tGdW5jdGlvblNwYWNl
LCBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuZ2V0KCksIE9iakNDYWxsYmFja0Z1bmN0
aW9uKSAvLyBIYXNoOjB4MTBmNjEwYjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4
IDhhZDdlOWM3MzA0Y2MwMzIyYmI4YWE2ZmEyYzk4ZDhiZDJmNmM1MWUuLjg0M2I4Njg2OWQ0ZjY5
MTY3MjQxN2NlMzBjMzhiNDBhMTVlOTFhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
aApAQCAtMTI3LDggKzEyNyw5IEBAIGNsYXNzIEpTT2JqZWN0OwogY2xhc3MgSlNQcm9taXNlOwog
Y2xhc3MgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOwogY2xhc3MgSlNSdW5Mb29wVGltZXI7Ci1j
bGFzcyBKU1N0cmluZ0hlYXBDZWxsVHlwZTsKLWNsYXNzIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tI
ZWFwQ2VsbFR5cGU7CitjbGFzcyBKU1dlYWtNYXA7CitjbGFzcyBKU1dlYWtTZXQ7CitjbGFzcyBK
U1dlYkFzc2VtYmx5Q29kZUJsb2NrOwogY2xhc3MgSlNXZWJBc3NlbWJseUluc3RhbmNlOwogY2xh
c3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKQEAgLTE2
Miw3ICsxNjMsOSBAQCBjbGFzcyBUb3BMZXZlbEdsb2JhbE9iamVjdFNjb3BlOwogY2xhc3MgV2F0
Y2hkb2c7CiBjbGFzcyBXYXRjaHBvaW50OwogY2xhc3MgV2F0Y2hwb2ludFNldDsKLWNsYXNzIFdl
YkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGU7CitjbGFzcyBXZWJBc3NlbWJseUZ1bmN0aW9u
OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZT4gY2xhc3MgSXNvSGVhcENlbGxUeXBlOwog
CiAjaWYgRU5BQkxFKEZUTF9KSVQpCiBuYW1lc3BhY2UgRlRMIHsKQEAgLTMzOSwxMSArMzQyLDEz
IEBAIGNsYXNzIFZNIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFZNPiwgcHVibGljIERv
dWJseUxpbmtlZExpc3ROb2RlPFZNPiB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhlYXBDZWxsVHlw
ZT4gaW1tdXRhYmxlQnV0dGVyZmx5SGVhcENlbGxUeXBlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxI
ZWFwQ2VsbFR5cGU+IGNlbGxIZWFwQ2VsbFR5cGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEhlYXBD
ZWxsVHlwZT4gZGVzdHJ1Y3RpYmxlQ2VsbEhlYXBDZWxsVHlwZTsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8SlNTdHJpbmdIZWFwQ2VsbFR5cGU+IHN0cmluZ0hlYXBDZWxsVHlwZTsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8SXNvSGVhcENlbGxUeXBlPEpTU3RyaW5nPj4gc3RyaW5nSGVhcENlbGxUeXBlOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJc29IZWFwQ2VsbFR5cGU8SlNXZWFrTWFwPj4gd2Vha01hcEhl
YXBDZWxsVHlwZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SXNvSGVhcENlbGxUeXBlPEpTV2Vha1Nl
dD4+IHdlYWtTZXRIZWFwQ2VsbFR5cGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0SGVhcENlbGxUeXBlPiBkZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGU7CiAj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxKU1dlYkFzc2VtYmx5
Q29kZUJsb2NrSGVhcENlbGxUeXBlPiB3ZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZTsK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZT4gd2Vi
QXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SXNvSGVh
cENlbGxUeXBlPEpTV2ViQXNzZW1ibHlDb2RlQmxvY2s+PiB3ZWJBc3NlbWJseUNvZGVCbG9ja0hl
YXBDZWxsVHlwZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SXNvSGVhcENlbGxUeXBlPFdlYkFzc2Vt
Ymx5RnVuY3Rpb24+PiB3ZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlOwogI2VuZGlmCiAg
ICAgCiAgICAgQ29tcGxldGVTdWJzcGFjZSBwcmltaXRpdmVHaWdhY2FnZUF1eGlsaWFyeVNwYWNl
OyAvLyBUeXBlZCBhcnJheXMsIHN0cmluZ3MsIGJpdHZlY3RvcnMsIGV0YyBnbyBoZXJlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsLmgKaW5kZXggOGI0NWZmZTE1
OTEyOTM3ZDAxYzhiYjEwYTc2N2VjOTNkM2RlZDY1YS4uNjY2NTIxYzc3Yzc3YjRhZWY0YjVhMGI2
ODc3ZTI3MDQ4ZGNkNDJjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2Vha01hcEltcGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFr
TWFwSW1wbC5oCkBAIC0xOTIsMTMgKzE5MiwxNCBAQCBjbGFzcyBXZWFrTWFwQnVmZmVyIHsKIH07
CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBXZWFrTWFwQnVja2V0VHlwZT4KLWNsYXNzIFdlYWtNYXBJ
bXBsIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKLSAgICB1c2luZyBCYXNlID0gSlNE
ZXN0cnVjdGlibGVPYmplY3Q7CitjbGFzcyBXZWFrTWFwSW1wbCA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKKyAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKICAgICB1c2luZyBX
ZWFrTWFwQnVmZmVyVHlwZSA9IFdlYWtNYXBCdWZmZXI8V2Vha01hcEJ1Y2tldFR5cGU+OwogCiBw
dWJsaWM6CiAgICAgdXNpbmcgQnVja2V0VHlwZSA9IFdlYWtNYXBCdWNrZXRUeXBlOwogCisgICAg
c3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRp
YyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVu
KEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5
cGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDVhNTU1YTUyNzA3ZGEyZmQ1
MDU3MTJmNzM5ZGQzMDgyMGMwODY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlD
b2RlQmxvY2tIZWFwQ2VsbFR5cGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiSlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZS5o
IgotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotCi0jaW5jbHVkZSAiSlNDSW5saW5lcy5oIgot
I2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlDb2RlQmxvY2suaCIKLSNpbmNsdWRlICJNYXJrZWRCbG9j
a0lubGluZXMuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLXN0cnVjdCBKU1dlYkFzc2VtYmx5Q29k
ZUJsb2NrRGVzdHJveUZ1bmMgewotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBvcGVyYXRvcigpKFZN
JiwgSlNDZWxsKiBjZWxsKSBjb25zdAotICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX2ZpbmFsPEpTV2ViQXNzZW1ibHlDb2RlQmxvY2s+Ojp2YWx1ZSwgIk90aGVyd2lzZSwgdGhp
cyBjb2RlIHdvdWxkIG5vdCBiZSBjb3JyZWN0LiIpOwotICAgICAgICBKU1dlYkFzc2VtYmx5Q29k
ZUJsb2NrOjpkZXN0cm95KGNlbGwpOwotICAgIH0KLX07Ci0KLUpTV2ViQXNzZW1ibHlDb2RlQmxv
Y2tIZWFwQ2VsbFR5cGU6OkpTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUoKQotICAg
IDogSGVhcENlbGxUeXBlKENlbGxBdHRyaWJ1dGVzKE5lZWRzRGVzdHJ1Y3Rpb24sIEhlYXBDZWxs
OjpKU0NlbGwpKQotewotfQotCi1KU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVhcENlbGxUeXBlOjp+
SlNXZWJBc3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZSgpCi17Ci19Ci0KLXZvaWQgSlNXZWJB
c3NlbWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZTo6ZmluaXNoU3dlZXAoTWFya2VkQmxvY2s6Okhh
bmRsZSYgaGFuZGxlLCBGcmVlTGlzdCogZnJlZUxpc3QpCi17Ci0gICAgaGFuZGxlLmZpbmlzaFN3
ZWVwS25vd2luZ0hlYXBDZWxsVHlwZShmcmVlTGlzdCwgSlNXZWJBc3NlbWJseUNvZGVCbG9ja0Rl
c3Ryb3lGdW5jKCkpOwotfQotCi12b2lkIEpTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5
cGU6OmRlc3Ryb3koVk0mIHZtLCBKU0NlbGwqIGNlbGwpCi17Ci0gICAgSlNXZWJBc3NlbWJseUNv
ZGVCbG9ja0Rlc3Ryb3lGdW5jKCkodm0sIGNlbGwpOwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MK
LQotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFwQ2VsbFR5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlDb2RlQmxvY2tIZWFw
Q2VsbFR5cGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ0YmE2M2FkY2QzYjc5
NTYyZmU1NWFjMjBlNWIwYmNiMjI2YWE2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2Vt
Ymx5Q29kZUJsb2NrSGVhcENlbGxUeXBlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotCi0jaW5jbHVkZSAiSGVhcENlbGxUeXBl
LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrSGVh
cENlbGxUeXBlIDogcHVibGljIEhlYXBDZWxsVHlwZSB7Ci1wdWJsaWM6Ci0gICAgSlNXZWJBc3Nl
bWJseUNvZGVCbG9ja0hlYXBDZWxsVHlwZSgpOwotICAgIHZpcnR1YWwgfkpTV2ViQXNzZW1ibHlD
b2RlQmxvY2tIZWFwQ2VsbFR5cGUoKTsKLSAgICAKLSAgICB2b2lkIGZpbmlzaFN3ZWVwKE1hcmtl
ZEJsb2NrOjpIYW5kbGUmLCBGcmVlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgZGVzdHJveShW
TSYsIEpTQ2VsbCopIG92ZXJyaWRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRp
ZiAvLyBFTkFCTEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGUuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTA3NjM5MTg0NmI1NTY3ODgxMTU5M2Y4
Zjg3YmIwZDEzZWM5ZmVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb25I
ZWFwQ2VsbFR5cGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZS5oIgotCi0jaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQotCi0jaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIk1h
cmtlZEJsb2NrSW5saW5lcy5oIgotI2luY2x1ZGUgIldlYkFzc2VtYmx5RnVuY3Rpb24uaCIKLQot
bmFtZXNwYWNlIEpTQyB7Ci0KLXN0cnVjdCBXZWJBc3NlbWJseUZ1bmN0aW9uRGVzdHJveUZ1bmMg
ewotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBvcGVyYXRvcigpKFZNJiwgSlNDZWxsKiBjZWxsKSBj
b25zdAotICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPFdlYkFzc2Vt
Ymx5RnVuY3Rpb24+Ojp2YWx1ZSwgIk90aGVyd2lzZSwgdGhpcyBjb2RlIHdvdWxkIG5vdCBiZSBj
b3JyZWN0LiIpOwotICAgICAgICBXZWJBc3NlbWJseUZ1bmN0aW9uOjpkZXN0cm95KGNlbGwpOwot
ICAgIH0KLX07Ci0KLVdlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5cGU6OldlYkFzc2VtYmx5
RnVuY3Rpb25IZWFwQ2VsbFR5cGUoKQotICAgIDogSGVhcENlbGxUeXBlKENlbGxBdHRyaWJ1dGVz
KE5lZWRzRGVzdHJ1Y3Rpb24sIEhlYXBDZWxsOjpKU0NlbGwpKQotewotfQotCi1XZWJBc3NlbWJs
eUZ1bmN0aW9uSGVhcENlbGxUeXBlOjp+V2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZSgp
Ci17Ci19Ci0KLXZvaWQgV2ViQXNzZW1ibHlGdW5jdGlvbkhlYXBDZWxsVHlwZTo6ZmluaXNoU3dl
ZXAoTWFya2VkQmxvY2s6OkhhbmRsZSYgaGFuZGxlLCBGcmVlTGlzdCogZnJlZUxpc3QpCi17Ci0g
ICAgaGFuZGxlLmZpbmlzaFN3ZWVwS25vd2luZ0hlYXBDZWxsVHlwZShmcmVlTGlzdCwgV2ViQXNz
ZW1ibHlGdW5jdGlvbkRlc3Ryb3lGdW5jKCkpOwotfQotCi12b2lkIFdlYkFzc2VtYmx5RnVuY3Rp
b25IZWFwQ2VsbFR5cGU6OmRlc3Ryb3koVk0mIHZtLCBKU0NlbGwqIGNlbGwpCi17Ci0gICAgV2Vi
QXNzZW1ibHlGdW5jdGlvbkRlc3Ryb3lGdW5jKCkodm0sIGNlbGwpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBKU0MKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb25IZWFwQ2VsbFR5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb25I
ZWFwQ2VsbFR5cGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdlYmQ5ZGRhYWFh
ODhiNTNiYWUyY2JlOGUwZmYxMGVhZjZkYzRiMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUZ1bmN0aW9uSGVhcENlbGxUeXBlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotCi0jaW5jbHVkZSAiSGVhcENlbGxUeXBl
LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBXZWJBc3NlbWJseUZ1bmN0aW9uSGVhcENl
bGxUeXBlIDogcHVibGljIEhlYXBDZWxsVHlwZSB7Ci1wdWJsaWM6Ci0gICAgV2ViQXNzZW1ibHlG
dW5jdGlvbkhlYXBDZWxsVHlwZSgpOwotICAgIHZpcnR1YWwgfldlYkFzc2VtYmx5RnVuY3Rpb25I
ZWFwQ2VsbFR5cGUoKTsKLSAgICAKLSAgICB2b2lkIGZpbmlzaFN3ZWVwKE1hcmtlZEJsb2NrOjpI
YW5kbGUmLCBGcmVlTGlzdCopIG92ZXJyaWRlOwotICAgIHZvaWQgZGVzdHJveShWTSYsIEpTQ2Vs
bCopIG92ZXJyaWRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFkpCg==
</data>
<flag name="review"
          id="400064"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>