<?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>206984</bug_id>
          
          <creation_ts>2020-01-29 20:19:35 -0800</creation_ts>
          <short_desc>REGRESSION(r252185): NetworkSessionCocoa cancels downloads that receive authentication challenges</short_desc>
          <delta_ts>2021-09-29 13:45:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>208029</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Quesada">david_quesada</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1612847</commentid>
    <comment_count>0</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2020-01-29 20:19:35 -0800</bug_when>
    <thetext>rdar://problem/58999654</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612859</commentid>
    <comment_count>1</comment_count>
      <attachid>389228</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2020-01-29 21:29:56 -0800</bug_when>
    <thetext>Created attachment 389228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612926</commentid>
    <comment_count>2</comment_count>
      <attachid>389228</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-01-30 05:49:57 -0800</bug_when>
    <thetext>Comment on attachment 389228
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:618
&gt; +        auto download = _session-&gt;networkProcess().downloadManager().download(_sessionWrapper-&gt;downloadMap.get(task.taskIdentifier));

There does not seem to be any guarantee that downloadMap will contain task.taskIdentifier.
If not, this would return 0 which could corrupt the DownloadManager map.
Can we add a check there, like done in URLSession:downloadTask:?

Also, I am wondering whether is it possible to create a test for it.
API tests can spin dedicated servers (look for ServiceWorkerTCPServer), not sure layout tests can pause/resume downloads though we could add test runner APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1612998</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-01-30 09:44:01 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Comment on attachment 389228 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=389228&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:618
&gt; &gt; +        auto download = _session-&gt;networkProcess().downloadManager().download(_sessionWrapper-&gt;downloadMap.get(task.taskIdentifier));
&gt; 
&gt; There does not seem to be any guarantee that downloadMap will contain
&gt; task.taskIdentifier.
&gt; If not, this would return 0 which could corrupt the DownloadManager map.
&gt; Can we add a check there, like done in URLSession:downloadTask:?
&gt; 
&gt; Also, I am wondering whether is it possible to create a test for it.
&gt; API tests can spin dedicated servers (look for ServiceWorkerTCPServer), not
&gt; sure layout tests can pause/resume downloads though we could add test runner
&gt; APIs.

We have all the tools we need to API test this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613231</commentid>
    <comment_count>4</comment_count>
      <attachid>389316</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2020-01-30 17:34:03 -0800</bug_when>
    <thetext>Created attachment 389316
Patch v2

- Took Youenn&apos;s suggestion to zero-check the download ID before looking it up in the DownloadMap.
- Added an API test that resumes a download and ensures the delegate can handle the authentication challenge and the download can succeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613233</commentid>
    <comment_count>5</comment_count>
      <attachid>389318</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2020-01-30 17:44:41 -0800</bug_when>
    <thetext>Created attachment 389318
Patch v3

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613234</commentid>
    <comment_count>6</comment_count>
      <attachid>389318</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-01-30 17:47:09 -0800</bug_when>
    <thetext>Comment on attachment 389318
