<?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>48151</bug_id>
          
          <creation_ts>2010-10-22 13:29:46 -0700</creation_ts>
          <short_desc>Add a new version of setSelection that fires selectionchange event</short_desc>
          <delta_ts>2010-11-15 20:02:52 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45712</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298146</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-22 13:29:46 -0700</bug_when>
    <thetext>Add a wrapper for setSelection that also fires selectionchange event.  We intend to migrate most of calls to setSelection to this new version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298265</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-22 16:51:59 -0700</bug_when>
    <thetext>The feature probably needs to be under an ifdef during development, so that no one accidentally ships selectionchange that _sometimes_ works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298268</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-22 16:56:12 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; The feature probably needs to be under an ifdef during development, so that no one accidentally ships selectionchange that _sometimes_ works.

Yes, that is the plan.  I&apos;m currently working on that.  I have wrapped all the code I&apos;ve added so far by ENABLE(SELECTIONCHANGE_EVENT) but I can&apos;t figure out how to enable it locally.  Is there a command-line option to build-webkit?  Or do I define the constant in XCode?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298272</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-22 17:07:09 -0700</bug_when>
    <thetext>The default is in WebCore/Configurations/FeatureDefines.xcconfig. Command line options can be added to build-webkit script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299049</commentid>
    <comment_count>4</comment_count>
      <attachid>71785</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-10-25 12:56:18 -0700</bug_when>
    <thetext>Created attachment 71785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305704</commentid>
    <comment_count>5</comment_count>
      <attachid>73159</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-05 19:16:08 -0700</bug_when>
    <thetext>Created attachment 73159
implements setSelectionFiringEvent with a test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306255</commentid>
    <comment_count>6</comment_count>
      <attachid>73159</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-08 11:49:16 -0800</bug_when>
    <thetext>Comment on attachment 73159
implements setSelectionFiringEvent with a test

+void SelectionController::setSelectionFiringEvent(const VisibleSelection&amp; s, bool closeTyping, bool shouldClearTypingStyle, bool userTriggered, CursorAlignOnScroll align, TextGranularity granularity, DirectionalityPolicy directionalityPolicy)

I&apos;ve been reading this as &quot;set SelectionFiring event&quot; until I saw the implementation. Maybe setSelectionWithEvent()? Or combine the options into a structure, and add that to it?


+#if ENABLE(SELECTIONCHANGE_EVENT)
+    m_frame-&gt;document()-&gt;dispatchEvent(Event::create(eventNames().selectionchangeEvent, false, false));
+#endif

Can m_frame be null? SelectionController::setSelection() has a null check for it.


-            m_frame-&gt;selection()-&gt;setSelection(newSelection, granularity, MakeNonDirectionalSelection);
+            m_frame-&gt;selection()-&gt;setSelectionFiringEvent(newSelection, granularity, MakeNonDirectionalSelection);

I don&apos;t know how to review such changes for security impact.

+FAIL: double clicking first word of &quot;&lt;a href=&quot;javascript:false&quot;&gt;hello&lt;/a&gt;&quot; yielded 0 selectionchange events but expected 2 events

The test is not enabled on any platforms, why check in a FAIL result? That should be a at least explained in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306263</commentid>
    <comment_count>7</comment_count>
      <attachid>73159</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-08 11:56:54 -0800</bug_when>
    <thetext>Comment on attachment 73159
implements setSelectionFiringEvent with a test

The naming here is not great. The normal version of the function is the one that sends events. The current version of the function which does not send events is the “buggy” one. I think first step here should be renaming the current one to include the word “deprecated” or “without sending events” or both.

We don’t want to leave a rename as the last step if we can help it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306410</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-08 15:34:00 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 73159 [details])
&gt; I&apos;ve been reading this as &quot;set SelectionFiring event&quot; until I saw the implementation. Maybe setSelectionWithEvent()? Or combine the options into a structure, and add that to it?

Oh yeah, that&apos;s a good point now that you pointed out.  I can&apos;t step reading it that way.  Will fix.

&gt; +#if ENABLE(SELECTIONCHANGE_EVENT)
&gt; +    m_frame-&gt;document()-&gt;dispatchEvent(Event::create(eventNames().selectionchangeEvent, false, false));
&gt; +#endif
&gt; 
&gt; Can m_frame be null? SelectionController::setSelection() has a null check for it.

Will fix.

&gt; -            m_frame-&gt;selection()-&gt;setSelection(newSelection, granularity, MakeNonDirectionalSelection);
&gt; +            m_frame-&gt;selection()-&gt;setSelectionFiringEvent(newSelection, granularity, MakeNonDirectionalSelection);
&gt; 
&gt; I don&apos;t know how to review such changes for security impact.

I added a comment to each test case indicating which case corresponds to which.  The only function I haven&apos;t been able to test is selectClosestWordOrLinkFromMouseEvent.  I ran all layout tests with ASSERT_NOT_REACHED but it never hit the assert.  It&apos;s quite possible that it&apos;s dead code.

&gt; +FAIL: double clicking first word of &quot;&lt;a href=&quot;javascript:false&quot;&gt;hello&lt;/a&gt;&quot; yielded 0 selectionchange events but expected 2 events
&gt; 
&gt; The test is not enabled on any platforms, why check in a FAIL result? That should be a at least explained in ChangeLog.

I&apos;ll just remove this test.

