<?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>205368</bug_id>
          
          <creation_ts>2019-12-17 16:56:38 -0800</creation_ts>
          <short_desc>[Cocoa] Create a simulated crash log when the UI Process receives an invalid IPC message</short_desc>
          <delta_ts>2020-01-15 08:18:25 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1599632</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-12-17 16:56:38 -0800</bug_when>
    <thetext>Create a simulated crash log before the UI Process kills the WebContent or GPU processes.

&lt;rdar://problem/58024593&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599635</commentid>
    <comment_count>1</comment_count>
      <attachid>385930</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-12-17 17:24:59 -0800</bug_when>
    <thetext>Created attachment 385930
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599663</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-12-17 18:51:06 -0800</bug_when>
    <thetext>How can we be certain that this doesn’t change performance testing results?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599664</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-17 18:53:56 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #2)
&gt; How can we be certain that this doesn’t change performance testing results?

I may be missing something but why would the UIProcess kill a child process in the context of performance testing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599856</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-12-18 10:02:28 -0800</bug_when>
    <thetext>My question would be, why wouldn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599874</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-18 10:53:58 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #4)
&gt; My question would be, why wouldn&apos;t it?

Either you are misunderstanding the change or I am. If the UIProcess terminates a child process due to bad IPC, then either the WebContent process has been compromised or there is a bug causing us to send bad IPC (which we would need to fix ASAP since it would cause crashes for users).

There is no valid reason for this to be happening during performance testing. If there are ANY crashes during perf testing then the perf testing results will be bad no matter what.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599930</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-12-18 12:38:42 -0800</bug_when>
    <thetext>I constantly see these invalid messages on correctness tests, so I&apos;m not sure if they are actually important enough to get fixed immediately. They may be hit in scenarios that are not affecting correctness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599989</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-12-18 14:16:28 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #6)
&gt; I constantly see these invalid messages on correctness tests, so I&apos;m not
&gt; sure if they are actually important enough to get fixed immediately. They
&gt; may be hit in scenarios that are not affecting correctness.

Can you link to test results where this is happening?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600745</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-12-20 08:54:21 -0800</bug_when>
    <thetext>See e.g. bug 200191 that hasn&apos;t been looked at since July, or bug 194787 that took a month to be fixed. Or any other bug with &quot;Unhandled web process message&quot; in the title.

Also e-mailing you a recent example from internal testers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600877</commentid>
    <comment_count>9</comment_count>
      <attachid>385930</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-12-20 12:48:03 -0800</bug_when>
    <thetext>Comment on attachment 385930
Patch v1

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

&gt; Source/WTF/wtf/cocoa/CrashReporter.h:34
&gt; +WTF_EXPORT void simulateCrash(pid_t, mach_exception_data_type_t, const char* description);

It is exceptionally opaque that this function does nothing on macOS and Simulator, and that it’s desirable to keep it this way. I think that s a better  way to express this is to only expose the symbol on iOS, and to have ifdefs at call sites.

&gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:284
&gt; +    WTF::simulateCrash(connection.remoteProcessID(), kExceptionCode, logMessage.utf8().data());

Public WTF symbols are expected to have “using” in the header, so that prefix is unnecessary at call sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603647</commentid>
    <comment_count>10</comment_count>
      <attachid>385930</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-07 10:42:05 -0800</bug_when>
    <thetext>Comment on attachment 385930
Patch v1

Will post a new patch with suggested changes from Comment #9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603690</commentid>
    <comment_count>11</comment_count>
      <attachid>385930</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-01-07 11:41:46 -0800</bug_when>
    <thetext>Comment on attachment 385930
Patch v1

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

&gt;&gt; Source/WTF/wtf/cocoa/CrashReporter.h:34
&gt;&gt; +WTF_EXPORT void simulateCrash(pid_t, mach_exception_data_type_t, const char* description);
&gt; 
&gt; It is exceptionally opaque that this function does nothing on macOS and Simulator, and that it’s desirable to keep it this way. I think that s a better  way to express this is to only expose the symbol on iOS, and to have ifdefs at call sites.

Why don&apos;t we want to simulate a crash on macOS? It seems like that would be a useful thing to get data for, wouldn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606073</commentid>
    <comment_count>12</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-13 14:57:37 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #11)
&gt; Comment on attachment 385930 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=385930&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/cocoa/CrashReporter.h:34
&gt; &gt;&gt; +WTF_EXPORT void simulateCrash(pid_t, mach_exception_data_type_t, const char* description);
&gt; &gt; 
&gt; &gt; It is exceptionally opaque that this function does nothing on macOS and Simulator, and that it’s desirable to keep it this way. I think that s a better  way to express this is to only expose the symbol on iOS, and to have ifdefs at call sites.
&gt; 
&gt; Why don&apos;t we want to simulate a crash on macOS? It seems like that would be
&gt; a useful thing to get data for, wouldn&apos;t it?