Patch v3

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:616
&gt; +    if ([task isKindOfClass:[NSURLSessionDownloadTask class]]) {

Could this just be if (!networkDataTask)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613235</commentid>
    <comment_count>7</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2020-01-30 17:52:49 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #6)
&gt; Comment on attachment 389318 [details]
&gt; Patch v3
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=389318&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:616
&gt; &gt; +    if ([task isKindOfClass:[NSURLSessionDownloadTask class]]) {
&gt; 
&gt; Could this just be if (!networkDataTask)?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613246</commentid>
    <comment_count>8</comment_count>
      <attachid>389321</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2020-01-30 18:10:20 -0800</bug_when>
    <thetext>Created attachment 389321
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613614</commentid>
    <comment_count>9</comment_count>
      <attachid>389321</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-01-31 15:25:50 -0800</bug_when>
    <thetext>Comment on attachment 389321
Patch v4

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        r252185 changed the early return in WKNetworkSessionDelegate&apos;s -â¦task:didReceiveChallenge:â¦ method

non-ascii in the changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613619</commentid>
    <comment_count>10</comment_count>
      <attachid>389428</attachid>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2020-01-31 15:32:13 -0800</bug_when>
    <thetext>Created attachment 389428
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613656</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-31 16:30:28 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 389428:

editing/spelling/spellcheck-attribute.html bug 206178 (authors: g.czajkowski@samsung.com, mark.lam@apple.com, and rniwa@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613659</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-31 16:30:36 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 389428:

imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html bug 206554 (authors: shvaikalesh@gmail.com and youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613664</commentid>
    <comment_count>13</comment_count>
      <attachid>389428</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-31 16:48:02 -0800</bug_when>
    <thetext>Comment on attachment 389428
Patch for landing

Clearing flags on attachment: 389428

Committed r255533: &lt;https://trac.webkit.org/changeset/255533&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613665</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-31 16:48:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798535</commentid>
    <comment_count>15</comment_count>
      <attachid>389428</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-29 13:45:11 -0700</bug_when>
    <thetext>Comment on attachment 389428
Patch for landing

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/Download.mm:1131
&gt; +    auto websiteDataStore = adoptNS([WKWebsiteDataStore defaultDataStore]);

This shouldn&apos;t adopt.
Fixing in https://bugs.webkit.org/show_bug.cgi?id=230980</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389228</attachid>
            <date>2020-01-29 21:29:56 -0800</date>
            <delta_ts>2020-01-30 17:34:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>file_206984.txt</filename>
            <type>text/plain</type>
            <size>6687</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IGU4OTliNTdjZjU0ODUzNTU0ZTQ5NWI3OThjZGNhNzIxZTAzNjhkODENCkF1dGhvcjog
RGF2aWQgUXVlc2FkYSA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQpEYXRlOiAgIFdlZCBKYW4g
MjkgMjE6Mjg6MzggMjAyMCAtMDgwMA0KDQogICAgUkVHUkVTU0lPTihyMjUyMTg1KTogTmV0d29y
a1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlcw0KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY5ODQNCiAgICByZGFyOi8vcHJvYmxlbS81ODk5OTY1NA0KICAgIA0KICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KICAgIA0KICAgIHIyNTIxODUgY2hhbmdlZCB0aGUgZWFybHkg
cmV0dXJuIGluIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSdzIC3igKZ0YXNrOmRpZFJlY2VpdmVD
aGFsbGVuZ2U64oCmIG1ldGhvZA0KICAgIGZyb20gImNhbmNlbCB0aGUgdGFzayBhbmQgcmV0dXJu
IGVhcmx5IGlmIHNlbGYgaGFzIG5vIF9zZXNzaW9uIiB0byAiY2FuY2VsIHRoZSB0YXNrIGFuZCBy
ZXR1cm4gZWFybHkNCiAgICBpZiB3ZSBjYW4ndCBkZXRlcm1pbmUgdGhlIG5ldHdvcmsgc2Vzc2lv
biBmb3IgdGhlIGdpdmVuIGRhdGEgdGFzayIuIFdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkIGZv
cg0KICAgIGFuIE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzaywgdGhpcyBlYXJseSByZXR1cm4gaXMg
aGl0IGJlY2F1c2UgdGhlcmUgaXMgbm8gTmV0d29ya0RhdGFUYXNrQ29jb2ENCiAgICBmb3IgYW4g
YWN0aXZlIGRvd25sb2FkLiBBcyBhIHJlc3VsdCwgdGhlIGRvd25sb2FkIGlzIGNhbmNlbGVkIHdo
ZW4gaXQgbWlnaHQgaGF2ZSBvdGhlcndpc2UgYmVlbiBhYmxlDQogICAgdG8gcHJvY2VlZC4NCiAg
ICANCiAgICBGaXggdGhpcyBieSBhZGRpbmcgYSBjb2RlIHBhdGggdG8gZmV0Y2ggdGhlIE5ldHdv
cmtTZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgRG93bmxvYWQgd2hlbiBhbg0KICAgIE5TVVJM
U2Vzc2lvbkRvd25sb2FkVGFzayByZWNlaXZlcyBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2Uu
IFRoaXMgZW5zdXJlcyB3ZSBjYW4gYWN0dWFsbHkgaGFuZGxlDQogICAgdGhlIGNoYWxsZW5nZSBh
cHByb3ByaWF0ZWx5IGFuZCBub3QganVzdCBjYW5jZWwgdGhlIHRhc2suDQogICAgDQogICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaDoNCiAgICAoV2ViS2l0OjpEb3dubG9h
ZDo6c2Vzc2lvbklEIGNvbnN0KToNCiAgICAgICAgRXhwb3NlIHRoZSBzZXNzaW9uIElEIHNvIHdl
IGNhbiB1c2UgaXQgdG8gbG9vayB1cCB0aGUgTmV0d29ya1Nlc3Npb24gZm9yIGEgRG93bmxvYWQu
DQogICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOg0KICAg
ICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9uOnRhc2s6ZGlkUmVjZWl2ZUNo
YWxsZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToNCiAgICAgICAgUmVtb3ZlIGFuIHVubmVjZXNz
YXJ5IHJlZGVjbGFyYXRpb24gb2YgbmV0d29ya0RhdGFUYXNrLCBhbmQgYWxzbyBhbiB1bm5lZWRl
ZCBhc3NlcnRpb24gdGhhdA0KICAgICAgICBuZXR3b3JrRGF0YVRhc2sgIT0gbnVsbHB0ci4gRXZl
biBpZiB0aGlzIGlzIHRoZSBjYXNlLCB0aGUgY29kZSB0aGF0IGV2ZW50dWFsbHkgaGFuZGxlcyB0
aGlzDQogICAgICAgIHRhc2sgd2lsbCBudWxsIGNoZWNrIGl0IGFuZCBoYW5kbGUgdGhlIGNoYWxs
ZW5nZSBhcyBhIHdlYnNvY2tldCB0YXNrIG9yIGRvd25sb2FkIHRhc2sNCiAgICAgICAgYmFzZWQg
b24gdGhlIHRhc2tJZGVudGlmaWVyLg0KDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZw0KaW5kZXggMDJjMWM2MDdhNDkuLjZjZGQ5
NTRlNGRhIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nDQpAQCAtMSwzICsxLDMyIEBADQorMjAyMC0wMS0yOSAgRGF2aWQg
UXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgUkVHUkVTU0lP
TihyMjUyMTg1KTogTmV0d29ya1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJl
Y2VpdmUgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlcw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjk4NA0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
NTg5OTk2NTQNCisNCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAg
ICAgICAgcjI1MjE4NSBjaGFuZ2VkIHRoZSBlYXJseSByZXR1cm4gaW4gV0tOZXR3b3JrU2Vzc2lv
bkRlbGVnYXRlJ3MgLeKApnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTrigKYgbWV0aG9kDQorICAg
ICAgICBmcm9tICJjYW5jZWwgdGhlIHRhc2sgYW5kIHJldHVybiBlYXJseSBpZiBzZWxmIGhhcyBu
byBfc2Vzc2lvbiIgdG8gImNhbmNlbCB0aGUgdGFzayBhbmQgcmV0dXJuIGVhcmx5DQorICAgICAg
ICBpZiB3ZSBjYW4ndCBkZXRlcm1pbmUgdGhlIG5ldHdvcmsgc2Vzc2lvbiBmb3IgdGhlIGdpdmVu
IGRhdGEgdGFzayIuIFdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkIGZvcg0KKyAgICAgICAgYW4g
TlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrLCB0aGlzIGVhcmx5IHJldHVybiBpcyBoaXQgYmVjYXVz
ZSB0aGVyZSBpcyBubyBOZXR3b3JrRGF0YVRhc2tDb2NvYQ0KKyAgICAgICAgZm9yIGFuIGFjdGl2
ZSBkb3dubG9hZC4gQXMgYSByZXN1bHQsIHRoZSBkb3dubG9hZCBpcyBjYW5jZWxlZCB3aGVuIGl0
IG1pZ2h0IGhhdmUgb3RoZXJ3aXNlIGJlZW4gYWJsZQ0KKyAgICAgICAgdG8gcHJvY2VlZC4NCisN
CisgICAgICAgIEZpeCB0aGlzIGJ5IGFkZGluZyBhIGNvZGUgcGF0aCB0byBmZXRjaCB0aGUgTmV0
d29ya1Nlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBEb3dubG9hZCB3aGVuIGFuDQorICAgICAg
ICBOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sgcmVjZWl2ZXMgYW4gYXV0aGVudGljYXRpb24gY2hh
bGxlbmdlLiBUaGlzIGVuc3VyZXMgd2UgY2FuIGFjdHVhbGx5IGhhbmRsZQ0KKyAgICAgICAgdGhl
IGNoYWxsZW5nZSBhcHByb3ByaWF0ZWx5IGFuZCBub3QganVzdCBjYW5jZWwgdGhlIHRhc2suDQor
DQorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOg0KKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWQ6OnNlc3Npb25JRCBjb25zdCk6DQorICAgICAgICAgICAgRXhw
b3NlIHRoZSBzZXNzaW9uIElEIHNvIHdlIGNhbiB1c2UgaXQgdG8gbG9vayB1cCB0aGUgTmV0d29y
a1Nlc3Npb24gZm9yIGEgRG93bmxvYWQuDQorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW06DQorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVs
ZWdhdGUgVVJMU2Vzc2lvbjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6DQorICAgICAgICAgICAgUmVtb3ZlIGFuIHVubmVjZXNzYXJ5IHJlZGVjbGFyYXRpb24g
b2YgbmV0d29ya0RhdGFUYXNrLCBhbmQgYWxzbyBhbiB1bm5lZWRlZCBhc3NlcnRpb24gdGhhdA0K
KyAgICAgICAgICAgIG5ldHdvcmtEYXRhVGFzayAhPSBudWxscHRyLiBFdmVuIGlmIHRoaXMgaXMg
dGhlIGNhc2UsIHRoZSBjb2RlIHRoYXQgZXZlbnR1YWxseSBoYW5kbGVzIHRoaXMNCisgICAgICAg
ICAgICB0YXNrIHdpbGwgbnVsbCBjaGVjayBpdCBhbmQgaGFuZGxlIHRoZSBjaGFsbGVuZ2UgYXMg
YSB3ZWJzb2NrZXQgdGFzayBvciBkb3dubG9hZCB0YXNrDQorICAgICAgICAgICAgYmFzZWQgb24g
dGhlIHRhc2tJZGVudGlmaWVyLg0KKw0KIDIwMjAtMDEtMjkgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPg0KIA0KICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjI1NDM3OS4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWQuaA0KaW5kZXggNDA2MTAyNGZlMmIuLjlhYzdjOGJlYjExIDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaA0KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaA0KQEAgLTgy
LDYgKzgyLDcgQEAgcHVibGljOg0KICNlbmRpZg0KIA0KICAgICBEb3dubG9hZElEIGRvd25sb2Fk
SUQoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2FkSUQ7IH0NCisgICAgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0NCiAgICAgY29uc3QgU3Ry
aW5nJiBzdWdnZXN0ZWROYW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdWdnZXN0ZWROYW1lOyB9DQog
DQogICAgIHZvaWQgc2V0U2FuZGJveEV4dGVuc2lvbihSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4m
JiBzYW5kYm94RXh0ZW5zaW9uKSB7IG1fc2FuZGJveEV4dGVuc2lvbiA9IFdURk1vdmUoc2FuZGJv
eEV4dGVuc2lvbik7IH0NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0NCmluZGV4IDc0N2VjYzU1MmI5Li4yODkz
OGU5OGNkOSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5tbQ0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tDQpAQCAtNjEzLDYgKzYxMywxMSBAQCAtICh2
b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9u
VGFzayAqKXRhc2sgZGlkUmVjZQ0KIHsNCiAgICAgYXV0byogbmV0d29ya0RhdGFUYXNrID0gW3Nl
bGYgZXhpc3RpbmdUYXNrOnRhc2tdOw0KICAgICBhdXRvKiBzZXNzaW9uQ29jb2EgPSBuZXR3b3Jr
RGF0YVRhc2sgPyBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hKj4obmV0d29ya0RhdGFU
YXNrLT5uZXR3b3JrU2Vzc2lvbigpKSA6IG51bGxwdHI7DQorICAgIGlmIChbdGFzayBpc0tpbmRP
ZkNsYXNzOltOU1VSTFNlc3Npb25Eb3dubG9hZFRhc2sgY2xhc3NdXSkgew0KKyAgICAgICAgQVNT
RVJUKCFzZXNzaW9uQ29jb2EpOw0KKyAgICAgICAgYXV0byBkb3dubG9hZCA9IF9zZXNzaW9uLT5u
ZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKF9zZXNzaW9uV3JhcHBl
ci0+ZG93bmxvYWRNYXAuZ2V0KHRhc2sudGFza0lkZW50aWZpZXIpKTsNCisgICAgICAgIHNlc3Np
b25Db2NvYSA9IGRvd25sb2FkID8gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSo+KF9z
ZXNzaW9uLT5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKGRvd25sb2FkLT5zZXNzaW9u
SUQoKSkpIDogbmlsOw0KKyAgICB9DQogICAgIGlmICghc2Vzc2lvbkNvY29hIHx8IFt0YXNrIHN0
YXRlXSA9PSBOU1VSTFNlc3Npb25UYXNrU3RhdGVDYW5jZWxpbmcpIHsNCiAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VDYW5jZWxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSwgbmlsKTsNCiAgICAgICAgIHJldHVybjsNCkBAIC02MzUsOCArNjQwLDYgQEAg
LSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5TVVJMU2Vz
c2lvblRhc2sgKil0YXNrIGRpZFJlY2UNCiAgICAgICAgIC8vIEhhbmRsZSBzZXJ2ZXIgdHJ1c3Qg
ZXZhbHVhdGlvbiBhdCBwbGF0Zm9ybS1sZXZlbCBpZiByZXF1ZXN0ZWQsIGZvciBwZXJmb3JtYW5j
ZSByZWFzb25zIGFuZCB0byB1c2UgQVRTIGRlZmF1bHRzLg0KICAgICAgICAgaWYgKHNlc3Npb25D
b2NvYS0+ZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQoKSkgew0KICNpZiBIQVZFKENG
TkVUV09SS19OU1VSTFNFU1NJT05fU1RSSUNUUlVTVEVWQUxVQVRFKQ0KLSAgICAgICAgICAgIGF1
dG8qIG5ldHdvcmtEYXRhVGFzayA9IFtzZWxmIGV4aXN0aW5nVGFzazp0YXNrXTsNCi0gICAgICAg
ICAgICBBU1NFUlQobmV0d29ya0RhdGFUYXNrKTsNCiAgICAgICAgICAgICBhdXRvIGRlY2lzaW9u
SGFuZGxlciA9IG1ha2VCbG9ja1B0cihbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS05ldHdvcmtT
ZXNzaW9uRGVsZWdhdGU+KHNlbGYpLCBzZXNzaW9uQ29jb2EgPSBtYWtlV2Vha1B0cihzZXNzaW9u
Q29jb2EpLCBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxl
ciksIHRhc2tJZGVudGlmaWVyLCBuZXR3b3JrRGF0YVRhc2sgPSBSZWZQdHI8TmV0d29ya0RhdGFU
YXNrQ29jb2E+KG5ldHdvcmtEYXRhVGFzayldKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
KmNoYWxsZW5nZSwgT1NTdGF0dXMgdHJ1c3RSZXN1bHQpIG11dGFibGUgew0KICAgICAgICAgICAg
ICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsNCiAgICAgICAgICAgICAgICAg
aWYgKCFzdHJvbmdTZWxmKQ0K
</data>
<flag name="review"
          id="404917"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389316</attachid>
            <date>2020-01-30 17:34:03 -0800</date>
            <delta_ts>2020-01-30 17:44:41 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>file_206984.txt</filename>
            <type>text/plain</type>
            <size>13684</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDRlMGVkNmE2MTJlOTJkNjg4YTE4ZDY5NWYzNzY1MGM4M2Y0MDI2ODkNCkF1dGhvcjog
RGF2aWQgUXVlc2FkYSA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQpEYXRlOiAgIFRodSBKYW4g
MzAgMTc6MTk6NDkgMjAyMCAtMDgwMA0KDQogICAgUkVHUkVTU0lPTihyMjUyMTg1KTogTmV0d29y
a1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlcw0KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY5ODQNCiAgICByZGFyOi8vcHJvYmxlbS81ODk5OTY1NA0KICAgIA0KICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KICAgIA0KICAgIFNvdXJjZS9XZWJLaXQ6DQogICAgDQogICAg
cjI1MjE4NSBjaGFuZ2VkIHRoZSBlYXJseSByZXR1cm4gaW4gV0tOZXR3b3JrU2Vzc2lvbkRlbGVn
YXRlJ3MgLeKApnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTrigKYgbWV0aG9kDQogICAgZnJvbSAi
Y2FuY2VsIHRoZSB0YXNrIGFuZCByZXR1cm4gZWFybHkgaWYgc2VsZiBoYXMgbm8gX3Nlc3Npb24i
IHRvICJjYW5jZWwgdGhlIHRhc2sgYW5kIHJldHVybiBlYXJseQ0KICAgIGlmIHdlIGNhbid0IGRl
dGVybWluZSB0aGUgbmV0d29yayBzZXNzaW9uIGZvciB0aGUgZ2l2ZW4gZGF0YSB0YXNrIi4gV2hl
biB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZm9yDQogICAgYW4gTlNVUkxTZXNzaW9uRG93bmxvYWRU
YXNrLCB0aGlzIGVhcmx5IHJldHVybiBpcyBoaXQgYmVjYXVzZSB0aGVyZSBpcyBubyBOZXR3b3Jr
RGF0YVRhc2tDb2NvYQ0KICAgIGZvciBhbiBhY3RpdmUgZG93bmxvYWQuIEFzIGEgcmVzdWx0LCB0
aGUgZG93bmxvYWQgaXMgY2FuY2VsZWQgd2hlbiBpdCBtaWdodCBoYXZlIG90aGVyd2lzZSBiZWVu
IGFibGUNCiAgICB0byBwcm9jZWVkLg0KICAgIA0KICAgIEZpeCB0aGlzIGJ5IGFkZGluZyBhIGNv
ZGUgcGF0aCB0byBmZXRjaCB0aGUgTmV0d29ya1Nlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBE
b3dubG9hZCB3aGVuIGFuDQogICAgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrIHJlY2VpdmVzIGFu
IGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS4gVGhpcyBlbnN1cmVzIHdlIGNhbiBhY3R1YWxseSBo
YW5kbGUNCiAgICB0aGUgY2hhbGxlbmdlIGFwcHJvcHJpYXRlbHkgYW5kIG5vdCBqdXN0IGNhbmNl
bCB0aGUgdGFzay4NCiAgICANCiAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5oOg0KICAgIChXZWJLaXQ6OkRvd25sb2FkOjpzZXNzaW9uSUQgY29uc3QpOg0KICAgICAgICBF
eHBvc2UgdGhlIHNlc3Npb24gSUQgc28gd2UgY2FuIHVzZSBpdCB0byBsb29rIHVwIHRoZSBOZXR3
b3JrU2Vzc2lvbiBmb3IgYSBEb3dubG9hZC4NCiAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW06DQogICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVS
TFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0K
ICAgICAgICBSZW1vdmUgYW4gdW5uZWNlc3NhcnkgcmVkZWNsYXJhdGlvbiBvZiBuZXR3b3JrRGF0
YVRhc2ssIGFuZCBhbHNvIGFuIHVubmVlZGVkIGFzc2VydGlvbiB0aGF0DQogICAgICAgIG5ldHdv
cmtEYXRhVGFzayAhPSBudWxscHRyLiBFdmVuIGlmIHRoaXMgaXMgdGhlIGNhc2UsIHRoZSBjb2Rl
IHRoYXQgZXZlbnR1YWxseSBoYW5kbGVzIHRoaXMNCiAgICAgICAgdGFzayB3aWxsIG51bGwgY2hl
Y2sgaXQgYW5kIGhhbmRsZSB0aGUgY2hhbGxlbmdlIGFzIGEgd2Vic29ja2V0IHRhc2sgb3IgZG93
bmxvYWQgdGFzaw0KICAgICAgICBiYXNlZCBvbiB0aGUgdGFza0lkZW50aWZpZXIuDQogICAgDQog
ICAgVG9vbHM6DQogICAgDQogICAgQWRkIGFuIEFQSSB0ZXN0IGZvciBhIHJlc3VtZWQgZG93bmxv
YWQgdGhhdCByZWNlaXZlcyBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuIFRoZSBkb3dubG9h
ZA0KICAgIGRlbGVnYXRlIHNob3VsZCBiZSBhc2tlZCB0byBoYW5kbGUgdGhlIGNoYWxsZW5nZSwg
YW5kIHRoZSBkb3dubG9hZCBzaG91bGQgYmUgYWJsZSB0byBmaW5pc2guDQogICAgDQogICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOg0KICAgICgtW0Rvd25s
b2FkQ2FuY2VsaW5nRGVsZWdhdGUgX2Rvd25sb2FkOmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dl
c3RlZEZpbGVuYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0KICAgICgtW0Rvd25sb2FkQ2FuY2Vs
aW5nRGVsZWdhdGUgX2Rvd25sb2FkOmRpZFJlY2VpdmVEYXRhOl0pOg0KICAgICgtW0Rvd25sb2Fk
Q2FuY2VsaW5nRGVsZWdhdGUgX2Rvd25sb2FkRGlkQ2FuY2VsOl0pOg0KICAgICgtW0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlSGFuZGxpbmdEZWxlZ2F0ZSBfZG93bmxvYWQ6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0KICAgICgtW0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlSGFuZGxpbmdEZWxlZ2F0ZSBfZG93bmxvYWREaWRGaW5pc2g6XSk6DQog
ICAgKFRFU1QpOg0KDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZw0KaW5kZXggMDkxZWI5NTRmMjYuLjMwMWMzNGQ3MzMxIDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nDQpAQCAtMSwzICsxLDMyIEBADQorMjAyMC0wMS0zMCAgRGF2aWQgUXVlc2FkYSAgPGRh
dmlkX3F1ZXNhZGFAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgUkVHUkVTU0lPTihyMjUyMTg1KTog
TmV0d29ya1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVu
dGljYXRpb24gY2hhbGxlbmdlcw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNjk4NA0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNTg5OTk2NTQNCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgcjI1MjE4
NSBjaGFuZ2VkIHRoZSBlYXJseSByZXR1cm4gaW4gV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlJ3Mg
LeKApnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTrigKYgbWV0aG9kDQorICAgICAgICBmcm9tICJj
YW5jZWwgdGhlIHRhc2sgYW5kIHJldHVybiBlYXJseSBpZiBzZWxmIGhhcyBubyBfc2Vzc2lvbiIg
dG8gImNhbmNlbCB0aGUgdGFzayBhbmQgcmV0dXJuIGVhcmx5DQorICAgICAgICBpZiB3ZSBjYW4n
dCBkZXRlcm1pbmUgdGhlIG5ldHdvcmsgc2Vzc2lvbiBmb3IgdGhlIGdpdmVuIGRhdGEgdGFzayIu
IFdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkIGZvcg0KKyAgICAgICAgYW4gTlNVUkxTZXNzaW9u
RG93bmxvYWRUYXNrLCB0aGlzIGVhcmx5IHJldHVybiBpcyBoaXQgYmVjYXVzZSB0aGVyZSBpcyBu
byBOZXR3b3JrRGF0YVRhc2tDb2NvYQ0KKyAgICAgICAgZm9yIGFuIGFjdGl2ZSBkb3dubG9hZC4g
QXMgYSByZXN1bHQsIHRoZSBkb3dubG9hZCBpcyBjYW5jZWxlZCB3aGVuIGl0IG1pZ2h0IGhhdmUg
b3RoZXJ3aXNlIGJlZW4gYWJsZQ0KKyAgICAgICAgdG8gcHJvY2VlZC4NCisNCisgICAgICAgIEZp
eCB0aGlzIGJ5IGFkZGluZyBhIGNvZGUgcGF0aCB0byBmZXRjaCB0aGUgTmV0d29ya1Nlc3Npb24g
YXNzb2NpYXRlZCB3aXRoIHRoZSBEb3dubG9hZCB3aGVuIGFuDQorICAgICAgICBOU1VSTFNlc3Np
b25Eb3dubG9hZFRhc2sgcmVjZWl2ZXMgYW4gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLiBUaGlz
IGVuc3VyZXMgd2UgY2FuIGFjdHVhbGx5IGhhbmRsZQ0KKyAgICAgICAgdGhlIGNoYWxsZW5nZSBh
cHByb3ByaWF0ZWx5IGFuZCBub3QganVzdCBjYW5jZWwgdGhlIHRhc2suDQorDQorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOg0KKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OnNlc3Npb25JRCBjb25zdCk6DQorICAgICAgICAgICAgRXhwb3NlIHRoZSBzZXNz
aW9uIElEIHNvIHdlIGNhbiB1c2UgaXQgdG8gbG9vayB1cCB0aGUgTmV0d29ya1Nlc3Npb24gZm9y
IGEgRG93bmxvYWQuDQorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW06DQorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vz
c2lvbjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6DQorICAg
ICAgICAgICAgUmVtb3ZlIGFuIHVubmVjZXNzYXJ5IHJlZGVjbGFyYXRpb24gb2YgbmV0d29ya0Rh
dGFUYXNrLCBhbmQgYWxzbyBhbiB1bm5lZWRlZCBhc3NlcnRpb24gdGhhdA0KKyAgICAgICAgICAg
IG5ldHdvcmtEYXRhVGFzayAhPSBudWxscHRyLiBFdmVuIGlmIHRoaXMgaXMgdGhlIGNhc2UsIHRo
ZSBjb2RlIHRoYXQgZXZlbnR1YWxseSBoYW5kbGVzIHRoaXMNCisgICAgICAgICAgICB0YXNrIHdp
bGwgbnVsbCBjaGVjayBpdCBhbmQgaGFuZGxlIHRoZSBjaGFsbGVuZ2UgYXMgYSB3ZWJzb2NrZXQg
dGFzayBvciBkb3dubG9hZCB0YXNrDQorICAgICAgICAgICAgYmFzZWQgb24gdGhlIHRhc2tJZGVu
dGlmaWVyLg0KKw0KIDIwMjAtMDEtMzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
Pg0KIA0KICAgICAgICAgW0NvY29hXSBVc2UgQVZBc3NldFdyaXRlckRlbGVnYXRlIHRvIGltcGxl
bWVudCBNZWRpYVJlY29yZGVyDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkLmgNCmluZGV4IDQwNjEwMjRmZTJiLi45YWM3YzhiZWIxMSAxMDA2
NDQNCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
LmgNCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
LmgNCkBAIC04Miw2ICs4Miw3IEBAIHB1YmxpYzoNCiAjZW5kaWYNCiANCiAgICAgRG93bmxvYWRJ
RCBkb3dubG9hZElEKCkgY29uc3QgeyByZXR1cm4gbV9kb3dubG9hZElEOyB9DQorICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9DQogICAg
IGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VnZ2VzdGVk
TmFtZTsgfQ0KIA0KICAgICB2b2lkIHNldFNhbmRib3hFeHRlbnNpb24oUmVmUHRyPFNhbmRib3hF
eHRlbnNpb24+JiYgc2FuZGJveEV4dGVuc2lvbikgeyBtX3NhbmRib3hFeHRlbnNpb24gPSBXVEZN
b3ZlKHNhbmRib3hFeHRlbnNpb24pOyB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tDQppbmRleCA3NDdlY2M1
NTJiOS4uNjNlMWQ1ZTM0MTkgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0NCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQ0KQEAgLTYxMyw2ICs2MTMs
MTIgQEAgLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5T
VVJMU2Vzc2lvblRhc2sgKil0YXNrIGRpZFJlY2UNCiB7DQogICAgIGF1dG8qIG5ldHdvcmtEYXRh
VGFzayA9IFtzZWxmIGV4aXN0aW5nVGFzazp0YXNrXTsNCiAgICAgYXV0byogc2Vzc2lvbkNvY29h
ID0gbmV0d29ya0RhdGFUYXNrID8gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Db2NvYSo+KG5l
dHdvcmtEYXRhVGFzay0+bmV0d29ya1Nlc3Npb24oKSkgOiBudWxscHRyOw0KKyAgICBpZiAoW3Rh
c2sgaXNLaW5kT2ZDbGFzczpbTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrIGNsYXNzXV0pIHsNCisg
ICAgICAgIEFTU0VSVCghc2Vzc2lvbkNvY29hKTsNCisgICAgICAgIGF1dG8gZG93bmxvYWRJRCA9
IF9zZXNzaW9uV3JhcHBlci0+ZG93bmxvYWRNYXAuZ2V0KHRhc2sudGFza0lkZW50aWZpZXIpOw0K
KyAgICAgICAgYXV0byBkb3dubG9hZCA9IGRvd25sb2FkSUQuZG93bmxvYWRJRCgpID8gX3Nlc3Np
b24tPm5ldHdvcmtQcm9jZXNzKCkuZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQoZG93bmxvYWRJ
RCkgOiBuaWw7DQorICAgICAgICBzZXNzaW9uQ29jb2EgPSBkb3dubG9hZCA/IHN0YXRpY19jYXN0
PE5ldHdvcmtTZXNzaW9uQ29jb2EqPihfc2Vzc2lvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3Jr
U2Vzc2lvbihkb3dubG9hZC0+c2Vzc2lvbklEKCkpKSA6IG5pbDsNCisgICAgfQ0KICAgICBpZiAo
IXNlc3Npb25Db2NvYSB8fCBbdGFzayBzdGF0ZV0gPT0gTlNVUkxTZXNzaW9uVGFza1N0YXRlQ2Fu
Y2VsaW5nKSB7DQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hh
bGxlbmdlQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIG5pbCk7DQogICAgICAgICByZXR1
cm47DQpAQCAtNjM1LDggKzY0MSw2IEBAIC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9u
ICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFzayBkaWRSZWNlDQogICAgICAg
ICAvLyBIYW5kbGUgc2VydmVyIHRydXN0IGV2YWx1YXRpb24gYXQgcGxhdGZvcm0tbGV2ZWwgaWYg
cmVxdWVzdGVkLCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBhbmQgdG8gdXNlIEFUUyBkZWZhdWx0
cy4NCiAgICAgICAgIGlmIChzZXNzaW9uQ29jb2EtPmZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25F
bmFibGVkKCkpIHsNCiAjaWYgSEFWRShDRk5FVFdPUktfTlNVUkxTRVNTSU9OX1NUUklDVFJVU1RF
VkFMVUFURSkNCi0gICAgICAgICAgICBhdXRvKiBuZXR3b3JrRGF0YVRhc2sgPSBbc2VsZiBleGlz
dGluZ1Rhc2s6dGFza107DQotICAgICAgICAgICAgQVNTRVJUKG5ldHdvcmtEYXRhVGFzayk7DQog
ICAgICAgICAgICAgYXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtTZWxm
ID0gV2Vha09iakNQdHI8V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlPihzZWxmKSwgc2Vzc2lvbkNv
Y29hID0gbWFrZVdlYWtQdHIoc2Vzc2lvbkNvY29hKSwgY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpLCB0YXNrSWRlbnRpZmllciwgbmV0d29ya0RhdGFU
YXNrID0gUmVmUHRyPE5ldHdvcmtEYXRhVGFza0NvY29hPihuZXR3b3JrRGF0YVRhc2spXShOU1VS
TEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UsIE9TU3RhdHVzIHRydXN0UmVzdWx0
KSBtdXRhYmxlIHsNCiAgICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYu
Z2V0KCk7DQogICAgICAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikNCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cNCmluZGV4IDlkZmM4NDFmZGYyLi5hMDYx
NWNjODcwZiAxMDA2NDQNCi0tLSBhL1Rvb2xzL0NoYW5nZUxvZw0KKysrIGIvVG9vbHMvQ2hhbmdl
TG9nDQpAQCAtMSwzICsxLDIyIEBADQorMjAyMC0wMS0zMCAgRGF2aWQgUXVlc2FkYSAgPGRhdmlk
X3F1ZXNhZGFAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgUkVHUkVTU0lPTihyMjUyMTg1KTogTmV0
d29ya1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVudGlj
YXRpb24gY2hhbGxlbmdlcw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNjk4NA0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNTg5OTk2NTQNCisNCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgQWRkIGFuIEFQ
SSB0ZXN0IGZvciBhIHJlc3VtZWQgZG93bmxvYWQgdGhhdCByZWNlaXZlcyBhbiBhdXRoZW50aWNh
dGlvbiBjaGFsbGVuZ2UuIFRoZSBkb3dubG9hZA0KKyAgICAgICAgZGVsZWdhdGUgc2hvdWxkIGJl
IGFza2VkIHRvIGhhbmRsZSB0aGUgY2hhbGxlbmdlLCBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBi
ZSBhYmxlIHRvIGZpbmlzaC4NCisNCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Eb3dubG9hZC5tbToNCisgICAgICAgICgtW0Rvd25sb2FkQ2FuY2VsaW5nRGVsZWdh
dGUgX2Rvd25sb2FkOmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmNvbXBs
ZXRpb25IYW5kbGVyOl0pOg0KKyAgICAgICAgKC1bRG93bmxvYWRDYW5jZWxpbmdEZWxlZ2F0ZSBf
ZG93bmxvYWQ6ZGlkUmVjZWl2ZURhdGE6XSk6DQorICAgICAgICAoLVtEb3dubG9hZENhbmNlbGlu
Z0RlbGVnYXRlIF9kb3dubG9hZERpZENhbmNlbDpdKToNCisgICAgICAgICgtW0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlSGFuZGxpbmdEZWxlZ2F0ZSBfZG93bmxvYWQ6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0KKyAgICAgICAgKC1bQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VIYW5kbGluZ0RlbGVnYXRlIF9kb3dubG9hZERpZEZpbmlzaDpdKToN
CisgICAgICAgIChURVNUKToNCisNCiAyMDIwLTAxLTI5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVk
YXJkQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIHJ1bi1zYWZhcmkgLyBydW4td2Via2l0LXRlc3Rz
IC0taW9zLXNpbXVsYXRvciBub3Qgd29ya2luZyB3aXRoIFhDb2RlIDEzLjMuMSAoMTFDNTA0KQ0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxv
YWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1t
DQppbmRleCA2YmNhMWFlYmYxMC4uYmFiOTY1YjA3MDQgMTAwNjQ0DQotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tDQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tDQpAQCAtMTAyOSw0ICsxMDI5
LDEyMiBAQCBURVNUKFdlYktpdCwgRG93bmxvYWROYXZpZ2F0aW9uUmVzcG9uc2VGcm9tTWVtb3J5
Q2FjaGUpDQogICAgIFtUZXN0UHJvdG9jb2wgdW5yZWdpc3Rlcl07DQogfQ0KIA0KK0BpbnRlcmZh
Y2UgRG93bmxvYWRDYW5jZWxpbmdEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tEb3dubG9hZERlbGVn
YXRlPg0KK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIFJldGFpblB0cjxOU0RhdGE+IHJlc3VtZURhdGE7
DQorQHByb3BlcnR5IChyZWFkb25seSkgUmV0YWluUHRyPE5TU3RyaW5nPiBwYXRoOw0KK0BlbmQN
CisNCitAaW1wbGVtZW50YXRpb24gRG93bmxvYWRDYW5jZWxpbmdEZWxlZ2F0ZQ0KKw0KKy0gKHZv
aWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRlY2lkZURlc3RpbmF0aW9uV2l0
aFN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGFsbG93T3ZlcndyaXRlLCBOU1N0cmluZyAqZGVzdGluYXRpb24pKWNv
bXBsZXRpb25IYW5kbGVyDQorew0KKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUg
ZmlsZUhhbmRsZTsNCisgICAgX3BhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgi
VGVzdFdlYktpdEFQSSIsIGZpbGVIYW5kbGUpOw0KKyAgICBFWFBFQ1RfVFJVRShmaWxlSGFuZGxl
ICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOw0KKyAgICBGaWxlU3lz
dGVtOjpjbG9zZUZpbGUoZmlsZUhhbmRsZSk7DQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFlFUywg
X3BhdGguZ2V0KCkpOw0KK30NCisNCistICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilk
b3dubG9hZCBkaWRSZWNlaXZlRGF0YToodWludDY0X3QpbGVuZ3RoDQorew0KKyAgICBFWFBFQ1Rf
RVEobGVuZ3RoLCA1MDAwVUxMKTsNCisgICAgW2Rvd25sb2FkIGNhbmNlbF07DQorfQ0KKw0KKy0g
KHZvaWQpX2Rvd25sb2FkRGlkQ2FuY2VsOihfV0tEb3dubG9hZCAqKWRvd25sb2FkDQorew0KKyAg
ICBFWFBFQ1RfTk9UX05VTEwoZG93bmxvYWQucmVzdW1lRGF0YSk7DQorICAgIF9yZXN1bWVEYXRh
ID0gZG93bmxvYWQucmVzdW1lRGF0YTsNCisgICAgaXNEb25lID0gdHJ1ZTsNCit9DQorDQorQGVu
ZA0KKw0KK0BpbnRlcmZhY2UgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VIYW5kbGluZ0RlbGVnYXRl
IDogTlNPYmplY3QgPF9XS0Rvd25sb2FkRGVsZWdhdGU+DQorQGVuZA0KKw0KK0BpbXBsZW1lbnRh
dGlvbiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUhhbmRsaW5nRGVsZWdhdGUgew0KKyAgICBib29s
IF9kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7DQorfQ0KKw0KKy0gKHZvaWQpX2Rv
d25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9u
LCBOU1VSTENyZWRlbnRpYWwqKSljb21wbGV0aW9uSGFuZGxlcg0KK3sNCisgICAgX2RpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSA9IHRydWU7DQorICAgIGNvbXBsZXRpb25IYW5kbGVy
KE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBuaWwpOw0KK30NCisNCist
ICh2b2lkKV9kb3dubG9hZERpZEZpbmlzaDooX1dLRG93bmxvYWQgKilkb3dubG9hZA0KK3sNCisg
ICAgRVhQRUNUX1RSVUUoX2RpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7DQorICAg
IGlzRG9uZSA9IHRydWU7DQorfQ0KKw0KK0BlbmQNCisNCitURVNUKF9XS0Rvd25sb2FkLCBSZXN1
bWVkRG93bmxvYWRDYW5IYW5kbGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkNCit7DQorICAgIHVz
aW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOw0KKw0KKyAgICBzdGQ6OmF0b21pYzxib29sPiBy
ZWNlaXZlZEZpcnN0Q29ubmVjdGlvbiB7IGZhbHNlIH07DQorDQorICAgIFRDUFNlcnZlciBzZXJ2
ZXIoWyZdKGludCBzb2NrZXQpIHsNCisgICAgICAgIGlmICghcmVjZWl2ZWRGaXJzdENvbm5lY3Rp
b24uZXhjaGFuZ2UodHJ1ZSkpIHsNCisgICAgICAgICAgICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0
KTsNCisNCisgICAgICAgICAgICBjb25zdCBjaGFyKiByZXNwb25zZUhlYWRlciA9DQorICAgICAg
ICAgICAgIkhUVFAvMS4xIDIwMCBPS1xyXG4iDQorICAgICAgICAgICAgIkVUYWc6IHRlc3Rcclxu
Ig0KKyAgICAgICAgICAgICJDb250ZW50LUxlbmd0aDogMTAwMDBcclxuXHJcbiI7DQorICAgICAg
ICAgICAgVENQU2VydmVyOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlSGVhZGVyLCBzdHJsZW4ocmVz
cG9uc2VIZWFkZXIpKTsNCisNCisgICAgICAgICAgICBjaGFyIGRhdGFbNTAwMF07DQorICAgICAg
ICAgICAgbWVtc2V0KGRhdGEsIDAsIDUwMDApOw0KKyAgICAgICAgICAgIFRDUFNlcnZlcjo6d3Jp
dGUoc29ja2V0LCBkYXRhLCA1MDAwKTsNCisNCisgICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUg
Y2xpZW50IHRvIGNhbmNlbCB0aGUgZG93bmxvYWQgYmVmb3JlIGNsb3NpbmcgdGhlIGNvbm5lY3Rp
b24uDQorICAgICAgICAgICAgVXRpbDo6cnVuKCZpc0RvbmUpOw0KKyAgICAgICAgfSBlbHNlIHsN
CisgICAgICAgICAgICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsNCisgICAgICAgICAgICBjb25z
dCBjaGFyKiBjaGFsbGVuZ2VIZWFkZXIgPQ0KKyAgICAgICAgICAgICJIVFRQLzEuMSA0MDEgVW5h
dXRob3JpemVkXHJcbiINCisgICAgICAgICAgICAiRGF0ZTogU2F0LCAyMyBNYXIgMjAxOSAwNjoy
OTowMSBHTVRcclxuIg0KKyAgICAgICAgICAgICJDb250ZW50LUxlbmd0aDogMFxyXG4iDQorICAg
ICAgICAgICAgIldXVy1BdXRoZW50aWNhdGU6IEJhc2ljIHJlYWxtPVwidGVzdHJlYWxtXCJcclxu
XHJcbiI7DQorICAgICAgICAgICAgVENQU2VydmVyOjp3cml0ZShzb2NrZXQsIGNoYWxsZW5nZUhl
YWRlciwgc3RybGVuKGNoYWxsZW5nZUhlYWRlcikpOw0KKw0KKyAgICAgICAgICAgIFRDUFNlcnZl
cjo6cmVhZChzb2NrZXQpOw0KKw0KKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJlc3BvbnNlSGVh
ZGVyID0NCisgICAgICAgICAgICAiSFRUUC8xLjEgMjA2IFBhcnRpYWwgQ29udGVudFxyXG4iDQor
ICAgICAgICAgICAgIkVUYWc6IHRlc3RcclxuIg0KKyAgICAgICAgICAgICJDb250ZW50LVJhbmdl
OiBieXRlcyA1MDAwLTk5OTkvMTAwMDBcclxuIg0KKyAgICAgICAgICAgICJDb250ZW50LUxlbmd0
aDogNTAwMFxyXG5cclxuIjsNCisgICAgICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwg
cmVzcG9uc2VIZWFkZXIsIHN0cmxlbihyZXNwb25zZUhlYWRlcikpOw0KKw0KKyAgICAgICAgICAg
IGNoYXIgZGF0YVs1MDAwXTsNCisgICAgICAgICAgICBtZW1zZXQoZGF0YSwgMSwgNTAwMCk7DQor
ICAgICAgICAgICAgVENQU2VydmVyOjp3cml0ZShzb2NrZXQsIGRhdGEsIDUwMDApOw0KKyAgICAg
ICAgfQ0KKyAgICB9LCAyKTsNCisNCisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tX
S1Byb2Nlc3NQb29sIGFsbG9jXSBpbml0XSk7DQorICAgIGF1dG8gd2Vic2l0ZURhdGFTdG9yZSA9
IGFkb3B0TlMoW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSk7DQorDQorICAg
IGF1dG8gZGVsZWdhdGUxID0gYWRvcHROUyhbW0Rvd25sb2FkQ2FuY2VsaW5nRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsNCisgICAgW3Byb2Nlc3NQb29sIF9zZXREb3dubG9hZERlbGVnYXRlOmRlbGVn
YXRlMS5nZXQoKV07DQorDQorICAgIGlzRG9uZSA9IGZhbHNlOw0KKyAgICBOU1VSTFJlcXVlc3Qg
KnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3Ry
aW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiaHR0cDovLzEyNy4wLjAuMTolZC8iLCBz
ZXJ2ZXIucG9ydCgpXV1dOw0KKyAgICBbcHJvY2Vzc1Bvb2wgX2Rvd25sb2FkVVJMUmVxdWVzdDpy
ZXF1ZXN0IHdlYnNpdGVEYXRhU3RvcmU6d2Vic2l0ZURhdGFTdG9yZS5nZXQoKSBvcmlnaW5hdGlu
Z1dlYlZpZXc6bmlsXTsNCisNCisgICAgVXRpbDo6cnVuKCZpc0RvbmUpOw0KKw0KKyAgICBpc0Rv
bmUgPSBmYWxzZTsNCisgICAgYXV0byBkZWxlZ2F0ZTIgPSBhZG9wdE5TKFtbQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VIYW5kbGluZ0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7DQorICAgIFtwcm9jZXNz
UG9vbCBfc2V0RG93bmxvYWREZWxlZ2F0ZTpkZWxlZ2F0ZTIuZ2V0KCldOw0KKyAgICBbcHJvY2Vz
c1Bvb2wgX3Jlc3VtZURvd25sb2FkRnJvbURhdGE6W2RlbGVnYXRlMSByZXN1bWVEYXRhXS5nZXQo
KSB3ZWJzaXRlRGF0YVN0b3JlOndlYnNpdGVEYXRhU3RvcmUuZ2V0KCkgcGF0aDpbZGVsZWdhdGUx
IHBhdGhdLmdldCgpIG9yaWdpbmF0aW5nV2ViVmlldzpuaWxdOw0KKw0KKyAgICBVdGlsOjpydW4o
JmlzRG9uZSk7DQorfQ0KKw0KICNlbmRpZiAvLyBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElP
UykNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389318</attachid>
            <date>2020-01-30 17:44:41 -0800</date>
            <delta_ts>2020-01-30 18:10:20 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>file_206984.txt</filename>
            <type>text/plain</type>
            <size>13700</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDMwNmRkOTNlNmFhM2ExY2U3OGZiYTcxZTVmOTNlZDUyM2Q2MTE5ZDcNCkF1dGhvcjog
RGF2aWQgUXVlc2FkYSA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQpEYXRlOiAgIFRodSBKYW4g
MzAgMTc6MTk6NDkgMjAyMCAtMDgwMA0KDQogICAgUkVHUkVTU0lPTihyMjUyMTg1KTogTmV0d29y
a1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlcw0KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY5ODQNCiAgICByZGFyOi8vcHJvYmxlbS81ODk5OTY1NA0KICAgIA0KICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KICAgIA0KICAgIFNvdXJjZS9XZWJLaXQ6DQogICAgDQogICAg
cjI1MjE4NSBjaGFuZ2VkIHRoZSBlYXJseSByZXR1cm4gaW4gV0tOZXR3b3JrU2Vzc2lvbkRlbGVn
YXRlJ3MgLeKApnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTrigKYgbWV0aG9kDQogICAgZnJvbSAi
Y2FuY2VsIHRoZSB0YXNrIGFuZCByZXR1cm4gZWFybHkgaWYgc2VsZiBoYXMgbm8gX3Nlc3Npb24i
IHRvICJjYW5jZWwgdGhlIHRhc2sgYW5kIHJldHVybiBlYXJseQ0KICAgIGlmIHdlIGNhbid0IGRl
dGVybWluZSB0aGUgbmV0d29yayBzZXNzaW9uIGZvciB0aGUgZ2l2ZW4gZGF0YSB0YXNrIi4gV2hl
biB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZm9yDQogICAgYW4gTlNVUkxTZXNzaW9uRG93bmxvYWRU
YXNrLCB0aGlzIGVhcmx5IHJldHVybiBpcyBoaXQgYmVjYXVzZSB0aGVyZSBpcyBubyBOZXR3b3Jr
RGF0YVRhc2tDb2NvYQ0KICAgIGZvciBhbiBhY3RpdmUgZG93bmxvYWQuIEFzIGEgcmVzdWx0LCB0
aGUgZG93bmxvYWQgaXMgY2FuY2VsZWQgd2hlbiBpdCBtaWdodCBoYXZlIG90aGVyd2lzZSBiZWVu
IGFibGUNCiAgICB0byBwcm9jZWVkLg0KICAgIA0KICAgIEZpeCB0aGlzIGJ5IGFkZGluZyBhIGNv
ZGUgcGF0aCB0byBmZXRjaCB0aGUgTmV0d29ya1Nlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBE
b3dubG9hZCB3aGVuIGFuDQogICAgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrIHJlY2VpdmVzIGFu
IGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS4gVGhpcyBlbnN1cmVzIHdlIGNhbiBhY3R1YWxseSBo
YW5kbGUNCiAgICB0aGUgY2hhbGxlbmdlIGFwcHJvcHJpYXRlbHkgYW5kIG5vdCBqdXN0IGNhbmNl
bCB0aGUgdGFzay4NCiAgICANCiAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5oOg0KICAgIChXZWJLaXQ6OkRvd25sb2FkOjpzZXNzaW9uSUQgY29uc3QpOg0KICAgICAgICBF
eHBvc2UgdGhlIHNlc3Npb24gSUQgc28gd2UgY2FuIHVzZSBpdCB0byBsb29rIHVwIHRoZSBOZXR3
b3JrU2Vzc2lvbiBmb3IgYSBEb3dubG9hZC4NCiAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW06DQogICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVS
TFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0K
ICAgICAgICBSZW1vdmUgYW4gdW5uZWNlc3NhcnkgcmVkZWNsYXJhdGlvbiBvZiBuZXR3b3JrRGF0
YVRhc2ssIGFuZCBhbHNvIGFuIHVubmVlZGVkIGFzc2VydGlvbiB0aGF0DQogICAgICAgIG5ldHdv
cmtEYXRhVGFzayAhPSBudWxscHRyLiBFdmVuIGlmIHRoaXMgaXMgdGhlIGNhc2UsIHRoZSBjb2Rl
IHRoYXQgZXZlbnR1YWxseSBoYW5kbGVzIHRoaXMNCiAgICAgICAgdGFzayB3aWxsIG51bGwgY2hl
Y2sgaXQgYW5kIGhhbmRsZSB0aGUgY2hhbGxlbmdlIGFzIGEgd2Vic29ja2V0IHRhc2sgb3IgZG93
bmxvYWQgdGFzaw0KICAgICAgICBiYXNlZCBvbiB0aGUgdGFza0lkZW50aWZpZXIuDQogICAgDQog
ICAgVG9vbHM6DQogICAgDQogICAgQWRkIGFuIEFQSSB0ZXN0IGZvciBhIHJlc3VtZWQgZG93bmxv
YWQgdGhhdCByZWNlaXZlcyBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuIFRoZSBkb3dubG9h
ZA0KICAgIGRlbGVnYXRlIHNob3VsZCBiZSBhc2tlZCB0byBoYW5kbGUgdGhlIGNoYWxsZW5nZSwg
YW5kIHRoZSBkb3dubG9hZCBzaG91bGQgYmUgYWJsZSB0byBmaW5pc2guDQogICAgDQogICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOg0KICAgICgtW0Rvd25s
b2FkQ2FuY2VsaW5nRGVsZWdhdGUgX2Rvd25sb2FkOmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dl
c3RlZEZpbGVuYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0KICAgICgtW0Rvd25sb2FkQ2FuY2Vs
aW5nRGVsZWdhdGUgX2Rvd25sb2FkOmRpZFJlY2VpdmVEYXRhOl0pOg0KICAgICgtW0Rvd25sb2Fk
Q2FuY2VsaW5nRGVsZWdhdGUgX2Rvd25sb2FkRGlkQ2FuY2VsOl0pOg0KICAgICgtW0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlSGFuZGxpbmdEZWxlZ2F0ZSBfZG93bmxvYWQ6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0KICAgICgtW0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlSGFuZGxpbmdEZWxlZ2F0ZSBfZG93bmxvYWREaWRGaW5pc2g6XSk6DQog
ICAgKFRFU1QpOg0KDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZw0KaW5kZXggOTVlODUxYWM5YzQuLjViOTg3NzAyYzI4IDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nDQpAQCAtMSwzICsxLDMyIEBADQorMjAyMC0wMS0zMCAgRGF2aWQgUXVlc2FkYSAgPGRh
dmlkX3F1ZXNhZGFAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgUkVHUkVTU0lPTihyMjUyMTg1KTog
TmV0d29ya1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVu
dGljYXRpb24gY2hhbGxlbmdlcw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNjk4NA0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNTg5OTk2NTQNCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgcjI1MjE4
NSBjaGFuZ2VkIHRoZSBlYXJseSByZXR1cm4gaW4gV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlJ3Mg
LeKApnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTrigKYgbWV0aG9kDQorICAgICAgICBmcm9tICJj
YW5jZWwgdGhlIHRhc2sgYW5kIHJldHVybiBlYXJseSBpZiBzZWxmIGhhcyBubyBfc2Vzc2lvbiIg
dG8gImNhbmNlbCB0aGUgdGFzayBhbmQgcmV0dXJuIGVhcmx5DQorICAgICAgICBpZiB3ZSBjYW4n
dCBkZXRlcm1pbmUgdGhlIG5ldHdvcmsgc2Vzc2lvbiBmb3IgdGhlIGdpdmVuIGRhdGEgdGFzayIu
IFdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkIGZvcg0KKyAgICAgICAgYW4gTlNVUkxTZXNzaW9u
RG93bmxvYWRUYXNrLCB0aGlzIGVhcmx5IHJldHVybiBpcyBoaXQgYmVjYXVzZSB0aGVyZSBpcyBu
byBOZXR3b3JrRGF0YVRhc2tDb2NvYQ0KKyAgICAgICAgZm9yIGFuIGFjdGl2ZSBkb3dubG9hZC4g
QXMgYSByZXN1bHQsIHRoZSBkb3dubG9hZCBpcyBjYW5jZWxlZCB3aGVuIGl0IG1pZ2h0IGhhdmUg
b3RoZXJ3aXNlIGJlZW4gYWJsZQ0KKyAgICAgICAgdG8gcHJvY2VlZC4NCisNCisgICAgICAgIEZp
eCB0aGlzIGJ5IGFkZGluZyBhIGNvZGUgcGF0aCB0byBmZXRjaCB0aGUgTmV0d29ya1Nlc3Npb24g
YXNzb2NpYXRlZCB3aXRoIHRoZSBEb3dubG9hZCB3aGVuIGFuDQorICAgICAgICBOU1VSTFNlc3Np
b25Eb3dubG9hZFRhc2sgcmVjZWl2ZXMgYW4gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLiBUaGlz
IGVuc3VyZXMgd2UgY2FuIGFjdHVhbGx5IGhhbmRsZQ0KKyAgICAgICAgdGhlIGNoYWxsZW5nZSBh
cHByb3ByaWF0ZWx5IGFuZCBub3QganVzdCBjYW5jZWwgdGhlIHRhc2suDQorDQorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOg0KKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OnNlc3Npb25JRCBjb25zdCk6DQorICAgICAgICAgICAgRXhwb3NlIHRoZSBzZXNz
aW9uIElEIHNvIHdlIGNhbiB1c2UgaXQgdG8gbG9vayB1cCB0aGUgTmV0d29ya1Nlc3Npb24gZm9y
IGEgRG93bmxvYWQuDQorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW06DQorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vz
c2lvbjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6DQorICAg
ICAgICAgICAgUmVtb3ZlIGFuIHVubmVjZXNzYXJ5IHJlZGVjbGFyYXRpb24gb2YgbmV0d29ya0Rh
dGFUYXNrLCBhbmQgYWxzbyBhbiB1bm5lZWRlZCBhc3NlcnRpb24gdGhhdA0KKyAgICAgICAgICAg
IG5ldHdvcmtEYXRhVGFzayAhPSBudWxscHRyLiBFdmVuIGlmIHRoaXMgaXMgdGhlIGNhc2UsIHRo
ZSBjb2RlIHRoYXQgZXZlbnR1YWxseSBoYW5kbGVzIHRoaXMNCisgICAgICAgICAgICB0YXNrIHdp
bGwgbnVsbCBjaGVjayBpdCBhbmQgaGFuZGxlIHRoZSBjaGFsbGVuZ2UgYXMgYSB3ZWJzb2NrZXQg
dGFzayBvciBkb3dubG9hZCB0YXNrDQorICAgICAgICAgICAgYmFzZWQgb24gdGhlIHRhc2tJZGVu
dGlmaWVyLg0KKw0KIDIwMjAtMDEtMzAgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNv
bT4NCiANCiAgICAgICAgIFVucmV2aWV3ZWQsIGFub3RoZXIgc3BlY3VsYXRpdmUgdGVzdCBmaXgg
YWZ0ZXIgcjI1NTA0MQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZC5oDQppbmRleCA0MDYxMDI0ZmUyYi4uOWFjN2M4YmViMTEgMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oDQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oDQpA
QCAtODIsNiArODIsNyBAQCBwdWJsaWM6DQogI2VuZGlmDQogDQogICAgIERvd25sb2FkSUQgZG93
bmxvYWRJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZG93bmxvYWRJRDsgfQ0KKyAgICBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQ0KICAgICBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUoKSBjb25zdCB7IHJldHVybiBtX3N1Z2dlc3RlZE5hbWU7
IH0NCiANCiAgICAgdm9pZCBzZXRTYW5kYm94RXh0ZW5zaW9uKFJlZlB0cjxTYW5kYm94RXh0ZW5z
aW9uPiYmIHNhbmRib3hFeHRlbnNpb24pIHsgbV9zYW5kYm94RXh0ZW5zaW9uID0gV1RGTW92ZShz
YW5kYm94RXh0ZW5zaW9uKTsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQ0KaW5kZXggYWI0NWE1NzBiZTcu
LjM2YzZjY2MyZWYxIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tDQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0NCkBAIC02MTMsNiArNjEzLDEyIEBA
IC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNl
c3Npb25UYXNrICopdGFzayBkaWRSZWNlDQogew0KICAgICBhdXRvKiBuZXR3b3JrRGF0YVRhc2sg
PSBbc2VsZiBleGlzdGluZ1Rhc2s6dGFza107DQogICAgIGF1dG8qIHNlc3Npb25Db2NvYSA9IG5l
dHdvcmtEYXRhVGFzayA/IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EqPihuZXR3b3Jr
RGF0YVRhc2stPm5ldHdvcmtTZXNzaW9uKCkpIDogbnVsbHB0cjsNCisgICAgaWYgKFt0YXNrIGlz
S2luZE9mQ2xhc3M6W05TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayBjbGFzc11dKSB7DQorICAgICAg
ICBBU1NFUlQoIXNlc3Npb25Db2NvYSk7DQorICAgICAgICBhdXRvIGRvd25sb2FkSUQgPSBfc2Vz
c2lvbldyYXBwZXItPmRvd25sb2FkTWFwLmdldCh0YXNrLnRhc2tJZGVudGlmaWVyKTsNCisgICAg
ICAgIGF1dG8gZG93bmxvYWQgPSBkb3dubG9hZElELmRvd25sb2FkSUQoKSA/IF9zZXNzaW9uLT5u
ZXR3b3JrUHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKGRvd25sb2FkSUQpIDog
bmlsOw0KKyAgICAgICAgc2Vzc2lvbkNvY29hID0gZG93bmxvYWQgPyBzdGF0aWNfY2FzdDxOZXR3
b3JrU2Vzc2lvbkNvY29hKj4oX3Nlc3Npb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Np
b24oZG93bmxvYWQtPnNlc3Npb25JRCgpKSkgOiBuaWw7DQorICAgIH0NCiAgICAgaWYgKCFzZXNz
aW9uQ29jb2EgfHwgW3Rhc2sgc3RhdGVdID09IE5TVVJMU2Vzc2lvblRhc2tTdGF0ZUNhbmNlbGlu
Zykgew0KICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5n
ZUNhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBuaWwpOw0KICAgICAgICAgcmV0dXJuOw0K
QEAgLTY1MSw4ICs2NTcsNiBAQCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNl
c3Npb24gdGFzazooTlNVUkxTZXNzaW9uVGFzayAqKXRhc2sgZGlkUmVjZQ0KICAgICAgICAgLy8g
SGFuZGxlIHNlcnZlciB0cnVzdCBldmFsdWF0aW9uIGF0IHBsYXRmb3JtLWxldmVsIGlmIHJlcXVl
c3RlZCwgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgYW5kIHRvIHVzZSBBVFMgZGVmYXVsdHMuDQog
ICAgICAgICBpZiAoc2Vzc2lvbkNvY29hLT5mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxl
ZCgpICYmIG5lZ290aWF0ZWRMZWdhY3lUTFMgPT0gTmVnb3RpYXRlZExlZ2FjeVRMUzo6Tm8pIHsN
CiAjaWYgSEFWRShDRk5FVFdPUktfTlNVUkxTRVNTSU9OX1NUUklDVFJVU1RFVkFMVUFURSkNCi0g
ICAgICAgICAgICBhdXRvKiBuZXR3b3JrRGF0YVRhc2sgPSBbc2VsZiBleGlzdGluZ1Rhc2s6dGFz
a107DQotICAgICAgICAgICAgQVNTRVJUKG5ldHdvcmtEYXRhVGFzayk7DQogICAgICAgICAgICAg
YXV0byBkZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW3dlYWtTZWxmID0gV2Vha09iakNQ
dHI8V0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlPihzZWxmKSwgc2Vzc2lvbkNvY29hID0gbWFrZVdl
YWtQdHIoc2Vzc2lvbkNvY29hKSwgY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29t
cGxldGlvbkhhbmRsZXIpLCB0YXNrSWRlbnRpZmllciwgbmV0d29ya0RhdGFUYXNrID0gbWFrZVJl
ZlB0cihuZXR3b3JrRGF0YVRhc2spLCBuZWdvdGlhdGVkTGVnYWN5VExTXShOU1VSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlICpjaGFsbGVuZ2UsIE9TU3RhdHVzIHRydXN0UmVzdWx0KSBtdXRhYmxl
IHsNCiAgICAgICAgICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCk7DQog
ICAgICAgICAgICAgICAgIGlmICghc3Ryb25nU2VsZikNCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cNCmluZGV4IGU4MTgxYTg4ZTFmLi5kMjQ1ZTc1NGQxMiAx
MDA2NDQNCi0tLSBhL1Rvb2xzL0NoYW5nZUxvZw0KKysrIGIvVG9vbHMvQ2hhbmdlTG9nDQpAQCAt
MSwzICsxLDIyIEBADQorMjAyMC0wMS0zMCAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFA
YXBwbGUuY29tPg0KKw0KKyAgICAgICAgUkVHUkVTU0lPTihyMjUyMTg1KTogTmV0d29ya1Nlc3Np
b25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVudGljYXRpb24gY2hh
bGxlbmdlcw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNjk4NA0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNTg5OTk2NTQNCisNCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IGZv
ciBhIHJlc3VtZWQgZG93bmxvYWQgdGhhdCByZWNlaXZlcyBhbiBhdXRoZW50aWNhdGlvbiBjaGFs
bGVuZ2UuIFRoZSBkb3dubG9hZA0KKyAgICAgICAgZGVsZWdhdGUgc2hvdWxkIGJlIGFza2VkIHRv
IGhhbmRsZSB0aGUgY2hhbGxlbmdlLCBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBiZSBhYmxlIHRv
IGZpbmlzaC4NCisNCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
b3dubG9hZC5tbToNCisgICAgICAgICgtW0Rvd25sb2FkQ2FuY2VsaW5nRGVsZWdhdGUgX2Rvd25s
b2FkOmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmNvbXBsZXRpb25IYW5k
bGVyOl0pOg0KKyAgICAgICAgKC1bRG93bmxvYWRDYW5jZWxpbmdEZWxlZ2F0ZSBfZG93bmxvYWQ6
ZGlkUmVjZWl2ZURhdGE6XSk6DQorICAgICAgICAoLVtEb3dubG9hZENhbmNlbGluZ0RlbGVnYXRl
IF9kb3dubG9hZERpZENhbmNlbDpdKToNCisgICAgICAgICgtW0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlSGFuZGxpbmdEZWxlZ2F0ZSBfZG93bmxvYWQ6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0KKyAgICAgICAgKC1bQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VIYW5kbGluZ0RlbGVnYXRlIF9kb3dubG9hZERpZEZpbmlzaDpdKToNCisgICAgICAg
IChURVNUKToNCisNCiAyMDIwLTAxLTMwICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5j
b20+DQogDQogICAgICAgICBVbnJldmlld2VkLCBhbm90aGVyIHNwZWN1bGF0aXZlIHRlc3QgZml4
IGFmdGVyIHIyNTUwNDENCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0Rvd25sb2FkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Eb3dubG9hZC5tbQ0KaW5kZXggNmJjYTFhZWJmMTAuLmJhYjk2NWIwNzA0IDEwMDY0NA0K
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQ0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQ0K
QEAgLTEwMjksNCArMTAyOSwxMjIgQEAgVEVTVChXZWJLaXQsIERvd25sb2FkTmF2aWdhdGlvblJl
c3BvbnNlRnJvbU1lbW9yeUNhY2hlKQ0KICAgICBbVGVzdFByb3RvY29sIHVucmVnaXN0ZXJdOw0K
IH0NCiANCitAaW50ZXJmYWNlIERvd25sb2FkQ2FuY2VsaW5nRGVsZWdhdGUgOiBOU09iamVjdCA8
X1dLRG93bmxvYWREZWxlZ2F0ZT4NCitAcHJvcGVydHkgKHJlYWRvbmx5KSBSZXRhaW5QdHI8TlNE
YXRhPiByZXN1bWVEYXRhOw0KK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIFJldGFpblB0cjxOU1N0cmlu
Zz4gcGF0aDsNCitAZW5kDQorDQorQGltcGxlbWVudGF0aW9uIERvd25sb2FkQ2FuY2VsaW5nRGVs
ZWdhdGUNCisNCistICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkZWNp
ZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZTooTlNTdHJpbmcgKilmaWxlbmFtZSBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhbGxvd092ZXJ3cml0ZSwgTlNTdHJpbmcg
KmRlc3RpbmF0aW9uKSljb21wbGV0aW9uSGFuZGxlcg0KK3sNCisgICAgRmlsZVN5c3RlbTo6UGxh
dGZvcm1GaWxlSGFuZGxlIGZpbGVIYW5kbGU7DQorICAgIF9wYXRoID0gRmlsZVN5c3RlbTo6b3Bl
blRlbXBvcmFyeUZpbGUoIlRlc3RXZWJLaXRBUEkiLCBmaWxlSGFuZGxlKTsNCisgICAgRVhQRUNU
X1RSVUUoZmlsZUhhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KTsNCisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGZpbGVIYW5kbGUpOw0KKyAgICBjb21wbGV0
aW9uSGFuZGxlcihZRVMsIF9wYXRoLmdldCgpKTsNCit9DQorDQorLSAodm9pZClfZG93bmxvYWQ6
KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZURhdGE6KHVpbnQ2NF90KWxlbmd0aA0K
K3sNCisgICAgRVhQRUNUX0VRKGxlbmd0aCwgNTAwMFVMTCk7DQorICAgIFtkb3dubG9hZCBjYW5j
ZWxdOw0KK30NCisNCistICh2b2lkKV9kb3dubG9hZERpZENhbmNlbDooX1dLRG93bmxvYWQgKilk
b3dubG9hZA0KK3sNCisgICAgRVhQRUNUX05PVF9OVUxMKGRvd25sb2FkLnJlc3VtZURhdGEpOw0K
KyAgICBfcmVzdW1lRGF0YSA9IGRvd25sb2FkLnJlc3VtZURhdGE7DQorICAgIGlzRG9uZSA9IHRy
dWU7DQorfQ0KKw0KK0BlbmQNCisNCitAaW50ZXJmYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
SGFuZGxpbmdEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tEb3dubG9hZERlbGVnYXRlPg0KK0BlbmQN
CisNCitAaW1wbGVtZW50YXRpb24gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VIYW5kbGluZ0RlbGVn
YXRlIHsNCisgICAgYm9vbCBfZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOw0KK30N
CisNCistICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKilj
aGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VEaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsKikpY29tcGxldGlvbkhhbmRsZXINCit7
DQorICAgIF9kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgPSB0cnVlOw0KKyAgICBj
b21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwg
bmlsKTsNCit9DQorDQorLSAodm9pZClfZG93bmxvYWREaWRGaW5pc2g6KF9XS0Rvd25sb2FkICop
ZG93bmxvYWQNCit7DQorICAgIEVYUEVDVF9UUlVFKF9kaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UpOw0KKyAgICBpc0RvbmUgPSB0cnVlOw0KK30NCisNCitAZW5kDQorDQorVEVTVChf
V0tEb3dubG9hZCwgUmVzdW1lZERvd25sb2FkQ2FuSGFuZGxlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpDQorew0KKyAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSTsNCisNCisgICAgc3Rk
OjphdG9taWM8Ym9vbD4gcmVjZWl2ZWRGaXJzdENvbm5lY3Rpb24geyBmYWxzZSB9Ow0KKw0KKyAg
ICBUQ1BTZXJ2ZXIgc2VydmVyKFsmXShpbnQgc29ja2V0KSB7DQorICAgICAgICBpZiAoIXJlY2Vp
dmVkRmlyc3RDb25uZWN0aW9uLmV4Y2hhbmdlKHRydWUpKSB7DQorICAgICAgICAgICAgVENQU2Vy
dmVyOjpyZWFkKHNvY2tldCk7DQorDQorICAgICAgICAgICAgY29uc3QgY2hhciogcmVzcG9uc2VI
ZWFkZXIgPQ0KKyAgICAgICAgICAgICJIVFRQLzEuMSAyMDAgT0tcclxuIg0KKyAgICAgICAgICAg
ICJFVGFnOiB0ZXN0XHJcbiINCisgICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6IDEwMDAwXHJc
blxyXG4iOw0KKyAgICAgICAgICAgIFRDUFNlcnZlcjo6d3JpdGUoc29ja2V0LCByZXNwb25zZUhl
YWRlciwgc3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7DQorDQorICAgICAgICAgICAgY2hhciBkYXRh
WzUwMDBdOw0KKyAgICAgICAgICAgIG1lbXNldChkYXRhLCAwLCA1MDAwKTsNCisgICAgICAgICAg
ICBUQ1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwgZGF0YSwgNTAwMCk7DQorDQorICAgICAgICAgICAg
Ly8gV2FpdCBmb3IgdGhlIGNsaWVudCB0byBjYW5jZWwgdGhlIGRvd25sb2FkIGJlZm9yZSBjbG9z
aW5nIHRoZSBjb25uZWN0aW9uLg0KKyAgICAgICAgICAgIFV0aWw6OnJ1bigmaXNEb25lKTsNCisg
ICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgVENQU2VydmVyOjpyZWFkKHNvY2tldCk7DQor
ICAgICAgICAgICAgY29uc3QgY2hhciogY2hhbGxlbmdlSGVhZGVyID0NCisgICAgICAgICAgICAi
SFRUUC8xLjEgNDAxIFVuYXV0aG9yaXplZFxyXG4iDQorICAgICAgICAgICAgIkRhdGU6IFNhdCwg
MjMgTWFyIDIwMTkgMDY6Mjk6MDEgR01UXHJcbiINCisgICAgICAgICAgICAiQ29udGVudC1MZW5n
dGg6IDBcclxuIg0KKyAgICAgICAgICAgICJXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFsbT1c
InRlc3RyZWFsbVwiXHJcblxyXG4iOw0KKyAgICAgICAgICAgIFRDUFNlcnZlcjo6d3JpdGUoc29j
a2V0LCBjaGFsbGVuZ2VIZWFkZXIsIHN0cmxlbihjaGFsbGVuZ2VIZWFkZXIpKTsNCisNCisgICAg
ICAgICAgICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsNCisNCisgICAgICAgICAgICBjb25zdCBj
aGFyKiByZXNwb25zZUhlYWRlciA9DQorICAgICAgICAgICAgIkhUVFAvMS4xIDIwNiBQYXJ0aWFs
IENvbnRlbnRcclxuIg0KKyAgICAgICAgICAgICJFVGFnOiB0ZXN0XHJcbiINCisgICAgICAgICAg
ICAiQ29udGVudC1SYW5nZTogYnl0ZXMgNTAwMC05OTk5LzEwMDAwXHJcbiINCisgICAgICAgICAg
ICAiQ29udGVudC1MZW5ndGg6IDUwMDBcclxuXHJcbiI7DQorICAgICAgICAgICAgVENQU2VydmVy
Ojp3cml0ZShzb2NrZXQsIHJlc3BvbnNlSGVhZGVyLCBzdHJsZW4ocmVzcG9uc2VIZWFkZXIpKTsN
CisNCisgICAgICAgICAgICBjaGFyIGRhdGFbNTAwMF07DQorICAgICAgICAgICAgbWVtc2V0KGRh
dGEsIDEsIDUwMDApOw0KKyAgICAgICAgICAgIFRDUFNlcnZlcjo6d3JpdGUoc29ja2V0LCBkYXRh
LCA1MDAwKTsNCisgICAgICAgIH0NCisgICAgfSwgMik7DQorDQorICAgIGF1dG8gcHJvY2Vzc1Bv
b2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gaW5pdF0pOw0KKyAgICBhdXRvIHdl
YnNpdGVEYXRhU3RvcmUgPSBhZG9wdE5TKFtXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFT
dG9yZV0pOw0KKw0KKyAgICBhdXRvIGRlbGVnYXRlMSA9IGFkb3B0TlMoW1tEb3dubG9hZENhbmNl
bGluZ0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7DQorICAgIFtwcm9jZXNzUG9vbCBfc2V0RG93bmxv
YWREZWxlZ2F0ZTpkZWxlZ2F0ZTEuZ2V0KCldOw0KKw0KKyAgICBpc0RvbmUgPSBmYWxzZTsNCisg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImh0dHA6Ly8x
MjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXTsNCisgICAgW3Byb2Nlc3NQb29sIF9kb3du
bG9hZFVSTFJlcXVlc3Q6cmVxdWVzdCB3ZWJzaXRlRGF0YVN0b3JlOndlYnNpdGVEYXRhU3RvcmUu
Z2V0KCkgb3JpZ2luYXRpbmdXZWJWaWV3Om5pbF07DQorDQorICAgIFV0aWw6OnJ1bigmaXNEb25l
KTsNCisNCisgICAgaXNEb25lID0gZmFsc2U7DQorICAgIGF1dG8gZGVsZWdhdGUyID0gYWRvcHRO
UyhbW0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSGFuZGxpbmdEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
Ow0KKyAgICBbcHJvY2Vzc1Bvb2wgX3NldERvd25sb2FkRGVsZWdhdGU6ZGVsZWdhdGUyLmdldCgp
XTsNCisgICAgW3Byb2Nlc3NQb29sIF9yZXN1bWVEb3dubG9hZEZyb21EYXRhOltkZWxlZ2F0ZTEg
cmVzdW1lRGF0YV0uZ2V0KCkgd2Vic2l0ZURhdGFTdG9yZTp3ZWJzaXRlRGF0YVN0b3JlLmdldCgp
IHBhdGg6W2RlbGVnYXRlMSBwYXRoXS5nZXQoKSBvcmlnaW5hdGluZ1dlYlZpZXc6bmlsXTsNCisN
CisgICAgVXRpbDo6cnVuKCZpc0RvbmUpOw0KK30NCisNCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFD
KSB8fCBQTEFURk9STShJT1MpDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389321</attachid>
            <date>2020-01-30 18:10:20 -0800</date>
            <delta_ts>2020-01-31 15:32:13 -0800</delta_ts>
            <desc>Patch v4</desc>
            <filename>file_206984.txt</filename>
            <type>text/plain</type>
            <size>13663</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IGE2YWIxZmEyMDI5YzczNmFmZmY4ZmM2OWU0NjBlNmNiNDgzOWM3OGQNCkF1dGhvcjog
RGF2aWQgUXVlc2FkYSA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQpEYXRlOiAgIFRodSBKYW4g
MzAgMTc6MTk6NDkgMjAyMCAtMDgwMA0KDQogICAgUkVHUkVTU0lPTihyMjUyMTg1KTogTmV0d29y
a1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlcw0KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY5ODQNCiAgICByZGFyOi8vcHJvYmxlbS81ODk5OTY1NA0KICAgIA0KICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLg0KICAgIA0KICAgIFNvdXJjZS9XZWJLaXQ6DQogICAgDQogICAg
cjI1MjE4NSBjaGFuZ2VkIHRoZSBlYXJseSByZXR1cm4gaW4gV0tOZXR3b3JrU2Vzc2lvbkRlbGVn
YXRlJ3MgLeKApnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTrigKYgbWV0aG9kDQogICAgZnJvbSAi
Y2FuY2VsIHRoZSB0YXNrIGFuZCByZXR1cm4gZWFybHkgaWYgc2VsZiBoYXMgbm8gX3Nlc3Npb24i
IHRvICJjYW5jZWwgdGhlIHRhc2sgYW5kIHJldHVybiBlYXJseQ0KICAgIGlmIHdlIGNhbid0IGRl
dGVybWluZSB0aGUgbmV0d29yayBzZXNzaW9uIGZvciB0aGUgZ2l2ZW4gZGF0YSB0YXNrIi4gV2hl
biB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZm9yDQogICAgYW4gTlNVUkxTZXNzaW9uRG93bmxvYWRU
YXNrLCB0aGlzIGVhcmx5IHJldHVybiBpcyBoaXQgYmVjYXVzZSB0aGVyZSBpcyBubyBOZXR3b3Jr
RGF0YVRhc2tDb2NvYQ0KICAgIGZvciBhbiBhY3RpdmUgZG93bmxvYWQuIEFzIGEgcmVzdWx0LCB0
aGUgZG93bmxvYWQgaXMgY2FuY2VsZWQgd2hlbiBpdCBtaWdodCBoYXZlIG90aGVyd2lzZSBiZWVu
IGFibGUNCiAgICB0byBwcm9jZWVkLg0KICAgIA0KICAgIEZpeCB0aGlzIGJ5IGFkZGluZyBhIGNv
ZGUgcGF0aCB0byBmZXRjaCB0aGUgTmV0d29ya1Nlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBE
b3dubG9hZCB3aGVuIGFuDQogICAgTlNVUkxTZXNzaW9uRG93bmxvYWRUYXNrIHJlY2VpdmVzIGFu
IGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS4gVGhpcyBlbnN1cmVzIHdlIGNhbiBhY3R1YWxseSBo
YW5kbGUNCiAgICB0aGUgY2hhbGxlbmdlIGFwcHJvcHJpYXRlbHkgYW5kIG5vdCBqdXN0IGNhbmNl
bCB0aGUgdGFzay4NCiAgICANCiAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZC5oOg0KICAgIChXZWJLaXQ6OkRvd25sb2FkOjpzZXNzaW9uSUQgY29uc3QpOg0KICAgICAgICBF
eHBvc2UgdGhlIHNlc3Npb24gSUQgc28gd2UgY2FuIHVzZSBpdCB0byBsb29rIHVwIHRoZSBOZXR3
b3JrU2Vzc2lvbiBmb3IgYSBEb3dubG9hZC4NCiAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW06DQogICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlIFVS
TFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0K
ICAgICAgICBSZW1vdmUgYW4gdW5uZWNlc3NhcnkgcmVkZWNsYXJhdGlvbiBvZiBuZXR3b3JrRGF0
YVRhc2ssIGFuZCBhbHNvIGFuIHVubmVlZGVkIGFzc2VydGlvbiB0aGF0DQogICAgICAgIG5ldHdv
cmtEYXRhVGFzayAhPSBudWxscHRyLiBFdmVuIGlmIHRoaXMgaXMgdGhlIGNhc2UsIHRoZSBjb2Rl
IHRoYXQgZXZlbnR1YWxseSBoYW5kbGVzIHRoaXMNCiAgICAgICAgdGFzayB3aWxsIG51bGwgY2hl
Y2sgaXQgYW5kIGhhbmRsZSB0aGUgY2hhbGxlbmdlIGFzIGEgd2Vic29ja2V0IHRhc2sgb3IgZG93
bmxvYWQgdGFzaw0KICAgICAgICBiYXNlZCBvbiB0aGUgdGFza0lkZW50aWZpZXIuDQogICAgDQog
ICAgVG9vbHM6DQogICAgDQogICAgQWRkIGFuIEFQSSB0ZXN0IGZvciBhIHJlc3VtZWQgZG93bmxv
YWQgdGhhdCByZWNlaXZlcyBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuIFRoZSBkb3dubG9h
ZA0KICAgIGRlbGVnYXRlIHNob3VsZCBiZSBhc2tlZCB0byBoYW5kbGUgdGhlIGNoYWxsZW5nZSwg
YW5kIHRoZSBkb3dubG9hZCBzaG91bGQgYmUgYWJsZSB0byBmaW5pc2guDQogICAgDQogICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOg0KICAgICgtW0Rvd25s
b2FkQ2FuY2VsaW5nRGVsZWdhdGUgX2Rvd25sb2FkOmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dl
c3RlZEZpbGVuYW1lOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0KICAgICgtW0Rvd25sb2FkQ2FuY2Vs
aW5nRGVsZWdhdGUgX2Rvd25sb2FkOmRpZFJlY2VpdmVEYXRhOl0pOg0KICAgICgtW0Rvd25sb2Fk
Q2FuY2VsaW5nRGVsZWdhdGUgX2Rvd25sb2FkRGlkQ2FuY2VsOl0pOg0KICAgICgtW0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlSGFuZGxpbmdEZWxlZ2F0ZSBfZG93bmxvYWQ6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0KICAgICgtW0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlSGFuZGxpbmdEZWxlZ2F0ZSBfZG93bmxvYWREaWRGaW5pc2g6XSk6DQog
ICAgKFRFU1QpOg0KDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZw0KaW5kZXggOTVlODUxYWM5YzQuLjViOTg3NzAyYzI4IDEwMDY0
NA0KLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cNCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nDQpAQCAtMSwzICsxLDMyIEBADQorMjAyMC0wMS0zMCAgRGF2aWQgUXVlc2FkYSAgPGRh
dmlkX3F1ZXNhZGFAYXBwbGUuY29tPg0KKw0KKyAgICAgICAgUkVHUkVTU0lPTihyMjUyMTg1KTog
TmV0d29ya1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVu
dGljYXRpb24gY2hhbGxlbmdlcw0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNjk4NA0KKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNTg5OTk2NTQNCisN
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLg0KKw0KKyAgICAgICAgcjI1MjE4
NSBjaGFuZ2VkIHRoZSBlYXJseSByZXR1cm4gaW4gV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlJ3Mg
LeKApnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTrigKYgbWV0aG9kDQorICAgICAgICBmcm9tICJj
YW5jZWwgdGhlIHRhc2sgYW5kIHJldHVybiBlYXJseSBpZiBzZWxmIGhhcyBubyBfc2Vzc2lvbiIg
dG8gImNhbmNlbCB0aGUgdGFzayBhbmQgcmV0dXJuIGVhcmx5DQorICAgICAgICBpZiB3ZSBjYW4n
dCBkZXRlcm1pbmUgdGhlIG5ldHdvcmsgc2Vzc2lvbiBmb3IgdGhlIGdpdmVuIGRhdGEgdGFzayIu
IFdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkIGZvcg0KKyAgICAgICAgYW4gTlNVUkxTZXNzaW9u
RG93bmxvYWRUYXNrLCB0aGlzIGVhcmx5IHJldHVybiBpcyBoaXQgYmVjYXVzZSB0aGVyZSBpcyBu
byBOZXR3b3JrRGF0YVRhc2tDb2NvYQ0KKyAgICAgICAgZm9yIGFuIGFjdGl2ZSBkb3dubG9hZC4g
QXMgYSByZXN1bHQsIHRoZSBkb3dubG9hZCBpcyBjYW5jZWxlZCB3aGVuIGl0IG1pZ2h0IGhhdmUg
b3RoZXJ3aXNlIGJlZW4gYWJsZQ0KKyAgICAgICAgdG8gcHJvY2VlZC4NCisNCisgICAgICAgIEZp
eCB0aGlzIGJ5IGFkZGluZyBhIGNvZGUgcGF0aCB0byBmZXRjaCB0aGUgTmV0d29ya1Nlc3Npb24g
YXNzb2NpYXRlZCB3aXRoIHRoZSBEb3dubG9hZCB3aGVuIGFuDQorICAgICAgICBOU1VSTFNlc3Np
b25Eb3dubG9hZFRhc2sgcmVjZWl2ZXMgYW4gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLiBUaGlz
IGVuc3VyZXMgd2UgY2FuIGFjdHVhbGx5IGhhbmRsZQ0KKyAgICAgICAgdGhlIGNoYWxsZW5nZSBh
cHByb3ByaWF0ZWx5IGFuZCBub3QganVzdCBjYW5jZWwgdGhlIHRhc2suDQorDQorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOg0KKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OnNlc3Npb25JRCBjb25zdCk6DQorICAgICAgICAgICAgRXhwb3NlIHRoZSBzZXNz
aW9uIElEIHNvIHdlIGNhbiB1c2UgaXQgdG8gbG9vayB1cCB0aGUgTmV0d29ya1Nlc3Npb24gZm9y
IGEgRG93bmxvYWQuDQorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW06DQorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgVVJMU2Vz
c2lvbjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6DQorICAg
ICAgICAgICAgUmVtb3ZlIGFuIHVubmVjZXNzYXJ5IHJlZGVjbGFyYXRpb24gb2YgbmV0d29ya0Rh
dGFUYXNrLCBhbmQgYWxzbyBhbiB1bm5lZWRlZCBhc3NlcnRpb24gdGhhdA0KKyAgICAgICAgICAg
IG5ldHdvcmtEYXRhVGFzayAhPSBudWxscHRyLiBFdmVuIGlmIHRoaXMgaXMgdGhlIGNhc2UsIHRo
ZSBjb2RlIHRoYXQgZXZlbnR1YWxseSBoYW5kbGVzIHRoaXMNCisgICAgICAgICAgICB0YXNrIHdp
bGwgbnVsbCBjaGVjayBpdCBhbmQgaGFuZGxlIHRoZSBjaGFsbGVuZ2UgYXMgYSB3ZWJzb2NrZXQg
dGFzayBvciBkb3dubG9hZCB0YXNrDQorICAgICAgICAgICAgYmFzZWQgb24gdGhlIHRhc2tJZGVu
dGlmaWVyLg0KKw0KIDIwMjAtMDEtMzAgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNv
bT4NCiANCiAgICAgICAgIFVucmV2aWV3ZWQsIGFub3RoZXIgc3BlY3VsYXRpdmUgdGVzdCBmaXgg
YWZ0ZXIgcjI1NTA0MQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZC5oDQppbmRleCA0MDYxMDI0ZmUyYi4uOWFjN2M4YmViMTEgMTAwNjQ0DQot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oDQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oDQpA
QCAtODIsNiArODIsNyBAQCBwdWJsaWM6DQogI2VuZGlmDQogDQogICAgIERvd25sb2FkSUQgZG93
bmxvYWRJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZG93bmxvYWRJRDsgfQ0KKyAgICBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQ0KICAgICBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUoKSBjb25zdCB7IHJldHVybiBtX3N1Z2dlc3RlZE5hbWU7
IH0NCiANCiAgICAgdm9pZCBzZXRTYW5kYm94RXh0ZW5zaW9uKFJlZlB0cjxTYW5kYm94RXh0ZW5z
aW9uPiYmIHNhbmRib3hFeHRlbnNpb24pIHsgbV9zYW5kYm94RXh0ZW5zaW9uID0gV1RGTW92ZShz
YW5kYm94RXh0ZW5zaW9uKTsgfQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQ0KaW5kZXggYWI0NWE1NzBiZTcu
LmVlZjRmNzRlZTM2IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tDQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0NCkBAIC02MTMsNiArNjEzLDEyIEBA
IC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNl
c3Npb25UYXNrICopdGFzayBkaWRSZWNlDQogew0KICAgICBhdXRvKiBuZXR3b3JrRGF0YVRhc2sg
PSBbc2VsZiBleGlzdGluZ1Rhc2s6dGFza107DQogICAgIGF1dG8qIHNlc3Npb25Db2NvYSA9IG5l
dHdvcmtEYXRhVGFzayA/IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EqPihuZXR3b3Jr
RGF0YVRhc2stPm5ldHdvcmtTZXNzaW9uKCkpIDogbnVsbHB0cjsNCisgICAgaWYgKCFuZXR3b3Jr
RGF0YVRhc2spIHsNCisgICAgICAgIEFTU0VSVCghc2Vzc2lvbkNvY29hKTsNCisgICAgICAgIGF1
dG8gZG93bmxvYWRJRCA9IF9zZXNzaW9uV3JhcHBlci0+ZG93bmxvYWRNYXAuZ2V0KHRhc2sudGFz
a0lkZW50aWZpZXIpOw0KKyAgICAgICAgYXV0byBkb3dubG9hZCA9IGRvd25sb2FkSUQuZG93bmxv
YWRJRCgpID8gX3Nlc3Npb24tPm5ldHdvcmtQcm9jZXNzKCkuZG93bmxvYWRNYW5hZ2VyKCkuZG93
bmxvYWQoZG93bmxvYWRJRCkgOiBuaWw7DQorICAgICAgICBzZXNzaW9uQ29jb2EgPSBkb3dubG9h
ZCA/IHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EqPihfc2Vzc2lvbi0+bmV0d29ya1By
b2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihkb3dubG9hZC0+c2Vzc2lvbklEKCkpKSA6IG5pbDsNCisg
ICAgfQ0KICAgICBpZiAoIXNlc3Npb25Db2NvYSB8fCBbdGFzayBzdGF0ZV0gPT0gTlNVUkxTZXNz
aW9uVGFza1N0YXRlQ2FuY2VsaW5nKSB7DQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VS
TFNlc3Npb25BdXRoQ2hhbGxlbmdlQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIG5pbCk7
DQogICAgICAgICByZXR1cm47DQpAQCAtNjUxLDggKzY1Nyw2IEBAIC0gKHZvaWQpVVJMU2Vzc2lv
bjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFzayBk
aWRSZWNlDQogICAgICAgICAvLyBIYW5kbGUgc2VydmVyIHRydXN0IGV2YWx1YXRpb24gYXQgcGxh
dGZvcm0tbGV2ZWwgaWYgcmVxdWVzdGVkLCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBhbmQgdG8g
dXNlIEFUUyBkZWZhdWx0cy4NCiAgICAgICAgIGlmIChzZXNzaW9uQ29jb2EtPmZhc3RTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25FbmFibGVkKCkgJiYgbmVnb3RpYXRlZExlZ2FjeVRMUyA9PSBOZWdvdGlh
dGVkTGVnYWN5VExTOjpObykgew0KICNpZiBIQVZFKENGTkVUV09SS19OU1VSTFNFU1NJT05fU1RS
SUNUUlVTVEVWQUxVQVRFKQ0KLSAgICAgICAgICAgIGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IFtz
ZWxmIGV4aXN0aW5nVGFzazp0YXNrXTsNCi0gICAgICAgICAgICBBU1NFUlQobmV0d29ya0RhdGFU
YXNrKTsNCiAgICAgICAgICAgICBhdXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihb
d2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGU+KHNlbGYpLCBz
ZXNzaW9uQ29jb2EgPSBtYWtlV2Vha1B0cihzZXNzaW9uQ29jb2EpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlciksIHRhc2tJZGVudGlmaWVyLCBuZXR3
b3JrRGF0YVRhc2sgPSBtYWtlUmVmUHRyKG5ldHdvcmtEYXRhVGFzayksIG5lZ290aWF0ZWRMZWdh
Y3lUTFNdKE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKmNoYWxsZW5nZSwgT1NTdGF0dXMg
dHJ1c3RSZXN1bHQpIG11dGFibGUgew0KICAgICAgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYg
PSB3ZWFrU2VsZi5nZXQoKTsNCiAgICAgICAgICAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQ0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZw0KaW5kZXggZTgxODFh
ODhlMWYuLmQyNDVlNzU0ZDEyIDEwMDY0NA0KLS0tIGEvVG9vbHMvQ2hhbmdlTG9nDQorKysgYi9U
b29scy9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsMjIgQEANCisyMDIwLTAxLTMwICBEYXZpZCBRdWVz
YWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQorDQorICAgICAgICBSRUdSRVNTSU9OKHIy
NTIxODUpOiBOZXR3b3JrU2Vzc2lvbkNvY29hIGNhbmNlbHMgZG93bmxvYWRzIHRoYXQgcmVjZWl2
ZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2VzDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2OTg0DQorICAgICAgICByZGFyOi8vcHJvYmxlbS81ODk5
OTY1NA0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQorICAgICAg
ICBBZGQgYW4gQVBJIHRlc3QgZm9yIGEgcmVzdW1lZCBkb3dubG9hZCB0aGF0IHJlY2VpdmVzIGFu
IGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS4gVGhlIGRvd25sb2FkDQorICAgICAgICBkZWxlZ2F0
ZSBzaG91bGQgYmUgYXNrZWQgdG8gaGFuZGxlIHRoZSBjaGFsbGVuZ2UsIGFuZCB0aGUgZG93bmxv
YWQgc2hvdWxkIGJlIGFibGUgdG8gZmluaXNoLg0KKw0KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOg0KKyAgICAgICAgKC1bRG93bmxvYWRDYW5j
ZWxpbmdEZWxlZ2F0ZSBfZG93bmxvYWQ6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmls
ZW5hbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6DQorICAgICAgICAoLVtEb3dubG9hZENhbmNlbGlu
Z0RlbGVnYXRlIF9kb3dubG9hZDpkaWRSZWNlaXZlRGF0YTpdKToNCisgICAgICAgICgtW0Rvd25s
b2FkQ2FuY2VsaW5nRGVsZWdhdGUgX2Rvd25sb2FkRGlkQ2FuY2VsOl0pOg0KKyAgICAgICAgKC1b
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VIYW5kbGluZ0RlbGVnYXRlIF9kb3dubG9hZDpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6XSk6DQorICAgICAg
ICAoLVtBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUhhbmRsaW5nRGVsZWdhdGUgX2Rvd25sb2FkRGlk
RmluaXNoOl0pOg0KKyAgICAgICAgKFRFU1QpOg0KKw0KIDIwMjAtMDEtMzAgIEppZXdlbiBUYW4g
IDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4NCiANCiAgICAgICAgIFVucmV2aWV3ZWQsIGFub3RoZXIg
c3BlY3VsYXRpdmUgdGVzdCBmaXggYWZ0ZXIgcjI1NTA0MQ0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tDQppbmRleCA2YmNhMWFlYmYxMC4u
YmFiOTY1YjA3MDQgMTAwNjQ0DQotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0Rvd25sb2FkLm1tDQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0Rvd25sb2FkLm1tDQpAQCAtMTAyOSw0ICsxMDI5LDEyMiBAQCBURVNUKFdlYktpdCwg
RG93bmxvYWROYXZpZ2F0aW9uUmVzcG9uc2VGcm9tTWVtb3J5Q2FjaGUpDQogICAgIFtUZXN0UHJv
dG9jb2wgdW5yZWdpc3Rlcl07DQogfQ0KIA0KK0BpbnRlcmZhY2UgRG93bmxvYWRDYW5jZWxpbmdE
ZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tEb3dubG9hZERlbGVnYXRlPg0KK0Bwcm9wZXJ0eSAocmVh
ZG9ubHkpIFJldGFpblB0cjxOU0RhdGE+IHJlc3VtZURhdGE7DQorQHByb3BlcnR5IChyZWFkb25s
eSkgUmV0YWluUHRyPE5TU3RyaW5nPiBwYXRoOw0KK0BlbmQNCisNCitAaW1wbGVtZW50YXRpb24g
RG93bmxvYWRDYW5jZWxpbmdEZWxlZ2F0ZQ0KKw0KKy0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3du
bG9hZCAqKWRvd25sb2FkIGRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihO
U1N0cmluZyAqKWZpbGVuYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIGFsbG93
T3ZlcndyaXRlLCBOU1N0cmluZyAqZGVzdGluYXRpb24pKWNvbXBsZXRpb25IYW5kbGVyDQorew0K
KyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZUhhbmRsZTsNCisgICAgX3Bh
dGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgiVGVzdFdlYktpdEFQSSIsIGZpbGVI
YW5kbGUpOw0KKyAgICBFWFBFQ1RfVFJVRShmaWxlSGFuZGxlICE9IEZpbGVTeXN0ZW06OmludmFs
aWRQbGF0Zm9ybUZpbGVIYW5kbGUpOw0KKyAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoZmlsZUhh
bmRsZSk7DQorICAgIGNvbXBsZXRpb25IYW5kbGVyKFlFUywgX3BhdGguZ2V0KCkpOw0KK30NCisN
CistICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlRGF0
YToodWludDY0X3QpbGVuZ3RoDQorew0KKyAgICBFWFBFQ1RfRVEobGVuZ3RoLCA1MDAwVUxMKTsN
CisgICAgW2Rvd25sb2FkIGNhbmNlbF07DQorfQ0KKw0KKy0gKHZvaWQpX2Rvd25sb2FkRGlkQ2Fu
Y2VsOihfV0tEb3dubG9hZCAqKWRvd25sb2FkDQorew0KKyAgICBFWFBFQ1RfTk9UX05VTEwoZG93
bmxvYWQucmVzdW1lRGF0YSk7DQorICAgIF9yZXN1bWVEYXRhID0gZG93bmxvYWQucmVzdW1lRGF0
YTsNCisgICAgaXNEb25lID0gdHJ1ZTsNCit9DQorDQorQGVuZA0KKw0KK0BpbnRlcmZhY2UgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VIYW5kbGluZ0RlbGVnYXRlIDogTlNPYmplY3QgPF9XS0Rvd25s
b2FkRGVsZWdhdGU+DQorQGVuZA0KKw0KK0BpbXBsZW1lbnRhdGlvbiBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUhhbmRsaW5nRGVsZWdhdGUgew0KKyAgICBib29sIF9kaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U7DQorfQ0KKw0KKy0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAq
KWRvd25sb2FkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
TlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwqKSlj
b21wbGV0aW9uSGFuZGxlcg0KK3sNCisgICAgX2RpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSA9IHRydWU7DQorICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VVc2VDcmVkZW50aWFsLCBuaWwpOw0KK30NCisNCistICh2b2lkKV9kb3dubG9hZERpZEZp
bmlzaDooX1dLRG93bmxvYWQgKilkb3dubG9hZA0KK3sNCisgICAgRVhQRUNUX1RSVUUoX2RpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7DQorICAgIGlzRG9uZSA9IHRydWU7DQorfQ0K
Kw0KK0BlbmQNCisNCitURVNUKF9XS0Rvd25sb2FkLCBSZXN1bWVkRG93bmxvYWRDYW5IYW5kbGVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSkNCit7DQorICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJOw0KKw0KKyAgICBzdGQ6OmF0b21pYzxib29sPiByZWNlaXZlZEZpcnN0Q29ubmVjdGlv
biB7IGZhbHNlIH07DQorDQorICAgIFRDUFNlcnZlciBzZXJ2ZXIoWyZdKGludCBzb2NrZXQpIHsN
CisgICAgICAgIGlmICghcmVjZWl2ZWRGaXJzdENvbm5lY3Rpb24uZXhjaGFuZ2UodHJ1ZSkpIHsN
CisgICAgICAgICAgICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsNCisNCisgICAgICAgICAgICBj
b25zdCBjaGFyKiByZXNwb25zZUhlYWRlciA9DQorICAgICAgICAgICAgIkhUVFAvMS4xIDIwMCBP
S1xyXG4iDQorICAgICAgICAgICAgIkVUYWc6IHRlc3RcclxuIg0KKyAgICAgICAgICAgICJDb250
ZW50LUxlbmd0aDogMTAwMDBcclxuXHJcbiI7DQorICAgICAgICAgICAgVENQU2VydmVyOjp3cml0
ZShzb2NrZXQsIHJlc3BvbnNlSGVhZGVyLCBzdHJsZW4ocmVzcG9uc2VIZWFkZXIpKTsNCisNCisg
ICAgICAgICAgICBjaGFyIGRhdGFbNTAwMF07DQorICAgICAgICAgICAgbWVtc2V0KGRhdGEsIDAs
IDUwMDApOw0KKyAgICAgICAgICAgIFRDUFNlcnZlcjo6d3JpdGUoc29ja2V0LCBkYXRhLCA1MDAw
KTsNCisNCisgICAgICAgICAgICAvLyBXYWl0IGZvciB0aGUgY2xpZW50IHRvIGNhbmNlbCB0aGUg
ZG93bmxvYWQgYmVmb3JlIGNsb3NpbmcgdGhlIGNvbm5lY3Rpb24uDQorICAgICAgICAgICAgVXRp
bDo6cnVuKCZpc0RvbmUpOw0KKyAgICAgICAgfSBlbHNlIHsNCisgICAgICAgICAgICBUQ1BTZXJ2
ZXI6OnJlYWQoc29ja2V0KTsNCisgICAgICAgICAgICBjb25zdCBjaGFyKiBjaGFsbGVuZ2VIZWFk
ZXIgPQ0KKyAgICAgICAgICAgICJIVFRQLzEuMSA0MDEgVW5hdXRob3JpemVkXHJcbiINCisgICAg
ICAgICAgICAiRGF0ZTogU2F0LCAyMyBNYXIgMjAxOSAwNjoyOTowMSBHTVRcclxuIg0KKyAgICAg
ICAgICAgICJDb250ZW50LUxlbmd0aDogMFxyXG4iDQorICAgICAgICAgICAgIldXVy1BdXRoZW50
aWNhdGU6IEJhc2ljIHJlYWxtPVwidGVzdHJlYWxtXCJcclxuXHJcbiI7DQorICAgICAgICAgICAg
VENQU2VydmVyOjp3cml0ZShzb2NrZXQsIGNoYWxsZW5nZUhlYWRlciwgc3RybGVuKGNoYWxsZW5n
ZUhlYWRlcikpOw0KKw0KKyAgICAgICAgICAgIFRDUFNlcnZlcjo6cmVhZChzb2NrZXQpOw0KKw0K
KyAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJlc3BvbnNlSGVhZGVyID0NCisgICAgICAgICAgICAi
SFRUUC8xLjEgMjA2IFBhcnRpYWwgQ29udGVudFxyXG4iDQorICAgICAgICAgICAgIkVUYWc6IHRl
c3RcclxuIg0KKyAgICAgICAgICAgICJDb250ZW50LVJhbmdlOiBieXRlcyA1MDAwLTk5OTkvMTAw
MDBcclxuIg0KKyAgICAgICAgICAgICJDb250ZW50LUxlbmd0aDogNTAwMFxyXG5cclxuIjsNCisg
ICAgICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwgcmVzcG9uc2VIZWFkZXIsIHN0cmxl
bihyZXNwb25zZUhlYWRlcikpOw0KKw0KKyAgICAgICAgICAgIGNoYXIgZGF0YVs1MDAwXTsNCisg
ICAgICAgICAgICBtZW1zZXQoZGF0YSwgMSwgNTAwMCk7DQorICAgICAgICAgICAgVENQU2VydmVy
Ojp3cml0ZShzb2NrZXQsIGRhdGEsIDUwMDApOw0KKyAgICAgICAgfQ0KKyAgICB9LCAyKTsNCisN
CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBp
bml0XSk7DQorICAgIGF1dG8gd2Vic2l0ZURhdGFTdG9yZSA9IGFkb3B0TlMoW1dLV2Vic2l0ZURh
dGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSk7DQorDQorICAgIGF1dG8gZGVsZWdhdGUxID0gYWRv
cHROUyhbW0Rvd25sb2FkQ2FuY2VsaW5nRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsNCisgICAgW3By
b2Nlc3NQb29sIF9zZXREb3dubG9hZERlbGVnYXRlOmRlbGVnYXRlMS5nZXQoKV07DQorDQorICAg
IGlzRG9uZSA9IGZhbHNlOw0KKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAiaHR0cDovLzEyNy4wLjAuMTolZC8iLCBzZXJ2ZXIucG9ydCgpXV1dOw0KKyAg
ICBbcHJvY2Vzc1Bvb2wgX2Rvd25sb2FkVVJMUmVxdWVzdDpyZXF1ZXN0IHdlYnNpdGVEYXRhU3Rv
cmU6d2Vic2l0ZURhdGFTdG9yZS5nZXQoKSBvcmlnaW5hdGluZ1dlYlZpZXc6bmlsXTsNCisNCisg
ICAgVXRpbDo6cnVuKCZpc0RvbmUpOw0KKw0KKyAgICBpc0RvbmUgPSBmYWxzZTsNCisgICAgYXV0
byBkZWxlZ2F0ZTIgPSBhZG9wdE5TKFtbQXV0aGVudGljYXRpb25DaGFsbGVuZ2VIYW5kbGluZ0Rl
bGVnYXRlIGFsbG9jXSBpbml0XSk7DQorICAgIFtwcm9jZXNzUG9vbCBfc2V0RG93bmxvYWREZWxl
Z2F0ZTpkZWxlZ2F0ZTIuZ2V0KCldOw0KKyAgICBbcHJvY2Vzc1Bvb2wgX3Jlc3VtZURvd25sb2Fk
RnJvbURhdGE6W2RlbGVnYXRlMSByZXN1bWVEYXRhXS5nZXQoKSB3ZWJzaXRlRGF0YVN0b3JlOndl
YnNpdGVEYXRhU3RvcmUuZ2V0KCkgcGF0aDpbZGVsZWdhdGUxIHBhdGhdLmdldCgpIG9yaWdpbmF0
aW5nV2ViVmlldzpuaWxdOw0KKw0KKyAgICBVdGlsOjpydW4oJmlzRG9uZSk7DQorfQ0KKw0KICNl
bmRpZiAvLyBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykNCg==
</data>
<flag name="review"
          id="405009"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389428</attachid>
            <date>2020-01-31 15:32:13 -0800</date>
            <delta_ts>2020-01-31 16:48:02 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>file_206984.txt</filename>
            <type>text/plain</type>
            <size>13664</size>
            <attacher name="David Quesada">david_quesada</attacher>
            
              <data encoding="base64">Y29tbWl0IDY4N2Y1YzNmYzU3ZmU5Yjg0NDJhYWIyMjU2YTZkNjcxMDZiYjkwZjkNCkF1dGhvcjog
RGF2aWQgUXVlc2FkYSA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5jb20+DQpEYXRlOiAgIEZyaSBKYW4g
MzEgMTU6MzA6NDcgMjAyMCAtMDgwMA0KDQogICAgUkVHUkVTU0lPTihyMjUyMTg1KTogTmV0d29y
a1Nlc3Npb25Db2NvYSBjYW5jZWxzIGRvd25sb2FkcyB0aGF0IHJlY2VpdmUgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlcw0KICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDY5ODQNCiAgICByZGFyOi8vcHJvYmxlbS81ODk5OTY1NA0KICAgIA0KICAgIFJldmlld2Vk
IGJ5IEJyYWR5IEVpZHNvbi4NCiAgICANCiAgICBTb3VyY2UvV2ViS2l0Og0KICAgIA0KICAgIHIy
NTIxODUgY2hhbmdlZCB0aGUgZWFybHkgcmV0dXJuIGluIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0
ZSdzIC0uLi50YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Li4uIG1ldGhvZA0KICAgIGZyb20gImNh
bmNlbCB0aGUgdGFzayBhbmQgcmV0dXJuIGVhcmx5IGlmIHNlbGYgaGFzIG5vIF9zZXNzaW9uIiB0
byAiY2FuY2VsIHRoZSB0YXNrIGFuZCByZXR1cm4gZWFybHkNCiAgICBpZiB3ZSBjYW4ndCBkZXRl
cm1pbmUgdGhlIG5ldHdvcmsgc2Vzc2lvbiBmb3IgdGhlIGdpdmVuIGRhdGEgdGFzayIuIFdoZW4g
dGhpcyBtZXRob2QgaXMgY2FsbGVkIGZvcg0KICAgIGFuIE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFz
aywgdGhpcyBlYXJseSByZXR1cm4gaXMgaGl0IGJlY2F1c2UgdGhlcmUgaXMgbm8gTmV0d29ya0Rh
dGFUYXNrQ29jb2ENCiAgICBmb3IgYW4gYWN0aXZlIGRvd25sb2FkLiBBcyBhIHJlc3VsdCwgdGhl
IGRvd25sb2FkIGlzIGNhbmNlbGVkIHdoZW4gaXQgbWlnaHQgaGF2ZSBvdGhlcndpc2UgYmVlbiBh
YmxlDQogICAgdG8gcHJvY2VlZC4NCiAgICANCiAgICBGaXggdGhpcyBieSBhZGRpbmcgYSBjb2Rl
IHBhdGggdG8gZmV0Y2ggdGhlIE5ldHdvcmtTZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgRG93
bmxvYWQgd2hlbiBhbg0KICAgIE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzayByZWNlaXZlcyBhbiBh
dXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuIFRoaXMgZW5zdXJlcyB3ZSBjYW4gYWN0dWFsbHkgaGFu
ZGxlDQogICAgdGhlIGNoYWxsZW5nZSBhcHByb3ByaWF0ZWx5IGFuZCBub3QganVzdCBjYW5jZWwg
dGhlIHRhc2suDQogICAgDQogICAgKiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQu
aDoNCiAgICAoV2ViS2l0OjpEb3dubG9hZDo6c2Vzc2lvbklEIGNvbnN0KToNCiAgICAgICAgRXhw
b3NlIHRoZSBzZXNzaW9uIElEIHNvIHdlIGNhbiB1c2UgaXQgdG8gbG9vayB1cCB0aGUgTmV0d29y
a1Nlc3Npb24gZm9yIGEgRG93bmxvYWQuDQogICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tOg0KICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxT
ZXNzaW9uOnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToNCiAg
ICAgICAgUmVtb3ZlIGFuIHVubmVjZXNzYXJ5IHJlZGVjbGFyYXRpb24gb2YgbmV0d29ya0RhdGFU
YXNrLCBhbmQgYWxzbyBhbiB1bm5lZWRlZCBhc3NlcnRpb24gdGhhdA0KICAgICAgICBuZXR3b3Jr
RGF0YVRhc2sgIT0gbnVsbHB0ci4gRXZlbiBpZiB0aGlzIGlzIHRoZSBjYXNlLCB0aGUgY29kZSB0
aGF0IGV2ZW50dWFsbHkgaGFuZGxlcyB0aGlzDQogICAgICAgIHRhc2sgd2lsbCBudWxsIGNoZWNr
IGl0IGFuZCBoYW5kbGUgdGhlIGNoYWxsZW5nZSBhcyBhIHdlYnNvY2tldCB0YXNrIG9yIGRvd25s
b2FkIHRhc2sNCiAgICAgICAgYmFzZWQgb24gdGhlIHRhc2tJZGVudGlmaWVyLg0KICAgIA0KICAg
IFRvb2xzOg0KICAgIA0KICAgIEFkZCBhbiBBUEkgdGVzdCBmb3IgYSByZXN1bWVkIGRvd25sb2Fk
IHRoYXQgcmVjZWl2ZXMgYW4gYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLiBUaGUgZG93bmxvYWQN
CiAgICBkZWxlZ2F0ZSBzaG91bGQgYmUgYXNrZWQgdG8gaGFuZGxlIHRoZSBjaGFsbGVuZ2UsIGFu
ZCB0aGUgZG93bmxvYWQgc2hvdWxkIGJlIGFibGUgdG8gZmluaXNoLg0KICAgIA0KICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbToNCiAgICAoLVtEb3dubG9h
ZENhbmNlbGluZ0RlbGVnYXRlIF9kb3dubG9hZDpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0
ZWRGaWxlbmFtZTpjb21wbGV0aW9uSGFuZGxlcjpdKToNCiAgICAoLVtEb3dubG9hZENhbmNlbGlu
Z0RlbGVnYXRlIF9kb3dubG9hZDpkaWRSZWNlaXZlRGF0YTpdKToNCiAgICAoLVtEb3dubG9hZENh
bmNlbGluZ0RlbGVnYXRlIF9kb3dubG9hZERpZENhbmNlbDpdKToNCiAgICAoLVtBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUhhbmRsaW5nRGVsZWdhdGUgX2Rvd25sb2FkOmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToNCiAgICAoLVtBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUhhbmRsaW5nRGVsZWdhdGUgX2Rvd25sb2FkRGlkRmluaXNoOl0pOg0KICAg
IChURVNUKToNCg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cNCmluZGV4IGMxMzZjNzc1NzNiLi43OGIxY2FmN2Q1OSAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZw0KQEAgLTEsMyArMSwzMiBAQA0KKzIwMjAtMDEtMzAgIERhdmlkIFF1ZXNhZGEgIDxkYXZp
ZF9xdWVzYWRhQGFwcGxlLmNvbT4NCisNCisgICAgICAgIFJFR1JFU1NJT04ocjI1MjE4NSk6IE5l
dHdvcmtTZXNzaW9uQ29jb2EgY2FuY2VscyBkb3dubG9hZHMgdGhhdCByZWNlaXZlIGF1dGhlbnRp
Y2F0aW9uIGNoYWxsZW5nZXMNCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDY5ODQNCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzU4OTk5NjU0DQorDQor
ICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uDQorDQorICAgICAgICByMjUyMTg1IGNo
YW5nZWQgdGhlIGVhcmx5IHJldHVybiBpbiBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUncyAtLi4u
dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOi4uLiBtZXRob2QNCisgICAgICAgIGZyb20gImNhbmNl
bCB0aGUgdGFzayBhbmQgcmV0dXJuIGVhcmx5IGlmIHNlbGYgaGFzIG5vIF9zZXNzaW9uIiB0byAi
Y2FuY2VsIHRoZSB0YXNrIGFuZCByZXR1cm4gZWFybHkNCisgICAgICAgIGlmIHdlIGNhbid0IGRl
dGVybWluZSB0aGUgbmV0d29yayBzZXNzaW9uIGZvciB0aGUgZ2l2ZW4gZGF0YSB0YXNrIi4gV2hl
biB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgZm9yDQorICAgICAgICBhbiBOU1VSTFNlc3Npb25Eb3du
bG9hZFRhc2ssIHRoaXMgZWFybHkgcmV0dXJuIGlzIGhpdCBiZWNhdXNlIHRoZXJlIGlzIG5vIE5l
dHdvcmtEYXRhVGFza0NvY29hDQorICAgICAgICBmb3IgYW4gYWN0aXZlIGRvd25sb2FkLiBBcyBh
IHJlc3VsdCwgdGhlIGRvd25sb2FkIGlzIGNhbmNlbGVkIHdoZW4gaXQgbWlnaHQgaGF2ZSBvdGhl
cndpc2UgYmVlbiBhYmxlDQorICAgICAgICB0byBwcm9jZWVkLg0KKw0KKyAgICAgICAgRml4IHRo
aXMgYnkgYWRkaW5nIGEgY29kZSBwYXRoIHRvIGZldGNoIHRoZSBOZXR3b3JrU2Vzc2lvbiBhc3Nv
Y2lhdGVkIHdpdGggdGhlIERvd25sb2FkIHdoZW4gYW4NCisgICAgICAgIE5TVVJMU2Vzc2lvbkRv
d25sb2FkVGFzayByZWNlaXZlcyBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UuIFRoaXMgZW5z
dXJlcyB3ZSBjYW4gYWN0dWFsbHkgaGFuZGxlDQorICAgICAgICB0aGUgY2hhbGxlbmdlIGFwcHJv
cHJpYXRlbHkgYW5kIG5vdCBqdXN0IGNhbmNlbCB0aGUgdGFzay4NCisNCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmg6DQorICAgICAgICAoV2ViS2l0OjpEb3du
bG9hZDo6c2Vzc2lvbklEIGNvbnN0KToNCisgICAgICAgICAgICBFeHBvc2UgdGhlIHNlc3Npb24g
SUQgc28gd2UgY2FuIHVzZSBpdCB0byBsb29rIHVwIHRoZSBOZXR3b3JrU2Vzc2lvbiBmb3IgYSBE
b3dubG9hZC4NCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbToNCisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBVUkxTZXNzaW9u
OnRhc2s6ZGlkUmVjZWl2ZUNoYWxsZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToNCisgICAgICAg
ICAgICBSZW1vdmUgYW4gdW5uZWNlc3NhcnkgcmVkZWNsYXJhdGlvbiBvZiBuZXR3b3JrRGF0YVRh
c2ssIGFuZCBhbHNvIGFuIHVubmVlZGVkIGFzc2VydGlvbiB0aGF0DQorICAgICAgICAgICAgbmV0
d29ya0RhdGFUYXNrICE9IG51bGxwdHIuIEV2ZW4gaWYgdGhpcyBpcyB0aGUgY2FzZSwgdGhlIGNv
ZGUgdGhhdCBldmVudHVhbGx5IGhhbmRsZXMgdGhpcw0KKyAgICAgICAgICAgIHRhc2sgd2lsbCBu
dWxsIGNoZWNrIGl0IGFuZCBoYW5kbGUgdGhlIGNoYWxsZW5nZSBhcyBhIHdlYnNvY2tldCB0YXNr
IG9yIGRvd25sb2FkIHRhc2sNCisgICAgICAgICAgICBiYXNlZCBvbiB0aGUgdGFza0lkZW50aWZp
ZXIuDQorDQogMjAyMC0wMS0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPg0KIA0K
ICAgICAgICAgVW5yZXZpZXdlZCBtYWNPUyBidWlsZCBmaXggYWZ0ZXIgcjI1NTUxOA0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oDQppbmRl
eCA0MDYxMDI0ZmUyYi4uOWFjN2M4YmViMTEgMTAwNjQ0DQotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oDQorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oDQpAQCAtODIsNiArODIsNyBAQCBwdWJs
aWM6DQogI2VuZGlmDQogDQogICAgIERvd25sb2FkSUQgZG93bmxvYWRJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fZG93bmxvYWRJRDsgfQ0KKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQ0KICAgICBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5h
bWUoKSBjb25zdCB7IHJldHVybiBtX3N1Z2dlc3RlZE5hbWU7IH0NCiANCiAgICAgdm9pZCBzZXRT
YW5kYm94RXh0ZW5zaW9uKFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiYmIHNhbmRib3hFeHRlbnNp
b24pIHsgbV9zYW5kYm94RXh0ZW5zaW9uID0gV1RGTW92ZShzYW5kYm94RXh0ZW5zaW9uKTsgfQ0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbQ0KaW5kZXggYWI0NWE1NzBiZTcuLmVlZjRmNzRlZTM2IDEwMDY0NA0K
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLm1tDQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0NCkBAIC02MTMsNiArNjEzLDEyIEBAIC0gKHZvaWQpVVJMU2Vzc2lvbjoo
TlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFzayBkaWRS
ZWNlDQogew0KICAgICBhdXRvKiBuZXR3b3JrRGF0YVRhc2sgPSBbc2VsZiBleGlzdGluZ1Rhc2s6
dGFza107DQogICAgIGF1dG8qIHNlc3Npb25Db2NvYSA9IG5ldHdvcmtEYXRhVGFzayA/IHN0YXRp
Y19jYXN0PE5ldHdvcmtTZXNzaW9uQ29jb2EqPihuZXR3b3JrRGF0YVRhc2stPm5ldHdvcmtTZXNz
aW9uKCkpIDogbnVsbHB0cjsNCisgICAgaWYgKCFuZXR3b3JrRGF0YVRhc2spIHsNCisgICAgICAg
IEFTU0VSVCghc2Vzc2lvbkNvY29hKTsNCisgICAgICAgIGF1dG8gZG93bmxvYWRJRCA9IF9zZXNz
aW9uV3JhcHBlci0+ZG93bmxvYWRNYXAuZ2V0KHRhc2sudGFza0lkZW50aWZpZXIpOw0KKyAgICAg
ICAgYXV0byBkb3dubG9hZCA9IGRvd25sb2FkSUQuZG93bmxvYWRJRCgpID8gX3Nlc3Npb24tPm5l
dHdvcmtQcm9jZXNzKCkuZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQoZG93bmxvYWRJRCkgOiBu
aWw7DQorICAgICAgICBzZXNzaW9uQ29jb2EgPSBkb3dubG9hZCA/IHN0YXRpY19jYXN0PE5ldHdv
cmtTZXNzaW9uQ29jb2EqPihfc2Vzc2lvbi0+bmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lv
bihkb3dubG9hZC0+c2Vzc2lvbklEKCkpKSA6IG5pbDsNCisgICAgfQ0KICAgICBpZiAoIXNlc3Np
b25Db2NvYSB8fCBbdGFzayBzdGF0ZV0gPT0gTlNVUkxTZXNzaW9uVGFza1N0YXRlQ2FuY2VsaW5n
KSB7DQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdl
Q2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIG5pbCk7DQogICAgICAgICByZXR1cm47DQpA
QCAtNjUxLDggKzY1Nyw2IEBAIC0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vz
c2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopdGFzayBkaWRSZWNlDQogICAgICAgICAvLyBI
YW5kbGUgc2VydmVyIHRydXN0IGV2YWx1YXRpb24gYXQgcGxhdGZvcm0tbGV2ZWwgaWYgcmVxdWVz
dGVkLCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBhbmQgdG8gdXNlIEFUUyBkZWZhdWx0cy4NCiAg
ICAgICAgIGlmIChzZXNzaW9uQ29jb2EtPmZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVk
KCkgJiYgbmVnb3RpYXRlZExlZ2FjeVRMUyA9PSBOZWdvdGlhdGVkTGVnYWN5VExTOjpObykgew0K
ICNpZiBIQVZFKENGTkVUV09SS19OU1VSTFNFU1NJT05fU1RSSUNUUlVTVEVWQUxVQVRFKQ0KLSAg
ICAgICAgICAgIGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IFtzZWxmIGV4aXN0aW5nVGFzazp0YXNr
XTsNCi0gICAgICAgICAgICBBU1NFUlQobmV0d29ya0RhdGFUYXNrKTsNCiAgICAgICAgICAgICBh
dXRvIGRlY2lzaW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0
cjxXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGU+KHNlbGYpLCBzZXNzaW9uQ29jb2EgPSBtYWtlV2Vh
a1B0cihzZXNzaW9uQ29jb2EpLCBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21w
bGV0aW9uSGFuZGxlciksIHRhc2tJZGVudGlmaWVyLCBuZXR3b3JrRGF0YVRhc2sgPSBtYWtlUmVm
UHRyKG5ldHdvcmtEYXRhVGFzayksIG5lZ290aWF0ZWRMZWdhY3lUTFNdKE5TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgKmNoYWxsZW5nZSwgT1NTdGF0dXMgdHJ1c3RSZXN1bHQpIG11dGFibGUg
ew0KICAgICAgICAgICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsNCiAg
ICAgICAgICAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQ0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZw0KaW5kZXggYWZiMTBjODZkM2UuLmFlYzg3ZjQ1MjIwIDEw
MDY0NA0KLS0tIGEvVG9vbHMvQ2hhbmdlTG9nDQorKysgYi9Ub29scy9DaGFuZ2VMb2cNCkBAIC0x
LDMgKzEsMjIgQEANCisyMDIwLTAxLTMwICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBh
cHBsZS5jb20+DQorDQorICAgICAgICBSRUdSRVNTSU9OKHIyNTIxODUpOiBOZXR3b3JrU2Vzc2lv
bkNvY29hIGNhbmNlbHMgZG93bmxvYWRzIHRoYXQgcmVjZWl2ZSBhdXRoZW50aWNhdGlvbiBjaGFs
bGVuZ2VzDQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA2OTg0DQorICAgICAgICByZGFyOi8vcHJvYmxlbS81ODk5OTY1NA0KKw0KKyAgICAgICAgUmV2
aWV3ZWQgYnkgQnJhZHkgRWlkc29uLg0KKw0KKyAgICAgICAgQWRkIGFuIEFQSSB0ZXN0IGZvciBh
IHJlc3VtZWQgZG93bmxvYWQgdGhhdCByZWNlaXZlcyBhbiBhdXRoZW50aWNhdGlvbiBjaGFsbGVu
Z2UuIFRoZSBkb3dubG9hZA0KKyAgICAgICAgZGVsZWdhdGUgc2hvdWxkIGJlIGFza2VkIHRvIGhh
bmRsZSB0aGUgY2hhbGxlbmdlLCBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBiZSBhYmxlIHRvIGZp
bmlzaC4NCisNCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3du
bG9hZC5tbToNCisgICAgICAgICgtW0Rvd25sb2FkQ2FuY2VsaW5nRGVsZWdhdGUgX2Rvd25sb2Fk
OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmNvbXBsZXRpb25IYW5kbGVy
Ol0pOg0KKyAgICAgICAgKC1bRG93bmxvYWRDYW5jZWxpbmdEZWxlZ2F0ZSBfZG93bmxvYWQ6ZGlk
UmVjZWl2ZURhdGE6XSk6DQorICAgICAgICAoLVtEb3dubG9hZENhbmNlbGluZ0RlbGVnYXRlIF9k
b3dubG9hZERpZENhbmNlbDpdKToNCisgICAgICAgICgtW0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
SGFuZGxpbmdEZWxlZ2F0ZSBfZG93bmxvYWQ6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOg0KKyAgICAgICAgKC1bQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VIYW5kbGluZ0RlbGVnYXRlIF9kb3dubG9hZERpZEZpbmlzaDpdKToNCisgICAgICAgIChU
RVNUKToNCisNCiAyMDIwLTAxLTMxICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4NCiANCiAgICAgICAgIFtld3NdIERpc3BsYXkgZmxha3kgdGVzdCBuYW1lcyBpbiBidWlsZCBz
dW1tYXJ5IHdoZW4gUmVSdW5XZWJLaXRUZXN0cyBwYXNzZXMNCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQ0KaW5kZXggNmJjYTFhZWJmMTAu
LmJhYjk2NWIwNzA0IDEwMDY0NA0KLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Eb3dubG9hZC5tbQ0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Eb3dubG9hZC5tbQ0KQEAgLTEwMjksNCArMTAyOSwxMjIgQEAgVEVTVChXZWJLaXQs
IERvd25sb2FkTmF2aWdhdGlvblJlc3BvbnNlRnJvbU1lbW9yeUNhY2hlKQ0KICAgICBbVGVzdFBy
b3RvY29sIHVucmVnaXN0ZXJdOw0KIH0NCiANCitAaW50ZXJmYWNlIERvd25sb2FkQ2FuY2VsaW5n
RGVsZWdhdGUgOiBOU09iamVjdCA8X1dLRG93bmxvYWREZWxlZ2F0ZT4NCitAcHJvcGVydHkgKHJl
YWRvbmx5KSBSZXRhaW5QdHI8TlNEYXRhPiByZXN1bWVEYXRhOw0KK0Bwcm9wZXJ0eSAocmVhZG9u
bHkpIFJldGFpblB0cjxOU1N0cmluZz4gcGF0aDsNCitAZW5kDQorDQorQGltcGxlbWVudGF0aW9u
IERvd25sb2FkQ2FuY2VsaW5nRGVsZWdhdGUNCisNCistICh2b2lkKV9kb3dubG9hZDooX1dLRG93
bmxvYWQgKilkb3dubG9hZCBkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZToo
TlNTdHJpbmcgKilmaWxlbmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhbGxv
d092ZXJ3cml0ZSwgTlNTdHJpbmcgKmRlc3RpbmF0aW9uKSljb21wbGV0aW9uSGFuZGxlcg0KK3sN
CisgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGVIYW5kbGU7DQorICAgIF9w
YXRoID0gRmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIlRlc3RXZWJLaXRBUEkiLCBmaWxl
SGFuZGxlKTsNCisgICAgRVhQRUNUX1RSVUUoZmlsZUhhbmRsZSAhPSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsNCisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGZpbGVI
YW5kbGUpOw0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihZRVMsIF9wYXRoLmdldCgpKTsNCit9DQor
DQorLSAodm9pZClfZG93bmxvYWQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZURh
dGE6KHVpbnQ2NF90KWxlbmd0aA0KK3sNCisgICAgRVhQRUNUX0VRKGxlbmd0aCwgNTAwMFVMTCk7
DQorICAgIFtkb3dubG9hZCBjYW5jZWxdOw0KK30NCisNCistICh2b2lkKV9kb3dubG9hZERpZENh
bmNlbDooX1dLRG93bmxvYWQgKilkb3dubG9hZA0KK3sNCisgICAgRVhQRUNUX05PVF9OVUxMKGRv
d25sb2FkLnJlc3VtZURhdGEpOw0KKyAgICBfcmVzdW1lRGF0YSA9IGRvd25sb2FkLnJlc3VtZURh
dGE7DQorICAgIGlzRG9uZSA9IHRydWU7DQorfQ0KKw0KK0BlbmQNCisNCitAaW50ZXJmYWNlIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSGFuZGxpbmdEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tEb3du
bG9hZERlbGVnYXRlPg0KK0BlbmQNCisNCitAaW1wbGVtZW50YXRpb24gQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VIYW5kbGluZ0RlbGVnYXRlIHsNCisgICAgYm9vbCBfZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlOw0KK30NCisNCistICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQg
Kilkb3dubG9hZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VEaXNwb3NpdGlvbiwgTlNVUkxDcmVkZW50aWFsKikp
Y29tcGxldGlvbkhhbmRsZXINCit7DQorICAgIF9kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgPSB0cnVlOw0KKyAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hh
bGxlbmdlVXNlQ3JlZGVudGlhbCwgbmlsKTsNCit9DQorDQorLSAodm9pZClfZG93bmxvYWREaWRG
aW5pc2g6KF9XS0Rvd25sb2FkICopZG93bmxvYWQNCit7DQorICAgIEVYUEVDVF9UUlVFKF9kaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOw0KKyAgICBpc0RvbmUgPSB0cnVlOw0KK30N
CisNCitAZW5kDQorDQorVEVTVChfV0tEb3dubG9hZCwgUmVzdW1lZERvd25sb2FkQ2FuSGFuZGxl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UpDQorew0KKyAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSTsNCisNCisgICAgc3RkOjphdG9taWM8Ym9vbD4gcmVjZWl2ZWRGaXJzdENvbm5lY3Rp
b24geyBmYWxzZSB9Ow0KKw0KKyAgICBUQ1BTZXJ2ZXIgc2VydmVyKFsmXShpbnQgc29ja2V0KSB7
DQorICAgICAgICBpZiAoIXJlY2VpdmVkRmlyc3RDb25uZWN0aW9uLmV4Y2hhbmdlKHRydWUpKSB7
DQorICAgICAgICAgICAgVENQU2VydmVyOjpyZWFkKHNvY2tldCk7DQorDQorICAgICAgICAgICAg
Y29uc3QgY2hhciogcmVzcG9uc2VIZWFkZXIgPQ0KKyAgICAgICAgICAgICJIVFRQLzEuMSAyMDAg
T0tcclxuIg0KKyAgICAgICAgICAgICJFVGFnOiB0ZXN0XHJcbiINCisgICAgICAgICAgICAiQ29u
dGVudC1MZW5ndGg6IDEwMDAwXHJcblxyXG4iOw0KKyAgICAgICAgICAgIFRDUFNlcnZlcjo6d3Jp
dGUoc29ja2V0LCByZXNwb25zZUhlYWRlciwgc3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7DQorDQor
ICAgICAgICAgICAgY2hhciBkYXRhWzUwMDBdOw0KKyAgICAgICAgICAgIG1lbXNldChkYXRhLCAw
LCA1MDAwKTsNCisgICAgICAgICAgICBUQ1BTZXJ2ZXI6OndyaXRlKHNvY2tldCwgZGF0YSwgNTAw
MCk7DQorDQorICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIGNsaWVudCB0byBjYW5jZWwgdGhl
IGRvd25sb2FkIGJlZm9yZSBjbG9zaW5nIHRoZSBjb25uZWN0aW9uLg0KKyAgICAgICAgICAgIFV0
aWw6OnJ1bigmaXNEb25lKTsNCisgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgVENQU2Vy
dmVyOjpyZWFkKHNvY2tldCk7DQorICAgICAgICAgICAgY29uc3QgY2hhciogY2hhbGxlbmdlSGVh
ZGVyID0NCisgICAgICAgICAgICAiSFRUUC8xLjEgNDAxIFVuYXV0aG9yaXplZFxyXG4iDQorICAg
ICAgICAgICAgIkRhdGU6IFNhdCwgMjMgTWFyIDIwMTkgMDY6Mjk6MDEgR01UXHJcbiINCisgICAg
ICAgICAgICAiQ29udGVudC1MZW5ndGg6IDBcclxuIg0KKyAgICAgICAgICAgICJXV1ctQXV0aGVu
dGljYXRlOiBCYXNpYyByZWFsbT1cInRlc3RyZWFsbVwiXHJcblxyXG4iOw0KKyAgICAgICAgICAg
IFRDUFNlcnZlcjo6d3JpdGUoc29ja2V0LCBjaGFsbGVuZ2VIZWFkZXIsIHN0cmxlbihjaGFsbGVu
Z2VIZWFkZXIpKTsNCisNCisgICAgICAgICAgICBUQ1BTZXJ2ZXI6OnJlYWQoc29ja2V0KTsNCisN
CisgICAgICAgICAgICBjb25zdCBjaGFyKiByZXNwb25zZUhlYWRlciA9DQorICAgICAgICAgICAg
IkhUVFAvMS4xIDIwNiBQYXJ0aWFsIENvbnRlbnRcclxuIg0KKyAgICAgICAgICAgICJFVGFnOiB0
ZXN0XHJcbiINCisgICAgICAgICAgICAiQ29udGVudC1SYW5nZTogYnl0ZXMgNTAwMC05OTk5LzEw
MDAwXHJcbiINCisgICAgICAgICAgICAiQ29udGVudC1MZW5ndGg6IDUwMDBcclxuXHJcbiI7DQor
ICAgICAgICAgICAgVENQU2VydmVyOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlSGVhZGVyLCBzdHJs
ZW4ocmVzcG9uc2VIZWFkZXIpKTsNCisNCisgICAgICAgICAgICBjaGFyIGRhdGFbNTAwMF07DQor
ICAgICAgICAgICAgbWVtc2V0KGRhdGEsIDEsIDUwMDApOw0KKyAgICAgICAgICAgIFRDUFNlcnZl
cjo6d3JpdGUoc29ja2V0LCBkYXRhLCA1MDAwKTsNCisgICAgICAgIH0NCisgICAgfSwgMik7DQor
DQorICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10g
aW5pdF0pOw0KKyAgICBhdXRvIHdlYnNpdGVEYXRhU3RvcmUgPSBhZG9wdE5TKFtXS1dlYnNpdGVE
YXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0pOw0KKw0KKyAgICBhdXRvIGRlbGVnYXRlMSA9IGFk
b3B0TlMoW1tEb3dubG9hZENhbmNlbGluZ0RlbGVnYXRlIGFsbG9jXSBpbml0XSk7DQorICAgIFtw
cm9jZXNzUG9vbCBfc2V0RG93bmxvYWREZWxlZ2F0ZTpkZWxlZ2F0ZTEuZ2V0KCldOw0KKw0KKyAg
ICBpc0RvbmUgPSBmYWxzZTsNCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAImh0dHA6Ly8xMjcuMC4wLjE6JWQvIiwgc2VydmVyLnBvcnQoKV1dXTsNCisg
ICAgW3Byb2Nlc3NQb29sIF9kb3dubG9hZFVSTFJlcXVlc3Q6cmVxdWVzdCB3ZWJzaXRlRGF0YVN0
b3JlOndlYnNpdGVEYXRhU3RvcmUuZ2V0KCkgb3JpZ2luYXRpbmdXZWJWaWV3Om5pbF07DQorDQor
ICAgIFV0aWw6OnJ1bigmaXNEb25lKTsNCisNCisgICAgaXNEb25lID0gZmFsc2U7DQorICAgIGF1
dG8gZGVsZWdhdGUyID0gYWRvcHROUyhbW0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSGFuZGxpbmdE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOw0KKyAgICBbcHJvY2Vzc1Bvb2wgX3NldERvd25sb2FkRGVs
ZWdhdGU6ZGVsZWdhdGUyLmdldCgpXTsNCisgICAgW3Byb2Nlc3NQb29sIF9yZXN1bWVEb3dubG9h
ZEZyb21EYXRhOltkZWxlZ2F0ZTEgcmVzdW1lRGF0YV0uZ2V0KCkgd2Vic2l0ZURhdGFTdG9yZTp3
ZWJzaXRlRGF0YVN0b3JlLmdldCgpIHBhdGg6W2RlbGVnYXRlMSBwYXRoXS5nZXQoKSBvcmlnaW5h
dGluZ1dlYlZpZXc6bmlsXTsNCisNCisgICAgVXRpbDo6cnVuKCZpc0RvbmUpOw0KK30NCisNCiAj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpDQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>