(In reply to comment #7)
&gt; (From update of attachment 73159 [details])
&gt; The naming here is not great. The normal version of the function is the one that sends events. The current version of the function which does not send events is the “buggy” one. I think first step here should be renaming the current one to include the word “deprecated” or “without sending events” or both.

Will rename setSelection to deprecatedSetSelection.  I&apos;d like to keep the name setSelectionWithEvent for this very first patch.  Because if I had used setSelection in this patch, reviewers need to go through every single file to make sure I caught them all.  Calling it setSelectionWithEvent will avoid this because it&apos;ll show up as a compilation error if I had forgotten any.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306412</commentid>
    <comment_count>9</comment_count>
      <attachid>73295</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-08 15:35:11 -0800</bug_when>
    <thetext>Created attachment 73295
fixed per comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306480</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-08 17:04:59 -0800</bug_when>
    <thetext>Attachment 73295 did not build on chromium:
Build output: http://queues.webkit.org/results/5431038</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71785</attachid>
            <date>2010-10-25 12:56:18 -0700</date>
            <delta_ts>2010-11-05 19:16:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48151-20101025125617.patch</filename>
            <type>text/plain</type>
            <size>31314</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwNDcxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTAtMjUgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2VsZWN0aW9uIHRoYXQg
ZmlyZXMgc2VsZWN0aW9uY2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00ODE1MQorCisgICAgICAgIEFkZGVkIGEgc3VwcG9ydCBmb3Ig
c2VsZWN0aW9uLWNoYW5nZSBmbGFnCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxMC0xMC0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjcw
NDUxLgpJbmRleDogSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDcwMTA1KQorKysgSmF2YVNjcmlwdENvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAg
LTEyMSw0ICsxMjEsNiBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJM
RV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0Ip
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQ
TE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJM
RV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBU
X0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJM
RV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAk
KEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFH
RSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9X
TUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAk
KEVOQUJMRV9YU0xUKTsKK0VOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQgPSAkKEVOQUJMRV9T
RUxFQ1RJT05DSEFOR0VfRVZFTlRfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKKworRkVBVFVSRV9E
RUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTKSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFC
TEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVO
QUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJF
Q1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0Up
ICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pB
VkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
ICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0hBUkVEX1dP
UktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZH
X0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVO
QUJMRV9WSURFTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQo
RU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVf
WFBBVEgpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVCk7Cklu
ZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwko
cmV2aXNpb24gNzA0NzcpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDQwIEBACisyMDEwLTEwLTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IG5ldyB2ZXJzaW9uIG9mIHNldFNlbGVjdGlvbiB0aGF0IGZpcmVzIHNlbGVjdGlvbmNoYW5nZSBl
dmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgx
NTEKKworICAgICAgICBBZGRlZCBzZXRTZWxlY3Rpb25GaXJpbmdFdmVudCB3aGljaCBmaXJlcyBz
ZWxlY3Rpb24gY2hhbmdlIGV2ZW50IHdoZW4gV2ViS2l0IGlzIGJ1aWxkIHdpdGgKKyAgICAgICAg
LS1zZWxlY3Rpb24tY2hhbmdlIGZsYWcuIFdlIGludGVuZCB0byBtaWdyYXRlIGFsbCBjYWxscyBv
ZiBzZXRTZWxlY3Rpb24gdG8gc2V0U2VsZWN0aW9uRmlyaW5nRXZlbnQsCisgICAgICAgIHdoaWNo
IGJlaGF2ZXMgaWRlbnRpY2FsbHkgdG8gc2V0U2VsZWN0aW9uIHVubGVzcyAtLXNlbGVjdGlvbi1j
aGFuZ2UgaXMgdHVybmVkIG9uLgorCisgICAgICAgIFNlbGVjdGlvbmNoYW5nZSBldmVudCAoc2Vl
IGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczUzNjk2OChWUy44NSku
YXNweCkgaXMgZmlyZWQKKyAgICAgICAgd2hlbmV2ZXIgc2VsZWN0aW9uIGlzIGNoYW5nZWQsIGFu
ZCB0aGUgZXZlbnQgaXMgbm90IGNhbmNlbGFibGUgYW5kIGRvZXMgbm90IGJ1YmJsZS4KKyAgICAg
ICAgQW4gZXZlbnQgbGlzdGVuZXIgY2FuIGJlIGF0dGFjaGVkIHRvIGEgZG9jdW1lbnQgYnkgYm9k
eSBlbGVtZW50J3Mgb25zZWxlY3Rpb25jaGFuZ2UgYXR0cmlidXRlIG9yCisgICAgICAgIHZpYSBk
b2N1bWVudC5zZWxlY3Rpb25jaGFuZ2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFyZSBhZGRl
ZCBzaW5jZSB0aGlzIGZlYXR1cmUgaGFzIG5vdCBiZWVuIGVuYWJsZWQgeWV0LgorCisgICAgICAg
ICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZGVkIGEgc3VwcG9y
dCBmb3IgLS1zZWxlY3Rpb24tY2hhbmdlIGZsYWcuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
IEFkZGVkIHRoZSBldmVudCBsaXN0ZW5lciBmb3Igc2VsZWN0aW9uIGNoYW5nZSBldmVudC4KKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOiBBZGRlZCBvbnNlbGVjdGlvbmNoYW5nZSBhdHRyaWJ1
dGUuCisgICAgICAgICogZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojpm
cm9tVXNlckdlc3R1cmUpOiBBZGRkZWQgc2VsZWN0aW9uY2hhbmdlRXZlbnQuCisgICAgICAgICog
ZG9tL0V2ZW50TmFtZXMuaDogQWRkZWQgc2VsZWN0aW9uY2hhbmdlLgorICAgICAgICAqIGVkaXRp
bmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25D
b250cm9sbGVyOjpzZXRTZWxlY3Rpb25GaXJpbmdFdmVudCk6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
Q29udHJvbGxlcjo6c2V0U2VsZWN0aW9uRmlyaW5nRXZlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBo
dG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbjogQWRkZWQgb25zZWxlY3Rpb25jaGFuZ2UuCisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KTogQ2FsbHMgc2V0U2VsZWN0aW9u
RmlyaW5nRXZlbnQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nl
c3RXb3JkT3JMaW5rRnJvbU1vdXNlRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50VHJpcGxlQ2xpY2spOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xl
Q2xpY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlU2Vs
ZWN0aW9uRm9yTW91c2VEcmFnKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KTogRGl0dG8uCisKIDIwMTAtMTAtMjUgIENyaXMg
TmVja2FyICA8Y2RuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJp
IEdsYXprb3YuCkluZGV4OiBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcJKHJldmlzaW9uIDcwMTA1KQorKysgV2ViQ29yZS9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMTIyLDQgKzEyMiw2IEBA
IEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxF
X1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19Q
UkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV8zRF9DQU5W
QVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVf
REFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9E
T01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5B
QkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9K
QVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykg
JChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NIQVJFRF9X
T1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NW
R19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdf
Rk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAk
KEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxF
X1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0VOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQgPSAk
KEVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlRfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKKwor
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklO
RykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFH
UklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZF
TlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJM
RV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRB
QkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkg
JChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVO
QUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykg
JChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcp
ICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQo
RU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZH
X0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JF
SUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dF
Ql9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dP
UktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKSAk
KEVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQpOwpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCShyZXZpc2lvbiA3MDEw
NSkKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3Myw2ICsy
NzMsOSBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihyZXNl
dCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihzZWFyY2gpOwogICAgIERF
RklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoc2VsZWN0c3RhcnQpOworI2lmIEVOQUJMRShT
RUxFQ1RJT05DSEFOR0VfRVZFTlQpCisgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
UihzZWxlY3Rpb25jaGFuZ2UpOworI2VuZGlmCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAg
ICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHRvdWNoc3RhcnQpOwogICAgIERFRklO
RV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIodG91Y2htb3ZlKTsKSW5kZXg6IFdlYkNvcmUvZG9t
L0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHJl
dmlzaW9uIDcwMTA1KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0zMTcsNiArMzE3LDkgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBhdHRyaWJ1dGUgW0Rv
bnRFbnVtXSBFdmVudExpc3RlbmVyIG9ucmVzZXQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVu
dW1dIEV2ZW50TGlzdGVuZXIgb25zZWFyY2g7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1d
IEV2ZW50TGlzdGVuZXIgb25zZWxlY3RzdGFydDsKKyNpZiBkZWZpbmVkKEVOQUJMRV9TRUxFQ1RJ
T05DSEFOR0VfRVZFTlQpICYmIEVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQKKyAgICAgICAg
YXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnNlbGVjdGlvbmNoYW5nZTsKKyNl
bmRpZgogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5U
UyxFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2hzdGFydDsKICAgICAgICAg
YXR0cmlidXRlIFtEb250RW51bSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsRW5hYmxlZEF0UnVu
dGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKICAgICAgICAgYXR0cmlidXRlIFtEb250
RW51bSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsRW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0
ZW5lciBvbnRvdWNoZW5kOwpJbmRleDogV2ViQ29yZS9kb20vRXZlbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0V2ZW50LmNwcAkocmV2aXNpb24gNzAxMDUpCisrKyBXZWJDb3JlL2Rv
bS9FdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNywxOSArMjM3LDI5IEBAIGJvb2wgRXZl
bnQ6OmZyb21Vc2VyR2VzdHVyZSgpCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlID0gdGhp
cy0+dHlwZSgpOwogICAgIHJldHVybgogICAgICAgICAvLyBtb3VzZSBldmVudHMKLSAgICAgICAg
dHlwZSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5t
b3VzZWRvd25FdmVudCAKLSAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2
ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmRibGNsaWNrRXZlbnQgCisgICAgICAgIHR5cGUg
PT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVz
KCkubW91c2Vkb3duRXZlbnQgCisgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNl
dXBFdmVudAorICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5kYmxjbGlja0V2ZW50IAog
ICAgICAgICAvLyBrZXlib2FyZCBldmVudHMKLSAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVz
KCkua2V5ZG93bkV2ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQKKyAg
ICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50CisgICAgICAgIHx8IHR5
cGUgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQKICAgICAgICAgfHwgdHlwZSA9PSBldmVu
dE5hbWVzKCkua2V5dXBFdmVudAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAgIC8v
IHRvdWNoIGV2ZW50cwotICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS50b3VjaHN0YXJ0
RXZlbnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkudG91Y2htb3ZlRXZlbnQKLSAgICAgICAgfHwg
dHlwZSA9PSBldmVudE5hbWVzKCkudG91Y2hlbmRFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMo
KS50b3VjaGNhbmNlbEV2ZW50CisgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnRvdWNo
c3RhcnRFdmVudAorICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS50b3VjaG1vdmVFdmVu
dAorICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50CisgICAgICAg
IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnRvdWNoY2FuY2VsRXZlbnQKICNlbmRpZgogICAgICAg
ICAvLyBvdGhlciBhY2NlcHRlZCBldmVudHMKLSAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVz
KCkuc2VsZWN0RXZlbnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQKLSAgICAg
ICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuZm9jdXNFdmVudCB8fCB0eXBlID09IGV2ZW50TmFt
ZXMoKS5ibHVyRXZlbnQKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuc2VsZWN0RXZl
bnQKKyNpZiBFTkFCTEUoU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKQorICAgICAgICB8fCB0eXBlID09
IGV2ZW50TmFtZXMoKS5zZWxlY3Rpb25jaGFuZ2VFdmVudAorI2VuZGlmCisgICAgICAgIHx8IHR5
cGUgPT0gZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50CisgICAgICAgIHx8IHR5cGUgPT0gZXZlbnRO
YW1lcygpLmZvY3VzRXZlbnQKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuYmx1ckV2
ZW50CiAgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnN1Ym1pdEV2ZW50OwogfQogCklu
ZGV4OiBXZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
RXZlbnROYW1lcy5oCShyZXZpc2lvbiA3MDEwNSkKKysrIFdlYkNvcmUvZG9tL0V2ZW50TmFtZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgbWFjcm8oc2VhcmNoKSBcCiAgICAgbWFjcm8oc2VsZWN0KSBcCiAgICAgbWFjcm8oc2VsZWN0
c3RhcnQpIFwKKyAgICBtYWNybyhzZWxlY3Rpb25jaGFuZ2UpIFwKICAgICBtYWNybyhzdG9yYWdl
KSBcCiAgICAgbWFjcm8oc3VibWl0KSBcCiAgICAgbWFjcm8odGV4dElucHV0KSBcCkluZGV4OiBX
ZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3MDEwNSkKKysr
IFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTgyLDYgKzE4MiwxNCBAQCB2b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6OnNldFNlbGVjdGlv
bihjCiAgICAgbm90aWZ5QWNjZXNzaWJpbGl0eUZvclNlbGVjdGlvbkNoYW5nZSgpOwogfQogCit2
b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6OnNldFNlbGVjdGlvbkZpcmluZ0V2ZW50KGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHMsIGJvb2wgY2xvc2VUeXBpbmcsIGJvb2wgc2hvdWxkQ2xlYXJUeXBp
bmdTdHlsZSwgYm9vbCB1c2VyVHJpZ2dlcmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBU
ZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIERpcmVjdGlvbmFsaXR5UG9saWN5IGRpcmVjdGlv
bmFsaXR5UG9saWN5KQoreworICAgIHNldFNlbGVjdGlvbihzLCBjbG9zZVR5cGluZywgc2hvdWxk
Q2xlYXJUeXBpbmdTdHlsZSwgdXNlclRyaWdnZXJlZCwgYWxpZ24sIGdyYW51bGFyaXR5LCBkaXJl
Y3Rpb25hbGl0eVBvbGljeSk7CisjaWYgRU5BQkxFKFNFTEVDVElPTkNIQU5HRV9FVkVOVCkKKyAg
ICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLnNlbGVjdGlvbmNoYW5nZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyNlbmRpZgorfQor
CiBzdGF0aWMgYm9vbCByZW1vdmluZ05vZGVSZW1vdmVzUG9zaXRpb24oTm9kZSogbm9kZSwgY29u
c3QgUG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIGlmICghcG9zaXRpb24ubm9kZSgpKQpJbmRl
eDogV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5oCShyZXZpc2lvbiA3MDEwNSkKKysr
IFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY5LDYgKzY5LDggQEAgcHVibGljOgogICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0aW9uOyB9CiAgICAgdm9pZCBzZXRTZWxlY3Rp
b24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJvb2wgY2xvc2VUeXBpbmcgPSB0cnVlLCBib29s
IGNsZWFyVHlwaW5nU3R5bGUgPSB0cnVlLCBib29sIHVzZXJUcmlnZ2VyZWQgPSBmYWxzZSwgQ3Vy
c29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29yT25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51
bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHksIERpcmVjdGlvbmFsaXR5UG9saWN5ID0gTWFr
ZURpcmVjdGlvbmFsU2VsZWN0aW9uKTsKICAgICB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgRGly
ZWN0aW9uYWxpdHlQb2xpY3kgZGlyZWN0aW9uYWxpdHkgPSBNYWtlRGlyZWN0aW9uYWxTZWxlY3Rp
b24pIHsgc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIEFsaWduQ3Vy
c29yT25TY3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHksIGRpcmVjdGlvbmFsaXR5KTsgfQorICAg
IHZvaWQgc2V0U2VsZWN0aW9uRmlyaW5nRXZlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGJv
b2wgY2xvc2VUeXBpbmcgPSB0cnVlLCBib29sIGNsZWFyVHlwaW5nU3R5bGUgPSB0cnVlLCBib29s
IHVzZXJUcmlnZ2VyZWQgPSBmYWxzZSwgQ3Vyc29yQWxpZ25PblNjcm9sbCA9IEFsaWduQ3Vyc29y
T25TY3JvbGxJZk5lZWRlZCwgVGV4dEdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHks
IERpcmVjdGlvbmFsaXR5UG9saWN5ID0gTWFrZURpcmVjdGlvbmFsU2VsZWN0aW9uKTsKKyAgICB2
b2lkIHNldFNlbGVjdGlvbkZpcmluZ0V2ZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVj
dGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBEaXJlY3Rpb25hbGl0eVBvbGljeSBk
aXJlY3Rpb25hbGl0eSA9IE1ha2VEaXJlY3Rpb25hbFNlbGVjdGlvbikgeyBzZXRTZWxlY3Rpb25G
aXJpbmdFdmVudChzZWxlY3Rpb24sIHRydWUsIHRydWUsIGZhbHNlLCBBbGlnbkN1cnNvck9uU2Ny
b2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5LCBkaXJlY3Rpb25hbGl0eSk7IH0KICAgICBib29sIHNl
dFNlbGVjdGVkUmFuZ2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAg
IHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgdm9pZCBjbGVhcigpOwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEF0
dHJpYnV0ZU5hbWVzLmluCShyZXZpc2lvbiA3MDEwNSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MQXR0
cmlidXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIwNiw2ICsyMDYsNyBAQCBvbnNlZWtl
ZAogb25zZWVraW5nCiBvbnNlbGVjdAogb25zZWxlY3RzdGFydAorb25zZWxlY3Rpb25jaGFuZ2UK
IG9ud2Via2l0c3BlZWNoY2hhbmdlCiBvbnN0YWxsZWQKIG9uc3RvcmFnZQpJbmRleDogV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAJKHJldmlzaW9uIDcwMTA1KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NCw3ICsyNjQsNyBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6c2VsZWN0Q2xvc2VzdFdvcmRGcm9tCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlm
IChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlv
bikpCi0gICAgICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKG5ld1Nl
bGVjdGlvbiwgZ3JhbnVsYXJpdHksIE1ha2VOb25EaXJlY3Rpb25hbFNlbGVjdGlvbik7CisgICAg
ICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uRmlyaW5nRXZlbnQobmV3
U2VsZWN0aW9uLCBncmFudWxhcml0eSwgTWFrZU5vbkRpcmVjdGlvbmFsU2VsZWN0aW9uKTsKICAg
ICB9CiB9CiAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xv
c2VzdFdvcmRPckxpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9mcmFtZS0+c2VsZWN0aW9u
KCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgbV9m
cmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5
LCBNYWtlTm9uRGlyZWN0aW9uYWxTZWxlY3Rpb24pOworICAgICAgICAgICAgbV9mcmFtZS0+c2Vs
ZWN0aW9uKCktPnNldFNlbGVjdGlvbkZpcmluZ0V2ZW50KG5ld1NlbGVjdGlvbiwgZ3JhbnVsYXJp
dHksIE1ha2VOb25EaXJlY3Rpb25hbFNlbGVjdGlvbik7CiAgICAgfQogfQogCkBAIC0zMzQsNyAr
MzM0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudAogICAgIH0K
ICAgICAKICAgICBpZiAobV9mcmFtZS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlv
bihuZXdTZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0
aW9uKG5ld1NlbGVjdGlvbiwgZ3JhbnVsYXJpdHksIE1ha2VOb25EaXJlY3Rpb25hbFNlbGVjdGlv
bik7CisgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb25GaXJpbmdFdmVu
dChuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBNYWtlTm9uRGlyZWN0aW9uYWxTZWxlY3Rpb24p
OwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC00MDEsNyArNDAxLDcgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudAogICAgICAgICBuZXdTZWxlY3Rpb24gPSBWaXNp
YmxlU2VsZWN0aW9uKHZpc2libGVQb3MpOwogICAgIAogICAgIGlmIChtX2ZyYW1lLT5zZWxlY3Rp
b24oKS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJh
bWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBncmFudWxhcml0eSwg
TWFrZU5vbkRpcmVjdGlvbmFsU2VsZWN0aW9uKTsKKyAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9u
KCktPnNldFNlbGVjdGlvbkZpcmluZ0V2ZW50KG5ld1NlbGVjdGlvbiwgZ3JhbnVsYXJpdHksIE1h
a2VOb25EaXJlY3Rpb25hbFNlbGVjdGlvbik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTYz
OCw3ICs2MzgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91CiAK
ICAgICBpZiAobV9mcmFtZS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24pKSB7CiAgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRJc0RpcmVjdGlv
bmFsKGZhbHNlKTsKLSAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihu
ZXdTZWxlY3Rpb24sIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5ncmFudWxhcml0eSgpLCBNYWtlTm9u
RGlyZWN0aW9uYWxTZWxlY3Rpb24pOworICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0
U2VsZWN0aW9uRmlyaW5nRXZlbnQobmV3U2VsZWN0aW9uLCBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+
Z3JhbnVsYXJpdHkoKSwgTWFrZU5vbkRpcmVjdGlvbmFsU2VsZWN0aW9uKTsKICAgICB9CiB9CiAj
ZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKQEAgLTcwMSw3ICs3MDEsNyBAQCBib29sIEV2
ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VSZWxlYXNlRXZlCiAgICAgICAgICAgICBuZXdTZWxlY3Rp
b24gPSBWaXNpYmxlU2VsZWN0aW9uKHBvcyk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fZnJh
bWUtPnNlbGVjdGlvbigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAg
ICAgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
KTsKKyAgICAgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb25GaXJpbmdF
dmVudChuZXdTZWxlY3Rpb24pOwogCiAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogICAgIH0KSW5k
ZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA3MDQ3MSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTAtMTAtMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
bmV3IHZlcnNpb24gb2Ygc2V0U2VsZWN0aW9uIHRoYXQgZmlyZXMgc2VsZWN0aW9uY2hhbmdlIGV2
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODE1
MQorCisgICAgICAgIEFkZGVkIGEgc3VwcG9ydCBmb3Igc2VsZWN0aW9uLWNoYW5nZSBmbGFnCisK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKwogMjAx
MC0xMC0yNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBXZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDcwMTA1KQorKysgV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMTE5LDQg
KzExOSw2IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRI
OwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJ
TkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9D
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRB
R1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VW
RU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFC
TEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVT
SVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAk
KEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
VEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxF
X1NBTkRCT1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxF
X1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9P
QkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09C
SkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9TT0NL
RVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMp
ICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0VOQUJM
RV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQgPSAkKEVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlRf
JChSRUFMX1BMQVRGT1JNX05BTUUpKTsKKworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElO
S19QUkVGRVRDSCkgJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkg
JChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09V
UkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RB
RykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NBTkRC
T1gpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19B
TklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJ
TkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkg
JChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5B
QkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9TRUxF
Q1RJT05DSEFOR0VfRVZFTlQpOwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcwNDcxKQorKysgV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0xMC0yNSAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdmVyc2lvbiBvZiBzZXRTZWxlY3Rp
b24gdGhhdCBmaXJlcyBzZWxlY3Rpb25jaGFuZ2UgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MTUxCisKKyAgICAgICAgQWRkZWQgYSBzdXBw
b3J0IGZvciBzZWxlY3Rpb24tY2hhbmdlIGZsYWcKKworICAgICAgICAqIENvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEwLTEwLTI0ICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJ
bmRleDogV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnCShyZXZpc2lvbiA3MDEwNSkKKysrIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw0ICsxMjUsNiBAQCBF
TkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9Y
U0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJF
RkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfM0RfQ0FOVkFT
KSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RB
VEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9N
X1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJM
RV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQo
RU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykg
JChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAk
KEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFU
SU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5H
UykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5B
QkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFC
TEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9Y
SFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfU0VMRUNUSU9O
Q0hBTkdFX0VWRU5UID0gJChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UXyQoUkVBTF9QTEFU
Rk9STV9OQU1FKSk7CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNF
KSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JB
R0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxF
X1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQ
VF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxF
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFC
TEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TQU5EQk9YKSAkKEVOQUJM
RV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAk
KEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NW
R19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VC
X1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1Q
KSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdF
X0VWRU5UKTsKSW5kZXg6IFdlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwkocmV2aXNpb24gNzA0NzEpCisrKyBXZWJLaXRMaWJy
YXJpZXMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTAt
MjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2Vs
ZWN0aW9uIHRoYXQgZmlyZXMgc2VsZWN0aW9uY2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODE1MQorCisgICAgICAgICogd2luL3Rv
b2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wczoKKyAgICAgICAgKiB3aW4vdG9vbHMv
dnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHM6CisKIDIwMTAtMTAtMjMgIEFsZXhl
eSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgV2luZG93cyBidWlsZCBm
aXguCkluZGV4OiBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmlu
ZXMudnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJv
cHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwkocmV2aXNpb24gNzAxMDUpCisrKyBXZWJLaXRMaWJy
YXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwkod29ya2luZyBj
b3B5KQpAQCAtOSw3ICs5LDcgQEAKIAk+CiAgIDxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCi0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5B
QkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfREFUQUJBU0Up
OyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFH
RSk7JChFTkFCTEVfRVZFTlRTT1VSQ0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVf
U1lTVEVNKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVO
QUJMRV9JTUFHRV9SRVNJWkVSKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX01BVEhN
TCk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKTskKEVOQUJMRV9SVUJZKTskKEVOQUJMRV9TQU5EQk9YKTskKEVOQUJMRV9TSEFSRURfV09S
S0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfQU5JTUFUSU9OKTskKEVOQUJMRV9TVkdf
QVNfSU1BR0UpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZP
TlRTKTskKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpOyQoRU5BQkxFX1NWR19VU0UpOyQoRU5B
QkxFX1ZJREVPKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChF
TkFCTEVfV01MKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9Y
UEFUSCk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJM
RV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQkxPQik7JChFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7
JChFTkFCTEVfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7
JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTsk
KEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRVZFTlRTT1VSQ0UpOyQoRU5BQkxFX0ZJTFRF
UlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVf
SUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTUFHRV9SRVNJWkVSKTskKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdH
RVIpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKTskKEVOQUJMRV9SVUJZKTskKEVOQUJMRV9TQU5EQk9YKTsk
KEVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTsk
KEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19BTklNQVRJT04pOyQoRU5BQkxFX1NWR19BU19JTUFH
RSk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQo
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCk7JChFTkFCTEVfU1ZHX1VTRSk7JChFTkFCTEVfVklE
RU8pOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9X
TUwpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRIKTsk
KEVOQUJMRV9YU0xUKSIKIAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV8zRF9DQU5W
QVMiCkBAIC0xNDIsNiArMTQyLDExIEBACiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIK
IAkvPgogICA8VXNlck1hY3JvCisJCU5hbWU9IkVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQi
CisJCVZhbHVlPSJFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UIgorCQlQZXJmb3JtRW52aXJv
bm1lbnRTZXQ9InRydWUiCisJLz4KKyAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfU1ZHIgog
CQlWYWx1ZT0iRU5BQkxFX1NWRyIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgpJbmRl
eDogV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8u
dnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMv
RmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCShyZXZpc2lvbiA3MDEwNSkKKysrIFdlYktpdExp
YnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMJKHdv
cmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9vbAogCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFT
KTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0RB
VEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9N
X1NUT1JBR0UpOyQoRU5BQkxFX0VWRU5UU09VUkNFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJM
RV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFT
RSk7JChFTkFCTEVfSU1BR0VfUkVTSVpFUik7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChF
TkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJM
RV9NQVRITUwpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX09GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUyk7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFC
TEVfU1ZHX0FOSU1BVElPTik7JChFTkFCTEVfU1ZHX0FTX0lNQUdFKTskKEVOQUJMRV9TVkdfRE9N
X09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfU1ZHX0ZPUkVJR05f
T0JKRUNUKTskKEVOQUJMRV9TVkdfVVNFKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfV0VCX1NP
Q0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dNTCk7JChFTkFCTEVfV09SS0VS
Uyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgorCQlQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9S
RU5ERVJJTkcpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVO
QUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0RBVEFCQVNFKTskKEVOQUJM
RV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
Tik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5B
QkxFX0VWRU5UU09VUkNFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7
JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU1B
R0VfUkVTSVpFUik7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfU1BF
RUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9NQVRITUwpOyQoRU5B
QkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyk7JChF
TkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVCk7JChF
TkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfQU5JTUFUSU9OKTskKEVOQUJMRV9TVkdfQVNfSU1BR0Up
OyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVO
QUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpOyQoRU5BQkxFX1NWR19VU0UpOyQoRU5BQkxFX1ZJREVP
KTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV01M
KTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChF
TkFCTEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfM0RfQ0FOVkFT
IgpAQCAtMTMyLDYgKzEzMiwxMSBAQAogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJ
Lz4KICAgPFVzZXJNYWNybworCQlOYW1lPSJFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UIgor
CQlWYWx1ZT0iRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVCIKKwkJUGVyZm9ybUVudmlyb25t
ZW50U2V0PSJ0cnVlIgorCS8+CisgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX1NWRyIKIAkJ
VmFsdWU9IkVOQUJMRV9TVkciCiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKSW5kZXg6
IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDcwNDcxKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTAtMjUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2VsZWN0aW9uIHRoYXQgZmlyZXMgc2VsZWN0aW9u
Y2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00ODE1MQorCisgICAgICAgIEFkZGVkIHNlbGVjdGlvbi1jaGFuZ2UgZmxhZworCisgICAg
ICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6CisKIDIwMTAtMTAtMjUgIEpvaG5ueSBEaW5nICA8
am5kQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpJbmRl
eDogV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHJldmlzaW9uIDcwMTA1KQorKysgV2ViS2l0VG9v
bHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcgKzYzLDcgQEAg
bXkgKCRsaW5rUHJlZmV0Y2hTdXBwb3J0LCAkYWNjZWxlcmF0ZWQyZAogICAgICRzdmdTdXBwb3J0
LCAkc3ZnQW5pbWF0aW9uU3VwcG9ydCwgJHN2Z0FzSW1hZ2VTdXBwb3J0LCAkc3ZnRE9NT2JqQ0Jp
bmRpbmdzU3VwcG9ydCwgJHN2Z0ZvbnRzU3VwcG9ydCwKICAgICAkc3ZnRm9yZWlnbk9iamVjdFN1
cHBvcnQsICRzdmdVc2VTdXBwb3J0LCAkdmlkZW9TdXBwb3J0LCAkd2ViU29ja2V0c1N1cHBvcnQs
ICR3ZWJUaW1pbmdTdXBwb3J0LCAkd21sU3VwcG9ydCwgJHdjc3NTdXBwb3J0LCAkeGh0bWxtcFN1
cHBvcnQsICR3b3JrZXJzU3VwcG9ydCwKICAgICAkeHBhdGhTdXBwb3J0LCAkeHNsdFN1cHBvcnQs
ICRjb3ZlcmFnZVN1cHBvcnQsICRub3RpZmljYXRpb25zU3VwcG9ydCwgJGJsb2JTdXBwb3J0LCAk
dGlsZWRCYWNraW5nU3RvcmVTdXBwb3J0LAotICAgICRmaWxlV3JpdGVyU3VwcG9ydCwgJGZpbGVT
eXN0ZW1TdXBwb3J0LCAkZGlyZWN0b3J5VXBsb2FkU3VwcG9ydCwgJGRldmljZU9yaWVudGF0aW9u
U3VwcG9ydCk7CisgICAgJGZpbGVXcml0ZXJTdXBwb3J0LCAkZmlsZVN5c3RlbVN1cHBvcnQsICRk
aXJlY3RvcnlVcGxvYWRTdXBwb3J0LCAkZGV2aWNlT3JpZW50YXRpb25TdXBwb3J0LCAkc2VsZWN0
aW9uY2hhbmdlRXZlbnRTdXBwb3J0KTsKIAogbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9u
ID0+ICJsaW5rLXByZWZldGNoIiwgZGVzYyA9PiAiVG9nZ2xlIHByZSBmZXRjaGluZyBzdXBwb3J0
IiwKQEAgLTIwNSw3ICsyMDUsMTAgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfRklMRV9TWVNURU0iLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZmlsZVN5c3Rl
bVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNj
ID0+ICJUb2dnbGUgRGV2aWNlT3JpZW50YXRpb24gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04iLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZGV2
aWNlT3JpZW50YXRpb25TdXBwb3J0IH0sCisgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGRldmljZU9yaWVudGF0aW9uU3Vw
cG9ydCB9LAorCisgICAgeyBvcHRpb24gPT4gInNlbGVjdGlvbi1jaGFuZ2UiLCBkZXNjID0+ICJU
b2dnbGUgc2VsZWN0aW9uIGNoYW5nZSBldmVudCBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRz
ZWxlY3Rpb25jaGFuZ2VFdmVudFN1cHBvcnQgfSwKICk7CiAKICMgVXBkYXRlIGRlZmF1bHRzIGZy
b20gUXQncyBwcm9qZWN0IGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73159</attachid>
            <date>2010-11-05 19:16:08 -0700</date>
            <delta_ts>2010-11-08 15:35:07 -0800</delta_ts>
            <desc>implements setSelectionFiringEvent with a test</desc>
            <filename>bug-48151-20101105191607.patch</filename>
            <type>text/plain</type>
            <size>40213</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxNDYxKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMTEtMDUgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2VsZWN0aW9uIHRoYXQg
ZmlyZXMgc2VsZWN0aW9uY2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00ODE1MQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWc6CisKIDIwMTAtMTEtMDUgIE9saXZlciBIdW50ICA8b2xpdmVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCShyZXZpc2lvbiA3MTQ1NykKKysrIEphdmFTY3JpcHRDb3JlL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNCAr
MTI0LDYgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7
CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxF
XzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAk
KEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQo
RU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVS
UykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJ
WkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQo
RU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVU
RVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVf
U0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChF
TkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5B
QkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdf
VVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09D
S0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJT
KSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitFTkFC
TEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UID0gJChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5U
XyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CisKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJ
TktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfM0Rf
Q0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFC
TEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAk
KEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIp
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9U
QUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TRUxF
Q1RJT05DSEFOR0VfRVZFTlQpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19G
T1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQo
RU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVf
WFBBVEgpICQoRU5BQkxFX1hTTFQpOwpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxNDYxKQorKysgV2ViQ29yZS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0xMS0wNSAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdmVyc2lvbiBvZiBzZXRTZWxlY3Rpb24gdGhh
dCBmaXJlcyBzZWxlY3Rpb25jaGFuZ2UgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MTUxCisKKyAgICAgICAgQWRkZWQgc2V0U2VsZWN0aW9u
RmlyaW5nRXZlbnQgd2hpY2ggZmlyZXMgc2VsZWN0aW9uIGNoYW5nZSBldmVudCB3aGVuIFdlYktp
dCBpcyBidWlsZCB3aXRoCisgICAgICAgIC0tc2VsZWN0aW9uLWNoYW5nZSBmbGFnLiBXZSBpbnRl
bmQgdG8gbWlncmF0ZSBhbGwgY2FsbHMgb2Ygc2V0U2VsZWN0aW9uIHRvIHNldFNlbGVjdGlvbkZp
cmluZ0V2ZW50LAorICAgICAgICB3aGljaCBiZWhhdmVzIGlkZW50aWNhbGx5IHRvIHNldFNlbGVj
dGlvbiB1bmxlc3MgLS1zZWxlY3Rpb24tY2hhbmdlIGZsYWcgaXMgdHVybmVkIG9uLgorCisgICAg
ICAgIFNlbGVjdGlvbmNoYW5nZSBldmVudCAoc2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20v
ZW4tdXMvbGlicmFyeS9tczUzNjk2OChWUy44NSkuYXNweCkgaXMgZmlyZWQKKyAgICAgICAgd2hl
bmV2ZXIgc2VsZWN0aW9uIGlzIGNoYW5nZWQsIGFuZCB0aGUgZXZlbnQgaXMgbm90IGNhbmNlbGFi
bGUgYW5kIGRvZXMgbm90IGJ1YmJsZS4KKyAgICAgICAgQW4gZXZlbnQgbGlzdGVuZXIgY2FuIGJl
IGF0dGFjaGVkIHRvIGEgZG9jdW1lbnQgYnkgYm9keSBlbGVtZW50J3Mgb25zZWxlY3Rpb25jaGFu
Z2UgYXR0cmlidXRlIG9yCisgICAgICAgIHZpYSBkb2N1bWVudC5zZWxlY3Rpb25jaGFuZ2UuCisK
KyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50aGFuZGxlci5o
dG1sCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzog
QWRkZWQgYSBzdXBwb3J0IGZvciAtLXNlbGVjdGlvbi1jaGFuZ2UgZmxhZy4KKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuaDogQWRkZWQgdGhlIGV2ZW50IGxpc3RlbmVyIGZvciBzZWxlY3Rpb24gY2hh
bmdlIGV2ZW50LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6IEFkZGVkIG9uc2VsZWN0aW9u
Y2hhbmdlIGF0dHJpYnV0ZS4KKyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnQ6OmZyb21Vc2VyR2VzdHVyZSk6IEFkZGRlZCBzZWxlY3Rpb25jaGFuZ2VFdmVu
dC4KKyAgICAgICAgKiBkb20vRXZlbnROYW1lcy5oOiBBZGRlZCBzZWxlY3Rpb25jaGFuZ2UuCisg
ICAgICAgICogZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdGlvbkNvbnRyb2xsZXI6OnNldFNlbGVjdGlvbkZpcmluZ0V2ZW50KTogQWRkZWQu
CisgICAgICAgICogZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRTZWxlY3Rpb25GaXJpbmdFdmVudCk6IEFkZGVk
LgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VsZWN0
Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVudCk6IENhbGxzIHNldFNlbGVjdGlvbkZpcmluZ0V2ZW50
LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29yZE9yTGlu
a0Zyb21Nb3VzZUV2ZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1v
dXNlRHJhZyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZVJlbGVhc2VFdmVudCk6IERpdHRvLgorCiAyMDEwLTExLTA1ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4
OiBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJl
dmlzaW9uIDcxNDU3KQorKysgV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMTI0LDQgKzEyNCw2IEBAIEVOQUJMRV9YSFRNTE1Q
ID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVf
WFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFC
TEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNE
X1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5B
QkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChF
TkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVN
KSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVH
R0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9H
UkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChF
TkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxF
X1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQo
RU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1J
TkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChF
TkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVO
VCA9ICQoRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkp
OworCitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9B
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVO
REVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVf
REFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04p
ICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJM
RV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNP
TkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIp
ICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNT
X1RBRykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKSAkKEVO
QUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9O
KSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykg
JChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxF
X1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dF
Ql9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dP
UktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsK
SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAkocmV2aXNpb24gNzE0NTcpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNzQsNiArMjc0LDkgQEAgcHVibGljOgogICAgIERFRklORV9BVFRS
SUJVVEVfRVZFTlRfTElTVEVORVIocmVzZXQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRf
TElTVEVORVIoc2VhcmNoKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHNl
bGVjdHN0YXJ0KTsKKyNpZiBFTkFCTEUoU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKQorICAgIERFRklO
RV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoc2VsZWN0aW9uY2hhbmdlKTsKKyNlbmRpZgogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5F
Uih0b3VjaHN0YXJ0KTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHRvdWNo
bW92ZSk7CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiA3MTQ1NykKKysrIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzE3LDYgKzMxNyw5IEBAIG1vZHVsZSBjb3Jl
IHsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnJlc2V0Owog
ICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc2VhcmNoOwogICAg
ICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9uc2VsZWN0c3RhcnQ7Cisj
aWYgZGVmaW5lZChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKSAmJiBFTkFCTEVfU0VMRUNU
SU9OQ0hBTkdFX0VWRU5UCisgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVu
ZXIgb25zZWxlY3Rpb25jaGFuZ2U7CisjZW5kaWYKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51
bSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsRW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5l
ciBvbnRvdWNoc3RhcnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW0sQ29uZGl0aW9uYWw9
VE9VQ0hfRVZFTlRTLEVuYWJsZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIgb250b3VjaG1vdmU7
CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW0sQ29uZGl0aW9uYWw9VE9VQ0hfRVZFTlRTLEVu
YWJsZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIgb250b3VjaGVuZDsKSW5kZXg6IFdlYkNvcmUv
ZG9tL0V2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVudC5jcHAJKHJldmlz
aW9uIDcxNDU3KQorKysgV2ViQ29yZS9kb20vRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MzcsMTkgKzIzNywyOSBAQCBib29sIEV2ZW50Ojpmcm9tVXNlckdlc3R1cmUoKQogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSA9IHRoaXMtPnR5cGUoKTsKICAgICByZXR1cm4KICAgICAgICAg
Ly8gbW91c2UgZXZlbnRzCi0gICAgICAgIHR5cGUgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQg
fHwgdHlwZSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgCi0gICAgICAgIHx8IHR5cGUg
PT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5kYmxj
bGlja0V2ZW50IAorICAgICAgICB0eXBlID09IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50CisgICAg
ICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNlZG93bkV2ZW50IAorICAgICAgICB8fCB0
eXBlID09IGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQKKyAgICAgICAgfHwgdHlwZSA9PSBldmVu
dE5hbWVzKCkuZGJsY2xpY2tFdmVudCAKICAgICAgICAgLy8ga2V5Ym9hcmQgZXZlbnRzCi0gICAg
ICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCB8fCB0eXBlID09IGV2ZW50
TmFtZXMoKS5rZXlwcmVzc0V2ZW50CisgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmtl
eWRvd25FdmVudAorICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50
CiAgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmtleXVwRXZlbnQKICNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQogICAgICAgICAvLyB0b3VjaCBldmVudHMKLSAgICAgICAgfHwgdHlwZSA9
PSBldmVudE5hbWVzKCkudG91Y2hzdGFydEV2ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnRv
dWNobW92ZUV2ZW50Ci0gICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnRvdWNoZW5kRXZl
bnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkudG91Y2hjYW5jZWxFdmVudAorICAgICAgICB8fCB0
eXBlID09IGV2ZW50TmFtZXMoKS50b3VjaHN0YXJ0RXZlbnQKKyAgICAgICAgfHwgdHlwZSA9PSBl
dmVudE5hbWVzKCkudG91Y2htb3ZlRXZlbnQKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVz
KCkudG91Y2hlbmRFdmVudAorICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS50b3VjaGNh
bmNlbEV2ZW50CiAjZW5kaWYKICAgICAgICAgLy8gb3RoZXIgYWNjZXB0ZWQgZXZlbnRzCi0gICAg
ICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnNlbGVjdEV2ZW50IHx8IHR5cGUgPT0gZXZlbnRO
YW1lcygpLmNoYW5nZUV2ZW50Ci0gICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmZvY3Vz
RXZlbnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuYmx1ckV2ZW50CisgICAgICAgIHx8IHR5cGUg
PT0gZXZlbnROYW1lcygpLnNlbGVjdEV2ZW50CisjaWYgRU5BQkxFKFNFTEVDVElPTkNIQU5HRV9F
VkVOVCkKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuc2VsZWN0aW9uY2hhbmdlRXZl
bnQKKyNlbmRpZgorICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudAor
ICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50CisgICAgICAgIHx8IHR5
cGUgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudAogICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFt
ZXMoKS5zdWJtaXRFdmVudDsKIH0KIApJbmRleDogV2ViQ29yZS9kb20vRXZlbnROYW1lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAkocmV2aXNpb24gNzE0NTcpCisr
KyBXZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKHNlYXJjaCkgXAogICAgIG1hY3JvKHNl
bGVjdCkgXAogICAgIG1hY3JvKHNlbGVjdHN0YXJ0KSBcCisgICAgbWFjcm8oc2VsZWN0aW9uY2hh
bmdlKSBcCiAgICAgbWFjcm8oc3RvcmFnZSkgXAogICAgIG1hY3JvKHN1Ym1pdCkgXAogICAgIG1h
Y3JvKHRleHRJbnB1dCkgXApJbmRleDogV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVy
LmNwcAkocmV2aXNpb24gNzE0NTcpCisrKyBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJv
bGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw2ICsxODIsMTQgQEAgdm9pZCBTZWxlY3Rp
b25Db250cm9sbGVyOjpzZXRTZWxlY3Rpb24oYwogICAgIG5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UoKTsKIH0KIAordm9pZCBTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRTZWxl
Y3Rpb25GaXJpbmdFdmVudChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzLCBib29sIGNsb3NlVHlw
aW5nLCBib29sIHNob3VsZENsZWFyVHlwaW5nU3R5bGUsIGJvb2wgdXNlclRyaWdnZXJlZCwgQ3Vy
c29yQWxpZ25PblNjcm9sbCBhbGlnbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBEaXJl
Y3Rpb25hbGl0eVBvbGljeSBkaXJlY3Rpb25hbGl0eVBvbGljeSkKK3sKKyAgICBzZXRTZWxlY3Rp
b24ocywgY2xvc2VUeXBpbmcsIHNob3VsZENsZWFyVHlwaW5nU3R5bGUsIHVzZXJUcmlnZ2VyZWQs
IGFsaWduLCBncmFudWxhcml0eSwgZGlyZWN0aW9uYWxpdHlQb2xpY3kpOworI2lmIEVOQUJMRShT
RUxFQ1RJT05DSEFOR0VfRVZFTlQpCisgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWxlY3Rpb25jaGFuZ2VFdmVudCwgZmFs
c2UsIGZhbHNlKSk7CisjZW5kaWYKK30KKwogc3RhdGljIGJvb2wgcmVtb3ZpbmdOb2RlUmVtb3Zl
c1Bvc2l0aW9uKE5vZGUqIG5vZGUsIGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBp
ZiAoIXBvc2l0aW9uLm5vZGUoKSkKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250
cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xs
ZXIuaAkocmV2aXNpb24gNzE0NTcpCisrKyBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJv
bGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSw4IEBAIHB1YmxpYzoKICAgICBjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3NlbGVjdGlv
bjsgfQogICAgIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29s
IGNsb3NlVHlwaW5nID0gdHJ1ZSwgYm9vbCBjbGVhclR5cGluZ1N0eWxlID0gdHJ1ZSwgYm9vbCB1
c2VyVHJpZ2dlcmVkID0gZmFsc2UsIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9u
U2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5LCBE
aXJlY3Rpb25hbGl0eVBvbGljeSA9IE1ha2VEaXJlY3Rpb25hbFNlbGVjdGlvbik7CiAgICAgdm9p
ZCBzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHksIERpcmVjdGlvbmFsaXR5UG9saWN5IGRpcmVjdGlvbmFsaXR5
ID0gTWFrZURpcmVjdGlvbmFsU2VsZWN0aW9uKSB7IHNldFNlbGVjdGlvbihzZWxlY3Rpb24sIHRy
dWUsIHRydWUsIGZhbHNlLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIGdyYW51bGFyaXR5
LCBkaXJlY3Rpb25hbGl0eSk7IH0KKyAgICB2b2lkIHNldFNlbGVjdGlvbkZpcmluZ0V2ZW50KGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIGNsb3NlVHlwaW5nID0gdHJ1ZSwgYm9vbCBjbGVh
clR5cGluZ1N0eWxlID0gdHJ1ZSwgYm9vbCB1c2VyVHJpZ2dlcmVkID0gZmFsc2UsIEN1cnNvckFs
aWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0
eSA9IENoYXJhY3RlckdyYW51bGFyaXR5LCBEaXJlY3Rpb25hbGl0eVBvbGljeSA9IE1ha2VEaXJl
Y3Rpb25hbFNlbGVjdGlvbik7CisgICAgdm9pZCBzZXRTZWxlY3Rpb25GaXJpbmdFdmVudChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24sIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0
eSwgRGlyZWN0aW9uYWxpdHlQb2xpY3kgZGlyZWN0aW9uYWxpdHkgPSBNYWtlRGlyZWN0aW9uYWxT
ZWxlY3Rpb24pIHsgc2V0U2VsZWN0aW9uRmlyaW5nRXZlbnQoc2VsZWN0aW9uLCB0cnVlLCB0cnVl
LCBmYWxzZSwgQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSwgZGlyZWN0
aW9uYWxpdHkpOyB9CiAgICAgYm9vbCBzZXRTZWxlY3RlZFJhbmdlKFJhbmdlKiwgRUFmZmluaXR5
LCBib29sIGNsb3NlVHlwaW5nKTsKICAgICB2b2lkIHNlbGVjdEFsbCgpOwogICAgIHZvaWQgY2xl
YXIoKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2aXNpb24gNzE0NTcp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDYsNiArMjA2LDcgQEAgb25zZWVrZWQKIG9uc2Vla2luZwogb25zZWxlY3QKIG9uc2VsZWN0
c3RhcnQKK29uc2VsZWN0aW9uY2hhbmdlCiBvbndlYmtpdHNwZWVjaGNoYW5nZQogb25zdGFsbGVk
CiBvbnN0b3JhZ2UKSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZpc2lvbiA3MTQ1NykKKysr
IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsNyAr
MjY0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbQogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICBpZiAobV9mcmFtZS0+c2VsZWN0aW9uKCktPnNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAgICAgbV9mcmFtZS0+c2VsZWN0
aW9uKCktPnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBNYWtlTm9uRGly
ZWN0aW9uYWxTZWxlY3Rpb24pOworICAgICAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNl
dFNlbGVjdGlvbkZpcmluZ0V2ZW50KG5ld1NlbGVjdGlvbiwgZ3JhbnVsYXJpdHksIE1ha2VOb25E
aXJlY3Rpb25hbFNlbGVjdGlvbik7CiAgICAgfQogfQogCkBAIC0yODksNyArMjg5LDcgQEAgdm9p
ZCBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkT3JMaQogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uKSkKLSAgICAgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBncmFudWxhcml0eSwgTWFrZU5vbkRpcmVjdGlvbmFsU2VsZWN0aW9uKTsK
KyAgICAgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb25GaXJpbmdFdmVu
dChuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBNYWtlTm9uRGlyZWN0aW9uYWxTZWxlY3Rpb24p
OwogICAgIH0KIH0KIApAQCAtMzM0LDcgKzMzNCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVNb3VzZVByZXNzRXZlbnQKICAgICB9CiAgICAgCiAgICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlv
bigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFt
ZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBN
YWtlTm9uRGlyZWN0aW9uYWxTZWxlY3Rpb24pOworICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24o
KS0+c2V0U2VsZWN0aW9uRmlyaW5nRXZlbnQobmV3U2VsZWN0aW9uLCBncmFudWxhcml0eSwgTWFr
ZU5vbkRpcmVjdGlvbmFsU2VsZWN0aW9uKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDAx
LDcgKzQwMSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQKICAg
ICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlUG9zKTsKICAgICAK
ICAgICBpZiAobV9mcmFtZS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24pKQotICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKG5l
d1NlbGVjdGlvbiwgZ3JhbnVsYXJpdHksIE1ha2VOb25EaXJlY3Rpb25hbFNlbGVjdGlvbik7Cisg
ICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb25GaXJpbmdFdmVudChuZXdT
ZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBNYWtlTm9uRGlyZWN0aW9uYWxTZWxlY3Rpb24pOwogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CkBAIC02MzgsNyArNjM4LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OnVwZGF0ZVNlbGVjdGlvbkZvck1vdQogCiAgICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5z
aG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgewogICAgICAgICBtX2ZyYW1lLT5z
ZWxlY3Rpb24oKS0+c2V0SXNEaXJlY3Rpb25hbChmYWxzZSk7Ci0gICAgICAgIG1fZnJhbWUtPnNl
bGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBtX2ZyYW1lLT5zZWxlY3Rpb24o
KS0+Z3JhbnVsYXJpdHkoKSwgTWFrZU5vbkRpcmVjdGlvbmFsU2VsZWN0aW9uKTsKKyAgICAgICAg
bV9mcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbkZpcmluZ0V2ZW50KG5ld1NlbGVjdGlv
biwgbV9mcmFtZS0+c2VsZWN0aW9uKCktPmdyYW51bGFyaXR5KCksIE1ha2VOb25EaXJlY3Rpb25h
bFNlbGVjdGlvbik7CiAgICAgfQogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBA
IC03MDEsNyArNzAxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2
ZQogICAgICAgICAgICAgbmV3U2VsZWN0aW9uID0gVmlzaWJsZVNlbGVjdGlvbihwb3MpOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+
c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rp
b24oKS0+c2V0U2VsZWN0aW9uRmlyaW5nRXZlbnQobmV3U2VsZWN0aW9uKTsKIAogICAgICAgICBo
YW5kbGVkID0gdHJ1ZTsKICAgICB9CkluZGV4OiBXZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gNzE0NjEpCisrKyBXZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTExLTA1ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB2ZXJzaW9uIG9mIHNldFNlbGVjdGlvbiB0aGF0
IGZpcmVzIHNlbGVjdGlvbmNoYW5nZSBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgxNTEKKworICAgICAgICBBZGRlZCBhIHN1cHBvcnQgZm9y
IHNlbGVjdGlvbi1jaGFuZ2UgZmxhZy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnOgorCiAyMDEwLTExLTA1ICBDaHJpcyBNYXJyaW4gIDxjbWFycmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBX
ZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlz
aW9uIDcxNDU3KQorKysgV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwkod29ya2luZyBjb3B5KQpAQCAtMTI0LDQgKzEyNCw2IEBAIEVOQUJMRV9YSFRNTE1QID0g
OwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNM
VDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxF
X0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFC
TEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAk
KEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lD
T05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVT
U19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
VkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFC
TEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NW
R19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5B
QkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcp
ICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFC
TEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVCA9
ICQoRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwor
CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVS
SU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFU
QUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9F
VkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRB
VEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKSAkKEVOQUJM
RV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAk
KEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NW
R19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9T
T0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5k
ZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3MTQ2MSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMTEtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2VsZWN0aW9uIHRoYXQgZmlyZXMgc2VsZWN0aW9u
Y2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00ODE1MQorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWc6CisKIDIwMTAtMTEtMDUgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6IFdlYktpdC9tYWMvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gNzE0
NTcpCisrKyBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNCArMTI0LDYgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBF
TkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwog
Ci1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVS
SU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFU
QUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9F
VkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRB
VEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykg
JChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9T
VkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZP
UkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChF
TkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9Y
UEFUSCkgJChFTkFCTEVfWFNMVCk7CitFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UID0gJChF
TkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CisKK0ZF
QVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcp
ICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJ
RCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5U
U09VUkNFKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lNQUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFC
TEVfTUFUSE1MKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAk
KEVOQUJMRV9SVUJZKSAkKEVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQpICQoRU5BQkxFX1NI
QVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5B
QkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VT
RSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykg
JChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpJbmRleDog
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJpZXMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA3MTQ2MSkKKysrIFdlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMS0wNSAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSBuZXcgdmVyc2lvbiBvZiBzZXRTZWxlY3Rpb24gdGhhdCBmaXJl
cyBzZWxlY3Rpb25jaGFuZ2UgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ4MTUxCisKKyAgICAgICAgKiB3aW4vdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lcy52c3Byb3BzOgorICAgICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVE
ZWZpbmVzQ2Fpcm8udnNwcm9wczoKKwogMjAxMC0xMC0yOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgogCiAgICAgICAgIFNub3cgTGVvcGFyZCBQb3dlclBDIGJ1aWxkIGZpeC4KSW5k
ZXg6IFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3By
b3BzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lcy52c3Byb3BzCShyZXZpc2lvbiA3MTQ1NykKKysrIFdlYktpdExpYnJhcmllcy93
aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBA
IC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0Rf
UkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0Ip
OyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pOyQoRU5BQkxFX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFU
QUxJU1QpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQ
TE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0VWRU5UU09VUkNFKTskKEVOQUJM
RV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkp
OyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lN
QUdFX1JFU0laRVIpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRD
SCk7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX05PVElGSUNB
VElPTlMpOyQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyk7JChFTkFCTEVfUFJPR1JF
U1NfVEFHKTskKEVOQUJMRV9SVUJZKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVf
U1ZHKTskKEVOQUJMRV9TVkdfQU5JTUFUSU9OKTskKEVOQUJMRV9TVkdfQVNfSU1BR0UpOyQoRU5B
QkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9T
VkdfRk9SRUlHTl9PQkpFQ1QpOyQoRU5BQkxFX1NWR19VU0UpOyQoRU5BQkxFX1ZJREVPKTskKEVO
QUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV01MKTskKEVO
QUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVf
WFNMVCkiCisJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQo
RU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVO
QUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQo
RU5BQkxFX0RBVEFMSVNUKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJ
UkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9FVkVOVFNPVVJD
RSk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTsk
KEVOQUJMRV9JTUFHRV9SRVNJWkVSKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJM
RV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJ
TktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJM
RV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5B
QkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUlVCWSk7JChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdF
X0VWRU5UKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9T
VkdfQU5JTUFUSU9OKTskKEVOQUJMRV9TVkdfQVNfSU1BR0UpOyQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpF
Q1QpOyQoRU5BQkxFX1NWR19VU0UpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9XRUJfU09DS0VU
Uyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV01MKTskKEVOQUJMRV9XT1JLRVJTKTsk
KEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCiAJLz4KICAg
PFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfM0RfQ0FOVkFTIgpAQCAtMTYyLDYgKzE2MiwxMSBA
QAogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybworCQlO
YW1lPSJFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UIgorCQlWYWx1ZT0iRU5BQkxFX1NFTEVD
VElPTkNIQU5HRV9FVkVOVCIKKwkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgorCS8+Cisg
IDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX1NWRyIKIAkJVmFsdWU9IkVOQUJMRV9TVkciCiAJ
CVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKSW5kZXg6IFdlYktpdExpYnJhcmllcy93aW4v
dG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNw
cm9wcwkocmV2aXNpb24gNzE0NTcpCisrKyBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJv
cHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzks
NyBAQAogCT4KICAgPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vz
c29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5H
KTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQo
RU5BQkxFX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChF
TkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0VWRU5UU09VUkNFKTskKEVOQUJMRV9GSUxURVJT
KTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxF
X0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lNQUdFX1JFU0la
RVIpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChF
TkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFC
TEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQo
RU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTsk
KEVOQUJMRV9SVUJZKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVO
QUJMRV9TVkdfQU5JTUFUSU9OKTskKEVOQUJMRV9TVkdfQVNfSU1BR0UpOyQoRU5BQkxFX1NWR19E
T01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9TVkdfRk9SRUlH
Tl9PQkpFQ1QpOyQoRU5BQkxFX1NWR19VU0UpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9XRUJf
U09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV01MKTskKEVOQUJMRV9XT1JL
RVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCisJ
CVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNE
X1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9C
KTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKTskKEVOQUJMRV9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RB
VEFMSVNUKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpOyQoRU5BQkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9FVkVOVFNPVVJDRSk7JChFTkFC
TEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
KTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9J
TUFHRV9SRVNJWkVSKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9T
UEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVU
Q0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9OT1RJRklD
QVRJT05TKTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BST0dS
RVNTX1RBRyk7JChFTkFCTEVfUlVCWSk7JChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKTsk
KEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfQU5JTUFU
SU9OKTskKEVOQUJMRV9TVkdfQVNfSU1BR0UpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5H
Uyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpOyQoRU5B
QkxFX1NWR19VU0UpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFC
TEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV01MKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9Y
SFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNy
bwogCQlOYW1lPSJFTkFCTEVfM0RfQ0FOVkFTIgpAQCAtMTYyLDYgKzE2MiwxMSBAQAogCQlQZXJm
b3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybworCQlOYW1lPSJFTkFC
TEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UIgorCQlWYWx1ZT0iRU5BQkxFX1NFTEVDVElPTkNIQU5H
RV9FVkVOVCIKKwkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgorCS8+CisgIDxVc2VyTWFj
cm8KIAkJTmFtZT0iRU5BQkxFX1NWRyIKIAkJVmFsdWU9IkVOQUJMRV9TVkciCiAJCVBlcmZvcm1F
bnZpcm9ubWVudFNldD0idHJ1ZSIKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxNDYxKQorKysgV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEt
MDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2Vs
ZWN0aW9uIHRoYXQgZmlyZXMgc2VsZWN0aW9uY2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODE1MQorCisgICAgICAgIEFkZGVkIGEg
c3VwcG9ydCBmb3Igc2VsZWN0aW9uLWNoYW5nZSBmbGFnLgorCisgICAgICAgICogU2NyaXB0cy9i
dWlsZC13ZWJraXQ6CisKIDIwMTAtMTEtMDUgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6IFdlYktpdFRv
b2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1Njcmlw
dHMvYnVpbGQtd2Via2l0CShyZXZpc2lvbiA3MTQ1NykKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMv
YnVpbGQtd2Via2l0CSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCw3IEBAIG15ICgKICAgICAk
b2ZmbGluZVdlYkFwcGxpY2F0aW9uU3VwcG9ydCwKICAgICAkcHJvZ3Jlc3NUYWdTdXBwb3J0LAog
ICAgICRydWJ5U3VwcG9ydCwKKyAgICAkc2VsZWN0aW9uY2hhbmdlRXZlbnRTdXBwb3J0LAogICAg
ICRzaGFyZWRXb3JrZXJzU3VwcG9ydCwKICAgICAkc3ZnU3VwcG9ydCwKICAgICAkc3ZnQW5pbWF0
aW9uU3VwcG9ydCwKQEAgLTIwNCw2ICsyMDUsOSBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBv
cHRpb24gPT4gInN5c3RlbS1tYWxsb2MiLCBkZXNjID0+ICJUb2dnbGUgc3lzdGVtIGFsbG9jYXRv
ciBpbnN0ZWFkIG9mIFRDbWFsbG9jIiwKICAgICAgIGRlZmluZSA9PiAiVVNFX1NZU1RFTV9NQUxM
T0MiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkc3lzdGVtTWFsbG9jU3VwcG9ydCB9LAogCisg
ICAgeyBvcHRpb24gPT4gInNlbGVjdGlvbi1jaGFuZ2UiLCBkZXNjID0+ICJUb2dnbGUgc2VsZWN0
aW9uIGNoYW5nZSBldmVudCBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1NFTEVD
VElPTkNIQU5HRV9FVkVOVCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRzZWxlY3Rpb25jaGFu
Z2VFdmVudFN1cHBvcnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICJzaGFyZWQtd29ya2VycyIsIGRl
c2MgPT4gIlRvZ2dsZSBTaGFyZWRXb3JrZXJzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfU0hBUkVEX1dPUktFUlMiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNH
dGsoKSksIHZhbHVlID0+IFwkc2hhcmVkV29ya2Vyc1N1cHBvcnQgfSwKIApJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gNzE0NjEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyMiBAQAorMjAxMC0xMS0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBuZXcgdmVyc2lvbiBvZiBzZXRTZWxlY3Rpb24gdGhhdCBmaXJlcyBzZWxlY3Rpb25jaGFuZ2Ug
ZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4
MTUxCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRvIGVuc3VyZSBXZWJLaXQgZmlyZXMgdGhlIGNv
cnJlY3QgbnVtYmVyIG9mIHNlbGVjdGlvbmNoYW5nZSBldmVudHMgYW5kCisgICAgICAgIFdlYktp
dCBkb2VzIG5vdCBjcmFzaCB3aGVuIERPTSBpcyBtb2RpZmllZCBpbiB0aGUgZXZlbnQgaGFuZGxl
ci4KKyAgICAgICAgVGhpcyB0ZXN0IGlzIG5vdCBlbmFibGVkIGluIGFueSBwbGF0Zm9ybSBzaW5j
ZSB0aGUgZmVhdHVyZSBpcyBiZWhpbmQgc2VsZWN0aW9uLWNoYW5nZSBmbGFnLgorCisgICAgICAg
ICogZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50aGFuZGxlci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NlbGVjdGlvbmNoYW5nZS1ldmVudGhhbmRs
ZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAg
ICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTAtMTEtMDUgIEFkYW0gQmFydGggIDxh
YmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVjdGlvbmNoYW5nZS1ldmVudGhhbmRsZXIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVj
dGlvbmNoYW5nZS1ldmVudGhhbmRsZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50aGFuZGxlci1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHRo
YXQgb25zZWxlY3Rpb25jaGFuZ2UgZXZlbnQgaXMgZmlyZWQgYXMgbWFueSB0aW1lcyBhcyBleHBl
Y3RlZCBhbmQgbW9kaWZ5aW5nIERPTSBpbiB0aGUgZXZlbnQgaGFuZGxlciBkb2VzIG5vdCBjcmFz
aCBXZWJLaXQuCisKK1BBU1M6IHNpbmdsZSBjbGlja2luZyBmaXJzdCB3b3JkIG9mICJoZWxsbyIg
eWllbGRlZCAxIHNlbGVjdGlvbmNoYW5nZSBldmVudHMKK1BBU1M6IHNpbmdsZSBjbGlja2luZyBm
aXJzdCB3b3JkIG9mICJoZWxsbyIgeWllbGRlZCAxIHNlbGVjdGlvbmNoYW5nZSBldmVudHMKK1BB
U1M6IGRvdWJsZSBjbGlja2luZyBmaXJzdCB3b3JkIG9mICJoZWxsbyIgeWllbGRlZCAyIHNlbGVj
dGlvbmNoYW5nZSBldmVudHMKK0ZBSUw6IGRvdWJsZSBjbGlja2luZyBmaXJzdCB3b3JkIG9mICI8
YSBocmVmPSJqYXZhc2NyaXB0OmZhbHNlIj5oZWxsbzwvYT4iIHlpZWxkZWQgMCBzZWxlY3Rpb25j
aGFuZ2UgZXZlbnRzIGJ1dCBleHBlY3RlZCAyIGV2ZW50cworUEFTUzogdHJpcGxlIGNsaWNraW5n
IGZpcnN0IHdvcmQgb2YgImhlbGxvIiB5aWVsZGVkIDMgc2VsZWN0aW9uY2hhbmdlIGV2ZW50cwor
UEFTUzogZHJhZ2dpbmcgdG8gc2VsZWN0IGFsbCBvZiAiYSBiIiB5aWVsZGVkIDIgc2VsZWN0aW9u
Y2hhbmdlIGV2ZW50cworZHVtbXkgdGV4dAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zZWxlY3Rpb25jaGFuZ2UtZXZlbnRoYW5kbGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50aGFuZGxlci5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50
aGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IG9uc2VsZWN0aW9u
Y2hhbmdlIGV2ZW50IGlzIGZpcmVkIGFzIG1hbnkgdGltZXMgYXMgZXhwZWN0ZWQgYW5kIG1vZGlm
eWluZyBET00gaW4gdGhlIGV2ZW50IGhhbmRsZXIgZG9lcyBub3QgY3Jhc2ggV2ViS2l0LjwvcD4K
KzxwcmUgaWQ9ImNvbnNvbGUiPgorPC9wcmU+Cis8c2NyaXB0PgorCit2YXIgZHVtbXkgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2R1bW15LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCdkdW1teSB0ZXh0JykpCitkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGR1
bW15KTsKK3ZhciB0ZXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cit0ZXN0LmNv
bnRlbnRlZGl0YWJsZSA9IHRydWU7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlc3QpOwor
dmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOworCit2YXIg
ZXZlbnRDb3VudGVyID0gMDsKK3ZhciByZW1vdmVOb2RlcyA9IGZhbHNlOworZG9jdW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50KSB7CisgICAg
ZXZlbnRDb3VudGVyKys7CisgICAgaWYgKHJlbW92ZU5vZGVzKSB7CisgICAgICAgIHdoaWxlICh0
ZXN0LmZpcnN0Q2hpbGQpCisgICAgICAgICAgICB0ZXN0LnJlbW92ZUNoaWxkKHRlc3QuZmlyc3RD
aGlsZCk7CisgICAgfQorfSwgZmFsc2UpOworCitmdW5jdGlvbiB0ZXN0U2VsZWN0aW9uQ2hhbmdl
RXZlbnQoY29udGVudCwgYWN0aW9uLCBleHBlY3RlZE51bWJlckV2ZW50cykgeworICAgIHRlc3Qu
aW5uZXJIVE1MID0gY29udGVudDsKKyAgICByZW1vdmVOb2RlcyA9IGZhbHNlOworICAgIGV2ZW50
Q291bnRlciA9IDA7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVu
KGR1bW15LCAwKTsKKyAgICB2YXIgcmVzdWx0ID0gYWN0aW9uKHRlc3QpICsgJyBvZiAiJyArIGNv
bnRlbnQgKyAnIiB5aWVsZGVkICcgKyBldmVudENvdW50ZXIgKyAnIHNlbGVjdGlvbmNoYW5nZSBl
dmVudHMnOworICAgIGlmIChldmVudENvdW50ZXIgPT0gZXhwZWN0ZWROdW1iZXJFdmVudHMpCisg
ICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1BBU1M6
ICcgKyByZXN1bHQgKyAnXG4nKSk7CisgICAgZWxzZQorICAgICAgICBjb25zb2xlLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdGQUlMOiAnICsgcmVzdWx0ICsgJyBidXQgZXhw
ZWN0ZWQgJyArIGV4cGVjdGVkTnVtYmVyRXZlbnRzICsgJyBldmVudHNcbicpKTsKK30KKworZnVu
Y3Rpb24gY3JlYXRlQ2xpY2tBY3Rpb24oY291bnQsIG5hbWUsIGNsaWNrSW5TZWxlY3Rpb24pIHsK
KyAgICByZXR1cm4gZnVuY3Rpb24gKGNvbnRhaW5lcikgeworICAgICAgICBpZiAoY2xpY2tJblNl
bGVjdGlvbikgeworICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENo
aWxkcmVuKGNvbnRhaW5lcik7CisgICAgICAgICAgICBldmVudENvdW50ZXIgPSAwOworICAgICAg
ICB9CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZzZXRMZWZ0
ICsgMTAsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyA1KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBjb3VudCAtIDE7IGkrKykgeworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxKTsKKyAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDUwKTsKKyAgICAgICAgfQorICAgICAgICByZW1vdmVOb2RlcyA9IHRydWU7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2Fy
ZCgxKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICByZXR1cm4gbmFt
ZSArICcgY2xpY2tpbmcgZmlyc3Qgd29yZCc7CisgICAgfQorfQorCitmdW5jdGlvbiBkcmFnVG9T
ZWxlY3QoY29udGFpbmVyKSB7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29udGFpbmVy
Lm9mZnNldExlZnQgKyA1LCBjb250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoNTApOworICAgIHJl
bW92ZU5vZGVzID0gdHJ1ZTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250YWluZXIu
b2Zmc2V0TGVmdCArIDEwMCwgY29udGFpbmVyLm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2Vu
ZGVyLmxlYXBGb3J3YXJkKDUwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgcmV0
dXJuICdkcmFnZ2luZyB0byBzZWxlY3QgYWxsJzsKK30KKworaWYgKCF3aW5kb3cuZXZlbnRTZW5k
ZXIgfHwgIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBjb25zb2xlLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdUaGlzIHRlc3QgcmVxdWlyZXMgZXZlbnRTZW5k
ZXIuJykpOworZWxzZSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgnaGVsbG8nLCBjcmVhdGVDbGlja0FjdGlvbigx
LCAnc2luZ2xlJyksIDEpOyAvLyBoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljaworICAg
IHRlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgnaGVsbG8nLCBjcmVhdGVDbGlja0FjdGlvbigxLCAn
c2luZ2xlJywgdHJ1ZSksIDEpOyAvLyBoYW5kbGVNb3VzZVJlbGVhc2VFdmVudAorICAgIHRlc3RT
ZWxlY3Rpb25DaGFuZ2VFdmVudCgnaGVsbG8nLCBjcmVhdGVDbGlja0FjdGlvbigyLCAnZG91Ymxl
JyksIDIpOyAvLyBzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50CisKKyAgICB0ZXN0U2Vs
ZWN0aW9uQ2hhbmdlRXZlbnQoJzxhIGhyZWY9ImphdmFzY3JpcHQ6ZmFsc2UiPmhlbGxvPC9hPics
IGNyZWF0ZUNsaWNrQWN0aW9uKDIsICdkb3VibGUnKSwgMik7CisgICAgLy8gVGhpcyBpcyBmb3Ig
c2VsZWN0Q2xvc2VzdFdvcmRPckxpbmtGcm9tTW91c2VFdmVudCBidXQgdGhlIGNvZGUgaXMgbmV2
ZXIgZXhlY3V0ZWQhCisKKyAgICB0ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoJ2hlbGxvJywgY3Jl
YXRlQ2xpY2tBY3Rpb24oMywgJ3RyaXBsZScpLCAzKTsgLy8gaGFuZGxlTW91c2VQcmVzc0V2ZW50
VHJpcGxlQ2xpY2sKKyAgICB0ZXN0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoJ2EgYicsIGRyYWdUb1Nl
bGVjdCwgMik7IC8vIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZworfQorCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlzaW9uIDcxNDU3KQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0yMTEsNiArMjExLDggQEAgV09OVEZJWCBTS0lQIE1BQyBXSU4gOiBwbGF0Zm9ybS9j
aHJvbWl1bQogLy8gUGFzc2VzIHdpdGggRFJULCBmYWlscyBpbiB0ZXN0X3NoZWxsLgogQlVHV0s0
MjE1MSA6IGZhc3QvbG9hZGVyL25vbi1kZWZlcnJlZC1zdWJzdGl0dXRlLWxvYWQuaHRtbCA9IFRF
WFQgUEFTUwogCitCVUdXSzQ1NzEyIFNLSVAgOiBmYXN0L2V2ZW50cy9zZWxlY3Rpb25jaGFuZ2Ut
ZXZlbnRoYW5kbGVyLmh0bWwgPSBGQUlMCisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBXT05URklYIFRFU1RT
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHJldmlzaW9uIDcx
NDU3KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJKHdvcmtpbmcgY29weSkK
QEAgLTU2MzIsNiArNTYzMiw5IEBAIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtYmFzaWMuaHRtbAog
ZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCiBmYXN0L2RvbS9ub2Rl
c0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCiAKKyMgc2VsZWN0aW9uY2hhbmdlIGV2ZW50
IGlzIG5vdCBlbmFibGVkIHlldC4KK2Zhc3QvZXZlbnRzL3NlbGVjdGlvbmNoYW5nZS1ldmVudGhh
bmRsZXIuaHRtbAorCiAjICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDY2NDQKIGZhc3QvdGV4dC9sYXJnZS10ZXh0LWNvbXBvc2VkLWNoYXItZG9zLmh0bWwKIApJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlzaW9uIDcxNDU3KQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTI3NCw1ICsyNzQsOCBA
QCBmYXN0L2ltYWdlcy93ZWJwLWltYWdlLWRlY29kaW5nLmh0bWwKICMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3OTAxCiBmYXN0L2NhbnZhcy9jYW52YXMtZ2V0SW1h
Z2VEYXRhLW5lZ2F0aXZlLXNvdXJjZS5odG1sCiAKKyMgc2VsZWN0aW9uY2hhbmdlIGV2ZW50IGlz
IG5vdCBlbmFibGVkIHlldC4KK2Zhc3QvZXZlbnRzL3NlbGVjdGlvbmNoYW5nZS1ldmVudGhhbmRs
ZXIuaHRtbAorCiAjIFRpbWVzIG91dCBiZWNhdXNlIHBsdWdpbnMgYXJlbid0IGFsbG93ZWQgdG8g
ZXhlY3V0ZSBKUyBhZnRlciBOUFBfRGVzdHJveSBoYXMgYmVlbiBjYWxsZWQgaW4gV2ViS2l0MSdz
IE9PUCBwbHVnaW5zIGltcGxlbWVudGF0aW9uIGh0dHA6Ly93ZWJraXQub3JnL2IvNDg5MjkKIHBs
dWdpbnMvZXZhbHVhdGUtanMtYWZ0ZXItcmVtb3ZpbmctcGx1Z2luLWVsZW1lbnQuaHRtbApJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiA3MTQ1NykKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTU0NjIsNiArNTQ2Miw5IEBA
IGZhc3QvbWVkaWEvY29sb3ItZG9lcy1ub3QtaW5jbHVkZS1hbHBoYS4KICMgUmVxdWlyZXMgV2Vi
UCBzdXBwb3J0LgogZmFzdC9pbWFnZXMvd2VicC1pbWFnZS1kZWNvZGluZy5odG1sCiAKKyMgc2Vs
ZWN0aW9uY2hhbmdlIGV2ZW50IGlzIG5vdCBlbmFibGVkIHlldC4KK2Zhc3QvZXZlbnRzL3NlbGVj
dGlvbmNoYW5nZS1ldmVudGhhbmRsZXIuaHRtbAorCiAjIFtRdF0gRFJUIHNpZGVlZmZlY3QgcmV2
ZWFsZWQgYnkgcjcxMjY4CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00ODk1OAogc3ZnL2N1c3RvbS90ZXh0LXpvb20ueGh0bWwKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCShyZXZpc2lvbiA3MTQ1NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMDU5LDYgKzEwNTksOSBAQCBmYXN0L3BhcnNlci9w
cmUtaHRtbDUtcGFyc2VyLXF1aXJrcy5odG1sCiAjIEZpbGVTeXN0ZW0gQVBJIGlzIG5vdCBzdXBw
b3J0ZWQuCiBmYXN0L2ZpbGVzeXN0ZW0KIAorIyBzZWxlY3Rpb25jaGFuZ2UgZXZlbnQgaXMgbm90
IGVuYWJsZWQgeWV0LgorZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50aGFuZGxlci5o
dG1sCisKICMgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QgaXMgbm90IHN1cHBv
cnRlZC4KIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtYmFzaWMuaHRtbAogZmFzdC9kb20vbm9kZXNG
cm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73295</attachid>
            <date>2010-11-08 15:35:11 -0800</date>
            <delta_ts>2010-11-15 20:02:52 -0800</delta_ts>
            <desc>fixed per comments</desc>
            <filename>bug-48151-20101108153510.patch</filename>
            <type>text/plain</type>
            <size>76216</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxNTc5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMDggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2VsZWN0aW9uIHRoYXQg
ZmlyZXMgc2VsZWN0aW9uY2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00ODE1MQorCisgICAgICAgIEFkZGVkIGEgc3VwcG9ydCBmb3Ig
c2VsZWN0aW9uLWNoYW5nZSBmbGFnCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxMC0xMS0wOCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUm9sbCBvdXQgcjcxNTMyCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNp
b24gNzE1NTYpCisrKyBKYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMTI0LDQgKzEyNCw2IEBAIEVOQUJMRV9YSFRN
TE1QID0gOwogRU5BQkxFX1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFC
TEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxF
XzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQo
RU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkg
JChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lT
VEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RF
QlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9Q
Uk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVO
QUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkg
JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9U
SU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkg
JChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9F
VkVOVCA9ICQoRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVF8kKFJFQUxfUExBVEZPUk1fTkFN
RSkpOworCitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0Rf
UkVOREVSSU5HKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChF
TkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFC
TEVfREFUQUdSSUQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJ
T04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVO
QUJMRV9FVkVOVFNPVVJDRSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0p
ICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVf
SUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdH
RVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dS
RVNTX1RBRykgJChFTkFCTEVfUlVCWSkgJChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKSAk
KEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFU
SU9OKSAkKEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5H
UykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5B
QkxFX1NWR19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxF
X1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxF
X1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xU
KTsKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdl
TG9nCShyZXZpc2lvbiA3MTU3OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsOTIgQEAKKzIwMTAtMTEtMDggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2VsZWN0aW9uIHRoYXQgZmlyZXMgc2VsZWN0aW9uY2hh
bmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00ODE1MQorCisgICAgICAgIEFkZGVkIHNldFNlbGVjdGlvbldpdGhFdmVudCB3aGljaCBmaXJl
cyBzZWxlY3Rpb24gY2hhbmdlIGV2ZW50IHdoZW4gV2ViS2l0IGlzIGJ1aWxkIHdpdGgKKyAgICAg
ICAgLS1zZWxlY3Rpb24tY2hhbmdlIGZsYWcuIFdlIGludGVuZCB0byBtaWdyYXRlIGFsbCBjYWxs
cyBvZiBzZXRTZWxlY3Rpb24gdG8gc2V0U2VsZWN0aW9uV2l0aEV2ZW50LAorICAgICAgICB3aGlj
aCBiZWhhdmVzIGlkZW50aWNhbGx5IHRvIHNldFNlbGVjdGlvbiB1bmxlc3MgLS1zZWxlY3Rpb24t
Y2hhbmdlIGZsYWcgaXMgdHVybmVkIG9uLgorICAgICAgICBBbHNvIGRlcHJlY2F0ZWQgc2V0U2Vs
ZWN0aW9uLCBhbmQgcmVuYW1lIHRvIGRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24uCisKKyAgICAgICAg
U2VsZWN0aW9uIGNoYW5nZSBldmVudCAoc2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4t
dXMvbGlicmFyeS9tczUzNjk2OChWUy44NSkuYXNweCkgaXMgZmlyZWQKKyAgICAgICAgd2hlbmV2
ZXIgc2VsZWN0aW9uIGlzIGNoYW5nZWQsIGFuZCB0aGUgZXZlbnQgaXMgbm90IGNhbmNlbGFibGUg
YW5kIGRvZXMgbm90IGJ1YmJsZS4KKyAgICAgICAgQW4gZXZlbnQgbGlzdGVuZXIgY2FuIGJlIGF0
dGFjaGVkIHRvIGEgZG9jdW1lbnQgYnkgYm9keSBlbGVtZW50J3Mgb25zZWxlY3Rpb25jaGFuZ2Ug
YXR0cmlidXRlIG9yCisgICAgICAgIHZpYSBkb2N1bWVudC5zZWxlY3Rpb25jaGFuZ2UuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50aGFuZGxlci5odG1s
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRk
ZWQgYSBzdXBwb3J0IGZvciAtLXNlbGVjdGlvbi1jaGFuZ2UgZmxhZy4KKyAgICAgICAgKiBXZWJD
b3JlLmV4cC5pbjogUmVuYW1lZCBzZXRTZWxlY3Rpb24gdG8gZGVwcmVjYXRlZFNldFNlbGVjdGlv
bi4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
OiBDYWxscyBkZXByZWNhdGVkU2V0U2VsZWN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnZpc2libGVQb3NpdGlvblJh
bmdlRm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c2V0U2VsZWN0ZWRWaXNpYmxlUG9zaXRpb25SYW5nZSk6IERpdHRvLgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOiBBZGRlZCB0aGUgZXZlbnQgbGlzdGVuZXIgZm9yIHNlbGVjdGlv
biBjaGFuZ2UgZXZlbnQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDogQWRkZWQgb25zZWxl
Y3Rpb25jaGFuZ2UgYXR0cmlidXRlLgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnVwZGF0ZUZvY3VzQXBwZWFyYW5jZSk6IENhbGxzIGRlcHJl
Y2F0ZWRTZXRTZWxlY3Rpb24uCisgICAgICAgICogZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50Ojpmcm9tVXNlckdlc3R1cmUpOiBBZGRkZWQgc2VsZWN0aW9uY2hhbmdlRXZl
bnQuCisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKiBlZGl0aW5nL0RlbGV0
ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwOiBDYWxscyBkZXByZWNhdGVkU2V0U2VsZWN0aW9uLgorICAg
ICAgICAoV2ViQ29yZTo6RGVsZXRlQnV0dG9uQ29udHJvbGxlcjo6ZGVsZXRlVGFyZ2V0KTogRGl0
dG8uCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpzZWxlY3RDb21wb3NpdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
Ojpjb25maXJtQ29tcG9zaXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvUG9zaXRpb24pOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6bWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJh
bmdlcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjphcHBseUNvcnJlY3Rpb25Q
YW5lbEluZm8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6dHJhbnNwb3NlKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkFmdGVyQ29t
bWFuZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpmaW5kU3RyaW5nKTogRGl0
dG8uCisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmV4ZWN1dGVTd2FwV2l0aE1hcmspOiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL1NlbGVj
dGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxl
cjo6bW92ZVRvKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVy
OjpkZXByZWNhdGVkU2V0U2VsZWN0aW9uKTogUmVuYW1lZC4KKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdGlvbkNvbnRyb2xsZXI6OnNldFNlbGVjdGlvbldpdGhFdmVudCk6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6bm9kZVdpbGxCZVJlbW92ZWQpOiBDYWxs
cyBkZXByZWNhdGVkU2V0U2VsZWN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29u
dHJvbGxlcjo6bW9kaWZ5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250
cm9sbGVyOjpjbGVhcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJv
bGxlcjo6c2V0QmFzZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJv
bGxlcjo6c2V0RXh0ZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250
cm9sbGVyOjpzZWxlY3RGcmFtZUVsZW1lbnRJblBhcmVudElmRnVsbHlTZWxlY3RlZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6c2VsZWN0QWxsKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRTZWxlY3RlZFJh
bmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRT
ZWxlY3Rpb25Gcm9tTm9uZSk6IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvU2VsZWN0aW9uQ29u
dHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxlcjo6ZGVwcmVj
YXRlZFNldFNlbGVjdGlvbik6IFJlbmFtZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25D
b250cm9sbGVyOjpzZXRTZWxlY3Rpb25XaXRoRXZlbnQpOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6
aW5zZXJ0VGV4dCk6IENhbGxzIGRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24uCisgICAgICAgIChXZWJD
b3JlOjpUeXBpbmdDb21tYW5kOjpkZWxldGVLZXlQcmVzc2VkKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpUeXBpbmdDb21tYW5kOjpmb3J3YXJkRGVsZXRlS2V5UHJlc3NlZCk6IERpdHRvLgor
ICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluOiBBZGRlZCBvbnNlbGVjdGlvbmNo
YW5nZS4KKyAgICAgICAgKiBwYWdlL0RPTVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpET01TZWxlY3Rpb246OmFkZFJhbmdlKTogQ2FsbHMgZGVwcmVjYXRlZFNldFNlbGVjdGlvbi4K
KyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRy
YWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OnNldFNlbGVjdGlvblRvRHJhZ0NhcmV0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpwcmVw
YXJlQ2xpcGJvYXJkRm9ySW1hZ2VEcmFnKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6c3RhcnREcmFnKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6cGxhY2VEcmFnQ2FyZXQpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFu
ZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RX
b3JkRnJvbU1vdXNlRXZlbnQpOiBDYWxscyBzZXRTZWxlY3Rpb25XaXRoRXZlbnQuCisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkT3JMaW5rRnJvbU1vdXNl
RXZlbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91
c2VQcmVzc0V2ZW50VHJpcGxlQ2xpY2spOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2spOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFz
ZUV2ZW50KTogRGl0dG8uCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9jdXNDb250cm9sbGVyOjphZHZhbmNlRm9jdXNJbkRvY3VtZW50T3Jk
ZXIpOiBDYWxscyBkZXByZWNhdGVkU2V0U2VsZWN0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRTZWxlY3Rpb25SYW5n
ZSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzZWxlY3RTdWJTdHJpbmcpOiBE
aXR0by4KKwogMjAxMC0xMS0wOCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4OiBXZWJDb3JlL1dlYkNv
cmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9u
IDcxNTU2KQorKysgV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtNDYw
LDcgKzQ2MCw3IEBAIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTEzc2V0SFQKIF9f
Wk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTE5YWRkSFRUUEhlYWRlckZpZWxkc0VSS05T
XzEzSFRUUEhlYWRlck1hcEUKIF9fWk43V2ViQ29yZTE5UmVzb3VyY2VSZXF1ZXN0QmFzZTZzZXRV
UkxFUktOU180S1VSTEUKIF9fWk43V2ViQ29yZTE5U2VsZWN0aW9uQ29udHJvbGxlcjEwc2V0Rm9j
dXNlZEViCi1fX1pON1dlYkNvcmUxOVNlbGVjdGlvbkNvbnRyb2xsZXIxMnNldFNlbGVjdGlvbkVS
S05TXzE2VmlzaWJsZVNlbGVjdGlvbkViYmJOUzBfMTlDdXJzb3JBbGlnbk9uU2Nyb2xsRU5TXzE1
VGV4dEdyYW51bGFyaXR5RU5TXzIwRGlyZWN0aW9uYWxpdHlQb2xpY3lFCitfX1pON1dlYkNvcmUx
OVNlbGVjdGlvbkNvbnRyb2xsZXIyMmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb25FUktOU18xNlZpc2li
bGVTZWxlY3Rpb25FYmJiTlMwXzE5Q3Vyc29yQWxpZ25PblNjcm9sbEVOU18xNVRleHRHcmFudWxh
cml0eUVOU18yMERpcmVjdGlvbmFsaXR5UG9saWN5RQogX19aTjdXZWJDb3JlMTlTZWxlY3Rpb25D
b250cm9sbGVyMTVyZXZlYWxTZWxlY3Rpb25FUktOU18xNVNjcm9sbEFsaWdubWVudEViCiBfX1pO
N1dlYkNvcmUxOVNlbGVjdGlvbkNvbnRyb2xsZXIxNnNldFNlbGVjdGVkUmFuZ2VFUE5TXzVSYW5n
ZUVOU185RUFmZmluaXR5RWIKIF9fWk43V2ViQ29yZTE5U2VsZWN0aW9uQ29udHJvbGxlcjIwc2V0
U2VsZWN0aW9uRnJvbU5vbmVFdgpJbmRleDogV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA3MTU1NikKKysrIFdlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw0
ICsxMjQsNiBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFU
SDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5B
QkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0IpICQoRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFUQUxJU1Qp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkg
JChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJMRV9GSUxU
RVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lNQUdFX1JF
U0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkg
JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9N
RVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAkKEVOQUJM
RV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAk
KEVOQUJMRV9TVkdfQVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NW
R19VU0UpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9T
T0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0VO
QUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQgPSAkKEVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZF
TlRfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKKworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVf
TElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV8z
RF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChF
TkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAkKEVOQUJMRV9EQVRBTElTVCkgJChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVO
QUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VSQ0UpICQoRU5BQkxFX0ZJTFRFUlMp
ICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU1BR0VfUkVTSVpF
UikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FVEVS
X1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1JVQlkpICQoRU5BQkxFX1NF
TEVDVElPTkNIQU5HRV9FVkVOVCkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0FOSU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZH
X0ZPUkVJR05fT0JKRUNUKSAkKEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykg
JChFTkFCTEVfV01MKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJM
RV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiA3MTU1NikKKysr
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjAwNiw3ICsyMDA2LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpzZXRTZWxlYwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICBO
b2RlKiBub2RlID0gbV9yZW5kZXJlci0+bm9kZSgpOwotICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+
c2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oUG9zaXRpb24obm9kZSwgcmFuZ2Uuc3RhcnQp
LAorICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+ZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUsIHJhbmdlLnN0YXJ0KSwKICAgICAgICAgUG9zaXRpb24o
bm9kZSwgcmFuZ2Uuc3RhcnQgKyByYW5nZS5sZW5ndGgpLCBET1dOU1RSRUFNKSk7CiB9CiAKQEAg
LTI0MjAsNyArMjQyMCw3IEBAIFZpc2libGVQb3NpdGlvblJhbmdlIEFjY2Vzc2liaWxpdHlSZW5k
ZXIKICAgICAvLyBzdGFydGluZyBhdCBhbiBlbXB0eSBsaW5lLiAgVGhlIHJlc3VsdGluZyBzZWxl
Y3Rpb24gaW4gdGhhdCBjYXNlCiAgICAgLy8gd2lsbCBiZSBhIGNhcmV0IGF0IHZpc2libGVQb3Mu
CiAgICAgU2VsZWN0aW9uQ29udHJvbGxlciBzZWxlY3Rpb247Ci0gICAgc2VsZWN0aW9uLnNldFNl
bGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVQb3MpKTsKKyAgICBzZWxlY3Rpb24uZGVw
cmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVQb3MpKTsKICAgICBz
ZWxlY3Rpb24ubW9kaWZ5KFNlbGVjdGlvbkNvbnRyb2xsZXI6OkFsdGVyYXRpb25FeHRlbmQsIFNl
bGVjdGlvbkNvbnRyb2xsZXI6OkRpcmVjdGlvblJpZ2h0LCBMaW5lQm91bmRhcnkpOwogICAgIAog
ICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb25SYW5nZShzZWxlY3Rpb24uc2VsZWN0aW9uKCkudmlz
aWJsZVN0YXJ0KCksIHNlbGVjdGlvbi5zZWxlY3Rpb24oKS52aXNpYmxlRW5kKCkpOwpAQCAtMjUy
Nyw3ICsyNTI3LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRTZWxlYwog
ICAgICAgICBtX3JlbmRlcmVyLT5mcmFtZSgpLT5zZWxlY3Rpb24oKS0+bW92ZVRvKHJhbmdlLnN0
YXJ0LCB0cnVlKTsKICAgICBlbHNlIHsKICAgICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxl
Y3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLnN0YXJ0LCByYW5nZS5lbmQpOwotICAgICAg
ICBtX3JlbmRlcmVyLT5mcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbik7CisgICAgICAgIG1fcmVuZGVyZXItPmZyYW1lKCktPnNlbGVjdGlvbigpLT5kZXByZWNh
dGVkU2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CiAgICAgfSAgICAKIH0KIApJbmRleDogV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CShyZXZpc2lvbiA3MTU1NikKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI3NCw2ICsyNzQsOSBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihyZXNldCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihz
ZWFyY2gpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoc2VsZWN0c3RhcnQp
OworI2lmIEVOQUJMRShTRUxFQ1RJT05DSEFOR0VfRVZFTlQpCisgICAgREVGSU5FX0FUVFJJQlVU
RV9FVkVOVF9MSVNURU5FUihzZWxlY3Rpb25jaGFuZ2UpOworI2VuZGlmCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHRvdWNoc3Rh
cnQpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIodG91Y2htb3ZlKTsKSW5k
ZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9E
b2N1bWVudC5pZGwJKHJldmlzaW9uIDcxNTU2KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0zMTcsNiArMzE3LDkgQEAgbW9kdWxlIGNvcmUgewogICAgICAg
ICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVyIG9ucmVzZXQ7CiAgICAgICAgIGF0
dHJpYnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25zZWFyY2g7CiAgICAgICAgIGF0dHJp
YnV0ZSBbRG9udEVudW1dIEV2ZW50TGlzdGVuZXIgb25zZWxlY3RzdGFydDsKKyNpZiBkZWZpbmVk
KEVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQpICYmIEVOQUJMRV9TRUxFQ1RJT05DSEFOR0Vf
RVZFTlQKKyAgICAgICAgYXR0cmlidXRlIFtEb250RW51bV0gRXZlbnRMaXN0ZW5lciBvbnNlbGVj
dGlvbmNoYW5nZTsKKyNlbmRpZgogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtLENvbmRpdGlv
bmFsPVRPVUNIX0VWRU5UUyxFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9udG91Y2hz
dGFydDsKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bSxDb25kaXRpb25hbD1UT1VDSF9FVkVO
VFMsRW5hYmxlZEF0UnVudGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNobW92ZTsKICAgICAgICAg
YXR0cmlidXRlIFtEb250RW51bSxDb25kaXRpb25hbD1UT1VDSF9FVkVOVFMsRW5hYmxlZEF0UnVu
dGltZV0gRXZlbnRMaXN0ZW5lciBvbnRvdWNoZW5kOwpJbmRleDogV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDcx
NTU2KQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MTAs
NyArMTQxMCw3IEBAIHZvaWQgRWxlbWVudDo6dXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wKICAg
ICAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKFBv
c2l0aW9uKHRoaXMsIDApLCBET1dOU1RSRUFNKTsKICAgICAgICAgCiAgICAgICAgIGlmIChmcmFt
ZS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKSB7Ci0g
ICAgICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24p
OworICAgICAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5kZXByZWNhdGVkU2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbik7CiAgICAgICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnJldmVhbFNl
bGVjdGlvbigpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChyZW5kZXJlcigpICYmICFyZW5k
ZXJlcigpLT5pc1dpZGdldCgpKQpJbmRleDogV2ViQ29yZS9kb20vRXZlbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL0V2ZW50LmNwcAkocmV2aXNpb24gNzE1NTYpCisrKyBXZWJDb3Jl
L2RvbS9FdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNywxOSArMjM3LDI5IEBAIGJvb2wg
RXZlbnQ6OmZyb21Vc2VyR2VzdHVyZSgpCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlID0g
dGhpcy0+dHlwZSgpOwogICAgIHJldHVybgogICAgICAgICAvLyBtb3VzZSBldmVudHMKLSAgICAg
ICAgdHlwZSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCB8fCB0eXBlID09IGV2ZW50TmFtZXMo
KS5tb3VzZWRvd25FdmVudCAKLSAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkubW91c2V1
cEV2ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmRibGNsaWNrRXZlbnQgCisgICAgICAgIHR5
cGUgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5h
bWVzKCkubW91c2Vkb3duRXZlbnQgCisgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLm1v
dXNldXBFdmVudAorICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS5kYmxjbGlja0V2ZW50
IAogICAgICAgICAvLyBrZXlib2FyZCBldmVudHMKLSAgICAgICAgfHwgdHlwZSA9PSBldmVudE5h
bWVzKCkua2V5ZG93bkV2ZW50IHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQK
KyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50CisgICAgICAgIHx8
IHR5cGUgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQKICAgICAgICAgfHwgdHlwZSA9PSBl
dmVudE5hbWVzKCkua2V5dXBFdmVudAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgICAg
IC8vIHRvdWNoIGV2ZW50cwotICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS50b3VjaHN0
YXJ0RXZlbnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkudG91Y2htb3ZlRXZlbnQKLSAgICAgICAg
fHwgdHlwZSA9PSBldmVudE5hbWVzKCkudG91Y2hlbmRFdmVudCB8fCB0eXBlID09IGV2ZW50TmFt
ZXMoKS50b3VjaGNhbmNlbEV2ZW50CisgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnRv
dWNoc3RhcnRFdmVudAorICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS50b3VjaG1vdmVF
dmVudAorICAgICAgICB8fCB0eXBlID09IGV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50CisgICAg
ICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnRvdWNoY2FuY2VsRXZlbnQKICNlbmRpZgogICAg
ICAgICAvLyBvdGhlciBhY2NlcHRlZCBldmVudHMKLSAgICAgICAgfHwgdHlwZSA9PSBldmVudE5h
bWVzKCkuc2VsZWN0RXZlbnQgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuY2hhbmdlRXZlbnQKLSAg
ICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuZm9jdXNFdmVudCB8fCB0eXBlID09IGV2ZW50
TmFtZXMoKS5ibHVyRXZlbnQKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuc2VsZWN0
RXZlbnQKKyNpZiBFTkFCTEUoU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKQorICAgICAgICB8fCB0eXBl
ID09IGV2ZW50TmFtZXMoKS5zZWxlY3Rpb25jaGFuZ2VFdmVudAorI2VuZGlmCisgICAgICAgIHx8
IHR5cGUgPT0gZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50CisgICAgICAgIHx8IHR5cGUgPT0gZXZl
bnROYW1lcygpLmZvY3VzRXZlbnQKKyAgICAgICAgfHwgdHlwZSA9PSBldmVudE5hbWVzKCkuYmx1
ckV2ZW50CiAgICAgICAgIHx8IHR5cGUgPT0gZXZlbnROYW1lcygpLnN1Ym1pdEV2ZW50OwogfQog
CkluZGV4OiBXZWJDb3JlL2RvbS9FdmVudE5hbWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vRXZlbnROYW1lcy5oCShyZXZpc2lvbiA3MTU1NikKKysrIFdlYkNvcmUvZG9tL0V2ZW50TmFt
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgbWFjcm8oc2VhcmNoKSBcCiAgICAgbWFjcm8oc2VsZWN0KSBcCiAgICAgbWFjcm8oc2Vs
ZWN0c3RhcnQpIFwKKyAgICBtYWNybyhzZWxlY3Rpb25jaGFuZ2UpIFwKICAgICBtYWNybyhzdG9y
YWdlKSBcCiAgICAgbWFjcm8oc3VibWl0KSBcCiAgICAgbWFjcm8odGV4dElucHV0KSBcCkluZGV4
OiBXZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3
MTU1NikKKysrIFdlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQgRGVsZXRlQnV0dG9uQ29udHJvbGxl
cjo6ZGVsZXRlVGFyZ2UKICAgICAvLyBhIGNhcmV0IHdoZXJlIHRoZSB0YXJnZXQgaGFkIGJlZW4u
CiAgICAgUG9zaXRpb24gcG9zID0gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUoZWxlbWVudC5n
ZXQoKSk7CiAgICAgYXBwbHlDb21tYW5kKFJlbW92ZU5vZGVDb21tYW5kOjpjcmVhdGUoZWxlbWVu
dC5yZWxlYXNlKCkpKTsKLSAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKFZp
c2libGVQb3NpdGlvbihwb3MpKTsKKyAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+ZGVwcmVjYXRl
ZFNldFNlbGVjdGlvbihWaXNpYmxlUG9zaXRpb24ocG9zKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiA3MTU1NikKKysrIFdlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTIyLDcgKzE1MjIsNyBAQCB2
b2lkIEVkaXRvcjo6c2VsZWN0Q29tcG9zaXRpb24oKQogICAgIC8vIFNlZSA8aHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3ODE+CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBz
ZWxlY3Rpb247CiAgICAgc2VsZWN0aW9uLnNldFdpdGhvdXRWYWxpZGF0aW9uKHJhbmdlLT5zdGFy
dFBvc2l0aW9uKCksIHJhbmdlLT5lbmRQb3NpdGlvbigpKTsKLSAgICBtX2ZyYW1lLT5zZWxlY3Rp
b24oKS0+c2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgZmFsc2UsIGZhbHNlKTsKKyAgICBtX2ZyYW1l
LT5zZWxlY3Rpb24oKS0+ZGVwcmVjYXRlZFNldFNlbGVjdGlvbihzZWxlY3Rpb24sIGZhbHNlLCBm
YWxzZSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpjb25maXJtQ29tcG9zaXRpb24oKQpAQCAtMTU4MCw3
ICsxNTgwLDcgQEAgdm9pZCBFZGl0b3I6OmNvbmZpcm1Db21wb3NpdGlvbihjb25zdCBTdAogICAg
IGluc2VydFRleHQodGV4dCwgMCk7CiAKICAgICBpZiAocHJlc2VydmVTZWxlY3Rpb24pIHsKLSAg
ICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihvbGRTZWxlY3Rpb24sIGZh
bHNlLCBmYWxzZSk7CisgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5kZXByZWNhdGVkU2V0
U2VsZWN0aW9uKG9sZFNlbGVjdGlvbiwgZmFsc2UsIGZhbHNlKTsKICAgICAgICAgLy8gQW4gb3Bl
biB0eXBpbmcgY29tbWFuZCB0aGF0IGRpc2FncmVlcyBhYm91dCBjdXJyZW50IHNlbGVjdGlvbiB3
b3VsZCBjYXVzZSBpc3N1ZXMgd2l0aCB0eXBpbmcgbGF0ZXIgb24uCiAgICAgICAgIFR5cGluZ0Nv
bW1hbmQ6OmNsb3NlVHlwaW5nKG1fbGFzdEVkaXRDb21tYW5kLmdldCgpKTsKICAgICB9CkBAIC0x
ODYyLDcgKzE4NjIsNyBAQCB2b2lkIEVkaXRvcjo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJv
CiAgICAgICAgIAogICAgICAgICAvLyBGSVhNRSA0ODU5MTkwOiBUaGlzIGdldHMgY29uZnVzZWQg
d2l0aCBkb3VibGVkIHB1bmN0dWF0aW9uIGF0IHRoZSBlbmQgb2YgYSBwYXJhZ3JhcGgKICAgICAg
ICAgUmVmUHRyPFJhbmdlPiBiYWRHcmFtbWFyUmFuZ2UgPSBUZXh0SXRlcmF0b3I6OnN1YnJhbmdl
KGdyYW1tYXJTZWFyY2hSYW5nZS5nZXQoKSwgZ3JhbW1hclBocmFzZU9mZnNldCArIGdyYW1tYXJE
ZXRhaWwubG9jYXRpb24sIGdyYW1tYXJEZXRhaWwubGVuZ3RoKTsKLSAgICAgICAgZnJhbWUoKS0+
c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKGJhZEdyYW1tYXJSYW5n
ZS5nZXQoKSwgU0VMX0RFRkFVTFRfQUZGSU5JVFkpKTsKKyAgICAgICAgZnJhbWUoKS0+c2VsZWN0
aW9uKCktPmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihiYWRHcmFtbWFy
UmFuZ2UuZ2V0KCksIFNFTF9ERUZBVUxUX0FGRklOSVRZKSk7CiAgICAgICAgIGZyYW1lKCktPnNl
bGVjdGlvbigpLT5yZXZlYWxTZWxlY3Rpb24oKTsKICAgICAgICAgCiAgICAgICAgIGNsaWVudCgp
LT51cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoYmFkR3JhbW1hclBocmFzZSwgZ3Jh
bW1hckRldGFpbCk7CkBAIC0xODczLDcgKzE4NzMsNyBAQCB2b2lkIEVkaXRvcjo6YWR2YW5jZVRv
TmV4dE1pc3NwZWxsaW5nKGJvCiAgICAgICAgIC8vIGEgbWFya2VyIHNvIHdlIGRyYXcgdGhlIHJl
ZCBzcXVpZ2dsZSBsYXRlci4KICAgICAgICAgCiAgICAgICAgIFJlZlB0cjxSYW5nZT4gbWlzc3Bl
bGxpbmdSYW5nZSA9IFRleHRJdGVyYXRvcjo6c3VicmFuZ2Uoc3BlbGxpbmdTZWFyY2hSYW5nZS5n
ZXQoKSwgbWlzc3BlbGxpbmdPZmZzZXQsIG1pc3NwZWxsZWRXb3JkLmxlbmd0aCgpKTsKLSAgICAg
ICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKG1p
c3NwZWxsaW5nUmFuZ2UuZ2V0KCksIERPV05TVFJFQU0pKTsKKyAgICAgICAgZnJhbWUoKS0+c2Vs
ZWN0aW9uKCktPmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihtaXNzcGVs
bGluZ1JhbmdlLmdldCgpLCBET1dOU1RSRUFNKSk7CiAgICAgICAgIGZyYW1lKCktPnNlbGVjdGlv
bigpLT5yZXZlYWxTZWxlY3Rpb24oKTsKICAgICAgICAgCiAgICAgICAgIGNsaWVudCgpLT51cGRh
dGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKG1pc3NwZWxsZWRXb3JkKTsKQEAgLTIwNjUs
NyArMjA2NSw3IEBAIHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmcKICAg
ICAgICAgaWYgKG5ld1NlbGVjdGlvbiAhPSBmcmFtZSgpLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9u
KCkpIHsKICAgICAgICAgICAgIGlmICghZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5n
ZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIGZyYW1lKCktPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsK
KyAgICAgICAgICAgIGZyYW1lKCktPnNlbGVjdGlvbigpLT5kZXByZWNhdGVkU2V0U2VsZWN0aW9u
KG5ld1NlbGVjdGlvbik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIWZyYW1lKCktPmVkaXRv
cigpLT5zaG91bGRJbnNlcnRUZXh0KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIG1pc3NwZWxsaW5nUmFu
Z2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkKQEAgLTIzMjEsNyArMjMyMSw3IEBA
IHZvaWQgRWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3IKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGlmIChkb1JlcGxhY2VtZW50ICYmICFzaG91bGRTaG93Q29ycmVjdGlvblBh
bmVsICYmIHNlbGVjdGlvblRvUmVwbGFjZSAhPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0
aW9uKCkpIHsKICAgICAgICAgICAgICAgICBpZiAobV9mcmFtZS0+c2VsZWN0aW9uKCktPnNob3Vs
ZENoYW5nZVNlbGVjdGlvbihzZWxlY3Rpb25Ub1JlcGxhY2UpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oc2VsZWN0aW9uVG9SZXBsYWNl
KTsKKyAgICAgICAgICAgICAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPmRlcHJlY2F0ZWRT
ZXRTZWxlY3Rpb24oc2VsZWN0aW9uVG9SZXBsYWNlKTsKICAgICAgICAgICAgICAgICAgICAgc2Vs
ZWN0aW9uQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgZG9SZXBsYWNlbWVudCA9IGZhbHNlOwpAQCAtMjY1Myw3ICsyNjUzLDcgQEAg
dm9pZCBFZGl0b3I6OmFwcGx5Q29ycmVjdGlvblBhbmVsSW5mbyhibwogICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2VUb0JlUmVwbGFjZWQgPSBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9yYW5nZVRvQmVS
ZXBsYWNlZC0+Y2xvbmVSYW5nZShlYyk7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25U
b1JlcGxhY2UocmFuZ2VUb0JlUmVwbGFjZWQuZ2V0KCksIERPV05TVFJFQU0pOwogICAgIGlmICht
X2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKHNlbGVjdGlvblRvUmVw
bGFjZSkpIHsKLSAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxl
Y3Rpb25Ub1JlcGxhY2UpOworICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+ZGVwcmVjYXRl
ZFNldFNlbGVjdGlvbihzZWxlY3Rpb25Ub1JlcGxhY2UpOwogICAgICAgICByZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQobV9jb3JyZWN0aW9uUGFuZWxJbmZvLm1fcmVwbGFjZW1lbnRTdHJpbmcsIGZh
bHNlLCBmYWxzZSk7CiAgICAgICAgIGNhcmV0UG9zaXRpb24ubW92ZVRvT2Zmc2V0KGNhcmV0UG9z
aXRpb24ub2Zmc2V0SW5Db250YWluZXJOb2RlKCkgKyBtX2NvcnJlY3Rpb25QYW5lbEluZm8ubV9y
ZXBsYWNlbWVudFN0cmluZy5sZW5ndGgoKSAtIG1fY29ycmVjdGlvblBhbmVsSW5mby5tX3JlcGxh
Y2VkU3RyaW5nLmxlbmd0aCgpKTsKICAgICAgICAgc2V0RW5kKHBhcmFncmFwaFJhbmdlQ29udGFp
bmluZ0NvcnJlY3Rpb24uZ2V0KCksIGVuZE9mUGFyYWdyYXBoKGNhcmV0UG9zaXRpb24pKTsKQEAg
LTI3NjUsNyArMjc2NSw3IEBAIHZvaWQgRWRpdG9yOjp0cmFuc3Bvc2UoKQogICAgIGlmIChuZXdT
ZWxlY3Rpb24gIT0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNlbGVjdGlvbigpKSB7CiAgICAgICAg
IGlmICghbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxl
Y3Rpb24pKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24o
KS0+c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlv
bigpLT5kZXByZWNhdGVkU2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CiAgICAgfQogCiAgICAg
Ly8gSW5zZXJ0IHRoZSB0cmFuc3Bvc2VkIGNoYXJhY3RlcnMuCkBAIC0yOTQ0LDcgKzI5NDQsNyBA
QCB2b2lkIEVkaXRvcjo6Y2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kCiAgICAgLy8gU2VlIDxy
ZGFyOi8vcHJvYmxlbS81NzI5MzE1PiBTb21lIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2Ug
Y29udGFpbiBSYW5nZXMgZm9yIHNlbGVjdGlvbnMgdGhhdCBhcmUgbm8gbG9uZ2VyIHZhbGlkCiAg
ICAgYm9vbCBzZWxlY3Rpb25EaWROb3RDaGFuZ2VET01Qb3NpdGlvbiA9IG5ld1NlbGVjdGlvbiA9
PSBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCk7CiAgICAgaWYgKHNlbGVjdGlvbkRp
ZE5vdENoYW5nZURPTVBvc2l0aW9uIHx8IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zaG91bGRDaGFu
Z2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkt
PnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24sIGNsb3NlVHlwaW5nLCBjbGVhclR5cGluZ1N0eWxl
KTsKKyAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uLCBjbG9zZVR5cGluZywgY2xlYXJUeXBpbmdTdHlsZSk7CiAgICAgICAgIAog
ICAgIC8vIFNvbWUgZWRpdGluZyBvcGVyYXRpb25zIGNoYW5nZSB0aGUgc2VsZWN0aW9uIHZpc3Vh
bGx5IHdpdGhvdXQgYWZmZWN0aW5nIGl0cyBwb3NpdGlvbiB3aXRoaW4gdGhlIERPTS4KICAgICAv
LyBGb3IgZXhhbXBsZSB3aGVuIHlvdSBwcmVzcyByZXR1cm4gaW4gdGhlIGZvbGxvd2luZyAodGhl
IGNhcmV0IGlzIG1hcmtlZCBieSBeKTogCkBAIC0zMjcxLDcgKzMyNzEsNyBAQCBib29sIEVkaXRv
cjo6ZmluZFN0cmluZyhjb25zdCBTdHJpbmcmIHRhCiAgICAgaWYgKHJlc3VsdFJhbmdlLT5jb2xs
YXBzZWQoZXhjZXB0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9mcmFtZS0+
c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHJlc3VsdFJhbmdlLmdl
dCgpLCBET1dOU1RSRUFNKSk7CisgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPmRlcHJlY2F0ZWRT
ZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihyZXN1bHRSYW5nZS5nZXQoKSwgRE9XTlNUUkVB
TSkpOwogICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5yZXZlYWxTZWxlY3Rpb24oKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9u
IDcxNTU2KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDA2LDcgKzEwMDYsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlU3dhcFdpdGhNYXJr
KEZyYW1lKiBmCiAgICAgICAgIHN5c3RlbUJlZXAoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KLSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihtYXJrKTsKKyAgICBm
cmFtZS0+c2VsZWN0aW9uKCktPmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24obWFyayk7CiAgICAgZnJh
bWUtPmVkaXRvcigpLT5zZXRNYXJrKHNlbGVjdGlvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9Cklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3MTU1
NikKKysrIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODcsMzEgKzg3LDMxIEBAIFNlbGVjdGlvbkNvbnRyb2xsZXI6OlNlbGVjdGlvbkNv
bnRyb2xsZXIKIAogdm9pZCBTZWxlY3Rpb25Db250cm9sbGVyOjptb3ZlVG8oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uICZwb3MsIGJvb2wgdXNlclRyaWdnZXJlZCwgQ3Vyc29yQWxpZ25PblNjcm9sbCBh
bGlnbikKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2
YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCksIHBvcy5hZmZpbml0eSgpKSwgdHJ1ZSwgdHJ1
ZSwgdXNlclRyaWdnZXJlZCwgYWxpZ24pOworICAgIGRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24oVmlz
aWJsZVNlbGVjdGlvbihwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmRlZXBFcXVpdmFsZW50KCks
IHBvcy5hZmZpbml0eSgpKSwgdHJ1ZSwgdHJ1ZSwgdXNlclRyaWdnZXJlZCwgYWxpZ24pOwogfQog
CiB2b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vdmVUbyhjb25zdCBWaXNpYmxlUG9zaXRpb24g
JmJhc2UsIGNvbnN0IFZpc2libGVQb3NpdGlvbiAmZXh0ZW50LCBib29sIHVzZXJUcmlnZ2VyZWQp
CiB7Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oYmFzZS5kZWVwRXF1aXZhbGVu
dCgpLCBleHRlbnQuZGVlcEVxdWl2YWxlbnQoKSwgYmFzZS5hZmZpbml0eSgpKSwgdHJ1ZSwgdHJ1
ZSwgdXNlclRyaWdnZXJlZCk7CisgICAgZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2Vs
ZWN0aW9uKGJhc2UuZGVlcEVxdWl2YWxlbnQoKSwgZXh0ZW50LmRlZXBFcXVpdmFsZW50KCksIGJh
c2UuYWZmaW5pdHkoKSksIHRydWUsIHRydWUsIHVzZXJUcmlnZ2VyZWQpOwogfQogCiB2b2lkIFNl
bGVjdGlvbkNvbnRyb2xsZXI6Om1vdmVUbyhjb25zdCBQb3NpdGlvbiAmcG9zLCBFQWZmaW5pdHkg
YWZmaW5pdHksIGJvb2wgdXNlclRyaWdnZXJlZCkKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihwb3MsIGFmZmluaXR5KSwgdHJ1ZSwgdHJ1ZSwgdXNlclRyaWdnZXJlZCk7Cisg
ICAgZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcywgYWZmaW5pdHkp
LCB0cnVlLCB0cnVlLCB1c2VyVHJpZ2dlcmVkKTsKIH0KIAogdm9pZCBTZWxlY3Rpb25Db250cm9s
bGVyOjptb3ZlVG8oY29uc3QgUmFuZ2UgKnIsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCB1c2Vy
VHJpZ2dlcmVkKQogewogICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uID0gciA/IFZpc2li
bGVTZWxlY3Rpb24oci0+c3RhcnRQb3NpdGlvbigpLCByLT5lbmRQb3NpdGlvbigpLCBhZmZpbml0
eSkgOiBWaXNpYmxlU2VsZWN0aW9uKFBvc2l0aW9uKCksIFBvc2l0aW9uKCksIGFmZmluaXR5KTsK
LSAgICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCB0cnVlLCB0cnVlLCB1c2VyVHJpZ2dlcmVkKTsK
KyAgICBkZXByZWNhdGVkU2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgdHJ1ZSwgdHJ1ZSwgdXNlclRy
aWdnZXJlZCk7CiB9CiAKIHZvaWQgU2VsZWN0aW9uQ29udHJvbGxlcjo6bW92ZVRvKGNvbnN0IFBv
c2l0aW9uICZiYXNlLCBjb25zdCBQb3NpdGlvbiAmZXh0ZW50LCBFQWZmaW5pdHkgYWZmaW5pdHks
IGJvb2wgdXNlclRyaWdnZXJlZCkKIHsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlv
bihiYXNlLCBleHRlbnQsIGFmZmluaXR5KSwgdHJ1ZSwgdHJ1ZSwgdXNlclRyaWdnZXJlZCk7Cisg
ICAgZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKGJhc2UsIGV4dGVudCwg
YWZmaW5pdHkpLCB0cnVlLCB0cnVlLCB1c2VyVHJpZ2dlcmVkKTsKIH0KIAotdm9pZCBTZWxlY3Rp
b25Db250cm9sbGVyOjpzZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgcywgYm9v
bCBjbG9zZVR5cGluZywgYm9vbCBzaG91bGRDbGVhclR5cGluZ1N0eWxlLCBib29sIHVzZXJUcmln
Z2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFudWxhcml0eSBncmFudWxh
cml0eSwgRGlyZWN0aW9uYWxpdHlQb2xpY3kgZGlyZWN0aW9uYWxpdHlQb2xpY3kpCit2b2lkIFNl
bGVjdGlvbkNvbnRyb2xsZXI6OmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYgcywgYm9vbCBjbG9zZVR5cGluZywgYm9vbCBzaG91bGRDbGVhclR5cGluZ1N0eWxl
LCBib29sIHVzZXJUcmlnZ2VyZWQsIEN1cnNvckFsaWduT25TY3JvbGwgYWxpZ24sIFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSwgRGlyZWN0aW9uYWxpdHlQb2xpY3kgZGlyZWN0aW9uYWxpdHlQ
b2xpY3kpCiB7CiAgICAgbV9ncmFudWxhcml0eSA9IGdyYW51bGFyaXR5OwogCkBAIC0xMzgsNyAr
MTM4LDcgQEAgdm9pZCBTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRTZWxlY3Rpb24oYwogICAgIC8v
IDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ2ND46IEluZmluaXRl
IHJlY3Vyc2lvbiBhdCBTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRTZWxlY3Rpb24KICAgICAvLyBp
ZiBkb2N1bWVudC0+ZnJhbWUoKSA9PSBtX2ZyYW1lIHdlIGNhbiBnZXQgaW50byBhbiBpbmZpbml0
ZSBsb29wCiAgICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LT5mcmFtZSgpICYmIGRvY3VtZW50
LT5mcmFtZSgpICE9IG1fZnJhbWUgJiYgZG9jdW1lbnQgIT0gbV9mcmFtZS0+ZG9jdW1lbnQoKSkg
ewotICAgICAgICBkb2N1bWVudC0+ZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihz
LCBjbG9zZVR5cGluZywgc2hvdWxkQ2xlYXJUeXBpbmdTdHlsZSwgdXNlclRyaWdnZXJlZCk7Cisg
ICAgICAgIGRvY3VtZW50LT5mcmFtZSgpLT5zZWxlY3Rpb24oKS0+ZGVwcmVjYXRlZFNldFNlbGVj
dGlvbihzLCBjbG9zZVR5cGluZywgc2hvdWxkQ2xlYXJUeXBpbmdTdHlsZSwgdXNlclRyaWdnZXJl
ZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC0xODIsNiArMTgyLDE1IEBAIHZv
aWQgU2VsZWN0aW9uQ29udHJvbGxlcjo6c2V0U2VsZWN0aW9uKGMKICAgICBub3RpZnlBY2Nlc3Np
YmlsaXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCk7CiB9CiAKK3ZvaWQgU2VsZWN0aW9uQ29udHJvbGxl
cjo6c2V0U2VsZWN0aW9uV2l0aEV2ZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHMsIGJvb2wg
Y2xvc2VUeXBpbmcsIGJvb2wgc2hvdWxkQ2xlYXJUeXBpbmdTdHlsZSwgYm9vbCB1c2VyVHJpZ2dl
cmVkLCBDdXJzb3JBbGlnbk9uU2Nyb2xsIGFsaWduLCBUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHksIERpcmVjdGlvbmFsaXR5UG9saWN5IGRpcmVjdGlvbmFsaXR5UG9saWN5KQoreworICAgIGRl
cHJlY2F0ZWRTZXRTZWxlY3Rpb24ocywgY2xvc2VUeXBpbmcsIHNob3VsZENsZWFyVHlwaW5nU3R5
bGUsIHVzZXJUcmlnZ2VyZWQsIGFsaWduLCBncmFudWxhcml0eSwgZGlyZWN0aW9uYWxpdHlQb2xp
Y3kpOworI2lmIEVOQUJMRShTRUxFQ1RJT05DSEFOR0VfRVZFTlQpCisgICAgaWYgKG1fZnJhbWUg
JiYgbV9mcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGlz
cGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWxlY3Rpb25jaGFuZ2VFdmVu
dCwgZmFsc2UsIGZhbHNlKSk7CisjZW5kaWYKK30KKwogc3RhdGljIGJvb2wgcmVtb3ZpbmdOb2Rl
UmVtb3Zlc1Bvc2l0aW9uKE5vZGUqIG5vZGUsIGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbikKIHsK
ICAgICBpZiAoIXBvc2l0aW9uLm5vZGUoKSkKQEAgLTI0NSw3ICsyNTQsNyBAQCB2b2lkIFNlbGVj
dGlvbkNvbnRyb2xsZXI6Om5vZGVXaWxsQmVSZW1vCiAgICAgfQogCiAgICAgaWYgKGNsZWFyRE9N
VHJlZVNlbGVjdGlvbikKLSAgICAgICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oKSwg
ZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2Vs
ZWN0aW9uKCksIGZhbHNlLCBmYWxzZSk7CiB9CiAgICAgCiB2b2lkIFNlbGVjdGlvbkNvbnRyb2xs
ZXI6OnNldElzRGlyZWN0aW9uYWwoYm9vbCBpc0RpcmVjdGlvbmFsKQpAQCAtNjMxLDcgKzY0MCw3
IEBAIGJvb2wgU2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5KEVBbHRlcmEKIHsKICAgICBpZiAo
dXNlclRyaWdnZXJlZCkgewogICAgICAgICBTZWxlY3Rpb25Db250cm9sbGVyIHRyaWFsU2VsZWN0
aW9uQ29udHJvbGxlcjsKLSAgICAgICAgdHJpYWxTZWxlY3Rpb25Db250cm9sbGVyLnNldFNlbGVj
dGlvbihtX3NlbGVjdGlvbik7CisgICAgICAgIHRyaWFsU2VsZWN0aW9uQ29udHJvbGxlci5kZXBy
ZWNhdGVkU2V0U2VsZWN0aW9uKG1fc2VsZWN0aW9uKTsKICAgICAgICAgdHJpYWxTZWxlY3Rpb25D
b250cm9sbGVyLnNldElzRGlyZWN0aW9uYWwobV9pc0RpcmVjdGlvbmFsKTsKICAgICAgICAgdHJp
YWxTZWxlY3Rpb25Db250cm9sbGVyLm1vZGlmeShhbHRlciwgZGlyZWN0aW9uLCBncmFudWxhcml0
eSwgZmFsc2UpOwogCkBAIC03MzQsNyArNzQzLDcgQEAgYm9vbCBTZWxlY3Rpb25Db250cm9sbGVy
Ojptb2RpZnkoRUFsdGVyYQogCiAgICAgaWYgKHVzZXJUcmlnZ2VyZWQpIHsKICAgICAgICAgU2Vs
ZWN0aW9uQ29udHJvbGxlciB0cmlhbFNlbGVjdGlvbkNvbnRyb2xsZXI7Ci0gICAgICAgIHRyaWFs
U2VsZWN0aW9uQ29udHJvbGxlci5zZXRTZWxlY3Rpb24obV9zZWxlY3Rpb24pOworICAgICAgICB0
cmlhbFNlbGVjdGlvbkNvbnRyb2xsZXIuZGVwcmVjYXRlZFNldFNlbGVjdGlvbihtX3NlbGVjdGlv
bik7CiAgICAgICAgIHRyaWFsU2VsZWN0aW9uQ29udHJvbGxlci5zZXRJc0RpcmVjdGlvbmFsKG1f
aXNEaXJlY3Rpb25hbCk7CiAgICAgICAgIHRyaWFsU2VsZWN0aW9uQ29udHJvbGxlci5tb2RpZnko
YWx0ZXIsIHZlcnRpY2FsRGlzdGFuY2UsIGZhbHNlKTsKIApAQCAtODUyLDcgKzg2MSw3IEBAIGlu
dCBTZWxlY3Rpb25Db250cm9sbGVyOjp4UG9zRm9yVmVydGljYWwKIHZvaWQgU2VsZWN0aW9uQ29u
dHJvbGxlcjo6Y2xlYXIoKQogewogICAgIG1fZ3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxh
cml0eTsKLSAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbigpKTsKKyAgICBkZXByZWNh
dGVkU2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oKSk7CiB9CiAKIHZvaWQgU2VsZWN0aW9u
Q29udHJvbGxlcjo6c2V0U3RhcnQoY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwb3MsIGJvb2wgdXNl
clRyaWdnZXJlZCkKQEAgLTg3MywyMiArODgyLDIyIEBAIHZvaWQgU2VsZWN0aW9uQ29udHJvbGxl
cjo6c2V0RW5kKGNvbnN0IFYKIAogdm9pZCBTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRCYXNlKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBib29sIHVzZXJUcmlnZ2VyZWQpCiB7Ci0gICAgc2V0
U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocG9zLmRlZXBFcXVpdmFsZW50KCksIG1fc2VsZWN0
aW9uLmV4dGVudCgpLCBwb3MuYWZmaW5pdHkoKSksIHRydWUsIHRydWUsIHVzZXJUcmlnZ2VyZWQp
OworICAgIGRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihwb3MuZGVlcEVx
dWl2YWxlbnQoKSwgbV9zZWxlY3Rpb24uZXh0ZW50KCksIHBvcy5hZmZpbml0eSgpKSwgdHJ1ZSwg
dHJ1ZSwgdXNlclRyaWdnZXJlZCk7CiB9CiAKIHZvaWQgU2VsZWN0aW9uQ29udHJvbGxlcjo6c2V0
RXh0ZW50KGNvbnN0IFZpc2libGVQb3NpdGlvbiAmcG9zLCBib29sIHVzZXJUcmlnZ2VyZWQpCiB7
Ci0gICAgc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24obV9zZWxlY3Rpb24uYmFzZSgpLCBw
b3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCkpLCB0cnVlLCB0cnVlLCB1c2VyVHJp
Z2dlcmVkKTsKKyAgICBkZXByZWNhdGVkU2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24obV9z
ZWxlY3Rpb24uYmFzZSgpLCBwb3MuZGVlcEVxdWl2YWxlbnQoKSwgcG9zLmFmZmluaXR5KCkpLCB0
cnVlLCB0cnVlLCB1c2VyVHJpZ2dlcmVkKTsKIH0KIAogdm9pZCBTZWxlY3Rpb25Db250cm9sbGVy
OjpzZXRCYXNlKGNvbnN0IFBvc2l0aW9uICZwb3MsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCB1
c2VyVHJpZ2dlcmVkKQogewotICAgIHNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcywg
bV9zZWxlY3Rpb24uZXh0ZW50KCksIGFmZmluaXR5KSwgdHJ1ZSwgdHJ1ZSwgdXNlclRyaWdnZXJl
ZCk7CisgICAgZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcywgbV9z
ZWxlY3Rpb24uZXh0ZW50KCksIGFmZmluaXR5KSwgdHJ1ZSwgdHJ1ZSwgdXNlclRyaWdnZXJlZCk7
CiB9CiAKIHZvaWQgU2VsZWN0aW9uQ29udHJvbGxlcjo6c2V0RXh0ZW50KGNvbnN0IFBvc2l0aW9u
ICZwb3MsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCB1c2VyVHJpZ2dlcmVkKQogewotICAgIHNl
dFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKG1fc2VsZWN0aW9uLmJhc2UoKSwgcG9zLCBhZmZp
bml0eSksIHRydWUsIHRydWUsIHVzZXJUcmlnZ2VyZWQpOworICAgIGRlcHJlY2F0ZWRTZXRTZWxl
Y3Rpb24oVmlzaWJsZVNlbGVjdGlvbihtX3NlbGVjdGlvbi5iYXNlKCksIHBvcywgYWZmaW5pdHkp
LCB0cnVlLCB0cnVlLCB1c2VyVHJpZ2dlcmVkKTsKIH0KIAogdm9pZCBTZWxlY3Rpb25Db250cm9s
bGVyOjpzZXRDYXJldFJlY3ROZWVkc1VwZGF0ZShib29sIGZsYWcpCkBAIC0xMjQ4LDcgKzEyNTcs
NyBAQCB2b2lkIFNlbGVjdGlvbkNvbnRyb2xsZXI6OnNlbGVjdEZyYW1lRWxlCiAgICAgVmlzaWJs
ZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24oYmVmb3JlT3duZXJFbGVtZW50LCBhZnRlck93bmVyRWxl
bWVudCk7CiAgICAgaWYgKHBhcmVudC0+c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlv
bihuZXdTZWxlY3Rpb24pKSB7CiAgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRG
b2N1c2VkRnJhbWUocGFyZW50KTsKLSAgICAgICAgcGFyZW50LT5zZWxlY3Rpb24oKS0+c2V0U2Vs
ZWN0aW9uKG5ld1NlbGVjdGlvbik7CisgICAgICAgIHBhcmVudC0+c2VsZWN0aW9uKCktPmRlcHJl
Y2F0ZWRTZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKICAgICB9CiB9CiAKQEAgLTEyNzMsNyAr
MTI4Miw3IEBAIHZvaWQgU2VsZWN0aW9uQ29udHJvbGxlcjo6c2VsZWN0QWxsKCkKICAgICAgICAg
cmV0dXJuOwogICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rp
b246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShyb290KSk7CiAgICAgaWYgKHNob3VsZENo
YW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICBzZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uKTsKKyAgICAgICAgZGVwcmVjYXRlZFNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOwog
ICAgIHNlbGVjdEZyYW1lRWxlbWVudEluUGFyZW50SWZGdWxseVNlbGVjdGVkKCk7CiAgICAgbm90
aWZ5UmVuZGVyZXJPZlNlbGVjdGlvbkNoYW5nZSh0cnVlKTsKIH0KQEAgLTEzMTUsNyArMTMyNCw3
IEBAIGJvb2wgU2VsZWN0aW9uQ29udHJvbGxlcjo6c2V0U2VsZWN0ZWRSYW4KICAgICAvLyBGSVhN
RTogQ2FuIHdlIHByb3ZpZGUgZXh0ZW50QWZmaW5pdHk/CiAgICAgVmlzaWJsZVBvc2l0aW9uIHZp
c2libGVTdGFydChzdGFydENvbnRhaW5lciwgc3RhcnRPZmZzZXQsIGNvbGxhcHNlZCA/IGFmZmlu
aXR5IDogRE9XTlNUUkVBTSk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHZpc2libGVFbmQoZW5kQ29u
dGFpbmVyLCBlbmRPZmZzZXQsIFNFTF9ERUZBVUxUX0FGRklOSVRZKTsKLSAgICBzZXRTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbih2aXNpYmxlU3RhcnQsIHZpc2libGVFbmQpLCBjbG9zZVR5cGlu
Zyk7CisgICAgZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHZpc2libGVT
dGFydCwgdmlzaWJsZUVuZCksIGNsb3NlVHlwaW5nKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtMTY5OCw3ICsxNzA3LDcgQEAgdm9pZCBTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRTZWxlY3Rp
b25GcgogICAgIHdoaWxlIChub2RlICYmICFub2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQogICAg
ICAgICBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSgpOwogICAgIGlmIChub2RlKQotICAg
ICAgICBzZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihQb3NpdGlvbihub2RlLCAwKSwgRE9X
TlNUUkVBTSkpOworICAgICAgICBkZXByZWNhdGVkU2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rp
b24oUG9zaXRpb24obm9kZSwgMCksIERPV05TVFJFQU0pKTsKIH0KIAogYm9vbCBTZWxlY3Rpb25D
b250cm9sbGVyOjpzaG91bGRDaGFuZ2VTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
bmV3U2VsZWN0aW9uKSBjb25zdApJbmRleDogV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRy
b2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxl
ci5oCShyZXZpc2lvbiA3MTU1NikKKysrIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9s
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDEyICs2OCwxNCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBtb3ZlVG8oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYsIEVBZmZpbml0eSwgYm9v
bCB1c2VyVHJpZ2dlcmVkID0gZmFsc2UpOwogCiAgICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYg
c2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rpb247IH0KLSAgICB2b2lkIHNldFNl
bGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgYm9vbCBjbG9zZVR5cGluZyA9IHRydWUs
IGJvb2wgY2xlYXJUeXBpbmdTdHlsZSA9IHRydWUsIGJvb2wgdXNlclRyaWdnZXJlZCA9IGZhbHNl
LCBDdXJzb3JBbGlnbk9uU2Nyb2xsID0gQWxpZ25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBUZXh0
R3JhbnVsYXJpdHkgPSBDaGFyYWN0ZXJHcmFudWxhcml0eSwgRGlyZWN0aW9uYWxpdHlQb2xpY3kg
PSBNYWtlRGlyZWN0aW9uYWxTZWxlY3Rpb24pOwotICAgIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0
IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
LCBEaXJlY3Rpb25hbGl0eVBvbGljeSBkaXJlY3Rpb25hbGl0eSA9IE1ha2VEaXJlY3Rpb25hbFNl
bGVjdGlvbikgeyBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCB0cnVlLCB0cnVlLCBmYWxzZSwgQWxp
Z25DdXJzb3JPblNjcm9sbElmTmVlZGVkLCBncmFudWxhcml0eSwgZGlyZWN0aW9uYWxpdHkpOyB9
CisgICAgdm9pZCBkZXByZWNhdGVkU2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
LCBib29sIGNsb3NlVHlwaW5nID0gdHJ1ZSwgYm9vbCBjbGVhclR5cGluZ1N0eWxlID0gdHJ1ZSwg
Ym9vbCB1c2VyVHJpZ2dlcmVkID0gZmFsc2UsIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1
cnNvck9uU2Nyb2xsSWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFy
aXR5LCBEaXJlY3Rpb25hbGl0eVBvbGljeSA9IE1ha2VEaXJlY3Rpb25hbFNlbGVjdGlvbik7Cisg
ICAgdm9pZCBkZXByZWNhdGVkU2V0U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbiwgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBEaXJlY3Rpb25hbGl0eVBvbGlj
eSBkaXJlY3Rpb25hbGl0eSA9IE1ha2VEaXJlY3Rpb25hbFNlbGVjdGlvbikgeyBkZXByZWNhdGVk
U2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIEFsaWduQ3Vyc29yT25T
Y3JvbGxJZk5lZWRlZCwgZ3JhbnVsYXJpdHksIGRpcmVjdGlvbmFsaXR5KTsgfQorICAgIHZvaWQg
c2V0U2VsZWN0aW9uV2l0aEV2ZW50KGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBib29sIGNsb3Nl
VHlwaW5nID0gdHJ1ZSwgYm9vbCBjbGVhclR5cGluZ1N0eWxlID0gdHJ1ZSwgYm9vbCB1c2VyVHJp
Z2dlcmVkID0gZmFsc2UsIEN1cnNvckFsaWduT25TY3JvbGwgPSBBbGlnbkN1cnNvck9uU2Nyb2xs
SWZOZWVkZWQsIFRleHRHcmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5LCBEaXJlY3Rp
b25hbGl0eVBvbGljeSA9IE1ha2VEaXJlY3Rpb25hbFNlbGVjdGlvbik7CisgICAgdm9pZCBzZXRT
ZWxlY3Rpb25XaXRoRXZlbnQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIERpcmVjdGlvbmFsaXR5UG9saWN5IGRpcmVjdGlvbmFs
aXR5ID0gTWFrZURpcmVjdGlvbmFsU2VsZWN0aW9uKSB7IHNldFNlbGVjdGlvbldpdGhFdmVudChz
ZWxlY3Rpb24sIHRydWUsIHRydWUsIGZhbHNlLCBBbGlnbkN1cnNvck9uU2Nyb2xsSWZOZWVkZWQs
IGdyYW51bGFyaXR5LCBkaXJlY3Rpb25hbGl0eSk7IH0KICAgICBib29sIHNldFNlbGVjdGVkUmFu
Z2UoUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wgY2xvc2VUeXBpbmcpOwogICAgIHZvaWQgc2VsZWN0
QWxsKCk7CiAgICAgdm9pZCBjbGVhcigpOwotICAgIAorCiAgICAgLy8gQ2FsbCB0aGlzIGFmdGVy
IGRvaW5nIHVzZXItdHJpZ2dlcmVkIHNlbGVjdGlvbnMgdG8gbWFrZSBpdCBlYXN5IHRvIGRlbGV0
ZSB0aGUgZnJhbWUgeW91IGVudGlyZWx5IHNlbGVjdGVkLgogICAgIHZvaWQgc2VsZWN0RnJhbWVF
bGVtZW50SW5QYXJlbnRJZkZ1bGx5U2VsZWN0ZWQoKTsKIApJbmRleDogV2ViQ29yZS9lZGl0aW5n
L1R5cGluZ0NvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9UeXBpbmdD
b21tYW5kLmNwcAkocmV2aXNpb24gNzE1NTYpCisrKyBXZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFR5cGluZ0Nv
bW1hbmQ6Omluc2VydFRleHQoRG9jdW1lbnQqCiAgICAgICAgIGxhc3RUeXBpbmdDb21tYW5kLT5p
bnNlcnRUZXh0KG5ld1RleHQsIHNlbGVjdEluc2VydGVkVGV4dCk7CiAgICAgICAgIGlmIChjaGFu
Z2VTZWxlY3Rpb24pIHsKICAgICAgICAgICAgIGxhc3RUeXBpbmdDb21tYW5kLT5zZXRFbmRpbmdT
ZWxlY3Rpb24oY3VycmVudFNlbGVjdGlvbik7Ci0gICAgICAgICAgICBmcmFtZS0+c2VsZWN0aW9u
KCktPnNldFNlbGVjdGlvbihjdXJyZW50U2VsZWN0aW9uKTsKKyAgICAgICAgICAgIGZyYW1lLT5z
ZWxlY3Rpb24oKS0+ZGVwcmVjYXRlZFNldFNlbGVjdGlvbihjdXJyZW50U2VsZWN0aW9uKTsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQg
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChEb2N1bWVudCoKICAgICBhcHBseUNvbW1hbmQoY21k
KTsKICAgICBpZiAoY2hhbmdlU2VsZWN0aW9uKSB7CiAgICAgICAgIGNtZC0+c2V0RW5kaW5nU2Vs
ZWN0aW9uKGN1cnJlbnRTZWxlY3Rpb24pOwotICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNl
dFNlbGVjdGlvbihjdXJyZW50U2VsZWN0aW9uKTsKKyAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigp
LT5kZXByZWNhdGVkU2V0U2VsZWN0aW9uKGN1cnJlbnRTZWxlY3Rpb24pOwogICAgIH0KIH0KIApA
QCAtNDQzLDcgKzQ0Myw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6ZGVsZXRlS2V5UHJlc3NlZChU
ZXgKICAgICAgICAgbV9zbWFydERlbGV0ZSA9IGZhbHNlOwogCiAgICAgICAgIFNlbGVjdGlvbkNv
bnRyb2xsZXIgc2VsZWN0aW9uOwotICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKGVuZGlu
Z1NlbGVjdGlvbigpKTsKKyAgICAgICAgc2VsZWN0aW9uLmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24o
ZW5kaW5nU2VsZWN0aW9uKCkpOwogICAgICAgICBzZWxlY3Rpb24ubW9kaWZ5KFNlbGVjdGlvbkNv
bnRyb2xsZXI6OkFsdGVyYXRpb25FeHRlbmQsIFNlbGVjdGlvbkNvbnRyb2xsZXI6OkRpcmVjdGlv
bkJhY2t3YXJkLCBncmFudWxhcml0eSk7CiAgICAgICAgIGlmIChraWxsUmluZyAmJiBzZWxlY3Rp
b24uaXNDYXJldCgpICYmIGdyYW51bGFyaXR5ICE9IENoYXJhY3RlckdyYW51bGFyaXR5KQogICAg
ICAgICAgICAgc2VsZWN0aW9uLm1vZGlmeShTZWxlY3Rpb25Db250cm9sbGVyOjpBbHRlcmF0aW9u
RXh0ZW5kLCBTZWxlY3Rpb25Db250cm9sbGVyOjpEaXJlY3Rpb25CYWNrd2FyZCwgQ2hhcmFjdGVy
R3JhbnVsYXJpdHkpOwpAQCAtNTQwLDcgKzU0MCw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6Zm9y
d2FyZERlbGV0ZUtleVByZXMKICAgICAgICAgLy8gRG8gbm90aGluZyBpbiB0aGUgY2FzZSB0aGF0
IHRoZSBjYXJldCBpcyBhdCB0aGUgc3RhcnQgb2YgYQogICAgICAgICAvLyByb290IGVkaXRhYmxl
IGVsZW1lbnQgb3IgYXQgdGhlIHN0YXJ0IG9mIGEgZG9jdW1lbnQuCiAgICAgICAgIFNlbGVjdGlv
bkNvbnRyb2xsZXIgc2VsZWN0aW9uOwotICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKGVu
ZGluZ1NlbGVjdGlvbigpKTsKKyAgICAgICAgc2VsZWN0aW9uLmRlcHJlY2F0ZWRTZXRTZWxlY3Rp
b24oZW5kaW5nU2VsZWN0aW9uKCkpOwogICAgICAgICBzZWxlY3Rpb24ubW9kaWZ5KFNlbGVjdGlv
bkNvbnRyb2xsZXI6OkFsdGVyYXRpb25FeHRlbmQsIFNlbGVjdGlvbkNvbnRyb2xsZXI6OkRpcmVj
dGlvbkZvcndhcmQsIGdyYW51bGFyaXR5KTsKICAgICAgICAgaWYgKGtpbGxSaW5nICYmIHNlbGVj
dGlvbi5pc0NhcmV0KCkgJiYgZ3JhbnVsYXJpdHkgIT0gQ2hhcmFjdGVyR3JhbnVsYXJpdHkpCiAg
ICAgICAgICAgICBzZWxlY3Rpb24ubW9kaWZ5KFNlbGVjdGlvbkNvbnRyb2xsZXI6OkFsdGVyYXRp
b25FeHRlbmQsIFNlbGVjdGlvbkNvbnRyb2xsZXI6OkRpcmVjdGlvbkZvcndhcmQsIENoYXJhY3Rl
ckdyYW51bGFyaXR5KTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2aXNp
b24gNzE1NTYpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDYsNiArMjA2LDcgQEAgb25zZWVrZWQKIG9uc2Vla2luZwogb25zZWxlY3QK
IG9uc2VsZWN0c3RhcnQKK29uc2VsZWN0aW9uY2hhbmdlCiBvbndlYmtpdHNwZWVjaGNoYW5nZQog
b25zdGFsbGVkCiBvbnN0b3JhZ2UKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uY3BwCShyZXZpc2lvbiA3
MTU1NikKKysrIFdlYkNvcmUvcGFnZS9ET01TZWxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zOTYsNyArMzk2LDcgQEAgdm9pZCBET01TZWxlY3Rpb246OmFkZFJhbmdlKFJhbmdlKiByKQog
ICAgIFNlbGVjdGlvbkNvbnRyb2xsZXIqIHNlbGVjdGlvbiA9IG1fZnJhbWUtPnNlbGVjdGlvbigp
OwogCiAgICAgaWYgKHNlbGVjdGlvbi0+aXNOb25lKCkpIHsKLSAgICAgICAgc2VsZWN0aW9uLT5z
ZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihyKSk7CisgICAgICAgIHNlbGVjdGlvbi0+ZGVw
cmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHIpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtNDA3LDIwICs0MDcsMjAgQEAgdm9pZCBET01TZWxlY3Rpb246OmFkZFJh
bmdlKFJhbmdlKiByKQogICAgICAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdl
OjpTVEFSVF9UT19FTkQsIHJhbmdlLmdldCgpLCBlYykgPiAtMSkgewogICAgICAgICAgICAgaWYg
KHItPmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6RU5EX1RPX0VORCwgcmFuZ2UuZ2V0KCks
IGVjKSA9PSAtMSkKICAgICAgICAgICAgICAgICAvLyBUaGUgb3JpZ2luYWwgcmFuZ2UgYW5kIHIg
aW50ZXJzZWN0LgotICAgICAgICAgICAgICAgIHNlbGVjdGlvbi0+c2V0U2VsZWN0aW9uKFZpc2li
bGVTZWxlY3Rpb24oci0+c3RhcnRQb3NpdGlvbigpLCByYW5nZS0+ZW5kUG9zaXRpb24oKSwgRE9X
TlNUUkVBTSkpOworICAgICAgICAgICAgICAgIHNlbGVjdGlvbi0+ZGVwcmVjYXRlZFNldFNlbGVj
dGlvbihWaXNpYmxlU2VsZWN0aW9uKHItPnN0YXJ0UG9zaXRpb24oKSwgcmFuZ2UtPmVuZFBvc2l0
aW9uKCksIERPV05TVFJFQU0pKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAv
LyByIGNvbnRhaW5zIHRoZSBvcmlnaW5hbCByYW5nZS4KLSAgICAgICAgICAgICAgICBzZWxlY3Rp
b24tPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHIpKTsKKyAgICAgICAgICAgICAgICBz
ZWxlY3Rpb24tPmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihyKSk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IGRpc2Nv
bnRpZ3VvdXMgc2VsZWN0aW9uLiBXZSBkb24ndCBkbyBhbnl0aGluZyBpZiByIGFuZCByYW5nZSBk
b24ndCBpbnRlcnNlY3QuCiAgICAgICAgIGlmIChyLT5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFu
Z2U6OkVORF9UT19TVEFSVCwgcmFuZ2UuZ2V0KCksIGVjKSA8IDEpIHsKICAgICAgICAgICAgIGlm
IChyLT5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OkVORF9UT19FTkQsIHJhbmdlLmdldCgp
LCBlYykgPT0gLTEpCiAgICAgICAgICAgICAgICAgLy8gVGhlIG9yaWdpbmFsIHJhbmdlIGNvbnRh
aW5zIHIuCi0gICAgICAgICAgICAgICAgc2VsZWN0aW9uLT5zZXRTZWxlY3Rpb24oVmlzaWJsZVNl
bGVjdGlvbihyYW5nZS5nZXQoKSkpOworICAgICAgICAgICAgICAgIHNlbGVjdGlvbi0+ZGVwcmVj
YXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHJhbmdlLmdldCgpKSk7CiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgLy8gVGhlIG9yaWdpbmFsIHJhbmdlIGFuZCByIGlu
dGVyc2VjdC4KLSAgICAgICAgICAgICAgICBzZWxlY3Rpb24tPnNldFNlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uKHJhbmdlLT5zdGFydFBvc2l0aW9uKCksIHItPmVuZFBvc2l0aW9uKCksIERPV05T
VFJFQU0pKTsKKyAgICAgICAgICAgICAgICBzZWxlY3Rpb24tPmRlcHJlY2F0ZWRTZXRTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbihyYW5nZS0+c3RhcnRQb3NpdGlvbigpLCByLT5lbmRQb3NpdGlv
bigpLCBET1dOU1RSRUFNKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBXZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAJKHJldmlzaW9uIDcxNTU2KQorKysgV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI2LDcgKzMyNiw3IEBAIGJvb2wgRHJhZ0NvbnRy
b2xsZXI6OnRyeURvY3VtZW50RHJhZyhEcmEKICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGVs
ZW1lbnRVbmRlck1vdXNlKG1fZG9jdW1lbnRVbmRlck1vdXNlLmdldCgpLCBwb2ludCk7CiAgICAg
ICAgIGlmICghYXNGaWxlSW5wdXQoZWxlbWVudCkpIHsKICAgICAgICAgICAgIFZpc2libGVTZWxl
Y3Rpb24gZHJhZ0NhcmV0ID0gbV9kb2N1bWVudFVuZGVyTW91c2UtPmZyYW1lKCktPnZpc2libGVQ
b3NpdGlvbkZvclBvaW50KHBvaW50KTsKLSAgICAgICAgICAgIG1fcGFnZS0+ZHJhZ0NhcmV0Q29u
dHJvbGxlcigpLT5zZXRTZWxlY3Rpb24oZHJhZ0NhcmV0KTsKKyAgICAgICAgICAgIG1fcGFnZS0+
ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5kZXByZWNhdGVkU2V0U2VsZWN0aW9uKGRyYWdDYXJldCk7
CiAgICAgICAgIH0KIAogICAgICAgICBGcmFtZSogaW5uZXJGcmFtZSA9IGVsZW1lbnQtPmRvY3Vt
ZW50KCktPmZyYW1lKCk7CkBAIC0zNTUsMTAgKzM1NSwxMCBAQCBEcmFnT3BlcmF0aW9uIERyYWdD
b250cm9sbGVyOjpvcGVyYXRpb25GCiAKIHN0YXRpYyBib29sIHNldFNlbGVjdGlvblRvRHJhZ0Nh
cmV0KEZyYW1lKiBmcmFtZSwgVmlzaWJsZVNlbGVjdGlvbiYgZHJhZ0NhcmV0LCBSZWZQdHI8UmFu
Z2U+JiByYW5nZSwgY29uc3QgSW50UG9pbnQmIHBvaW50KQogewotICAgIGZyYW1lLT5zZWxlY3Rp
b24oKS0+c2V0U2VsZWN0aW9uKGRyYWdDYXJldCk7CisgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5k
ZXByZWNhdGVkU2V0U2VsZWN0aW9uKGRyYWdDYXJldCk7CiAgICAgaWYgKGZyYW1lLT5zZWxlY3Rp
b24oKS0+aXNOb25lKCkpIHsKICAgICAgICAgZHJhZ0NhcmV0ID0gZnJhbWUtPnZpc2libGVQb3Np
dGlvbkZvclBvaW50KHBvaW50KTsKLSAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxl
Y3Rpb24oZHJhZ0NhcmV0KTsKKyAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5kZXByZWNhdGVk
U2V0U2VsZWN0aW9uKGRyYWdDYXJldCk7CiAgICAgICAgIHJhbmdlID0gZHJhZ0NhcmV0LnRvTm9y
bWFsaXplZFJhbmdlKCk7CiAgICAgfQogICAgIHJldHVybiAhZnJhbWUtPnNlbGVjdGlvbigpLT5p
c05vbmUoKSAmJiBmcmFtZS0+c2VsZWN0aW9uKCktPmlzQ29udGVudEVkaXRhYmxlKCk7CkBAIC02
MTQsNyArNjE0LDcgQEAgc3RhdGljIHZvaWQgcHJlcGFyZUNsaXBib2FyZEZvckltYWdlRHJhZwog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHJhbmdlLT5zZWxlY3ROb2RlKG5vZGUsIGVj
KTsKICAgICBBU1NFUlQoIWVjKTsKLSAgICBzcmMtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24o
VmlzaWJsZVNlbGVjdGlvbihyYW5nZS5nZXQoKSwgRE9XTlNUUkVBTSkpOworICAgIHNyYy0+c2Vs
ZWN0aW9uKCktPmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihyYW5nZS5n
ZXQoKSwgRE9XTlNUUkVBTSkpOwogICAgIGNsaXBib2FyZC0+ZGVjbGFyZUFuZFdyaXRlRHJhZ0lt
YWdlKG5vZGUsICFsaW5rVVJMLmlzRW1wdHkoKSA/IGxpbmtVUkwgOiBpbWFnZVVSTCwgbGFiZWws
IHNyYyk7CiB9CiAKQEAgLTcyNyw3ICs3MjcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFy
dERyYWcoRnJhbWUqIHNyCiAgICAgICAgICAgICBQb3NpdGlvbiBwb3MgPSBzcmMtPnNlbGVjdGlv
bigpLT5iYXNlKCk7CiAgICAgICAgICAgICBOb2RlKiBub2RlID0gZW5jbG9zaW5nQW5jaG9yRWxl
bWVudChwb3MpOwogICAgICAgICAgICAgaWYgKG5vZGUpCi0gICAgICAgICAgICAgICAgc3JjLT5z
ZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21D
b250ZW50c09mTm9kZShub2RlKSk7CisgICAgICAgICAgICAgICAgc3JjLT5zZWxlY3Rpb24oKS0+
ZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29u
dGVudHNPZk5vZGUobm9kZSkpOwogICAgICAgICB9CiAKICAgICAgICAgbV9jbGllbnQtPndpbGxQ
ZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uTGluaywgZHJhZ09yaWdpbiwg
Y2xpcGJvYXJkKTsKQEAgLTgzNyw3ICs4MzcsNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpwbGFj
ZURyYWdDYXJldChjb25zCiAgICAgICAgIHJldHVybjsKICAgICBJbnRQb2ludCBmcmFtZVBvaW50
ID0gZnJhbWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKHdpbmRvd1BvaW50KTsKICAgICBWaXNpYmxl
U2VsZWN0aW9uIGRyYWdDYXJldChmcmFtZS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoZnJhbWVQ
b2ludCkpOwotICAgIG1fcGFnZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5zZXRTZWxlY3Rpb24o
ZHJhZ0NhcmV0KTsKKyAgICBtX3BhZ2UtPmRyYWdDYXJldENvbnRyb2xsZXIoKS0+ZGVwcmVjYXRl
ZFNldFNlbGVjdGlvbihkcmFnQ2FyZXQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gNzE1NTYpCisrKyBXZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb20KICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24o
bmV3U2VsZWN0aW9uKSkKLSAgICAgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxl
Y3Rpb24obmV3U2VsZWN0aW9uLCBncmFudWxhcml0eSwgTWFrZU5vbkRpcmVjdGlvbmFsU2VsZWN0
aW9uKTsKKyAgICAgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb25XaXRo
RXZlbnQobmV3U2VsZWN0aW9uLCBncmFudWxhcml0eSwgTWFrZU5vbkRpcmVjdGlvbmFsU2VsZWN0
aW9uKTsKICAgICB9CiB9CiAKQEAgLTI4OCw4ICsyODgsMTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OnNlbGVjdENsb3Nlc3RXb3JkT3JMaQogICAgICAgICAgICAgbV9iZWdhblNlbGVjdGluZ1RleHQg
PSB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5z
aG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkKLSAgICAgICAgICAgIG1fZnJhbWUt
PnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBncmFudWxhcml0eSwgTWFr
ZU5vbkRpcmVjdGlvbmFsU2VsZWN0aW9uKTsKKyAgICAgICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlv
bigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0aW9uKSkgeworICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+
c2V0U2VsZWN0aW9uV2l0aEV2ZW50KG5ld1NlbGVjdGlvbiwgZ3JhbnVsYXJpdHksIE1ha2VOb25E
aXJlY3Rpb25hbFNlbGVjdGlvbik7CisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTMzNCw3ICsz
MzYsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50CiAgICAgfQog
ICAgIAogICAgIGlmIChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9u
KG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rp
b24obmV3U2VsZWN0aW9uLCBncmFudWxhcml0eSwgTWFrZU5vbkRpcmVjdGlvbmFsU2VsZWN0aW9u
KTsKKyAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbldpdGhFdmVudChu
ZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBNYWtlTm9uRGlyZWN0aW9uYWxTZWxlY3Rpb24pOwog
CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC00MDEsNyArNDAzLDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudAogICAgICAgICBuZXdTZWxlY3Rpb24gPSBWaXNpYmxl
U2VsZWN0aW9uKHZpc2libGVQb3MpOwogICAgIAogICAgIGlmIChtX2ZyYW1lLT5zZWxlY3Rpb24o
KS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikpCi0gICAgICAgIG1fZnJhbWUt
PnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uLCBncmFudWxhcml0eSwgTWFr
ZU5vbkRpcmVjdGlvbmFsU2VsZWN0aW9uKTsKKyAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkt
PnNldFNlbGVjdGlvbldpdGhFdmVudChuZXdTZWxlY3Rpb24sIGdyYW51bGFyaXR5LCBNYWtlTm9u
RGlyZWN0aW9uYWxTZWxlY3Rpb24pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC02MzgsNyAr
NjQwLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdQogCiAgICAg
aWYgKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obmV3U2VsZWN0
aW9uKSkgewogICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0SXNEaXJlY3Rpb25hbChm
YWxzZSk7Ci0gICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2Vs
ZWN0aW9uLCBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+Z3JhbnVsYXJpdHkoKSwgTWFrZU5vbkRpcmVj
dGlvbmFsU2VsZWN0aW9uKTsKKyAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVj
dGlvbldpdGhFdmVudChuZXdTZWxlY3Rpb24sIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5ncmFudWxh
cml0eSgpLCBNYWtlTm9uRGlyZWN0aW9uYWxTZWxlY3Rpb24pOwogICAgIH0KIH0KICNlbmRpZiAv
LyBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtNzAxLDcgKzcwMyw3IEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmUKICAgICAgICAgICAgIG5ld1NlbGVjdGlvbiA9IFZp
c2libGVTZWxlY3Rpb24ocG9zKTsKICAgICAgICAgfQogICAgICAgICBpZiAobV9mcmFtZS0+c2Vs
ZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAgICAg
ICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAg
ICAgICAgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbldpdGhFdmVudChuZXdT
ZWxlY3Rpb24pOwogCiAgICAgICAgIGhhbmRsZWQgPSB0cnVlOwogICAgIH0KSW5kZXg6IFdlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3MTU1NikKKysrIFdlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODIsNyArMjgyLDcgQEAgYm9vbCBG
b2N1c0NvbnRyb2xsZXI6OmFkdmFuY2VGb2N1c0luRG9jdQogICAgIGlmIChjYXJldEJyb3dzaW5n
KSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKFBvc2l0aW9uKG5vZGUs
IDApLCBQb3NpdGlvbihub2RlLCAwKSwgRE9XTlNUUkVBTSk7CiAgICAgICAgIGlmIChmcmFtZS0+
c2VsZWN0aW9uKCktPnNob3VsZENoYW5nZVNlbGVjdGlvbihuZXdTZWxlY3Rpb24pKQotICAgICAg
ICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAg
ICAgICAgICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+ZGVwcmVjYXRlZFNldFNlbGVjdGlvbihuZXdT
ZWxlY3Rpb24pOwogICAgIH0KIAogICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKS0+Zm9j
dXMoZmFsc2UpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAko
cmV2aXNpb24gNzE1NTYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIHNldFNlbGVjdGlvblJh
bmdlKE5vZGUqIG5vZGUsIGludCBzCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBuZXdTZWxlY3Rpb24g
PSBWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTsKIAogICAgIGlm
IChGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLT5mcmFtZSgpKQotICAgICAgICBmcmFt
ZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihuZXdTZWxlY3Rpb24pOworICAgICAgICBmcmFt
ZS0+c2VsZWN0aW9uKCktPmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKIH0K
IAogUGFzc1JlZlB0cjxSYW5nZT4gUmVuZGVyVGV4dENvbnRyb2w6OnNlbGVjdGlvbihpbnQgc3Rh
cnQsIGludCBlbmQpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHAJKHJldmlzaW9uIDcxNTU2KQorKysgV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgU1ZHVGV4dENvbnRl
bnRFbGVtZW50OjpzZWxlY3RTdWJTdHIKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbmNo
YXJzOyArK2kpCiAgICAgICAgIGVuZCA9IGVuZC5uZXh0KCk7CiAKLSAgICBjb250cm9sbGVyLT5z
ZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgZW5kKSk7CisgICAgY29udHJvbGxl
ci0+ZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0LCBlbmQpKTsK
IH0KIAogdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0
dHJpYnV0ZSogYXR0cikKSW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTU3OSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMDggIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2VsZWN0aW9uIHRoYXQgZmlyZXMg
c2VsZWN0aW9uY2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00ODE1MQorCisgICAgICAgIEFkZGVkIHNlbGVjdGlvbi1jaGFuZ2UgZmxh
Zy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgor
CiAyMDEwLTExLTA4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KSW5kZXg6IFdlYktpdDIvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gNzE1NTYpCisrKyBXZWJL
aXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjQsNCArMTI0LDYgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBF
TkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9C
TE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5BQkxF
X0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9S
WV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJM
RV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBV
VF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUlVC
WSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0FO
SU1BVElPTikgJChFTkFCTEVfU1ZHX0FTX0lNQUdFKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklO
RElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfU1ZHX0ZPUkVJR05fT0JKRUNUKSAk
KEVOQUJMRV9TVkdfVVNFKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV01MKSAkKEVO
QUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVf
WFNMVCk7CitFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UID0gJChFTkFCTEVfU0VMRUNUSU9O
Q0hBTkdFX0VWRU5UXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CisKK0ZFQVRVUkVfREVGSU5FUyA9
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfM0RfQ0FOVkFTKSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0JMT0Ip
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBR1JJRCkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQ
TE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0VWRU5UU09VUkNFKSAkKEVOQUJM
RV9GSUxURVJTKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lN
QUdFX1JFU0laRVIpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQ
RUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTUFUSE1MKSAkKEVO
QUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9SVUJZKSAk
KEVOQUJMRV9TRUxFQ1RJT05DSEFOR0VfRVZFTlQpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAk
KEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFH
RSkgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dF
Ql9USU1JTkcpICQoRU5BQkxFX1dNTCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxN
UCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpJbmRleDogV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZp
c2lvbiA3MTU3OSkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMSBAQAorMjAxMC0xMS0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYSBuZXcgdmVyc2lvbiBvZiBzZXRTZWxlY3Rpb24gdGhhdCBmaXJlcyBzZWxlY3Rpb25jaGFu
Z2UgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ4MTUxCisKKyAgICAgICAgUmVuYW1lZCBTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRTZWxlY3Rp
b24gdG8gU2VsZWN0aW9uQ29udHJvbGxlcjo6ZGVwcmVjYXRlZFNldFNlbGVjdGlvbi4KKworICAg
ICAgICAqIHNyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0Ojpz
ZWxlY3RNaXNzcGVsbGVkV29yZCk6CisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6c2VsZWN0V29yZEFyb3VuZFBvc2l0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpmaW5kKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVJbXBsOjpzZXRGaW5kRW5kc3RhdGVGb2N1c0FuZFNlbGVjdGlvbik6CisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
dEZvY3VzKToKKwogMjAxMC0xMS0wOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDcxNTU2KQor
KysgV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjUsMTAgKzEyNSwxMCBAQCBzdGF0aWMgU3RyaW5nIHNlbGVjdE1pc3NwZWxs
ZWRXb3JkKGNvbnN0CiAgICAgLy8gSWYgbWlzc3BlbGxlZCB3b3JkIGlzIHN0aWxsIGVtcHR5LCB0
aGVuIHRoYXQgcG9ydGlvbiBzaG91bGQgbm90IGJlCiAgICAgLy8gc2VsZWN0ZWQuIFNldCB0aGUg
c2VsZWN0aW9uIHRvIHRoYXQgcG9zaXRpb24gb25seSwgYW5kIGRvIG5vdCBleHBhbmQuCiAgICAg
aWYgKG1pc3NwZWxsZWRXb3JkLmlzRW1wdHkoKSkKLSAgICAgICAgc2VsZWN0ZWRGcmFtZS0+c2Vs
ZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcykpOworICAgICAgICBz
ZWxlY3RlZEZyYW1lLT5zZWxlY3Rpb24oKS0+ZGVwcmVjYXRlZFNldFNlbGVjdGlvbihWaXNpYmxl
U2VsZWN0aW9uKHBvcykpOwogI2Vsc2UKICAgICAvLyBPbiBub24tTWFjLCByaWdodC1jbGljayBz
aG91bGQgbm90IG1ha2UgYSByYW5nZSBzZWxlY3Rpb24gaW4gYW55IGNhc2UuCi0gICAgc2VsZWN0
ZWRGcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHBvcykp
OworICAgIHNlbGVjdGVkRnJhbWUtPnNlbGVjdGlvbigpLT5kZXByZWNhdGVkU2V0U2VsZWN0aW9u
KFZpc2libGVTZWxlY3Rpb24ocG9zKSk7CiAjZW5kaWYKICAgICByZXR1cm4gbWlzc3BlbGxlZFdv
cmQ7CiB9CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCShyZXZpc2lvbiA3
MTU1NikKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTI1Niw3ICsxMjU2LDcgQEAgdm9pZCBXZWJGcmFtZUltcGw6OnNlbGVjdFdvcmRB
cm91bmRQb3NpdAogCiAgICAgaWYgKGZyYW1lLT5zZWxlY3Rpb24oKS0+c2hvdWxkQ2hhbmdlU2Vs
ZWN0aW9uKHNlbGVjdGlvbikpIHsKICAgICAgICAgVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5
ID0gc2VsZWN0aW9uLmlzUmFuZ2UoKSA/IFdvcmRHcmFudWxhcml0eSA6IENoYXJhY3RlckdyYW51
bGFyaXR5OwotICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxlY3Rp
b24sIGdyYW51bGFyaXR5KTsKKyAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigpLT5kZXByZWNhdGVk
U2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgZ3JhbnVsYXJpdHkpOwogICAgIH0KIH0KIApAQCAtMTM3
Nyw3ICsxMzc3LDcgQEAgYm9vbCBXZWJGcmFtZUltcGw6OmZpbmQoaW50IGlkZW50aWZpZXIsCiAg
ICAgYm9vbCBhY3RpdmVTZWxlY3Rpb24gPSAhc2VsZWN0aW9uLmlzTm9uZSgpOwogICAgIGlmICgh
YWN0aXZlU2VsZWN0aW9uICYmIG1fYWN0aXZlTWF0Y2gpIHsKICAgICAgICAgc2VsZWN0aW9uID0g
VmlzaWJsZVNlbGVjdGlvbihtX2FjdGl2ZU1hdGNoLmdldCgpKTsKLSAgICAgICAgZnJhbWUoKS0+
c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbihzZWxlY3Rpb24pOworICAgICAgICBmcmFtZSgpLT5z
ZWxlY3Rpb24oKS0+ZGVwcmVjYXRlZFNldFNlbGVjdGlvbihzZWxlY3Rpb24pOwogICAgIH0KIAog
ICAgIEFTU0VSVChmcmFtZSgpICYmIGZyYW1lKCktPnZpZXcoKSk7CkBAIC0yMDI4LDcgKzIwMjgs
NyBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6c2V0RmluZEVuZHN0YXRlRm9jdXNBCiAgICAgICAgIC8v
IHlvdSdsbCBoYXZlIHRoZSBsYXN0IHRoaW5nIHlvdSBmb3VuZCBoaWdobGlnaHRlZCkgYW5kIG1h
a2Ugc3VyZSB0aGF0CiAgICAgICAgIC8vIHdlIGhhdmUgbm90aGluZyBmb2N1c2VkIChvdGhlcndp
c2UgeW91IG1pZ2h0IGhhdmUgdGV4dCBzZWxlY3RlZCBidXQKICAgICAgICAgLy8gYSBsaW5rIGZv
Y3VzZWQsIHdoaWNoIGlzIHdlaXJkKS4KLSAgICAgICAgZnJhbWUoKS0+c2VsZWN0aW9uKCktPnNl
dFNlbGVjdGlvbihtX2FjdGl2ZU1hdGNoLmdldCgpKTsKKyAgICAgICAgZnJhbWUoKS0+c2VsZWN0
aW9uKCktPmRlcHJlY2F0ZWRTZXRTZWxlY3Rpb24obV9hY3RpdmVNYXRjaC5nZXQoKSk7CiAgICAg
ICAgIGZyYW1lKCktPmRvY3VtZW50KCktPnNldEZvY3VzZWROb2RlKDApOwogICAgIH0KIH0KSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA3MTU1NikKKysrIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg5
LDcgKzExODksNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRGb2N1cyhib29sIGVuYWJsZSkKICAg
ICAgICAgICAgICAgICAgICAgLy8gY2FyZXQgYmFjayB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0
ZXh0LgogICAgICAgICAgICAgICAgICAgICBQb3NpdGlvbiBwb3NpdGlvbihmb2N1c2VkTm9kZSwg
MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zaXRpb246OlBvc2l0
aW9uSXNPZmZzZXRJbkFuY2hvcik7Ci0gICAgICAgICAgICAgICAgICAgIGZvY3VzZWRGcmFtZS0+
c2VsZWN0aW9uKCktPnNldFNlbGVjdGlvbigKKyAgICAgICAgICAgICAgICAgICAgZm9jdXNlZEZy
YW1lLT5zZWxlY3Rpb24oKS0+ZGVwcmVjYXRlZFNldFNlbGVjdGlvbigKICAgICAgICAgICAgICAg
ICAgICAgICAgIFZpc2libGVTZWxlY3Rpb24ocG9zaXRpb24sIFNFTF9ERUZBVUxUX0FGRklOSVRZ
KSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpJbmRleDogV2ViS2l0L21hYy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcx
NTc5KQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
OCBAQAorMjAxMC0xMS0wOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdmVy
c2lvbiBvZiBzZXRTZWxlY3Rpb24gdGhhdCBmaXJlcyBzZWxlY3Rpb25jaGFuZ2UgZXZlbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MTUxCisKKyAg
ICAgICAgQWRkZWQgYSBzdXBwb3J0IGZvciBzZWxlY3Rpb24tY2hhbmdlIGZsYWcuIEFsc28gcmVu
YW1lZCBTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRTZWxlY3Rpb24gdG8KKyAgICAgICAgU2VsZWN0
aW9uQ29udHJvbGxlcjo6ZGVwcmVjYXRlZFNldFNlbGVjdGlvbi4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
RnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIF9yYW5nZUJ5QWx0ZXJpbmdDdXJyZW50U2Vs
ZWN0aW9uOlNlbGVjdGlvbkNvbnRyb2xsZXI6OmRpcmVjdGlvbjpTZWxlY3Rpb25Db250cm9sbGVy
OjpncmFudWxhcml0eTpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX3NlbGVjdE5TUmFuZ2U6XSk6
CisKIDIwMTAtMTEtMDggIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCBidWlsZCBmaXguCkluZGV4OiBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDcxNTU2KQorKysg
V2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2lu
ZyBjb3B5KQpAQCAtMTI0LDQgKzEyNCw2IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxFX1hQ
QVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVS
RV9ERUZJTkVTID0gJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKSAkKEVOQUJMRV8zRF9DQU5WQVMpICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChF
TkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFHUklEKSAk
KEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRVZFTlRTT1VS
Q0UpICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GVUxM
U0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSU1BR0VfUkVTSVpFUikgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5B
QkxFX1JVQlkpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxF
X1NWR19BTklNQVRJT04pICQoRU5BQkxFX1NWR19BU19JTUFHRSkgJChFTkFCTEVfU1ZHX0RPTV9P
QkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1NWR19GT1JFSUdOX09C
SkVDVCkgJChFTkFCTEVfU1ZHX1VTRSkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1dFQl9BVURJ
TykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dN
TCkgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQo
RU5BQkxFX1hTTFQpOworRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVCA9ICQoRU5BQkxFX1NF
TEVDVElPTkNIQU5HRV9FVkVOVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOworCitGRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFXzNEX0NBTlZBUykgJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJM
RV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUdSSUQpICQoRU5B
QkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVD
VE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9FVkVOVFNPVVJDRSkg
JChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVO
QUJMRV9JTUFHRV9SRVNJWkVSKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX01BVEhN
TCkgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9P
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVf
UlVCWSkgJChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKSAkKEVOQUJMRV9TSEFSRURfV09S
S0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfQU5JTUFUSU9OKSAkKEVOQUJMRV9TVkdf
QVNfSU1BR0UpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZP
TlRTKSAkKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpICQoRU5BQkxFX1NWR19VU0UpICQoRU5B
QkxFX1ZJREVPKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVO
QUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XTUwpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxF
X1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFdlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0JKHJldmlzaW9uIDcxNTU2KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MTQsNyArNzE0LDcgQEAgLSAoRE9NUmFuZ2UgKilf
cmFuZ2VCeUFsdGVyaW5nQ3VycmVudFNlbAogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgU2Vs
ZWN0aW9uQ29udHJvbGxlciBzZWxlY3Rpb247Ci0gICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbihf
cHJpdmF0ZS0+Y29yZUZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkpOworICAgIHNlbGVj
dGlvbi5kZXByZWNhdGVkU2V0U2VsZWN0aW9uKF9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVjdGlv
bigpLT5zZWxlY3Rpb24oKSk7CiAgICAgc2VsZWN0aW9uLm1vZGlmeShhbHRlcmF0aW9uLCBkaXJl
Y3Rpb24sIGdyYW51bGFyaXR5KTsKICAgICByZXR1cm4ga2l0KHNlbGVjdGlvbi50b05vcm1hbGl6
ZWRSYW5nZSgpLmdldCgpKTsKIH0KQEAgLTEwMTUsNyArMTAxNSw3IEBAIC0gKHZvaWQpX3NlbGVj
dE5TUmFuZ2U6KE5TUmFuZ2UpcmFuZ2UKIHsKICAgICBSZWZQdHI8UmFuZ2U+IGRvbVJhbmdlID0g
W3NlbGYgX2NvbnZlcnRUb0RPTVJhbmdlOnJhbmdlXTsKICAgICBpZiAoZG9tUmFuZ2UpCi0gICAg
ICAgIF9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihkb21SYW5nZS5nZXQoKSwgU0VMX0RFRkFVTFRfQUZGSU5JVFkpKTsKKyAgICAg
ICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9uKCktPmRlcHJlY2F0ZWRTZXRTZWxlY3Rp
b24oVmlzaWJsZVNlbGVjdGlvbihkb21SYW5nZS5nZXQoKSwgU0VMX0RFRkFVTFRfQUZGSU5JVFkp
KTsKIH0KIAogLSAoQk9PTClfaXNEaXNwbGF5aW5nU3RhbmRhbG9uZUltYWdlCkluZGV4OiBXZWJL
aXRMaWJyYXJpZXMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDcxNTc5KQorKysgV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTExLTA4ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIG5ldyB2ZXJzaW9uIG9mIHNldFNlbGVjdGlvbiB0aGF0IGZpcmVzIHNl
bGVjdGlvbmNoYW5nZSBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDgxNTEKKworICAgICAgICBBZGRlZCBzZWxlY3Rpb24tY2hhbmdlIGZsYWcu
CisKKyAgICAgICAgKiB3aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzOgor
ICAgICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wczoK
KwogMjAxMC0xMC0yOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAg
IFNub3cgTGVvcGFyZCBQb3dlclBDIGJ1aWxkIGZpeC4KSW5kZXg6IFdlYktpdExpYnJhcmllcy93
aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCShy
ZXZpc2lvbiA3MTU1NikKKysrIFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lcy52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQAogCT4KICAg
PFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlv
bnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9B
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0RBVEFC
QVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NU
T1JBR0UpOyQoRU5BQkxFX0VWRU5UU09VUkNFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9G
SUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9O
KTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lNQUdFX1JFU0laRVIpOyQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTUFUSE1MKTsk
KEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX09GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUyk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9SVUJZ
KTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfQU5J
TUFUSU9OKTskKEVOQUJMRV9TVkdfQVNfSU1BR0UpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpOyQo
RU5BQkxFX1NWR19VU0UpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChF
TkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV01MKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJM
RV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9D
SEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVO
QUJMRV9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5B
QkxFX0RPTV9TVE9SQUdFKTskKEVOQUJMRV9FVkVOVFNPVVJDRSk7JChFTkFCTEVfRklMVEVSUyk7
JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9H
RU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTUFHRV9SRVNJWkVS
KTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5B
QkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxF
X01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVO
QUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChF
TkFCTEVfUlVCWSk7JChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKTskKEVOQUJMRV9TSEFS
RURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfQU5JTUFUSU9OKTskKEVOQUJM
RV9TVkdfQVNfSU1BR0UpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVf
U1ZHX0ZPTlRTKTskKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpOyQoRU5BQkxFX1NWR19VU0Up
OyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlO
Ryk7JChFTkFCTEVfV01MKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVO
QUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNybwogCQlOYW1lPSJF
TkFCTEVfM0RfQ0FOVkFTIgpAQCAtMTYyLDYgKzE2MiwxMSBAQAogCQlQZXJmb3JtRW52aXJvbm1l
bnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybworCQlOYW1lPSJFTkFCTEVfU0VMRUNUSU9O
Q0hBTkdFX0VWRU5UIgorCQlWYWx1ZT0iRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVCIKKwkJ
UGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgorCS8+CisgIDxVc2VyTWFjcm8KIAkJTmFtZT0i
RU5BQkxFX1NWRyIKIAkJVmFsdWU9IkVOQUJMRV9TVkciCiAJCVBlcmZvcm1FbnZpcm9ubWVudFNl
dD0idHJ1ZSIKSW5kZXg6IFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJl
RGVmaW5lc0NhaXJvLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL3dpbi90
b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwkocmV2aXNpb24gNzE1NTYp
CisrKyBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWly
by52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5B
QkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTsk
KEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0RBVEFCQVNFKTskKEVO
QUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQo
RU5BQkxFX0VWRU5UU09VUkNFKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RF
TSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJM
RV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lNQUdFX1JFU0laRVIpOyQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJV
R0dFUik7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9N
RVRFUl9UQUcpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX09GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUyk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9SVUJZKTskKEVOQUJM
RV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfQU5JTUFUSU9OKTsk
KEVOQUJMRV9TVkdfQVNfSU1BR0UpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChF
TkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpOyQoRU5BQkxFX1NW
R19VU0UpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VC
X1RJTUlORyk7JChFTkFCTEVfV01MKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1Q
KTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nlc3NvckRlZmluaXRp
b25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9EQVRB
QkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0RPTV9T
VE9SQUdFKTskKEVOQUJMRV9FVkVOVFNPVVJDRSk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVf
RklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElP
Tik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTUFHRV9SRVNJWkVSKTskKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7
JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUlVC
WSk7JChFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UKTskKEVOQUJMRV9TSEFSRURfV09SS0VS
Uyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfQU5JTUFUSU9OKTskKEVOQUJMRV9TVkdfQVNf
SU1BR0UpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRT
KTskKEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QpOyQoRU5BQkxFX1NWR19VU0UpOyQoRU5BQkxF
X1ZJREVPKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFC
TEVfV01MKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFU
SCk7JChFTkFCTEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfM0Rf
Q0FOVkFTIgpAQCAtMTYyLDYgKzE2MiwxMSBAQAogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRy
dWUiCiAJLz4KICAgPFVzZXJNYWNybworCQlOYW1lPSJFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VW
RU5UIgorCQlWYWx1ZT0iRU5BQkxFX1NFTEVDVElPTkNIQU5HRV9FVkVOVCIKKwkJUGVyZm9ybUVu
dmlyb25tZW50U2V0PSJ0cnVlIgorCS8+CisgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX1NW
RyIKIAkJVmFsdWU9IkVOQUJMRV9TVkciCiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIK
SW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcxNTc5KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMTEtMDggIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGEgbmV3IHZlcnNpb24gb2Ygc2V0U2VsZWN0aW9uIHRoYXQgZmlyZXMgc2Vs
ZWN0aW9uY2hhbmdlIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00ODE1MQorCisgICAgICAgIEFkZGVkIHNlbGVjdGlvbi1jaGFuZ2UgZmxhZy4K
KworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OgorCiAyMDEwLTExLTA4ICBFcmljIFNl
aWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgpJbmRleDogV2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHJldmlzaW9uIDcxNTU2KQorKysgV2Vi
S2l0VG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4
LDcgQEAgbXkgKAogICAgICRvZmZsaW5lV2ViQXBwbGljYXRpb25TdXBwb3J0LAogICAgICRwcm9n
cmVzc1RhZ1N1cHBvcnQsCiAgICAgJHJ1YnlTdXBwb3J0LAorICAgICRzZWxlY3Rpb25jaGFuZ2VF
dmVudFN1cHBvcnQsCiAgICAgJHNoYXJlZFdvcmtlcnNTdXBwb3J0LAogICAgICRzdmdTdXBwb3J0
LAogICAgICRzdmdBbmltYXRpb25TdXBwb3J0LApAQCAtMjA0LDYgKzIwNSw5IEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAic3lzdGVtLW1hbGxvYyIsIGRlc2MgPT4gIlRvZ2ds
ZSBzeXN0ZW0gYWxsb2NhdG9yIGluc3RlYWQgb2YgVENtYWxsb2MiLAogICAgICAgZGVmaW5lID0+
ICJVU0VfU1lTVEVNX01BTExPQyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRzeXN0ZW1NYWxs
b2NTdXBwb3J0IH0sCiAKKyAgICB7IG9wdGlvbiA9PiAic2VsZWN0aW9uLWNoYW5nZSIsIGRlc2Mg
PT4gIlRvZ2dsZSBzZWxlY3Rpb24gY2hhbmdlIGV2ZW50IHN1cHBvcnQiLAorICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfU0VMRUNUSU9OQ0hBTkdFX0VWRU5UIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9
PiBcJHNlbGVjdGlvbmNoYW5nZUV2ZW50U3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gInNo
YXJlZC13b3JrZXJzIiwgZGVzYyA9PiAiVG9nZ2xlIFNoYXJlZFdvcmtlcnMgc3VwcG9ydCIsCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9TSEFSRURfV09SS0VSUyIsIGRlZmF1bHQgPT4gKGlzQXBw
bGVXZWJLaXQoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCRzaGFyZWRXb3JrZXJzU3VwcG9ydCB9
LAogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTU3OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEwLTExLTA4ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyB2ZXJzaW9uIG9mIHNldFNlbGVjdGlvbiB0aGF0IGZpcmVz
IHNlbGVjdGlvbmNoYW5nZSBldmVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDgxNTEKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gZW5zdXJlIFdl
YktpdCBmaXJlcyB0aGUgY29ycmVjdCBudW1iZXIgb2Ygc2VsZWN0aW9uY2hhbmdlIGV2ZW50cyBh
bmQKKyAgICAgICAgV2ViS2l0IGRvZXMgbm90IGNyYXNoIHdoZW4gRE9NIGlzIG1vZGlmaWVkIGlu
IHRoZSBldmVudCBoYW5kbGVyLgorICAgICAgICBUaGlzIHRlc3QgaXMgbm90IGVuYWJsZWQgaW4g
YW55IHBsYXRmb3JtIHNpbmNlIHRoZSBmZWF0dXJlIGlzIGJlaGluZCBzZWxlY3Rpb24tY2hhbmdl
IGZsYWcuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zZWxlY3Rpb25jaGFuZ2UtZXZlbnRoYW5k
bGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc2VsZWN0aW9u
Y2hhbmdlLWV2ZW50aGFuZGxlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0v
cXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMS0w
OCAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgYm90IGZpeC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVj
dGlvbmNoYW5nZS1ldmVudGhhbmRsZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NlbGVjdGlvbmNoYW5nZS1ldmVudGhhbmRsZXItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hh
bmdlLWV2ZW50aGFuZGxlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBA
QAorVGhpcyB0ZXN0IGVuc3VyZXMgdGhhdCBvbnNlbGVjdGlvbmNoYW5nZSBldmVudCBpcyBmaXJl
ZCBhcyBtYW55IHRpbWVzIGFzIGV4cGVjdGVkIGFuZCBtb2RpZnlpbmcgRE9NIGluIHRoZSBldmVu
dCBoYW5kbGVyIGRvZXMgbm90IGNyYXNoIFdlYktpdC4KKworUEFTUzogc2luZ2xlIGNsaWNraW5n
IGZpcnN0IHdvcmQgb2YgImhlbGxvIiB5aWVsZGVkIDEgc2VsZWN0aW9uY2hhbmdlIGV2ZW50cwor
UEFTUzogc2luZ2xlIGNsaWNraW5nIGZpcnN0IHdvcmQgb2YgImhlbGxvIiB5aWVsZGVkIDEgc2Vs
ZWN0aW9uY2hhbmdlIGV2ZW50cworUEFTUzogZG91YmxlIGNsaWNraW5nIGZpcnN0IHdvcmQgb2Yg
ImhlbGxvIiB5aWVsZGVkIDIgc2VsZWN0aW9uY2hhbmdlIGV2ZW50cworUEFTUzogdHJpcGxlIGNs
aWNraW5nIGZpcnN0IHdvcmQgb2YgImhlbGxvIiB5aWVsZGVkIDMgc2VsZWN0aW9uY2hhbmdlIGV2
ZW50cworUEFTUzogZHJhZ2dpbmcgdG8gc2VsZWN0IGFsbCBvZiAiYSBiIiB5aWVsZGVkIDIgc2Vs
ZWN0aW9uY2hhbmdlIGV2ZW50cworZHVtbXkgdGV4dAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zZWxlY3Rpb25jaGFuZ2UtZXZlbnRoYW5kbGVyLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50aGFuZGxlci5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdl
LWV2ZW50aGFuZGxlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlcyB0aGF0IG9uc2Vs
ZWN0aW9uY2hhbmdlIGV2ZW50IGlzIGZpcmVkIGFzIG1hbnkgdGltZXMgYXMgZXhwZWN0ZWQgYW5k
IG1vZGlmeWluZyBET00gaW4gdGhlIGV2ZW50IGhhbmRsZXIgZG9lcyBub3QgY3Jhc2ggV2ViS2l0
LjwvcD4KKzxwcmUgaWQ9ImNvbnNvbGUiPgorPC9wcmU+Cis8c2NyaXB0PgorCit2YXIgZHVtbXkg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2R1bW15LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCdkdW1teSB0ZXh0JykpCitkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGR1bW15KTsKK3ZhciB0ZXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cit0
ZXN0LmNvbnRlbnRlZGl0YWJsZSA9IHRydWU7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRl
c3QpOwordmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOwor
Cit2YXIgZXZlbnRDb3VudGVyID0gMDsKK3ZhciByZW1vdmVOb2RlcyA9IGZhbHNlOworZG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgZnVuY3Rpb24gKGV2ZW50KSB7
CisgICAgZXZlbnRDb3VudGVyKys7CisgICAgaWYgKHJlbW92ZU5vZGVzKSB7CisgICAgICAgIHdo
aWxlICh0ZXN0LmZpcnN0Q2hpbGQpCisgICAgICAgICAgICB0ZXN0LnJlbW92ZUNoaWxkKHRlc3Qu
Zmlyc3RDaGlsZCk7CisgICAgfQorfSwgZmFsc2UpOworCitmdW5jdGlvbiB0ZXN0U2VsZWN0aW9u
Q2hhbmdlRXZlbnQoY29udGVudCwgYWN0aW9uLCBleHBlY3RlZE51bWJlckV2ZW50cykgeworICAg
IHRlc3QuaW5uZXJIVE1MID0gY29udGVudDsKKyAgICByZW1vdmVOb2RlcyA9IGZhbHNlOworICAg
IGV2ZW50Q291bnRlciA9IDA7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENo
aWxkcmVuKGR1bW15LCAwKTsKKyAgICB2YXIgcmVzdWx0ID0gYWN0aW9uKHRlc3QpICsgJyBvZiAi
JyArIGNvbnRlbnQgKyAnIiB5aWVsZGVkICcgKyBldmVudENvdW50ZXIgKyAnIHNlbGVjdGlvbmNo
YW5nZSBldmVudHMnOworICAgIGlmIChldmVudENvdW50ZXIgPT0gZXhwZWN0ZWROdW1iZXJFdmVu
dHMpCisgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
J1BBU1M6ICcgKyByZXN1bHQgKyAnXG4nKSk7CisgICAgZWxzZQorICAgICAgICBjb25zb2xlLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdGQUlMOiAnICsgcmVzdWx0ICsgJyBi
dXQgZXhwZWN0ZWQgJyArIGV4cGVjdGVkTnVtYmVyRXZlbnRzICsgJyBldmVudHNcbicpKTsKK30K
KworZnVuY3Rpb24gY3JlYXRlQ2xpY2tBY3Rpb24oY291bnQsIG5hbWUsIGNsaWNrSW5TZWxlY3Rp
b24pIHsKKyAgICByZXR1cm4gZnVuY3Rpb24gKGNvbnRhaW5lcikgeworICAgICAgICBpZiAoY2xp
Y2tJblNlbGVjdGlvbikgeworICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVj
dEFsbENoaWxkcmVuKGNvbnRhaW5lcik7CisgICAgICAgICAgICBldmVudENvdW50ZXIgPSAwOwor
ICAgICAgICB9CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNvbnRhaW5lci5vZmZz
ZXRMZWZ0ICsgMTAsIGNvbnRhaW5lci5vZmZzZXRUb3AgKyA1KTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBjb3VudCAtIDE7IGkrKykgeworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxKTsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmxl
YXBGb3J3YXJkKDUwKTsKKyAgICAgICAgfQorICAgICAgICByZW1vdmVOb2RlcyA9IHRydWU7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5sZWFw
Rm9yd2FyZCgxKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICByZXR1
cm4gbmFtZSArICcgY2xpY2tpbmcgZmlyc3Qgd29yZCc7CisgICAgfQorfQorCitmdW5jdGlvbiBk
cmFnVG9TZWxlY3QoY29udGFpbmVyKSB7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY29u
dGFpbmVyLm9mZnNldExlZnQgKyA1LCBjb250YWluZXIub2Zmc2V0VG9wICsgNSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoNTApOwor
ICAgIHJlbW92ZU5vZGVzID0gdHJ1ZTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjb250
YWluZXIub2Zmc2V0TGVmdCArIDEwMCwgY29udGFpbmVyLm9mZnNldFRvcCArIDUpOworICAgIGV2
ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDUwKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgcmV0dXJuICdkcmFnZ2luZyB0byBzZWxlY3QgYWxsJzsKK30KKworaWYgKCF3aW5kb3cuZXZl
bnRTZW5kZXIgfHwgIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBjb25zb2xlLmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdUaGlzIHRlc3QgcmVxdWlyZXMgZXZl
bnRTZW5kZXIuJykpOworZWxzZSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgnaGVsbG8nLCBjcmVhdGVDbGlja0Fj
dGlvbigxLCAnc2luZ2xlJyksIDEpOyAvLyBoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGlj
aworICAgIHRlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgnaGVsbG8nLCBjcmVhdGVDbGlja0FjdGlv
bigxLCAnc2luZ2xlJywgdHJ1ZSksIDEpOyAvLyBoYW5kbGVNb3VzZVJlbGVhc2VFdmVudAorICAg
IHRlc3RTZWxlY3Rpb25DaGFuZ2VFdmVudCgnaGVsbG8nLCBjcmVhdGVDbGlja0FjdGlvbigyLCAn
ZG91YmxlJyksIDIpOyAvLyBzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50CisgICAgdGVz
dFNlbGVjdGlvbkNoYW5nZUV2ZW50KCdoZWxsbycsIGNyZWF0ZUNsaWNrQWN0aW9uKDMsICd0cmlw
bGUnKSwgMyk7IC8vIGhhbmRsZU1vdXNlUHJlc3NFdmVudFRyaXBsZUNsaWNrCisgICAgdGVzdFNl
bGVjdGlvbkNoYW5nZUV2ZW50KCdhIGInLCBkcmFnVG9TZWxlY3QsIDIpOyAvLyB1cGRhdGVTZWxl
Y3Rpb25Gb3JNb3VzZURyYWcKK30KKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CShyZXZpc2lvbiA3MTU1NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjExLDYgKzIxMSw4IEBA
IFdPTlRGSVggU0tJUCBNQUMgV0lOIDogcGxhdGZvcm0vY2hyb21pdW0KIC8vIFBhc3NlcyB3aXRo
IERSVCwgZmFpbHMgaW4gdGVzdF9zaGVsbC4KIEJVR1dLNDIxNTEgOiBmYXN0L2xvYWRlci9ub24t
ZGVmZXJyZWQtc3Vic3RpdHV0ZS1sb2FkLmh0bWwgPSBURVhUIFBBU1MKIAorQlVHV0s0NTcxMiBT
S0lQIDogZmFzdC9ldmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50aGFuZGxlci5odG1sID0gRkFJ
TAorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogLy8gV09OVEZJWCBURVNUUwogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA3MTU1NikKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC01NjUxLDYgKzU2NTEsOSBAQCBm
YXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWJhc2ljLmh0bWwKIGZhc3QvZG9tL25vZGVzRnJvbVJlY3Qt
bGlua3MtYW5kLXRleHQuaHRtbAogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVu
dHMuaHRtbAogCisjIHNlbGVjdGlvbmNoYW5nZSBldmVudCBpcyBub3QgZW5hYmxlZCB5ZXQuCitm
YXN0L2V2ZW50cy9zZWxlY3Rpb25jaGFuZ2UtZXZlbnRoYW5kbGVyLmh0bWwKKwogIyAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2NjQ0CiBmYXN0L3RleHQvbGFyZ2Ut
dGV4dC1jb21wb3NlZC1jaGFyLWRvcy5odG1sCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCShyZXZpc2lvbiA3MTU1NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
CSh3b3JraW5nIGNvcHkpCkBAIC0yNzQsNiArMjc0LDkgQEAgZmFzdC9pbWFnZXMvd2VicC1pbWFn
ZS1kZWNvZGluZy5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NzkwMQogZmFzdC9jYW52YXMvY2FudmFzLWdldEltYWdlRGF0YS1uZWdhdGl2ZS1zb3VyY2Uu
aHRtbAogCisjIHNlbGVjdGlvbmNoYW5nZSBldmVudCBpcyBub3QgZW5hYmxlZCB5ZXQuCitmYXN0
L2V2ZW50cy9zZWxlY3Rpb25jaGFuZ2UtZXZlbnRoYW5kbGVyLmh0bWwKKwogIyBUaW1lcyBvdXQg
YmVjYXVzZSBwbHVnaW5zIGFyZW4ndCBhbGxvd2VkIHRvIGV4ZWN1dGUgSlMgYWZ0ZXIgTlBQX0Rl
c3Ryb3kgaGFzIGJlZW4gY2FsbGVkIGluIFdlYktpdDEncyBPT1AgcGx1Z2lucyBpbXBsZW1lbnRh
dGlvbiBodHRwOi8vd2Via2l0Lm9yZy9iLzQ4OTI5CiBwbHVnaW5zL2V2YWx1YXRlLWpzLWFmdGVy
LXJlbW92aW5nLXBsdWdpbi1lbGVtZW50Lmh0bWwKIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCShyZXZpc2lvbiA3MTU1NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJ
KHdvcmtpbmcgY29weSkKQEAgLTUzNDgsNiArNTM0OCw5IEBAIGZhc3QvbWVkaWEvY29sb3ItZG9l
cy1ub3QtaW5jbHVkZS1hbHBoYS4KICMgUmVxdWlyZXMgV2ViUCBzdXBwb3J0LgogZmFzdC9pbWFn
ZXMvd2VicC1pbWFnZS1kZWNvZGluZy5odG1sCiAKKyMgc2VsZWN0aW9uY2hhbmdlIGV2ZW50IGlz
IG5vdCBlbmFibGVkIHlldC4KK2Zhc3QvZXZlbnRzL3NlbGVjdGlvbmNoYW5nZS1ldmVudGhhbmRs
ZXIuaHRtbAorCiAjIFtRdF0gRFJUIHNpZGVlZmZlY3QgcmV2ZWFsZWQgYnkgcjcxMjY4CiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODk1OAogc3ZnL2N1c3RvbS90
ZXh0LXpvb20ueGh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCShyZXZpc2lvbiA3
MTU1NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDYyLDYgKzEwNjIsOSBAQCBmYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJr
cy5odG1sCiAjIEZpbGVTeXN0ZW0gQVBJIGlzIG5vdCBzdXBwb3J0ZWQuCiBmYXN0L2ZpbGVzeXN0
ZW0KIAorIyBzZWxlY3Rpb25jaGFuZ2UgZXZlbnQgaXMgbm90IGVuYWJsZWQgeWV0LgorZmFzdC9l
dmVudHMvc2VsZWN0aW9uY2hhbmdlLWV2ZW50aGFuZGxlci5odG1sCisKICMgTGF5b3V0VGVzdENv
bnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QgaXMgbm90IHN1cHBvcnRlZC4KIGZhc3QvZG9tL25vZGVz
RnJvbVJlY3QtYmFzaWMuaHRtbAogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4
dC5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>