macOS doesn&apos;t support this type of simulated crash, so we do NSLog() on that platform instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606141</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-13 16:49:54 -0800</bug_when>
    <thetext>Chris Dumez suggested using RELEASE_LOG_FAULT() to log, which has a side-effect of creating a simulated crash (for the UI process).  He didn&apos;t think that the stacks from the remote process would be that useful, and this avoids a possible race condition that Alexey pointed out between creating the simulated crash and killing the process (in the case of the WebContent and GPU processes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606145</commentid>
    <comment_count>14</comment_count>
      <attachid>387594</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-13 17:00:22 -0800</bug_when>
    <thetext>Created attachment 387594
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606405</commentid>
    <comment_count>15</comment_count>
      <attachid>387594</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-14 08:22:53 -0800</bug_when>
    <thetext>Comment on attachment 387594
Patch v2

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

&gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:276
&gt; +    RELEASE_LOG_FAULT(IPC, &quot;Received an invalid message &apos;%s::%s&apos; from the %s process.&quot;, messageReceiverName.toString().data(), messageName.toString().data(), processName().utf8().data());

Don&apos;t we need %{public}s ?

&gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.h:123
&gt; +    virtual String processName() const = 0;

Seems like this could return an ACSIILiteral</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606674</commentid>
    <comment_count>16</comment_count>
      <attachid>387594</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-14 16:25:04 -0800</bug_when>
    <thetext>Comment on attachment 387594
Patch v2

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

&gt;&gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:276
&gt;&gt; +    RELEASE_LOG_FAULT(IPC, &quot;Received an invalid message &apos;%s::%s&apos; from the %s process.&quot;, messageReceiverName.toString().data(), messageName.toString().data(), processName().utf8().data());
&gt; 
&gt; Don&apos;t we need %{public}s ?

Fixed.

&gt;&gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.h:123
&gt;&gt; +    virtual String processName() const = 0;
&gt; 
&gt; Seems like this could return an ACSIILiteral

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606682</commentid>
    <comment_count>17</comment_count>
      <attachid>387728</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-14 16:29:52 -0800</bug_when>
    <thetext>Created attachment 387728
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606683</commentid>
    <comment_count>18</comment_count>
      <attachid>387728</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-01-14 16:33:01 -0800</bug_when>
    <thetext>Comment on attachment 387728
Patch v3

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

&gt; Source/WebKit/ChangeLog:3
&gt; +        [Cocoa] Create a simulated crash log when the UI Process receives an invalid CoreIPC message

Is this something that happens a lot? Are there known cases?

Simulated crashes have historically hurt us in terms of our ability to perf test. I just want to make sure we&apos;re not knowingly hitting this code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606685</commentid>
    <comment_count>19</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-14 16:39:04 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #18)
&gt; Comment on attachment 387728 [details]
&gt; Patch v3
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=387728&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:3
&gt; &gt; +        [Cocoa] Create a simulated crash log when the UI Process receives an invalid CoreIPC message
&gt; 
&gt; Is this something that happens a lot? Are there known cases?
&gt; 
&gt; Simulated crashes have historically hurt us in terms of our ability to perf
&gt; test. I just want to make sure we&apos;re not knowingly hitting this code

It should never happen.  This code will only run if a com.apple.WebKit.* process sends an invalid CoreIPC message to the UI Process.  For the WebContent and GPU processes, that will result in killing these processes (which happens without this patch), which means perf testing will Have A Bad Time regardless of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606702</commentid>
    <comment_count>20</comment_count>
      <attachid>387728</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-01-14 16:58:07 -0800</bug_when>
    <thetext>Comment on attachment 387728
Patch v3

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606916</commentid>
    <comment_count>21</comment_count>
      <attachid>387728</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-01-15 07:33:19 -0800</bug_when>
    <thetext>Comment on attachment 387728
Patch v3

All code changes are in WebKit2, so this can&apos;t possibly affect mac-debug-wk1 tests (which still haven&apos;t run yet).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606928</commentid>
    <comment_count>22</comment_count>
      <attachid>387728</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-15 08:18:22 -0800</bug_when>
    <thetext>Comment on attachment 387728
Patch v3

Clearing flags on attachment: 387728

Committed r254569: &lt;https://trac.webkit.org/changeset/254569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606929</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-15 08:18:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385930</attachid>
            <date>2019-12-17 17:24:59 -0800</date>
            <delta_ts>2020-01-13 17:00:20 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-205368-20191217172458.patch</filename>
            <type>text/plain</type>
            <size>29735</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRiYThlMGE3YjE3NDYwMTA3N2U2NTNi
ZmVmZmRhMWVlNDM4YjRjYWQuLjBkNmFiYWM1YTYxNDRkOWY4NzFiOGM3M2ZjYmM0NGM1NTM3NTYy
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTktMTItMTcgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIENyZWF0ZSBhIHNpbXVsYXRlZCBjcmFz
aCBsb2cgYmVmb3JlIHRoZSBVSSBQcm9jZXNzIGtpbGxzIHRoZSBXZWJDb250ZW50IG9yIEdQVSBw
cm9jZXNzZXMKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIwNTM2OD4KKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzU4MDI0NTkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgIC0gVXBkYXRlIGZvciByZW5hbWUgYW5kIG5ldyBmaWxlcy4KKyAgICAgICAgKiB3dGYvY29j
b2EvQ3Jhc2hSZXBvcnRlci5oOgorICAgICAgICAoV1RGOjpzaW11bGF0ZUNyYXNoKToKKyAgICAg
ICAgLSBBZGQgZnVuY3Rpb24gZGVjbGFyYXRpb24uCisgICAgICAgICogd3RmL2NvY29hL0NyYXNo
UmVwb3J0ZXIubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9DcmFzaFJlcG9y
dGVyLmNwcC4KKyAgICAgICAgKFdURjo6c2ltdWxhdGVDcmFzaCk6CisgICAgICAgIC0gQWRkIGZ1
bmN0aW9uIGltcGxlbWVudGF0aW9uLgorICAgICAgICAqIHd0Zi9jb2NvYS9DcmFzaFJlcG9ydGVy
U3VwcG9ydFNQSS5oOiBBZGQuCisgICAgICAgICogd3RmL2NvY29hL0NyYXNoUmVwb3J0ZXJTdXBw
b3J0U29mdExpbmsuaDogQWRkLgorICAgICAgICAqIHd0Zi9jb2NvYS9DcmFzaFJlcG9ydGVyU3Vw
cG9ydFNvZnRMaW5rLm1tOiBBZGQuCisgICAgICAgIC0gVGhlc2UgZmlsZXMgd2VyZSBwdWxsZWQg
b3V0IG9mIG1vdGhiYWxscyBmcm9tIHIyMTgzNzAuCisKIDIwMTktMTItMTMgIFNhYW0gQmFyYXRp
ICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgSGVhcDo6ZmluYWxpemUgZnVu
Y3Rpb24gdGhhdCB0YWtlcyBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWZjM2E5
Y2FkZDZlNTY3NTUyYTk5Mzk0NzEzMmZlNGViMjc2MjA5NS4uYTdhMzY4YTdlN2U0N2NkM2ZmNzg2
MzA0MjY4ZThmOGMzYWU4Y2ZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxOS0xMi0x
NyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0g
Q3JlYXRlIGEgc2ltdWxhdGVkIGNyYXNoIGxvZyBiZWZvcmUgdGhlIFVJIFByb2Nlc3Mga2lsbHMg
dGhlIFdlYkNvbnRlbnQgb3IgR1BVIHByb2Nlc3NlcworICAgICAgICA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMjA1MzY4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwMjQ1OTM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vz
c1Byb3h5Ojpsb2dJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgIC0gRXh0cmFjdCBjb21tb24gbG9n
Z2luZyBjb2RlIHRvIG5ldyBtZXRob2QgdGhhdCBhbHNvIGNhbGxzCisgICAgICAgICAgV1RGOjpz
aW11bGF0ZUNyYXNoKCkgb24gQ29jb2EgcGxhdGZvcm1zLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
dXhpbGlhcnlQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vz
c1Byb3h5Ojpsb2dJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVBy
b2Nlc3NQcm94eTo6cHJvY2Vzc05hbWUpOgorICAgICAgICAtIEFkZCBtZXRob2QgZGVjbGFyYXRp
b25zLgorCisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6
CisgICAgICAgIC0gVXNlIG5ldyBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmxvZ0ludmFsaWRNZXNz
YWdlKCkuCisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzTmFtZSBjb25zdCk6CisgICAgICAg
IC0gQWRkIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojpwcm9jZXNzTmFtZSBjb25zdCk6CisgICAgICAgIC0gQWRkIGltcGxlbWVudGF0aW9uLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6cHJvY2Vzc05hbWUgY29uc3QpOgorICAgICAg
ICAtIEFkZCBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZSk6CisgICAgICAgIC0gVXNlIG5ldyBBdXhpbGlhcnlQcm9jZXNzUHJveHk6
OmxvZ0ludmFsaWRNZXNzYWdlKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NOYW1lIGNvbnN0
KToKKyAgICAgICAgLSBBZGQgaW1wbGVtZW50YXRpb24uCisKIDIwMTktMTItMTYgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgU2FmZUJyb3dzaW5n
UmVzdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ZThl
YzE1OWE3MTQ0ZjYxYWQ1ODBlNTYwNWVjNDI3ZTY5YzM5ODhlLi5iNWU4YWU0NDc5MjA2NmU1NzNh
YTg2M2FmZTUzN2M0Y2ZlY2NlMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTYxLDYgKzYxLDcgQEAKIAkJMkNERUQwRjMxODExNUM4NTAwNERCQTcwIC8q
IFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkNERUQwRjExODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuY3BwICovOyB9OwogCQkzMzM3
REI5Q0U3NDM0MTBGQUYwNzZFMTcgLyogU3RhY2tUcmFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTNFREVDOTc3OEU0OUM5QkVBOTFDRkMgLyog
U3RhY2tUcmFjZS5jcHAgKi87IH07CiAJCTQ0MjdDNUFBMjFGNkQ2QzMwMEE2MTJBNCAvKiBBU0NJ
SUNUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ0MjdDNUE5MjFGNkQ2QzMwMEE2MTJBNCAvKiBBU0NJSUNUeXBlLmNwcCAqLzsgfTsKKwkJNDQ1
RjRBODYyM0E5NzIzRjAwMEY3MDg3IC8qIENyYXNoUmVwb3J0ZXJTdXBwb3J0U29mdExpbmsubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDVGNEE4NTIz
QTk3MjNGMDAwRjcwODcgLyogQ3Jhc2hSZXBvcnRlclN1cHBvcnRTb2Z0TGluay5tbSAqLzsgfTsK
IAkJNDZCRUI2RUIyMkZGRTI0OTAwMjY5ODY3IC8qIFJlZkNvdW50ZWQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZCRUI2RTkyMkZGRERENTAwMjY5
ODY3IC8qIFJlZkNvdW50ZWQuY3BwICovOyB9OwogCQk1MERFMzVGNTIxNUJCMDE1MDBCOTc5Qzcg
LyogRXh0ZXJuYWxTdHJpbmdJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUwREUzNUYzMjE1QkIwMTUwMEI5NzlDNyAvKiBFeHRlcm5hbFN0cmlu
Z0ltcGwuY3BwICovOyB9OwogCQk1MTVGNzk0RTFDRkM5RjRBMDBDQ0VEOTMgLyogQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE1Rjc5NEIxQ0ZDOUY0QTAwQ0NFRDkzIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAqLzsg
fTsKQEAgLTE1OCw3ICsxNTksNyBAQAogCQlDMkJDRkM1NTFGNjIxRjNGMDBDOTIyMkMgLyogTGlu
ZUVuZGluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMkJDRkM1MzFGNjIxRjNGMDBDOTIyMkMgLyogTGluZUVuZGluZy5jcHAgKi87IH07CiAJCUM4
MDVFRjM5RTVGMTQ0ODFBOTZEMzlGQyAvKiBBU0NJSUxpdGVyYWwuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGMDUwNzkwRDlDNDMyQTk5MDg1RTc1
IC8qIEFTQ0lJTGl0ZXJhbC5jcHAgKi87IH07CiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87IH07Ci0J
CUNFQTA3MkFBMjM2RkZCRjcwMDE4ODM5QyAvKiBDcmFzaFJlcG9ydGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQTA3MkE5MjM2RkZCRjcwMDE4
ODM5QyAvKiBDcmFzaFJlcG9ydGVyLmNwcCAqLzsgfTsKKwkJQ0VBMDcyQUEyMzZGRkJGNzAwMTg4
MzlDIC8qIENyYXNoUmVwb3J0ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRUEwNzJBOTIzNkZGQkY3MDAxODgzOUMgLyogQ3Jhc2hSZXBvcnRlci5t
bSAqLzsgfTsKIAkJRENFRTIyMDExQ0VBNzU1MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlv
bnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VF
MjFGRDFDRUE3NTUxMDAwQzIzOTYgLyogQmxvY2tPYmpDRXhjZXB0aW9ucy5tbSAqLzsgfTsKIAkJ
RTE1NTU2RjUxOEEwQ0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1NTU2RjMxOEEw
Q0MxODAwNkY0OEZCIC8qIENyeXB0b2dyYXBoaWNVdGlsaXRpZXMuY3BwICovOyB9OwogCQlFMzEx
RkIxNzFGMEE1NjhCMDAzQzA4REUgLyogVGhyZWFkR3JvdXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMxMUZCMTUxRjBBNTY4QjAwM0MwOERFIC8q
IFRocmVhZEdyb3VwLmNwcCAqLzsgfTsKQEAgLTM0NSw2ICszNDYsOSBAQAogCQk0MTNGRThGNTFG
OEQyRUFCMDBGNkQ3RDcgLyogQ2FsbGJhY2tBZ2dyZWdhdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENhbGxiYWNrQWdncmVnYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MzBCNDc4NzFBQUFBQzFBMDAxMjIzREEgLyogU3RyaW5nQ29tbW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ0NvbW1vbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NDI3QzVBOTIxRjZENkMzMDBBNjEyQTQgLyogQVNDSUlDVHlw
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBU0NJSUNUeXBlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1RjRBODMyM0E5NzIzRjAwMEY3MDg3
IC8qIENyYXNoUmVwb3J0ZXJTdXBwb3J0U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3Jhc2hSZXBvcnRlclN1cHBvcnRTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0NDVGNEE4NDIzQTk3MjNGMDAwRjcwODcgLyogQ3Jhc2hSZXBvcnRl
clN1cHBvcnRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jhc2hSZXBv
cnRlclN1cHBvcnRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQ1RjRBODUy
M0E5NzIzRjAwMEY3MDg3IC8qIENyYXNoUmVwb3J0ZXJTdXBwb3J0U29mdExpbmsubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDcmFzaFJlcG9ydGVyU3VwcG9ydFNv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJBOUVBQjFGNENENjFF
MDA5QTJCQkMgLyogQ29tcGxldGlvbkhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ29tcGxldGlvbkhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDZCRUI2RTkyMkZGRERENTAwMjY5ODY3IC8qIFJlZkNvdW50ZWQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVmQ291bnRlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUw
REUzNUYzMjE1QkIwMTUwMEI5NzlDNyAvKiBFeHRlcm5hbFN0cmluZ0ltcGwuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZXJuYWxTdHJpbmdJbXBsLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1Niw3ICs2NjAsNyBAQAogCQlDRTczRTAyNDE5
RENCN0FCMDA1ODBENUMgLyogWFBDU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFhQQ1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRUEwNzJBNzIzNkZG
QTE2MDAxODgzOUMgLyogQ3Jhc2hSZXBvcnRlckNsaWVudFNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDcmFzaFJlcG9ydGVyQ2xpZW50U1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNFQTA3MkE4MjM2RkZCRjcwMDE4ODM5QyAvKiBDcmFzaFJlcG9ydGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENyYXNoUmVwb3J0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQ0VBMDcyQTkyMzZGRkJGNzAwMTg4MzlDIC8qIENyYXNoUmVwb3J0ZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ3Jhc2hSZXBvcnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNFQTA3MkE5MjM2RkZCRjcwMDE4ODM5QyAvKiBDcmFzaFJlcG9ydGVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQ3Jhc2hSZXBvcnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRENFRTIxRkExQ0VBNzUzODAwMEMyMzk2IC8qIENGQnVuZGxlU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENGQnVuZGxlU1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURDRUUyMUZDMUNFQTc1NTEwMDBDMjM5NiAvKiBCbG9ja09iakNF
eGNlcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NrT2JqQ0V4
Y2VwdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIxRkQxQ0VBNzU1
MTAwMEMyMzk2IC8qIEJsb2NrT2JqQ0V4Y2VwdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBCbG9ja09iakNFeGNlcHRpb25zLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQzMyw4ICsxNDM3LDExIEBACiAJCQljaGlsZHJlbiA9ICgKIAkJ
CQkxNDY5NDE5QjE2RUFCMTBBMDAyNEUxNDYgLyogQXV0b2RyYWluZWRQb29sLmNwcCAqLywKIAkJ
CQlFMzhDNDEyNDFFQjRFMDRDMDA0Mjk1N0QgLyogQ1BVVGltZUNvY29hLmNwcCAqLywKLQkJCQlD
RUEwNzJBOTIzNkZGQkY3MDAxODgzOUMgLyogQ3Jhc2hSZXBvcnRlci5jcHAgKi8sCiAJCQkJQ0VB
MDcyQTgyMzZGRkJGNzAwMTg4MzlDIC8qIENyYXNoUmVwb3J0ZXIuaCAqLywKKwkJCQlDRUEwNzJB
OTIzNkZGQkY3MDAxODgzOUMgLyogQ3Jhc2hSZXBvcnRlci5tbSAqLywKKwkJCQk0NDVGNEE4MzIz
QTk3MjNGMDAwRjcwODcgLyogQ3Jhc2hSZXBvcnRlclN1cHBvcnRTb2Z0TGluay5oICovLAorCQkJ
CTQ0NUY0QTg1MjNBOTcyM0YwMDBGNzA4NyAvKiBDcmFzaFJlcG9ydGVyU3VwcG9ydFNvZnRMaW5r
Lm1tICovLAorCQkJCTQ0NUY0QTg0MjNBOTcyM0YwMDBGNzA4NyAvKiBDcmFzaFJlcG9ydGVyU3Vw
cG9ydFNQSS5oICovLAogCQkJCTE0M0RERTk3MjBDOEJFOTkwMDdGNzZGQSAvKiBFbnRpdGxlbWVu
dHMuaCAqLywKIAkJCQkxNDNEREU5NTIwQzhCQzM3MDA3Rjc2RkEgLyogRW50aXRsZW1lbnRzLm1t
ICovLAogCQkJCUEzMzFEOTVFMjFGMjQ5RjYwMDlGMDJBQSAvKiBGaWxlU3lzdGVtQ29jb2EubW0g
Ki8sCkBAIC0xNTQ2LDcgKzE1NTMsOCBAQAogCQkJCTBGOEU4NURCMUZENDg1QjAwMDY5MTg4OSAv
KiBDb3VudGluZ0xvY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM4QzQxMjgxRUI0RTA2ODAw
NDI5NTdEIC8qIENQVVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTM4QzQxMjUxRUI0RTA0
QzAwNDI5NTdEIC8qIENQVVRpbWVDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDRUEwNzJB
QTIzNkZGQkY3MDAxODgzOUMgLyogQ3Jhc2hSZXBvcnRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlDRUEwNzJBQTIzNkZGQkY3MDAxODgzOUMgLyogQ3Jhc2hSZXBvcnRlci5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTQ0NUY0QTg2MjNBOTcyM0YwMDBGNzA4NyAvKiBDcmFzaFJlcG9ydGVyU3VwcG9y
dFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE1Rjc5NEUxQ0ZDOUY0QTAwQ0NFRDkz
IC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0Y4MkQ3MUZE
MjJGMzAwMERBM0RFQSAvKiBDcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QTQ3MzlBMTUxQTgyNUIwMDQxMjNGRiAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRv
bU51bWJlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2Nv
Y29hL0NyYXNoUmVwb3J0ZXIuY3BwIGIvU291cmNlL1dURi93dGYvY29jb2EvQ3Jhc2hSZXBvcnRl
ci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJlYjFiY2I1YjdhNWJhNmRkYzJk
MDZmZjgxOTAxNDlmYTAyYjllODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvQ3Jhc2hSZXBvcnRlci5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0q
IGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0qIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0qIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0qIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0qIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJDcmFzaFJlcG9ydGVyLmgiCi0KLSNpbmNsdWRlIDx3dGYv
c3BpL2NvY29hL0NyYXNoUmVwb3J0ZXJDbGllbnRTUEkuaD4KLQotLy8gQXZvaWQgaGF2aW5nIHRv
IGxpbmsgd2l0aCBsaWJDcmFzaFJlcG9ydGVyQ2xpZW50LmEKLUNSQVNIX1JFUE9SVEVSX0NMSUVO
VF9ISURERU4KLXN0cnVjdCBjcmFzaHJlcG9ydGVyX2Fubm90YXRpb25zX3QgZ0NSQW5ub3RhdGlv
bnMKLSAgICBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCJfX0RBVEEsIiBDUkFTSFJFUE9SVEVSX0FO
Tk9UQVRJT05TX1NFQ1RJT04pKSkKLSAgICA9IHsgQ1JBU0hSRVBPUlRFUl9BTk5PVEFUSU9OU19W
RVJTSU9OLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07Ci0KLW5hbWVzcGFjZSBXVEYgewotdm9pZCBz
ZXRDcmFzaExvZ01lc3NhZ2UoY29uc3QgY2hhciogbWVzc2FnZSkKLXsKLSAgICAvLyBXZSBoYXZl
IHRvIGNvcHkgdGhlIHN0cmluZyBiZWNhdXNlIENSU2V0Q3Jhc2hMb2dNZXNzYWdlIGRvZXNuJ3Qu
Ci0gICAgY2hhciogY29waWVkTWVzc2FnZSA9IG1lc3NhZ2UgPyBzdHJkdXAobWVzc2FnZSkgOiBu
dWxscHRyOwotCi0gICAgQ1JTZXRDcmFzaExvZ01lc3NhZ2UoY29waWVkTWVzc2FnZSk7Ci0KLSAg
ICAvLyBEZWxldGUgdGhlIG1lc3NhZ2UgZnJvbSBsYXN0IHRpbWUsIHNvIHdlIGRvbid0IGtlZXAg
bGVha2luZyBtZXNzYWdlcy4KLSAgICBzdGF0aWMgY2hhciogcHJldmlvdXNDb3BpZWRDcmFzaExv
Z01lc3NhZ2U7Ci0gICAgc3RkOjpmcmVlKHN0ZDo6ZXhjaGFuZ2UocHJldmlvdXNDb3BpZWRDcmFz
aExvZ01lc3NhZ2UsIGNvcGllZE1lc3NhZ2UpKTsKLX0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL2NvY29hL0NyYXNoUmVwb3J0ZXIuaCBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0NyYXNo
UmVwb3J0ZXIuaAppbmRleCAyOWM1YzFhMGI5NmZhNTljMDIyNjdhMmQzZGM2YjAwYmU4N2FmNGNl
Li42YzFkMzQ2MjIxZTZlZDNlMjYzODBhOGZiZmMyZTJlODI1Y2U2YWVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9jb2NvYS9DcmFzaFJlcG9ydGVyLmgKKysrIGIvU291cmNlL1dURi93dGYv
Y29jb2EvQ3Jhc2hSZXBvcnRlci5oCkBAIC0yNSw4ICsyNSwxMiBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgPG1hY2gvZXhjZXB0aW9uX3R5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+
CisKIG5hbWVzcGFjZSBXVEYgewogCiBXVEZfRVhQT1JUIHZvaWQgc2V0Q3Jhc2hMb2dNZXNzYWdl
KGNvbnN0IGNoYXIqKTsKK1dURl9FWFBPUlQgdm9pZCBzaW11bGF0ZUNyYXNoKHBpZF90LCBtYWNo
X2V4Y2VwdGlvbl9kYXRhX3R5cGVfdCwgY29uc3QgY2hhciogZGVzY3JpcHRpb24pOwogCiB9IC8v
IG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL0NyYXNoUmVw
b3J0ZXIubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9DcmFzaFJlcG9ydGVyLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBmMmNhOWEwYTFmZDgzMGI4ODljYTQwNTlmOTA0MjMxYTFhNGI1NDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9DcmFzaFJlcG9ydGVyLm1tCkBAIC0wLDAgKzEs
NjMgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJDcmFzaFJlcG9ydGVyLmgiCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgor
I2ltcG9ydCA8d3RmL3NwaS9jb2NvYS9DcmFzaFJlcG9ydGVyQ2xpZW50U1BJLmg+CisKKyNpbXBv
cnQgIkNyYXNoUmVwb3J0ZXJTdXBwb3J0U29mdExpbmsuaCIKKworLy8gQXZvaWQgaGF2aW5nIHRv
IGxpbmsgd2l0aCBsaWJDcmFzaFJlcG9ydGVyQ2xpZW50LmEKK0NSQVNIX1JFUE9SVEVSX0NMSUVO
VF9ISURERU4KK3N0cnVjdCBjcmFzaHJlcG9ydGVyX2Fubm90YXRpb25zX3QgZ0NSQW5ub3RhdGlv
bnMKKyAgICBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCJfX0RBVEEsIiBDUkFTSFJFUE9SVEVSX0FO
Tk9UQVRJT05TX1NFQ1RJT04pKSkKKyAgICA9IHsgQ1JBU0hSRVBPUlRFUl9BTk5PVEFUSU9OU19W
RVJTSU9OLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CisKK25hbWVzcGFjZSBXVEYgeworCit2b2lk
IHNldENyYXNoTG9nTWVzc2FnZShjb25zdCBjaGFyKiBtZXNzYWdlKQoreworICAgIC8vIFdlIGhh
dmUgdG8gY29weSB0aGUgc3RyaW5nIGJlY2F1c2UgQ1JTZXRDcmFzaExvZ01lc3NhZ2UgZG9lc24n
dC4KKyAgICBjaGFyKiBjb3BpZWRNZXNzYWdlID0gbWVzc2FnZSA/IHN0cmR1cChtZXNzYWdlKSA6
IG51bGxwdHI7CisKKyAgICBDUlNldENyYXNoTG9nTWVzc2FnZShjb3BpZWRNZXNzYWdlKTsKKwor
ICAgIC8vIERlbGV0ZSB0aGUgbWVzc2FnZSBmcm9tIGxhc3QgdGltZSwgc28gd2UgZG9uJ3Qga2Vl
cCBsZWFraW5nIG1lc3NhZ2VzLgorICAgIHN0YXRpYyBjaGFyKiBwcmV2aW91c0NvcGllZENyYXNo
TG9nTWVzc2FnZTsKKyAgICBzdGQ6OmZyZWUoc3RkOjpleGNoYW5nZShwcmV2aW91c0NvcGllZENy
YXNoTG9nTWVzc2FnZSwgY29waWVkTWVzc2FnZSkpOworfQorCit2b2lkIHNpbXVsYXRlQ3Jhc2go
cGlkX3QgcGlkLCBtYWNoX2V4Y2VwdGlvbl9kYXRhX3R5cGVfdCBleGNlcHRpb25Db2RlLCBjb25z
dCBjaGFyKiBkZXNjcmlwdGlvbikKK3sKKyAgICBOU1N0cmluZyAqZGVzY3JpcHRpb25TdHJpbmcg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6ZGVzY3JpcHRpb25dOworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKKyAgICBT
aW11bGF0ZUNyYXNoKHBpZCwgZXhjZXB0aW9uQ29kZSwgZGVzY3JpcHRpb25TdHJpbmcpOworI2Vu
ZGlmCisgICAgTlNMb2coQCJTaW11bGF0ZSBjcmFzaCBmb3IgcGlkICVkIHdpdGggZXhjZXB0aW9u
IGNvZGUgJWxseDogJUAiLCBwaWQsIGV4Y2VwdGlvbkNvZGUsIGRlc2NyaXB0aW9uU3RyaW5nKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29jb2EvQ3Jhc2hSZXBvcnRlclN1
cHBvcnRTUEkuaCBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0NyYXNoUmVwb3J0ZXJTdXBwb3J0U1BJ
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTdhYzllOTg5OGExNTUzYWJhM2VhMmM0NmFlYjMwYTc4MTBhOGQwYwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0NyYXNoUmVwb3J0ZXJTdXBw
b3J0U1BJLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Rm91
bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxtYWNoL2V4Y2VwdGlvbl90eXBlcy5oPgor
I2ltcG9ydCA8dW5pc3RkLmg+CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
CitXVEZfRVhURVJOX0NfQkVHSU4KKyNpbXBvcnQgPENyYXNoUmVwb3J0ZXJTdXBwb3J0L0NyYXNo
UmVwb3J0ZXJTdXBwb3J0Lmg+CitXVEZfRVhURVJOX0NfRU5ECisKKyNlbmRpZgorCitXVEZfRVhU
RVJOX0NfQkVHSU4KK0JPT0wgU2ltdWxhdGVDcmFzaChwaWRfdCwgbWFjaF9leGNlcHRpb25fZGF0
YV90eXBlX3QgZXhjZXB0aW9uQ29kZSwgTlNTdHJpbmcgKmRlc2NyaXB0aW9uKTsKK1dURl9FWFRF
Uk5fQ19FTkQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJ
T1NfRkFNSUxZX1NJTVVMQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL0Ny
YXNoUmVwb3J0ZXJTdXBwb3J0U29mdExpbmsuaCBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL0NyYXNo
UmVwb3J0ZXJTdXBwb3J0U29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTU5ZmJlZjUwMGNiZDk4NTU0
OTg2ODhmNDJhNzA0ODJlY2M5OGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
Y29jb2EvQ3Jhc2hSZXBvcnRlclN1cHBvcnRTb2Z0TGluay5oCkBAIC0wLDAgKzEsMzcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKElP
U19GQU1JTFlfU0lNVUxBVE9SKQorCisjaW1wb3J0ICJDcmFzaFJlcG9ydGVyU3VwcG9ydFNQSS5o
IgorI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVB
REVSKFdURiwgQ3Jhc2hSZXBvcnRlclN1cHBvcnQpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFdURiwgQ3Jhc2hSZXBvcnRlclN1cHBvcnQsIFNpbXVsYXRlQ3Jhc2gsIEJPT0wsIChw
aWRfdCBwaWQsIG1hY2hfZXhjZXB0aW9uX2RhdGFfdHlwZV90IGV4Y2VwdGlvbkNvZGUsIE5TU3Ry
aW5nICpkZXNjcmlwdGlvbiksIChwaWQsIGV4Y2VwdGlvbkNvZGUsIGRlc2NyaXB0aW9uKSkKKyNk
ZWZpbmUgU2ltdWxhdGVDcmFzaCBzb2Z0TGlua19DcmFzaFJlcG9ydGVyU3VwcG9ydF9TaW11bGF0
ZUNyYXNoCisKK3VzaW5nIFdURjo6c29mdExpbmtfQ3Jhc2hSZXBvcnRlclN1cHBvcnRfU2ltdWxh
dGVDcmFzaDsKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJ
T1NfRkFNSUxZX1NJTVVMQVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL0Ny
YXNoUmVwb3J0ZXJTdXBwb3J0U29mdExpbmsubW0gYi9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9DcmFz
aFJlcG9ydGVyU3VwcG9ydFNvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmY2YwNWM5YzE2Mjc0NTg1
Mjk0NjA1YmVlYmYzMjQyOThkZjA4NGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9jb2NvYS9DcmFzaFJlcG9ydGVyU3VwcG9ydFNvZnRMaW5rLm1tCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKKworI2ltcG9ydCAi
Q3Jhc2hSZXBvcnRlclN1cHBvcnRTUEkuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisKK1NP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19GT1JfU09VUkNFKFdURiwgQ3Jhc2hSZXBvcnRlclN1
cHBvcnQpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdURiwgQ3Jhc2hSZXBvcnRl
clN1cHBvcnQsIFNpbXVsYXRlQ3Jhc2gsIEJPT0wsIChwaWRfdCBwaWQsIG1hY2hfZXhjZXB0aW9u
X2RhdGFfdHlwZV90IGV4Y2VwdGlvbkNvZGUsIE5TU3RyaW5nICpkZXNjcmlwdGlvbiksIChwaWQs
IGV4Y2VwdGlvbkNvZGUsIGRlc2NyaXB0aW9uKSk7CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5Nzk0OTc0
MDc3ZmY3NDhmMWM0NTZiZDM3MTcwM2M5ZjcxYjUwNWZmLi41OTQwNmJlNjJlNzI1ZGFiODJjZmJk
MjFjM2ZiZTAzYzVmNTE1NjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKQEAgLTMyLDYgKzMyLDEwIEBACiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAorI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgPHd0Zi9jb2NvYS9DcmFzaFJlcG9ydGVyLmg+CisjZW5kaWYKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6QXV4aWxpYXJ5UHJv
Y2Vzc1Byb3h5KGJvb2wgYWx3YXlzUnVuc0F0QmFja2dyb3VuZFByaW9yaXR5KQpAQCAtMjcxLDQg
KzI3NSwxNCBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVu
KElQQzo6Q29ubmVjdGlvbiYpCiB7CiB9CiAKK3ZvaWQgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojps
b2dJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VOYW1lKQoreworICAgIFN0cmluZyBsb2dNZXNzYWdlID0gbWFrZVN0cmluZygiUmVjZWl2ZWQg
YW4gaW52YWxpZCBtZXNzYWdlICciX3MsIG1lc3NhZ2VSZWNlaXZlck5hbWUudG9TdHJpbmcoKS5k
YXRhKCksICI6OiJfcywgbWVzc2FnZU5hbWUudG9TdHJpbmcoKS5kYXRhKCksICInIGZyb20gdGhl
ICJfcywgcHJvY2Vzc05hbWUoKSwgIiBwcm9jZXNzLiJfcyk7CisgICAgV1RGTG9nQWx3YXlzKCIl
c1xuIiwgbG9nTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBjb25zdCBtYWNoX2V4Y2VwdGlvbl9kYXRhX3R5cGVfdCBrRXhjZXB0aW9uQ29kZSA9IDB4YmMw
NGUxN2M7CisgICAgV1RGOjpzaW11bGF0ZUNyYXNoKGNvbm5lY3Rpb24ucmVtb3RlUHJvY2Vzc0lE
KCksIGtFeGNlcHRpb25Db2RlLCBsb2dNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworI2VuZGlmCit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXhpbGlhcnlQcm9jZXNzUHJveHkuaAppbmRleCAzN2ZkYTVhOWEyNzUxNjc3ZWVhNzU5ZTUwMmM4
ZTllYjk4ZWQ2MjUxLi5iZTViNGFjYjdjZjQ5YmJkYmIyYzk2NDNjYjY1MzYxYjlmY2IzNmFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaApA
QCAtMTE4LDcgKzExOCwxMCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIGRpc3BhdGNoTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICBib29sIGRpc3BhdGNoU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mKTsKLSAgICAKKworICAgIHZvaWQgbG9nSW52YWxpZE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpOworICAgIHZpcnR1YWwgU3RyaW5nIHBy
b2Nlc3NOYW1lKCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIGdldExhdW5jaE9wdGlv
bnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJik7CiAgICAgdmlydHVhbCB2b2lkIHBs
YXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSB7
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5j
cHAKaW5kZXggNjM5ZDJjOWM5MTI4NzVkZGMwNWI3N2UwMmJkMjIwODVmODIzOTFiOC4uN2IwMzkz
YWY5YTZmN2NkOWE2MDA1MWRjODYzNGVmN2ZkOGEyZDY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2
b2lkIEdQVVByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKIAogdm9pZCBH
UFVQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQogewotICAgIFdURkxvZ0Fsd2F5cygiUmVj
ZWl2ZWQgYW4gaW52YWxpZCBtZXNzYWdlIFwiJXMuJXNcIiBmcm9tIHRoZSBHUFUgcHJvY2Vzcy5c
biIsIG1lc3NhZ2VSZWNlaXZlck5hbWUudG9TdHJpbmcoKS5kYXRhKCksIG1lc3NhZ2VOYW1lLnRv
U3RyaW5nKCkuZGF0YSgpKTsKKyAgICBsb2dJbnZhbGlkTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlTmFtZSk7CiAKICAgICBXZWJQcm9jZXNzUG9vbDo6ZGlk
UmVjZWl2ZUludmFsaWRNZXNzYWdlKG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1lKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCmluZGV4
IDE3MmJhN2E5Zjk1YmQ5YzFkYzNkZDFkYWZiZTY3MWQ0Zjg5NTZhOGQuLmQ3M2NiZDFiNDU4ZDVj
ZTUyYzc5NDEwZmQ3ZTBmZDBjNDA1YzAxOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTYzLDYgKzYzLDggQEAgcHJpdmF0ZToKICAgICB+
R1BVUHJvY2Vzc1Byb3h5KCk7CiAKICAgICAvLyBBdXhpbGlhcnlQcm9jZXNzUHJveHkKKyAgICBT
dHJpbmcgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiR1BVIl9zOyB9CisKICAg
ICB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA5MWUwOTY0NjBiMjIwNWFjMTkxYzgxN2ZlYWQ0Nzhl
YjEzYmJkZmEzLi45MzM0OTIyMDdjMmE5MTc4MDQzNDk2YWE0MGVmZmQ4ZDg2MThiODM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaApAQCAtMjAzLDYgKzIwMyw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBB
dXhpbGlhcnlQcm9jZXNzUHJveHkKKyAgICBTdHJpbmcgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiTmV0d29ya2luZyJfczsgfQorCiAgICAgdm9pZCBnZXRMYXVuY2hPcHRpb25z
KFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29u
bmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJv
Y2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCmluZGV4
IDcyMTk5MjExNDg1MTUxMjZlNWNkNTg2MDU0NzNlOTFhYWQ4NjA3ZDQuLmU4N2MyYTRiNTg4YjI0
NzFiMjhlZjU2YjhlYjEyYWM3NzA0ZmYzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtOTAsNiArOTAsOSBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIFBsdWdpblByb2Nlc3NQcm94eShQbHVnaW5Qcm9jZXNzTWFu
YWdlciosIGNvbnN0IFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzJiwgdWludDY0X3QgcGx1Z2luUHJv
Y2Vzc1Rva2VuKTsKIAorICAgIC8vIEF1eGlsaWFyeVByb2Nlc3NQcm94eQorICAgIFN0cmluZyBw
cm9jZXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJQbHVnaW4iX3M7IH0KKwogICAgIHZv
aWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHBsYXRmb3JtR2V0TGF1bmNoT3B0aW9uc1dpdGhBdHRyaWJ1dGVzKFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYsIGNvbnN0IFBsdWdpblByb2Nlc3NBdHRyaWJ1
dGVzJik7CiAgICAgdm9pZCBwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggOTA2YmEwOGFmM2FhYmZjMGFiMTgzODRkNjFlYzJjZTdmNzNlZGU3ZS4uZmJjY2FhMDkyZTRh
OWZmYTczYTU4YTI3MTFjZTRjYjRmOWE5MTFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC03ODQsMTEgKzc4NCwxMSBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2goKQogCiB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCiB7Ci0gICAgV1RGTG9nQWx3YXlzKCJSZWNl
aXZlZCBhbiBpbnZhbGlkIG1lc3NhZ2UgXCIlcy4lc1wiIGZyb20gdGhlIHdlYiBwcm9jZXNzLlxu
IiwgbWVzc2FnZVJlY2VpdmVyTmFtZS50b1N0cmluZygpLmRhdGEoKSwgbWVzc2FnZU5hbWUudG9T
dHJpbmcoKS5kYXRhKCkpOworICAgIGxvZ0ludmFsaWRNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1lKTsKIAogICAgIFdlYlByb2Nlc3NQb29sOjpkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UobWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUpOwog
Ci0gICAgLy8gVGVybWluYXRlIHRoZSBXZWJQcm9jZXNzLgorICAgIC8vIFRlcm1pbmF0ZSB0aGUg
V2ViQ29udGVudCBwcm9jZXNzLgogICAgIHRlcm1pbmF0ZSgpOwogCiAgICAgLy8gU2luY2Ugd2Un
dmUgaW52YWxpZGF0ZWQgdGhlIGNvbm5lY3Rpb24gd2UnbGwgbmV2ZXIgZ2V0IGEgSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQ6OmRpZENsb3NlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IDc4NDZmNTQyYzk0ZGYzZWQwOWIwOWUyNWM4YjY4ODNjMjA4YTExMzUu
LmU5MzI1YWE0NDhhMjEyYjdhNmZiOWJhMGYzNmIxNDE5ZTdhYWVjZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zNTUsNiArMzU1LDggQEAgcHJvdGVj
dGVkOgogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3Rv
cmUqLCBJc1ByZXdhcm1lZCk7CiAKICAgICAvLyBBdXhpbGlhcnlQcm9jZXNzUHJveHkKKyAgICBT
dHJpbmcgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViQ29udGVudCJfczsg
fQorCiAgICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFByb2Nl
c3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29ubmVjdGlv
bldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387594</attachid>
            <date>2020-01-13 17:00:22 -0800</date>
            <delta_ts>2020-01-14 16:29:49 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-205368-20200113170021.patch</filename>
            <type>text/plain</type>
            <size>10481</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwZDVmOTAwODJkZjZhNjUx
YjY4N2I0ODJlODc0NDFiZTZhYzkyNTIuLmQ2NjI1ZmFlNjJjMGJjNGIyOGU3MWFhYmNjMDk3NzBi
MmY4ZjllYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDEtMTMgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIENyZWF0ZSBhIHNp
bXVsYXRlZCBjcmFzaCBsb2cgd2hlbiB0aGUgVUkgUHJvY2VzcyByZWNlaXZlcyBhbiBpbnZhbGlk
IENvcmVJUEMgbWVzc2FnZQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjA1MzY4Pgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwMjQ1OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojpsb2dJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgIC0gRXh0cmFjdCBjb21tb24gbG9nZ2luZyBjb2RlIHRvIG5l
dyBtZXRob2QgdGhhdCBjYWxscworICAgICAgICAgIFJFTEVBU0VfTE9HX0ZBVUxUKCkuCisgICAg
ICAgICogVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0
OjpBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmxvZ0ludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzTmFtZSk6CisgICAgICAgIC0gQWRk
IG1ldGhvZCBkZWNsYXJhdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgLSBVc2UgbmV3IEF1eGlsaWFyeVByb2Nlc3NQcm94
eTo6bG9nSW52YWxpZE1lc3NhZ2UoKS4KKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnByb2Nlc3NOYW1l
IGNvbnN0KToKKyAgICAgICAgLSBBZGQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAg
LSBVc2UgbmV3IEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6bG9nSW52YWxpZE1lc3NhZ2UoKS4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnByb2Nlc3NOYW1lIGNvbnN0KToKKyAgICAg
ICAgLSBBZGQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgIC0gVXNlIG5ldyBBdXhpbGlh
cnlQcm9jZXNzUHJveHk6OmxvZ0ludmFsaWRNZXNzYWdlKCkuCisgICAgICAgICogVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b2Nlc3NQcm94eTo6cHJvY2Vzc05hbWUgY29uc3QpOgorICAgICAgICAtIEFkZCBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6Cisg
ICAgICAgIC0gVXNlIG5ldyBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmxvZ0ludmFsaWRNZXNzYWdl
KCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NOYW1lIGNvbnN0KToKKyAgICAgICAgLSBBZGQg
aW1wbGVtZW50YXRpb24uCisKIDIwMjAtMDEtMDYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQgQ1RBUCBDbGllbnQgUGluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcApp
bmRleCA5Nzk0OTc0MDc3ZmY3NDhmMWM0NTZiZDM3MTcwM2M5ZjcxYjUwNWZmLi5lNWI4ZmRkYzAz
ODFlNmVlMmU2NzRkMjJlZDFmY2U3NzcxYzA2MDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKQEAgLTI3MSw0ICsyNzEsOSBAQCB2
b2lkIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVj
dGlvbiYpCiB7CiB9CiAKK3ZvaWQgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojpsb2dJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQorewor
ICAgIFJFTEVBU0VfTE9HX0ZBVUxUKElQQywgIlJlY2VpdmVkIGFuIGludmFsaWQgbWVzc2FnZSAn
JXM6OiVzJyBmcm9tIHRoZSAlcyBwcm9jZXNzLiIsIG1lc3NhZ2VSZWNlaXZlck5hbWUudG9TdHJp
bmcoKS5kYXRhKCksIG1lc3NhZ2VOYW1lLnRvU3RyaW5nKCkuZGF0YSgpLCBwcm9jZXNzTmFtZSgp
LnV0ZjgoKS5kYXRhKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmgKaW5kZXggMzdmZGE1YTlh
Mjc1MTY3N2VlYTc1OWU1MDJjOGU5ZWI5OGVkNjI1MS4uYmU1YjRhY2I3Y2Y0OWJiZGJiMmM5NjQz
Y2I2NTM2MWI5ZmNiMzZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxp
YXJ5UHJvY2Vzc1Byb3h5LmgKQEAgLTExOCw3ICsxMTgsMTAgQEAgcHJvdGVjdGVkOgogCiAgICAg
Ym9vbCBkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAg
ICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7Ci0gICAgCisKKyAgICB2b2lkIGxv
Z0ludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKTsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBwcm9jZXNzTmFtZSgpIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwg
dm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpOwog
ICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVy
OjpMYXVuY2hPcHRpb25zJikgeyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ4MDg2ZGY0ZDlhNjE0NjNlZmY5ZThkODE4OTI1
NDlhNTE5MzJmOTYuLmIxNDU5Yzk4NjJmOGI5NjNkMTNiMjM4OTlkY2EyMTczZTNhMjAyNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCkBA
IC0xNjUsNyArMTY1LDcgQEAgdm9pZCBHUFVQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29u
bmVjdGlvbiYpCiAKIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKIHsKLSAg
ICBXVEZMb2dBbHdheXMoIlJlY2VpdmVkIGFuIGludmFsaWQgbWVzc2FnZSBcIiVzLiVzXCIgZnJv
bSB0aGUgR1BVIHByb2Nlc3MuXG4iLCBtZXNzYWdlUmVjZWl2ZXJOYW1lLnRvU3RyaW5nKCkuZGF0
YSgpLCBtZXNzYWdlTmFtZS50b1N0cmluZygpLmRhdGEoKSk7CisgICAgbG9nSW52YWxpZE1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUpOwogCiAgICAg
V2ViUHJvY2Vzc1Bvb2w6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlUmVjZWl2ZXJO
YW1lLCBtZXNzYWdlTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzUHJveHkuaAppbmRleCA5YmQ4NDk5NmEzNzU1YWQ2MTAwMzZiNDFlYmQzNzZkYjdlMjZh
ZTRlLi43YzE0MzQyZTZlODA2ZThhMGM5MWZjZDczNjU3ZjA5OTY2MDMwZWRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCkBAIC02NSw2ICs2NSw4
IEBAIHByaXZhdGU6CiAgICAgfkdQVVByb2Nlc3NQcm94eSgpOwogCiAgICAgLy8gQXV4aWxpYXJ5
UHJvY2Vzc1Byb3h5CisgICAgU3RyaW5nIHByb2Nlc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gIkdQVSJfczsgfQorCiAgICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29ubmVjdGlvbldpbGxPcGVu
KElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93
bihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDBjZjBkZTAx
ZGUzNWZhMGQ2ZjVjMDE0ZmExYTg4ODM4NWUyODM1YjIuLjgxMTNiYTE4MmVjMWY5NTdhMWIxNzVl
NmEyYTE1YTA2MmQ2MjE5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzExLDggKzMxMSw5IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICAgICBu
ZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UsIElQQzo6U3RyaW5nUmVmZXJlbmNlKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5j
ZSBtZXNzYWdlTmFtZSkKIHsKKyAgICBsb2dJbnZhbGlkTWVzc2FnZShjb25uZWN0aW9uLCBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlTmFtZSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6cHJvY2Vzc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDc0Yzc2MmE0YWFkNmE2ZWM4MTI0MWMzNmE5ODg1YjY2
ZmFiZGEwYjUuLmEyZDJmZWIxOThhZDQ2M2Y4OTFhOTFhNzZhNmRlNTJkMmEyYWI0ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCkBAIC0yMTIsNiArMjEyLDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIEF1
eGlsaWFyeVByb2Nlc3NQcm94eQorICAgIFN0cmluZyBwcm9jZXNzTmFtZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJOZXR3b3JraW5nIl9zOyB9CisKICAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb25u
ZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9j
ZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IGQ4YWNhZTgwZDMzYmMzZDVhMDU0ZDM4Yzk3MzFkMGQ2MWU1YjE4MDEuLmY0MzAwMDRhYjc5
NDM2N2Y0NjllYzI0MzliMzRiZDUwNGE1N2NlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKQEAgLTIxNCw4ICsy
MTQsOSBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9u
JikKICAgICBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKIH0KIAotdm9p
ZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UpCit2b2lk
IFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCiB7CisgICAgbG9nSW52YWxpZE1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUpOwogfQog
CiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVu
Y2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5oCmluZGV4IDcyMTk5MjExNDg1MTUxMjZlNWNkNTg2MDU0NzNlOTFhYWQ4NjA3ZDQuLmU4
N2MyYTRiNTg4YjI0NzFiMjhlZjU2YjhlYjEyYWM3NzA0ZmYzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtOTAs
NiArOTAsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFBsdWdpblByb2Nlc3NQcm94eShQbHVn
aW5Qcm9jZXNzTWFuYWdlciosIGNvbnN0IFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzJiwgdWludDY0
X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKTsKIAorICAgIC8vIEF1eGlsaWFyeVByb2Nlc3NQcm94eQor
ICAgIFN0cmluZyBwcm9jZXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJQbHVnaW4iX3M7
IH0KKwogICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9w
dGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIHBsYXRmb3JtR2V0TGF1bmNoT3B0aW9uc1dpdGhB
dHRyaWJ1dGVzKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYsIGNvbnN0IFBsdWdpblBy
b2Nlc3NBdHRyaWJ1dGVzJik7CiAgICAgdm9pZCBwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29u
bmVjdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggMTFhZTE5Mzg5M2VkYTE3Zjg3YTIyYTFlYjk3YWIxZDliOTRhNDg2My4u
YTlmMzJlM2FjZGY4OTE5N2M4N2Q4OGI2MjM2YTBkODBhZjJlODQxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC04MDEsMTEgKzgwMSwxMSBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2go
KQogCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCiB7Ci0gICAgV1RGTG9n
QWx3YXlzKCJSZWNlaXZlZCBhbiBpbnZhbGlkIG1lc3NhZ2UgXCIlcy4lc1wiIGZyb20gdGhlIHdl
YiBwcm9jZXNzLlxuIiwgbWVzc2FnZVJlY2VpdmVyTmFtZS50b1N0cmluZygpLmRhdGEoKSwgbWVz
c2FnZU5hbWUudG9TdHJpbmcoKS5kYXRhKCkpOworICAgIGxvZ0ludmFsaWRNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1lKTsKIAogICAgIFdlYlByb2Nl
c3NQb29sOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UobWVzc2FnZVJlY2VpdmVyTmFtZSwgbWVz
c2FnZU5hbWUpOwogCi0gICAgLy8gVGVybWluYXRlIHRoZSBXZWJQcm9jZXNzLgorICAgIC8vIFRl
cm1pbmF0ZSB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgogICAgIHRlcm1pbmF0ZSgpOwogCiAgICAg
Ly8gU2luY2Ugd2UndmUgaW52YWxpZGF0ZWQgdGhlIGNvbm5lY3Rpb24gd2UnbGwgbmV2ZXIgZ2V0
IGEgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQ6OmRpZENsb3NlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGQ5Njg2YTE1MTQxMTFjOGVlOGNhZjZhNGRjOTdi
MTc3MTUyYmYxZGMuLmIyZmIxYzk3MjI3MmY1MGI1OTAxN2E0MTY3OTkwYThhNWQ2MWVmMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zNTEsNiArMzUx
LDggQEAgcHJvdGVjdGVkOgogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdl
YnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7CiAKICAgICAvLyBBdXhpbGlhcnlQcm9jZXNz
UHJveHkKKyAgICBTdHJpbmcgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2Vi
Q29udGVudCJfczsgfQorCiAgICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGxhdGZvcm1HZXRMYXVuY2hP
cHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwogICAgIHZv
aWQgY29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387728</attachid>
            <date>2020-01-14 16:29:52 -0800</date>
            <delta_ts>2020-01-15 08:18:22 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-205368-20200114162950.patch</filename>
            <type>text/plain</type>
            <size>10534</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwZDVmOTAwODJkZjZhNjUx
YjY4N2I0ODJlODc0NDFiZTZhYzkyNTIuLmUzNzM4ZTgwM2VhMjkyMzhkMDUzYzdkYjFkZGIyYzhi
NDU2NTc4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMjAtMDEtMTQgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIENyZWF0ZSBhIHNp
bXVsYXRlZCBjcmFzaCBsb2cgd2hlbiB0aGUgVUkgUHJvY2VzcyByZWNlaXZlcyBhbiBpbnZhbGlk
IENvcmVJUEMgbWVzc2FnZQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMjA1MzY4Pgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwMjQ1OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojpsb2dJbnZh
bGlkTWVzc2FnZSk6CisgICAgICAgIC0gRXh0cmFjdCBjb21tb24gbG9nZ2luZyBjb2RlIHRvIG5l
dyBtZXRob2QgdGhhdCBjYWxscworICAgICAgICAgIFJFTEVBU0VfTE9HX0ZBVUxUKCkuCisgICAg
ICAgICogVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0
OjpBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmxvZ0ludmFsaWRNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojpwcm9jZXNzTmFtZSk6CisgICAgICAgIC0gQWRk
IG1ldGhvZCBkZWNsYXJhdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAgLSBVc2UgbmV3IEF1eGlsaWFyeVByb2Nlc3NQcm94
eTo6bG9nSW52YWxpZE1lc3NhZ2UoKS4KKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnByb2Nlc3NOYW1l
IGNvbnN0KToKKyAgICAgICAgLSBBZGQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKToKKyAgICAgICAg
LSBVc2UgbmV3IEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6bG9nSW52YWxpZE1lc3NhZ2UoKS4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnByb2Nlc3NOYW1lIGNvbnN0KToKKyAgICAg
ICAgLSBBZGQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6CisgICAgICAgIC0gVXNlIG5ldyBBdXhpbGlh
cnlQcm9jZXNzUHJveHk6OmxvZ0ludmFsaWRNZXNzYWdlKCkuCisgICAgICAgICogVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b2Nlc3NQcm94eTo6cHJvY2Vzc05hbWUgY29uc3QpOgorICAgICAgICAtIEFkZCBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6Cisg
ICAgICAgIC0gVXNlIG5ldyBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmxvZ0ludmFsaWRNZXNzYWdl
KCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NOYW1lIGNvbnN0KToKKyAgICAgICAgLSBBZGQg
aW1wbGVtZW50YXRpb24uCisKIDIwMjAtMDEtMDYgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIFN1cHBvcnQgQ1RBUCBDbGllbnQgUGluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcApp
bmRleCA5Nzk0OTc0MDc3ZmY3NDhmMWM0NTZiZDM3MTcwM2M5ZjcxYjUwNWZmLi5jY2E3YzBhYzIw
NTBhNmYwYzBiMWVlZWZkMDNmZDM1MmI3NzA4NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKQEAgLTI3MSw0ICsyNzEsOSBAQCB2
b2lkIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVj
dGlvbiYpCiB7CiB9CiAKK3ZvaWQgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojpsb2dJbnZhbGlkTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1l
c3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQorewor
ICAgIFJFTEVBU0VfTE9HX0ZBVUxUKElQQywgIlJlY2VpdmVkIGFuIGludmFsaWQgbWVzc2FnZSAn
JXtwdWJsaWN9czo6JXtwdWJsaWN9cycgZnJvbSB0aGUgJXtwdWJsaWN9cyBwcm9jZXNzLiIsIG1l
c3NhZ2VSZWNlaXZlck5hbWUudG9TdHJpbmcoKS5kYXRhKCksIG1lc3NhZ2VOYW1lLnRvU3RyaW5n
KCkuZGF0YSgpLCBwcm9jZXNzTmFtZSgpLmNoYXJhY3RlcnMoKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNz
UHJveHkuaAppbmRleCAzN2ZkYTVhOWEyNzUxNjc3ZWVhNzU5ZTUwMmM4ZTllYjk4ZWQ2MjUxLi4x
MmE5YzQ4MTE4MzhiZmE3NDRiMWE3ZTI1MzE5NTFiNTM1Njg1NzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaApAQCAtMTE4LDcgKzExOCwx
MCBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIGRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKTsKICAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4m
KTsKLSAgICAKKworICAgIHZvaWQgbG9nSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZU5hbWUpOworICAgIHZpcnR1YWwgQVNDSUlMaXRlcmFsIHByb2Nlc3NOYW1l
KCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vz
c0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJik7CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtR2V0
TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSB7IH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
ZDgwODZkZjRkOWE2MTQ2M2VmZjllOGQ4MTg5MjU0OWE1MTkzMmY5Ni4uYjE0NTljOTg2MmY4Yjk2
M2QxM2IyMzg5OWRjYTIxNzNlM2EyMDI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIEdQVVBy
b2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKIAogdm9pZCBHUFVQcm9jZXNz
UHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQogewotICAgIFdURkxvZ0Fsd2F5cygiUmVjZWl2ZWQgYW4g
aW52YWxpZCBtZXNzYWdlIFwiJXMuJXNcIiBmcm9tIHRoZSBHUFUgcHJvY2Vzcy5cbiIsIG1lc3Nh
Z2VSZWNlaXZlck5hbWUudG9TdHJpbmcoKS5kYXRhKCksIG1lc3NhZ2VOYW1lLnRvU3RyaW5nKCku
ZGF0YSgpKTsKKyAgICBsb2dJbnZhbGlkTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlUmVjZWl2
ZXJOYW1lLCBtZXNzYWdlTmFtZSk7CiAKICAgICBXZWJQcm9jZXNzUG9vbDo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3NhZ2VOYW1lKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCmluZGV4IDliZDg0OTk2
YTM3NTVhZDYxMDAzNmI0MWViZDM3NmRiN2UyNmFlNGUuLjBjMjQxOWQ4MWM5YzQ3NzYyNGJkNjg4
NGVhMzFiMDVmZTVmNjUzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc1Byb3h5LmgKQEAgLTY1LDYgKzY1LDggQEAgcHJpdmF0ZToKICAgICB+R1BVUHJvY2Vz
c1Byb3h5KCk7CiAKICAgICAvLyBBdXhpbGlhcnlQcm9jZXNzUHJveHkKKyAgICBBU0NJSUxpdGVy
YWwgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiR1BVIl9zOyB9CisKICAgICB2
b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMGNmMGRlMDFkZTM1ZmEwZDZmNWMwMTRmYTFhODg4
Mzg1ZTI4MzViMi4uODExM2JhMTgyZWMxZjk1N2ExYjE3NWU2YTJhMTVhMDYyZDYyMTljYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCkBAIC0zMTEsOCArMzExLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogICAgIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgp
OwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKQogeworICAg
IGxvZ0ludmFsaWRNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VSZWNlaXZlck5hbWUsIG1lc3Nh
Z2VOYW1lKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8QXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggNzRjNzYyYTRhYWQ2YTZlYzgxMjQxYzM2YTk4ODViNjZmYWJkYTBiNS4uNjE5Njc2ZGNiMjQx
NjAxYzA5MmVlZjU0MWY3Y2QwMjc2ZjAzZWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTIxMiw2ICsyMTIs
OCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Cisg
ICAgQVNDSUlMaXRlcmFsIHByb2Nlc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk5ldHdv
cmtpbmciX3M7IH0KKwogICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6
OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2Nlc3NXaWxsU2h1dERvd24o
SVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKaW5kZXggZDhhY2FlODBkMzNi
YzNkNWEwNTRkMzhjOTczMWQwZDYxZTViMTgwMS4uZjQzMDAwNGFiNzk0MzY3ZjQ2OWVjMjQzOWIz
NGJkNTA0YTU3Y2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjE0LDggKzIxNCw5IEBAIHZvaWQgUGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogICAgIHBsdWdpblBy
b2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3Ry
aW5nUmVmZXJlbmNlLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSkKK3ZvaWQgUGx1Z2luUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSkKIHsKKyAgICBsb2dJbnZhbGlkTWVzc2FnZShjb25uZWN0aW9u
LCBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlTmFtZSk7CiB9CiAKIHZvaWQgUGx1Z2luUHJv
Y2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggNzIx
OTkyMTE0ODUxNTEyNmU1Y2Q1ODYwNTQ3M2U5MWFhZDg2MDdkNC4uYWYyMjNkYmQ5NTdkMTg0Mzk4
ODlmZGJjZjJkOTVmZjcyZThjZDA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC05MCw2ICs5MCw5IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgUGx1Z2luUHJvY2Vzc1Byb3h5KFBsdWdpblByb2Nlc3NNYW5hZ2Vy
KiwgY29uc3QgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMmLCB1aW50NjRfdCBwbHVnaW5Qcm9jZXNz
VG9rZW4pOwogCisgICAgLy8gQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5CisgICAgQVNDSUlMaXRlcmFs
IHByb2Nlc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlBsdWdpbiJfczsgfQorCiAgICAg
dm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92
ZXJyaWRlOwogICAgIHZvaWQgcGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zV2l0aEF0dHJpYnV0ZXMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiwgY29uc3QgUGx1Z2luUHJvY2Vzc0F0dHJp
YnV0ZXMmKTsKICAgICB2b2lkIHByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCAxMWFlMTkzODkzZWRhMTdmODdhMjJhMWViOTdhYjFkOWI5NGE0ODYzLi5hOWYzMmUzYWNk
Zjg5MTk3Yzg3ZDg4YjYyMzZhMGQ4MGFmMmU4NDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTgwMSwxMSArODAxLDExIEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5Ojpwcm9jZXNzRGlkVGVybWluYXRlT3JGYWlsZWRUb0xhdW5jaCgpCiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJ
UEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKIHsKLSAgICBXVEZMb2dBbHdheXMoIlJl
Y2VpdmVkIGFuIGludmFsaWQgbWVzc2FnZSBcIiVzLiVzXCIgZnJvbSB0aGUgd2ViIHByb2Nlc3Mu
XG4iLCBtZXNzYWdlUmVjZWl2ZXJOYW1lLnRvU3RyaW5nKCkuZGF0YSgpLCBtZXNzYWdlTmFtZS50
b1N0cmluZygpLmRhdGEoKSk7CisgICAgbG9nSW52YWxpZE1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZVJlY2VpdmVyTmFtZSwgbWVzc2FnZU5hbWUpOwogCiAgICAgV2ViUHJvY2Vzc1Bvb2w6OmRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlUmVjZWl2ZXJOYW1lLCBtZXNzYWdlTmFtZSk7
CiAKLSAgICAvLyBUZXJtaW5hdGUgdGhlIFdlYlByb2Nlc3MuCisgICAgLy8gVGVybWluYXRlIHRo
ZSBXZWJDb250ZW50IHByb2Nlc3MuCiAgICAgdGVybWluYXRlKCk7CiAKICAgICAvLyBTaW5jZSB3
ZSd2ZSBpbnZhbGlkYXRlZCB0aGUgY29ubmVjdGlvbiB3ZSdsbCBuZXZlciBnZXQgYSBJUEM6OkNv
bm5lY3Rpb246OkNsaWVudDo6ZGlkQ2xvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggZDk2ODZhMTUxNDExMWM4ZWU4Y2FmNmE0ZGM5N2IxNzcxNTJiZjFk
Yy4uZDdhMmVkZDNkNzc4MTI3ZTQ5NjY5ZWFhMzY2YmQyMjlkMGUyOTQyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM1MSw2ICszNTEsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFT
dG9yZSosIElzUHJld2FybWVkKTsKIAogICAgIC8vIEF1eGlsaWFyeVByb2Nlc3NQcm94eQorICAg
IEFTQ0lJTGl0ZXJhbCBwcm9jZXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJDb250
ZW50Il9zOyB9CisKICAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpM
YXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybUdldExhdW5jaE9wdGlv
bnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
b25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>