<?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>199938</bug_id>
          
          <creation_ts>2019-07-19 03:58:21 -0700</creation_ts>
          <short_desc>[WinCairo] Start RemoteInspectorServer</short_desc>
          <delta_ts>2019-09-24 18:46:55 -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>Accessibility</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>
          
          <blocked>197029</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>basuke</cc>
    
    <cc>chris.reid</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1554178</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-19 03:58:21 -0700</bug_when>
    <thetext>[WinCairo] Start RemoteInspectorServer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554179</commentid>
    <comment_count>1</comment_count>
      <attachid>374454</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-19 03:58:48 -0700</bug_when>
    <thetext>Created attachment 374454
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554182</commentid>
    <comment_count>2</comment_count>
      <attachid>374455</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-19 05:06:20 -0700</bug_when>
    <thetext>Created attachment 374455
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554227</commentid>
    <comment_count>3</comment_count>
      <attachid>374455</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2019-07-19 09:21:16 -0700</bug_when>
    <thetext>Comment on attachment 374455
WIP patch

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

&gt; Source/WebKit/Shared/WebProcessCreationParameters.cpp:154
&gt; +#if ENABLE(REMOTE_INSPECTOR) &amp;&amp; PLATFORM(WIN)

Shouldn’t this be USE(INSPECTOR_SOCKET_SERVER) not PLATFORM(WIN)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554309</commentid>
    <comment_count>4</comment_count>
      <attachid>374455</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2019-07-19 14:11:24 -0700</bug_when>
    <thetext>Comment on attachment 374455
WIP patch

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

LGTM. Actually this bug is duplicate of mine :) https://bugs.webkit.org/show_bug.cgi?id=197435

&gt; Source/WebKit/Shared/WebProcessCreationParameters.h:193
&gt; +    uint16_t m_inspectorServerPort { 0 };

Should be inspectorServerPort in POD.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554310</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-19 14:11:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/53323048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554647</commentid>
    <comment_count>6</comment_count>
      <attachid>374455</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-21 20:17:12 -0700</bug_when>
    <thetext>Comment on attachment 374455
WIP patch

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

&gt;&gt; Source/WebKit/Shared/WebProcessCreationParameters.cpp:154
&gt;&gt; +#if ENABLE(REMOTE_INSPECTOR) &amp;&amp; PLATFORM(WIN)
&gt; 
&gt; Shouldn’t this be USE(INSPECTOR_SOCKET_SERVER) not PLATFORM(WIN)?

Umm, in Unix, it uses unix domain sockets instead of BSD sockets.

&gt;&gt; Source/WebKit/Shared/WebProcessCreationParameters.h:193
&gt;&gt; +    uint16_t m_inspectorServerPort { 0 };
&gt; 
&gt; Should be inspectorServerPort in POD.

Oops. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554648</commentid>
    <comment_count>7</comment_count>
      <attachid>374586</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-21 20:17:46 -0700</bug_when>
    <thetext>Created attachment 374586
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554653</commentid>
    <comment_count>8</comment_count>
      <attachid>374587</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-21 21:16:29 -0700</bug_when>
    <thetext>Created attachment 374587
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554986</commentid>
    <comment_count>9</comment_count>
      <attachid>374668</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-22 20:15:15 -0700</bug_when>
    <thetext>Created attachment 374668
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557494</commentid>
    <comment_count>10</comment_count>
      <attachid>375279</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-07-31 19:12:52 -0700</bug_when>
    <thetext>Created attachment 375279
Updated WIP patch

Hey Fujii, what do you think about these changes?
I added some socket fixes to your patch to fix issues with the server disconnecting and replaced the target list page to do DOM manipulation for updating the target list table.
The windows remote inspector is much more stable with these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557514</commentid>
    <comment_count>11</comment_count>
      <attachid>375279</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-07-31 20:56:50 -0700</bug_when>
    <thetext>Comment on attachment 375279
Updated WIP patch

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

Looks a great improvement. Good job!

The issue of racy initial empty target list should be filed as separate bug ticket.

&gt; Source/WebKit/UIProcess/socket/RemoteInspectorClient.h:88
&gt; +    URL m_url;

This is not used anymore.

&gt; Source/WebKit/UIProcess/socket/RemoteInspectorProtocolHandler.cpp:100
&gt; +    // Re-create the connection to avoid holding on to bad connections

If you re-create RemoteInspectorClient every time inspector:// is load, we don&apos;t need to manage RemoteInspectorClient instances by using a HashMap m_inspectorClients anymore.

&gt; Source/WebKit/UIProcess/socket/RemoteInspectorProtocolHandler.cpp:165
&gt; +        &quot;}&quot;

I think we should have just only one JS function.
       &quot;function updateTargets(str) {&quot;
            &quot;let targetDiv = document.getElementById(&apos;targetlist&apos;);&quot;
            &quot;targetDiv.innerHTML = str&quot;
        &quot;}&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573817</commentid>
    <comment_count>12</comment_count>
      <attachid>379488</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-09-24 13:53:03 -0700</bug_when>
    <thetext>Created attachment 379488
Patch

The client should be working now that the weakptr assert issue was fixed in r249158.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573819</commentid>
    <comment_count>13</comment_count>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-09-24 13:58:23 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #11)
&gt; Comment on attachment 375279 [details]
&gt; Updated WIP patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375279&amp;action=review
&gt; 
&gt; Looks a great improvement. Good job!
&gt; 
&gt; The issue of racy initial empty target list should be filed as separate bug
&gt; ticket.

Created https://bugs.webkit.org/show_bug.cgi?id=202169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573827</commentid>
    <comment_count>14</comment_count>
      <attachid>379491</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-09-24 14:21:02 -0700</bug_when>
    <thetext>Created attachment 379491
Patch

Add changelog and fix style issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573927</commentid>
    <comment_count>15</comment_count>
      <attachid>379491</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 18:46:53 -0700</bug_when>
    <thetext>Comment on attachment 379491
Patch

Clearing flags on attachment: 379491

Committed r250328: &lt;https://trac.webkit.org/changeset/250328&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573928</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-24 18:46:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374454</attachid>
            <date>2019-07-19 03:58:48 -0700</date>
            <delta_ts>2019-07-19 05:06:20 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>7081</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuaAppbmRleCBiY2M2MDlmYzJi
Ny4uMWU0YWIzZTBlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0
LmgKQEAgLTY2LDkgKzY2LDkgQEAgZW51bSBjbGFzcyBEb21haW4gewogICAgIE5ldHdvcmssCiB9
OwogCi12b2lkIGluaXQoKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdCgpOwogCi1PcHRp
b25hbDxQbGF0Zm9ybVNvY2tldFR5cGU+IGNvbm5lY3QoY29uc3QgY2hhciogc2VydmVyQWRkcmVz
cywgdWludDE2X3Qgc2VydmVyUG9ydCk7CitKU19FWFBPUlRfUFJJVkFURSBPcHRpb25hbDxQbGF0
Zm9ybVNvY2tldFR5cGU+IGNvbm5lY3QoY29uc3QgY2hhciogc2VydmVyQWRkcmVzcywgdWludDE2
X3Qgc2VydmVyUG9ydCk7CiBPcHRpb25hbDxQbGF0Zm9ybVNvY2tldFR5cGU+IGxpc3Rlbihjb25z
dCBjaGFyKiBhZGRyZXNzLCB1aW50MTZfdCBwb3J0KTsKIE9wdGlvbmFsPFBsYXRmb3JtU29ja2V0
VHlwZT4gYWNjZXB0KFBsYXRmb3JtU29ja2V0VHlwZSk7CiBPcHRpb25hbDxzdGQ6OmFycmF5PFBs
YXRmb3JtU29ja2V0VHlwZSwgMj4+IGNyZWF0ZVBhaXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC93aW4vUmVtb3RlSW5zcGVjdG9y
U29ja2V0V2luLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC93aW4vUmVtb3RlSW5zcGVjdG9yU29ja2V0V2luLmNwcAppbmRleCA1ZTBhNWMzNjBmYi4u
ODIzNmI1MDVjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL3NvY2tldC93aW4vUmVtb3RlSW5zcGVjdG9yU29ja2V0V2luLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvd2luL1JlbW90ZUluc3Bl
Y3RvclNvY2tldFdpbi5jcHAKQEAgLTI1OSw3ICsyNTksNyBAQCB1aW50MTZfdCBnZXRQb3J0KFBs
YXRmb3JtU29ja2V0VHlwZSBzb2NrZXQpCiAgICAgc3RydWN0IHNvY2thZGRyX2luIGFkZHJlc3Mg
PSB7IH07CiAgICAgaW50IGxlbiA9IHNpemVvZihhZGRyZXNzKTsKICAgICBnZXRzb2NrbmFtZShz
b2NrZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvY2thZGRyKj4oJmFkZHJlc3MpLCAmbGVu
KTsKLSAgICByZXR1cm4gYWRkcmVzcy5zaW5fcG9ydDsKKyAgICByZXR1cm4gbnRvaHMoYWRkcmVz
cy5zaW5fcG9ydCk7CiB9CiAKIE9wdGlvbmFsPHNpemVfdD4gcmVhZChQbGF0Zm9ybVNvY2tldFR5
cGUgc29ja2V0LCB2b2lkKiBidWZmZXIsIGludCBidWZmZXJTaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA0
MTcwZDZjMzg5My4uOWMyN2I2YTY3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNTEsNiArMTUxLDEwIEBA
IHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVzZU92ZXJsYXlTY3JvbGxiYXJzOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikgJiYgUExBVEZPUk0oV0lOKQorICAg
IGVuY29kZXIgPDwgbV9pbnNwZWN0b3JTZXJ2ZXJQb3J0OworI2VuZGlmCisKICNpZiBVU0UoV1BF
X1JFTkRFUkVSKQogICAgIGVuY29kZXIgPDwgaXNTZXJ2aWNlV29ya2VyUHJvY2VzczsKICAgICBl
bmNvZGVyIDw8IGhvc3RDbGllbnRGaWxlRGVzY3JpcHRvcjsKQEAgLTM3MSw2ICszNzUsMTEgQEAg
Ym9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikgJiYgUExBVEZPUk0oV0lOKQorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tX2luc3BlY3RvclNlcnZlclBvcnQpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKwogI2lmIFVTRShXUEVfUkVOREVSRVIpCiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzU2VydmljZVdvcmtlclByb2Nlc3MpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNDkxYjkxZGI5MTkuLjUzZTk3OTk0NzY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCkBAIC0xODksNiArMTg5LDEwIEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKICAgICBib29sIHVzZU92ZXJsYXlTY3JvbGxiYXJzIHsgdHJ1ZSB9OwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikgJiYgUExBVEZPUk0oV0lOKQorICAgIHVp
bnQxNl90IG1faW5zcGVjdG9yU2VydmVyUG9ydCB7IDAgfTsKKyNlbmRpZgorCiAjaWYgVVNFKFdQ
RV9SRU5ERVJFUikKICAgICBib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MgeyBmYWxzZSB9Owog
ICAgIElQQzo6QXR0YWNobWVudCBob3N0Q2xpZW50RmlsZURlc2NyaXB0b3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAwNjAyN2I2YThlNi4uOTFhMGU1ZjBi
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtODE1LDYg
KzgxNSwxMCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPj4gbV9wcm9jZXNzZXNQbGF5aW5n
QXVkaWJsZU1lZGlhOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX3Vp
UHJvY2Vzc01lZGlhUGxheWJhY2tBc3NlcnRpb247CiAKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BF
Q1RPUikgJiYgUExBVEZPUk0oV0lOKQorICAgIE9wdGlvbmFsPHVpbnQxNl90PiBtX2luc3BlY3Rv
clNlcnZlclBvcnQ7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTog
RGVsYXllZCBwcm9jZXNzIGxhdW5jaCBpcyBjdXJyZW50bHkgZGlzYWJsZWQgb24gaU9TIGZvciBw
ZXJmb3JtYW5jZSByZWFzb25zIChyZGFyOi8vcHJvYmxlbS80OTA3NDEzMSkuCiAgICAgYm9vbCBt
X2lzRGVsYXllZFdlYlByb2Nlc3NMYXVuY2hEaXNhYmxlZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQcm9jZXNzUG9vbFdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Bvb2xXaW4uY3BwCmluZGV4IDkyYjhk
M2Q0MzhhLi42MzYwNWI3ZTJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
d2luL1dlYlByb2Nlc3NQb29sV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93
aW4vV2ViUHJvY2Vzc1Bvb2xXaW4uY3BwCkBAIC0zMSwxMSArMzEsMzkgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KIAor
I2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Jl
bW90ZUluc3BlY3RvclNlcnZlci5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCisj
aWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplUmVtb3Rl
SW5zcGVjdG9yU2VydmVyKFN0cmluZ1ZpZXcgYWRkcmVzcykKK3sKKyAgICBpZiAoSW5zcGVjdG9y
OjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLmlzUnVubmluZygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIHBvcyA9IGFkZHJlc3MuZmluZCgnOicpOworICAgIGlmIChw
b3MgPT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGhvc3QgPSBhZGRyZXNz
LnN1YnN0cmluZygwLCBwb3MpOworICAgIGF1dG8gcG9ydCA9IGFkZHJlc3Muc3Vic3RyaW5nKHBv
cyArIDEpLnRvVUludDY0U3RyaWN0KCk7CisKKyAgICBpZiAoIXBvcnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5z
dGFydChob3N0LnV0ZjgoKS5kYXRhKCksIHBvcnQudmFsdWUoKSk7Cit9CisjZW5kaWYKKwogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOworI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorICAgIGlmIChjb25zdCBjaGFy
KiBhZGRyZXNzID0gZ2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NFUlZFUiIpKSB7CisgICAgICAg
IGluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoYWRkcmVzcyk7CisgICAgICAgIG1faW5z
cGVjdG9yU2VydmVyUG9ydCA9IEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5n
bGV0b24oKS5saXN0ZW5Gb3JUYXJnZXRzKCk7CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKQEAgLTQzLDkgKzcxLDExIEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmLCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiwgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorICAgIHBhcmFtZXRlcnMubV9pbnNwZWN0
b3JTZXJ2ZXJQb3J0ID0gbV9pbnNwZWN0b3JTZXJ2ZXJQb3J0LnZhbHVlT3IoMCk7CisjZW5kaWYK
IH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcAppbmRleCBk
YTE5MjdmYjg2Ny4uN2ZkYWZjMjhkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy93aW4vV2ViUHJvY2Vzc1dpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L3dpbi9XZWJQcm9jZXNzV2luLmNwcApAQCAtMjgsNiArMjgsMTAgQEAKIAogI2luY2x1ZGUgPFdl
YkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3IuaD4KKyNlbmRpZgorCiBXVEZf
RVhQT1JUIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGxvYWRSZXNvdXJjZUludG9CdWZm
ZXIoY29uc3QgY2hhciogbmFtZSkKIHsKICAgICByZXR1cm4gMDsKQEAgLTM1LDggKzM5LDE2IEBA
IFdURl9FWFBPUlQgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlSW50
b0J1ZmZlcihjb25zdCBjaGFyKiBuYW1lCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdl
YlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYpCit2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKKyNpZiBFTkFC
TEUoUkVNT1RFX0lOU1BFQ1RPUikKKyAgICBpZiAocGFyYW1ldGVycy5tX2luc3BlY3RvclNlcnZl
clBvcnQpIHsKKyAgICAgICAgSW5zcGVjdG9yOjpTb2NrZXQ6OmluaXQoKTsKKyAgICAgICAgYXV0
byBzb2NrZXQgPSBJbnNwZWN0b3I6OlNvY2tldDo6Y29ubmVjdCgiMTI3LjAuMC4xIiwgcGFyYW1l
dGVycy5tX2luc3BlY3RvclNlcnZlclBvcnQpOworICAgICAgICBpZiAoc29ja2V0KQorICAgICAg
ICAgICAgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnNldENvbm5lY3Rpb25JZGVudGlmaWVy
KHNvY2tldC52YWx1ZSgpKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQ
YXJhbWV0ZXJzJiYpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374455</attachid>
            <date>2019-07-19 05:06:20 -0700</date>
            <delta_ts>2019-07-21 20:18:00 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>6632</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5jcHAKaW5kZXggN2IxMWUx
ZGUwMWIuLjI1OWRmYTdjZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
U29ja2V0LmNwcApAQCAtNTAsNiArNTAsNyBAQCBSZW1vdGVJbnNwZWN0b3ImIFJlbW90ZUluc3Bl
Y3Rvcjo6c2luZ2xldG9uKCkKIFJlbW90ZUluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yKCkKIHsK
ICAgICBTb2NrZXQ6OmluaXQoKTsKKyAgICBzdGFydCgpOwogfQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6ZGlkQ2xvc2UoQ29ubmVjdGlvbklEIGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L3dpbi9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXRXaW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0
L3dpbi9SZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwCmluZGV4IDVlMGE1YzM2MGZiLi44MjM2
YjUwNWM0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvc29ja2V0L3dpbi9SZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC93aW4vUmVtb3RlSW5zcGVjdG9y
U29ja2V0V2luLmNwcApAQCAtMjU5LDcgKzI1OSw3IEBAIHVpbnQxNl90IGdldFBvcnQoUGxhdGZv
cm1Tb2NrZXRUeXBlIHNvY2tldCkKICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcmVzcyA9IHsg
fTsKICAgICBpbnQgbGVuID0gc2l6ZW9mKGFkZHJlc3MpOwogICAgIGdldHNvY2tuYW1lKHNvY2tl
dCwgcmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc29ja2FkZHIqPigmYWRkcmVzcyksICZsZW4pOwot
ICAgIHJldHVybiBhZGRyZXNzLnNpbl9wb3J0OworICAgIHJldHVybiBudG9ocyhhZGRyZXNzLnNp
bl9wb3J0KTsKIH0KIAogT3B0aW9uYWw8c2l6ZV90PiByZWFkKFBsYXRmb3JtU29ja2V0VHlwZSBz
b2NrZXQsIHZvaWQqIGJ1ZmZlciwgaW50IGJ1ZmZlclNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDQxNzBk
NmMzODkzLi45YzI3YjZhNjc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTE1MSw2ICsxNTEsMTAgQEAgdm9p
ZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgdXNlT3ZlcmxheVNjcm9sbGJhcnM7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSAmJiBQTEFURk9STShXSU4pCisgICAgZW5j
b2RlciA8PCBtX2luc3BlY3RvclNlcnZlclBvcnQ7CisjZW5kaWYKKwogI2lmIFVTRShXUEVfUkVO
REVSRVIpCiAgICAgZW5jb2RlciA8PCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzOwogICAgIGVuY29k
ZXIgPDwgaG9zdENsaWVudEZpbGVEZXNjcmlwdG9yOwpAQCAtMzcxLDYgKzM3NSwxMSBAQCBib29s
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSAmJiBQTEFURk9STShXSU4pCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1faW5zcGVjdG9yU2VydmVyUG9ydCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorCiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaXNTZXJ2aWNlV29ya2VyUHJvY2VzcykpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA0OTFiOTFkYjkxOS4uNTNlOTc5OTQ3NjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKQEAgLTE4OSw2ICsxODksMTAgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogICAgIGJvb2wgdXNlT3ZlcmxheVNjcm9sbGJhcnMgeyB0cnVlIH07CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSAmJiBQTEFURk9STShXSU4pCisgICAgdWludDE2
X3QgbV9pbnNwZWN0b3JTZXJ2ZXJQb3J0IHsgMCB9OworI2VuZGlmCisKICNpZiBVU0UoV1BFX1JF
TkRFUkVSKQogICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyB7IGZhbHNlIH07CiAgICAg
SVBDOjpBdHRhY2htZW50IGhvc3RDbGllbnRGaWxlRGVzY3JpcHRvcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDA2MDI3YjZhOGU2Li45MWEwZTVmMGI4YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC04MTUsNiArODE1
LDEwIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwg
c3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+PiBtX3Byb2Nlc3Nlc1BsYXlpbmdBdWRp
YmxlTWVkaWE7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fdWlQcm9j
ZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlvbjsKIAorI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9S
KSAmJiBQTEFURk9STShXSU4pCisgICAgT3B0aW9uYWw8dWludDE2X3Q+IG1faW5zcGVjdG9yU2Vy
dmVyUG9ydDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBEZWxh
eWVkIHByb2Nlc3MgbGF1bmNoIGlzIGN1cnJlbnRseSBkaXNhYmxlZCBvbiBpT1MgZm9yIHBlcmZv
cm1hbmNlIHJlYXNvbnMgKHJkYXI6Ly9wcm9ibGVtLzQ5MDc0MTMxKS4KICAgICBib29sIG1faXNE
ZWxheWVkV2ViUHJvY2Vzc0xhdW5jaERpc2FibGVkIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlByb2Nlc3NQb29sV2luLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQcm9jZXNzUG9vbFdpbi5jcHAKaW5kZXggOTJiOGQzZDQz
OGEuLjYzNjA1YjdlMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4v
V2ViUHJvY2Vzc1Bvb2xXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9X
ZWJQcm9jZXNzUG9vbFdpbi5jcHAKQEAgLTMxLDExICszMSwzOSBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogCisjaWYg
RU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3Rl
SW5zcGVjdG9yU2VydmVyLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiBF
TkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJbnNw
ZWN0b3JTZXJ2ZXIoU3RyaW5nVmlldyBhZGRyZXNzKQoreworICAgIGlmIChJbnNwZWN0b3I6OlJl
bW90ZUluc3BlY3RvclNlcnZlcjo6c2luZ2xldG9uKCkuaXNSdW5uaW5nKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8gcG9zID0gYWRkcmVzcy5maW5kKCc6Jyk7CisgICAgaWYgKHBvcyA9
PSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gaG9zdCA9IGFkZHJlc3Muc3Vi
c3RyaW5nKDAsIHBvcyk7CisgICAgYXV0byBwb3J0ID0gYWRkcmVzcy5zdWJzdHJpbmcocG9zICsg
MSkudG9VSW50NjRTdHJpY3QoKTsKKworICAgIGlmICghcG9ydCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLnN0YXJ0
KGhvc3QudXRmOCgpLmRhdGEoKSwgcG9ydC52YWx1ZSgpKTsKK30KKyNlbmRpZgorCiB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CisjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCisgICAgaWYgKGNvbnN0IGNoYXIqIGFk
ZHJlc3MgPSBnZXRlbnYoIldFQktJVF9JTlNQRUNUT1JfU0VSVkVSIikpIHsKKyAgICAgICAgaW5p
dGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZlcihhZGRyZXNzKTsKKyAgICAgICAgbV9pbnNwZWN0
b3JTZXJ2ZXJQb3J0ID0gSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRv
bigpLmxpc3RlbkZvclRhcmdldHMoKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmKQpAQCAtNDMsOSArNzEsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmEKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYsIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmLCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisj
aWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCisgICAgcGFyYW1ldGVycy5tX2luc3BlY3RvclNl
cnZlclBvcnQgPSBtX2luc3BlY3RvclNlcnZlclBvcnQudmFsdWVPcigwKTsKKyNlbmRpZgogfQog
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1dpbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwCmluZGV4IGRhMTky
N2ZiODY3Li41MWNhZDAzYjg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L3dpbi9XZWJQcm9jZXNzV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mvd2lu
L1dlYlByb2Nlc3NXaW4uY3BwCkBAIC0yOCw2ICsyOCwxMCBAQAogCiAjaW5jbHVkZSA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KIAorI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rvci5oPgorI2VuZGlmCisKIFdURl9FWFBP
UlQgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlSW50b0J1ZmZlcihj
b25zdCBjaGFyKiBuYW1lKQogewogICAgIHJldHVybiAwOwpAQCAtMzUsOCArMzksMTIgQEAgV1RG
X0VYUE9SVCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBsb2FkUmVzb3VyY2VJbnRvQnVm
ZmVyKGNvbnN0IGNoYXIqIG5hbWUKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJikKK3ZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogeworI2lmIEVOQUJMRShS
RU1PVEVfSU5TUEVDVE9SKQorICAgIGlmIChwYXJhbWV0ZXJzLm1faW5zcGVjdG9yU2VydmVyUG9y
dCkKKyAgICAgICAgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnNldFNlcnZlclBvcnQocGFy
YW1ldGVycy5tX2luc3BlY3RvclNlcnZlclBvcnQpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0
YVN0b3JlUGFyYW1ldGVycyYmKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374586</attachid>
            <date>2019-07-21 20:17:46 -0700</date>
            <delta_ts>2019-07-21 21:16:29 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>7004</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5jcHAKaW5kZXggN2IxMWUx
ZGUwMWIuLjViZGE1NDU3MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
U29ja2V0LmNwcApAQCAtNTAsNiArNTAsNyBAQCBSZW1vdGVJbnNwZWN0b3ImIFJlbW90ZUluc3Bl
Y3Rvcjo6c2luZ2xldG9uKCkKIFJlbW90ZUluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yKCkKIHsK
ICAgICBTb2NrZXQ6OmluaXQoKTsKKyAgICBzdGFydCgpOwogfQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6ZGlkQ2xvc2UoQ29ubmVjdGlvbklEIGlkKQpAQCAtOTUsNyArOTYsNyBAQCB2b2lkIFJl
bW90ZUluc3BlY3Rvcjo6c3RhcnQoKQogCiAgICAgbV9zb2NrZXRDb25uZWN0aW9uID0gUmVtb3Rl
SW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNyZWF0ZSh0aGlzLCAiUmVtb3RlSW5zcGVjdG9yIik7
CiAKLSAgICBpZiAoc19jb25uZWN0aW9uSWRlbnRpZmllcikgeworICAgIGlmIChzX2Nvbm5lY3Rp
b25JZGVudGlmaWVyICE9IElOVkFMSURfU09DS0VUX1ZBTFVFKSB7CiAgICAgICAgIG1fY2xpZW50
SUQgPSBtX3NvY2tldENvbm5lY3Rpb24tPmNyZWF0ZUNsaWVudChzX2Nvbm5lY3Rpb25JZGVudGlm
aWVyKTsKICAgICAgICAgc19jb25uZWN0aW9uSWRlbnRpZmllciA9IElOVkFMSURfU09DS0VUX1ZB
TFVFOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L3dpbi9SZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L3dpbi9SZW1vdGVJbnNw
ZWN0b3JTb2NrZXRXaW4uY3BwCmluZGV4IDVlMGE1YzM2MGZiLi44MjM2YjUwNWM0NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L3dpbi9S
ZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL3NvY2tldC93aW4vUmVtb3RlSW5zcGVjdG9yU29ja2V0V2luLmNwcApA
QCAtMjU5LDcgKzI1OSw3IEBAIHVpbnQxNl90IGdldFBvcnQoUGxhdGZvcm1Tb2NrZXRUeXBlIHNv
Y2tldCkKICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcmVzcyA9IHsgfTsKICAgICBpbnQgbGVu
ID0gc2l6ZW9mKGFkZHJlc3MpOwogICAgIGdldHNvY2tuYW1lKHNvY2tldCwgcmVpbnRlcnByZXRf
Y2FzdDxzdHJ1Y3Qgc29ja2FkZHIqPigmYWRkcmVzcyksICZsZW4pOwotICAgIHJldHVybiBhZGRy
ZXNzLnNpbl9wb3J0OworICAgIHJldHVybiBudG9ocyhhZGRyZXNzLnNpbl9wb3J0KTsKIH0KIAog
T3B0aW9uYWw8c2l6ZV90PiByZWFkKFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQsIHZvaWQqIGJ1
ZmZlciwgaW50IGJ1ZmZlclNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDQxNzBkNmMzODkzLi40ZTAyNmY4
NGIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTE1MSw2ICsxNTEsMTAgQEAgdm9pZCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgdXNlT3ZlcmxheVNjcm9sbGJhcnM7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShS
RU1PVEVfSU5TUEVDVE9SKSAmJiBQTEFURk9STShXSU4pCisgICAgZW5jb2RlciA8PCBpbnNwZWN0
b3JTZXJ2ZXJQb3J0OworI2VuZGlmCisKICNpZiBVU0UoV1BFX1JFTkRFUkVSKQogICAgIGVuY29k
ZXIgPDwgaXNTZXJ2aWNlV29ya2VyUHJvY2VzczsKICAgICBlbmNvZGVyIDw8IGhvc3RDbGllbnRG
aWxlRGVzY3JpcHRvcjsKQEAgLTM3MSw2ICszNzUsMTEgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3Jl
YXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUkVNT1RFX0lO
U1BFQ1RPUikgJiYgUExBVEZPUk0oV0lOKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5pbnNwZWN0b3JTZXJ2ZXJQb3J0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CisKICNpZiBVU0UoV1BFX1JFTkRFUkVSKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5pc1NlcnZpY2VXb3JrZXJQcm9jZXNzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IDQ5MWI5MWRiOTE5Li41NWM4NzkyZWUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTg5LDYgKzE4OSwx
MCBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCB1c2VP
dmVybGF5U2Nyb2xsYmFycyB7IHRydWUgfTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFJFTU9URV9J
TlNQRUNUT1IpICYmIFBMQVRGT1JNKFdJTikKKyAgICB1aW50MTZfdCBpbnNwZWN0b3JTZXJ2ZXJQ
b3J0IHsgMCB9OworI2VuZGlmCisKICNpZiBVU0UoV1BFX1JFTkRFUkVSKQogICAgIGJvb2wgaXNT
ZXJ2aWNlV29ya2VyUHJvY2VzcyB7IGZhbHNlIH07CiAgICAgSVBDOjpBdHRhY2htZW50IGhvc3RD
bGllbnRGaWxlRGVzY3JpcHRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCmluZGV4IDA2MDI3YjZhOGU2Li45MWEwZTVmMGI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC04MTUsNiArODE1LDEwIEBAIHByaXZhdGU6CiAgICAg
SGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFByb2Nl
c3NBc3NlcnRpb24+PiBtX3Byb2Nlc3Nlc1BsYXlpbmdBdWRpYmxlTWVkaWE7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fdWlQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2Vy
dGlvbjsKIAorI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKSAmJiBQTEFURk9STShXSU4pCisg
ICAgT3B0aW9uYWw8dWludDE2X3Q+IG1faW5zcGVjdG9yU2VydmVyUG9ydDsKKyNlbmRpZgorCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBEZWxheWVkIHByb2Nlc3MgbGF1bmNoIGlz
IGN1cnJlbnRseSBkaXNhYmxlZCBvbiBpT1MgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgKHJkYXI6
Ly9wcm9ibGVtLzQ5MDc0MTMxKS4KICAgICBib29sIG1faXNEZWxheWVkV2ViUHJvY2Vzc0xhdW5j
aERpc2FibGVkIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
d2luL1dlYlByb2Nlc3NQb29sV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9X
ZWJQcm9jZXNzUG9vbFdpbi5jcHAKaW5kZXggOTJiOGQzZDQzOGEuLmU0OWJkMDc1M2RjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Bvb2xXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQcm9jZXNzUG9vbFdpbi5jcHAK
QEAgLTMxLDExICszMSwzOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgogCisjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNU
T1IpCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmg+Cisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RP
UikKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoU3RyaW5nVmll
dyBhZGRyZXNzKQoreworICAgIGlmIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNlcnZlcjo6
c2luZ2xldG9uKCkuaXNSdW5uaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcG9z
ID0gYWRkcmVzcy5maW5kKCc6Jyk7CisgICAgaWYgKHBvcyA9PSBub3RGb3VuZCkKKyAgICAgICAg
cmV0dXJuOworICAgIGF1dG8gaG9zdCA9IGFkZHJlc3Muc3Vic3RyaW5nKDAsIHBvcyk7CisgICAg
YXV0byBwb3J0ID0gYWRkcmVzcy5zdWJzdHJpbmcocG9zICsgMSkudG9VSW50NjRTdHJpY3QoKTsK
KworICAgIGlmICghcG9ydCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9yOjpSZW1v
dGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLnN0YXJ0KGhvc3QudXRmOCgpLmRhdGEoKSwg
cG9ydC52YWx1ZSgpKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisjaWYgRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpCisgICAgaWYgKGNvbnN0IGNoYXIqIGFkZHJlc3MgPSBnZXRlbnYoIldFQktJ
VF9JTlNQRUNUT1JfU0VSVkVSIikpIHsKKyAgICAgICAgaW5pdGlhbGl6ZVJlbW90ZUluc3BlY3Rv
clNlcnZlcihhZGRyZXNzKTsKKyAgICAgICAgbV9pbnNwZWN0b3JTZXJ2ZXJQb3J0ID0gSW5zcGVj
dG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLmxpc3RlbkZvclRhcmdldHMo
KTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKQpA
QCAtNDMsOSArNzEsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmEKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYsIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhj
b25zdCBXZWJQcm9jZXNzUHJveHkmLCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisjaWYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCisgICAgcGFyYW1ldGVycy5pbnNwZWN0b3JTZXJ2ZXJQb3J0ID0gbV9pbnNwZWN0b3JT
ZXJ2ZXJQb3J0LnZhbHVlT3IoMCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L3dpbi9XZWJQcm9jZXNzV2luLmNwcAppbmRleCBkYTE5MjdmYjg2Ny4uYzNlMmIwMzZkMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1dpbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcApAQCAt
MjgsNiArMjgsMTAgQEAKIAogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAKKyNp
ZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZW1v
dGVJbnNwZWN0b3IuaD4KKyNlbmRpZgorCiBXVEZfRVhQT1JUIFJlZlB0cjxXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI+IGxvYWRSZXNvdXJjZUludG9CdWZmZXIoY29uc3QgY2hhciogbmFtZSkKIHsKICAg
ICByZXR1cm4gMDsKQEAgLTM1LDggKzM5LDEyIEBAIFdURl9FWFBPUlQgUmVmUHRyPFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcj4gbG9hZFJlc291cmNlSW50b0J1ZmZlcihjb25zdCBjaGFyKiBuYW1lCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCit2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKIHsKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKKyAgICBp
ZiAocGFyYW1ldGVycy5pbnNwZWN0b3JTZXJ2ZXJQb3J0KQorICAgICAgICBJbnNwZWN0b3I6OlJl
bW90ZUluc3BlY3Rvcjo6c2V0U2VydmVyUG9ydChwYXJhbWV0ZXJzLmluc3BlY3RvclNlcnZlclBv
cnQpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374587</attachid>
            <date>2019-07-21 21:16:29 -0700</date>
            <delta_ts>2019-07-22 20:15:26 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>3419</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5jcHAKaW5kZXggN2IxMWUx
ZGUwMWIuLjViZGE1NDU3MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
U29ja2V0LmNwcApAQCAtNTAsNiArNTAsNyBAQCBSZW1vdGVJbnNwZWN0b3ImIFJlbW90ZUluc3Bl
Y3Rvcjo6c2luZ2xldG9uKCkKIFJlbW90ZUluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yKCkKIHsK
ICAgICBTb2NrZXQ6OmluaXQoKTsKKyAgICBzdGFydCgpOwogfQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6ZGlkQ2xvc2UoQ29ubmVjdGlvbklEIGlkKQpAQCAtOTUsNyArOTYsNyBAQCB2b2lkIFJl
bW90ZUluc3BlY3Rvcjo6c3RhcnQoKQogCiAgICAgbV9zb2NrZXRDb25uZWN0aW9uID0gUmVtb3Rl
SW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNyZWF0ZSh0aGlzLCAiUmVtb3RlSW5zcGVjdG9yIik7
CiAKLSAgICBpZiAoc19jb25uZWN0aW9uSWRlbnRpZmllcikgeworICAgIGlmIChzX2Nvbm5lY3Rp
b25JZGVudGlmaWVyICE9IElOVkFMSURfU09DS0VUX1ZBTFVFKSB7CiAgICAgICAgIG1fY2xpZW50
SUQgPSBtX3NvY2tldENvbm5lY3Rpb24tPmNyZWF0ZUNsaWVudChzX2Nvbm5lY3Rpb25JZGVudGlm
aWVyKTsKICAgICAgICAgc19jb25uZWN0aW9uSWRlbnRpZmllciA9IElOVkFMSURfU09DS0VUX1ZB
TFVFOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L3dpbi9SZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L3dpbi9SZW1vdGVJbnNw
ZWN0b3JTb2NrZXRXaW4uY3BwCmluZGV4IDVlMGE1YzM2MGZiLi44MjM2YjUwNWM0NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L3dpbi9S
ZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL3NvY2tldC93aW4vUmVtb3RlSW5zcGVjdG9yU29ja2V0V2luLmNwcApA
QCAtMjU5LDcgKzI1OSw3IEBAIHVpbnQxNl90IGdldFBvcnQoUGxhdGZvcm1Tb2NrZXRUeXBlIHNv
Y2tldCkKICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcmVzcyA9IHsgfTsKICAgICBpbnQgbGVu
ID0gc2l6ZW9mKGFkZHJlc3MpOwogICAgIGdldHNvY2tuYW1lKHNvY2tldCwgcmVpbnRlcnByZXRf
Y2FzdDxzdHJ1Y3Qgc29ja2FkZHIqPigmYWRkcmVzcyksICZsZW4pOwotICAgIHJldHVybiBhZGRy
ZXNzLnNpbl9wb3J0OworICAgIHJldHVybiBudG9ocyhhZGRyZXNzLnNpbl9wb3J0KTsKIH0KIAog
T3B0aW9uYWw8c2l6ZV90PiByZWFkKFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQsIHZvaWQqIGJ1
ZmZlciwgaW50IGJ1ZmZlclNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5j
cHAKaW5kZXggOTRlMzg5OTQ1ZGMuLjdkMmFkOTgxYTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd2luL1dlYlZpZXcuY3BwCkBAIC02MSw2ICs2MSwyOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lm
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90
ZUluc3BlY3RvclNlcnZlci5oPgorI2VuZGlmCisKKyNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RP
UikKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoU3RyaW5nVmll
dyBhZGRyZXNzKQoreworICAgIGlmIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNlcnZlcjo6
c2luZ2xldG9uKCkuaXNSdW5uaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcG9z
ID0gYWRkcmVzcy5maW5kKCc6Jyk7CisgICAgaWYgKHBvcyA9PSBub3RGb3VuZCkKKyAgICAgICAg
cmV0dXJuOworICAgIGF1dG8gaG9zdCA9IGFkZHJlc3Muc3Vic3RyaW5nKDAsIHBvcyk7CisgICAg
YXV0byBwb3J0ID0gYWRkcmVzcy5zdWJzdHJpbmcocG9zICsgMSkudG9VSW50NjRTdHJpY3QoKTsK
KworICAgIGlmICghcG9ydCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9yOjpSZW1v
dGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLnN0YXJ0KGhvc3QudXRmOCgpLmRhdGEoKSwg
cG9ydC52YWx1ZSgpKTsKK30KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yMTEsNiArMjM0LDEzIEBAIFdlYlZpZXc6OldlYlZpZXco
UkVDVCByZWN0LCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uLCBI
V05EIHBhCiB7CiAgICAgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsKIAorI2lmIEVOQUJM
RShSRU1PVEVfSU5TUEVDVE9SKQorICAgIGlmIChjb25zdCBjaGFyKiBhZGRyZXNzID0gZ2V0ZW52
KCJXRUJLSVRfSU5TUEVDVE9SX1NFUlZFUiIpKSB7CisgICAgICAgIGluaXRpYWxpemVSZW1vdGVJ
bnNwZWN0b3JTZXJ2ZXIoYWRkcmVzcyk7CisgICAgICAgIGF1dG8gcG9ydCA9IEluc3BlY3Rvcjo6
UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5saXN0ZW5Gb3JUYXJnZXRzKCk7Cisg
ICAgICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzZXRTZXJ2ZXJQb3J0KHBvcnQudmFs
dWVPcigwKSk7CisgICAgfQorI2VuZGlmCiAgICAgbV93aW5kb3cgPSA6OkNyZWF0ZVdpbmRvd0V4
VygwLCBrV2ViS2l0MldlYlZpZXdXaW5kb3dDbGFzc05hbWUsIDAsIFdTX0NISUxEIHwgV1NfQ0xJ
UFNJQkxJTkdTIHwgV1NfQ0xJUENISUxEUkVOIHwgV1NfVklTSUJMRSwKICAgICAgICAgcmVjdC5s
ZWZ0LCByZWN0LnRvcCwgcmVjdC5yaWdodCAtIHJlY3QubGVmdCwgcmVjdC5ib3R0b20gLSByZWN0
LnRvcCwgcGFyZW50V2luZG93ID8gcGFyZW50V2luZG93IDogSFdORF9NRVNTQUdFLCAwLCBpbnN0
YW5jZUhhbmRsZSgpLCB0aGlzKTsKICAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3dpbmRvdykpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374668</attachid>
            <date>2019-07-22 20:15:15 -0700</date>
            <delta_ts>2019-07-31 20:52:00 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>9613</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5jcHAKaW5kZXggN2IxMWUx
ZGUwMWIuLmY2YjUxZDg3YzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
U29ja2V0LmNwcApAQCAtNTAsNiArNTAsNyBAQCBSZW1vdGVJbnNwZWN0b3ImIFJlbW90ZUluc3Bl
Y3Rvcjo6c2luZ2xldG9uKCkKIFJlbW90ZUluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yKCkKIHsK
ICAgICBTb2NrZXQ6OmluaXQoKTsKKyAgICBzdGFydCgpOwogfQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6ZGlkQ2xvc2UoQ29ubmVjdGlvbklEIGlkKQpAQCAtOTUsNyArOTYsNyBAQCB2b2lkIFJl
bW90ZUluc3BlY3Rvcjo6c3RhcnQoKQogCiAgICAgbV9zb2NrZXRDb25uZWN0aW9uID0gUmVtb3Rl
SW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNyZWF0ZSh0aGlzLCAiUmVtb3RlSW5zcGVjdG9yIik7
CiAKLSAgICBpZiAoc19jb25uZWN0aW9uSWRlbnRpZmllcikgeworICAgIGlmIChzX2Nvbm5lY3Rp
b25JZGVudGlmaWVyICE9IElOVkFMSURfU09DS0VUX1ZBTFVFKSB7CiAgICAgICAgIG1fY2xpZW50
SUQgPSBtX3NvY2tldENvbm5lY3Rpb24tPmNyZWF0ZUNsaWVudChzX2Nvbm5lY3Rpb25JZGVudGlm
aWVyKTsKICAgICAgICAgc19jb25uZWN0aW9uSWRlbnRpZmllciA9IElOVkFMSURfU09DS0VUX1ZB
TFVFOwogICAgIH0gZWxzZQpAQCAtMTM2LDcgKzEzNyw3IEBAIFRhcmdldExpc3RpbmcgUmVtb3Rl
SW5zcGVjdG9yOjpsaXN0aW5nRm9ySW5zcGVjdGlvblRhcmdldChjb25zdCBSZW1vdGVJbnNwZWN0
aW9uCiAgICAgVGFyZ2V0TGlzdGluZyB0YXJnZXRMaXN0aW5nID0gSlNPTjo6T2JqZWN0OjpjcmVh
dGUoKTsKIAogICAgIHRhcmdldExpc3RpbmctPnNldFN0cmluZygibmFtZSJfcywgdGFyZ2V0Lm5h
bWUoKSk7Ci0gICAgdGFyZ2V0TGlzdGluZy0+c2V0U3RyaW5nKCJ1cmwiX3MsIHRhcmdldC5uYW1l
KCkpOworICAgIHRhcmdldExpc3RpbmctPnNldFN0cmluZygidXJsIl9zLCB0YXJnZXQudXJsKCkp
OwogICAgIHRhcmdldExpc3RpbmctPnNldEludGVnZXIoInRhcmdldElEIl9zLCB0YXJnZXQudGFy
Z2V0SWRlbnRpZmllcigpKTsKICAgICB0YXJnZXRMaXN0aW5nLT5zZXRCb29sZWFuKCJoYXNMb2Nh
bERlYnVnZ2VyIl9zLCB0YXJnZXQuaGFzTG9jYWxEZWJ1Z2dlcigpKTsKICAgICBpZiAodGFyZ2V0
LnR5cGUoKSA9PSBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0OjpUeXBlOjpXZWIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvd2luL1JlbW90
ZUluc3BlY3RvclNvY2tldFdpbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9zb2NrZXQvd2luL1JlbW90ZUluc3BlY3RvclNvY2tldFdpbi5jcHAKaW5kZXggNWUw
YTVjMzYwZmIuLjBjZWI1NmQ0ZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvd2luL1JlbW90ZUluc3BlY3RvclNvY2tldFdpbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L3dpbi9S
ZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwCkBAIC0yMTUsNyArMjE1LDcgQEAgT3B0aW9uYWw8
c3RkOjphcnJheTxQbGF0Zm9ybVNvY2tldFR5cGUsIDI+PiBjcmVhdGVQYWlyKCkKICAgICBpZiAo
IXNlcnZlcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIGFkZHJlc3Muc2lu
X3BvcnQgPSBnZXRQb3J0KHNlcnZlcik7CisgICAgYWRkcmVzcy5zaW5fcG9ydCA9IGh0b25zKGdl
dFBvcnQoc2VydmVyKSk7CiAKICAgICBzdGQ6OmFycmF5PFBsYXRmb3JtU29ja2V0VHlwZSwgMj4g
c29ja2V0czsKICAgICBzb2NrZXRzWzBdID0gY29ubmVjdFRvKGFkZHJlc3MpOwpAQCAtMjU5LDcg
KzI1OSw3IEBAIHVpbnQxNl90IGdldFBvcnQoUGxhdGZvcm1Tb2NrZXRUeXBlIHNvY2tldCkKICAg
ICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcmVzcyA9IHsgfTsKICAgICBpbnQgbGVuID0gc2l6ZW9m
KGFkZHJlc3MpOwogICAgIGdldHNvY2tuYW1lKHNvY2tldCwgcmVpbnRlcnByZXRfY2FzdDxzdHJ1
Y3Qgc29ja2FkZHIqPigmYWRkcmVzcyksICZsZW4pOwotICAgIHJldHVybiBhZGRyZXNzLnNpbl9w
b3J0OworICAgIHJldHVybiBudG9ocyhhZGRyZXNzLnNpbl9wb3J0KTsKIH0KIAogT3B0aW9uYWw8
c2l6ZV90PiByZWFkKFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQsIHZvaWQqIGJ1ZmZlciwgaW50
IGJ1ZmZlclNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cAppbmRleCAwNmE3MTRmYWJiMy4uNGExYjBkOWM3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcApAQCAtMjcwLDcgKzI3MCw3IEBAIHZvaWQgSGlzdG9y
eUNvbnRyb2xsZXI6OmludmFsaWRhdGVDdXJyZW50SXRlbUNhY2hlZFBhZ2UoKQogICAgIC8vIFNv
bWVob3cgdGhlIFBhZ2VTdGF0ZSBvYmplY3QgaXMgbm90IHByb3Blcmx5IHVwZGF0ZWQsIGFuZCBp
cyBob2xkaW5nIG9udG8gYSBzdGFsZSBkb2N1bWVudC4KICAgICAvLyBCb3RoIFhjb2RlIGFuZCBG
aWxlTWFrZXIgc2VlIHRoaXMgY3Jhc2gsIFNhZmFyaSBkb2VzIG5vdC4KICAgICAKLSAgICBBU1NF
UlQoY2FjaGVkUGFnZS0+ZG9jdW1lbnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkpOworICAgIC8v
IEFTU0VSVChjYWNoZWRQYWdlLT5kb2N1bWVudCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSk7CiAg
ICAgaWYgKGNhY2hlZFBhZ2UtPmRvY3VtZW50KCkgPT0gbV9mcmFtZS5kb2N1bWVudCgpKSB7CiAg
ICAgICAgIGNhY2hlZFBhZ2UtPmRvY3VtZW50KCktPnNldFBhZ2VDYWNoZVN0YXRlKERvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSk7CiAgICAgICAgIGNhY2hlZFBhZ2UtPmNsZWFyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGll
bnQuY3BwCmluZGV4IGVkMGQ1ZmZlOTU4Li5lZjYxOWE1OGIyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvckNsaWVudC5jcHAK
QEAgLTg1LDE0ICs4NSwxNSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2RlYnVnZ2FibGVUeXBl
OwogfTsKIAotUmVtb3RlSW5zcGVjdG9yQ2xpZW50OjpSZW1vdGVJbnNwZWN0b3JDbGllbnQoY29u
c3QgY2hhciogYWRkcmVzcywgdW5zaWduZWQgcG9ydCwgUmVtb3RlSW5zcGVjdG9yT2JzZXJ2ZXIm
IG9ic2VydmVyKQotICAgIDogbV9vYnNlcnZlcihvYnNlcnZlcikKK1JlbW90ZUluc3BlY3RvckNs
aWVudDo6UmVtb3RlSW5zcGVjdG9yQ2xpZW50KFVSTCB1cmwsIFJlbW90ZUluc3BlY3Rvck9ic2Vy
dmVyJiBvYnNlcnZlcikKKyAgICA6IG1fdXJsKHVybCkKKyAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2
ZXIpCiB7CiAgICAgbV9zb2NrZXQgPSBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVu
ZHBvaW50OjpjcmVhdGUodGhpcywgIlJlbW90ZUluc3BlY3RvckNsaWVudCIpOwogCi0gICAgbV9j
b25uZWN0aW9uSUQgPSBtX3NvY2tldC0+Y29ubmVjdEluZXQoYWRkcmVzcywgcG9ydCk7CisgICAg
bV9jb25uZWN0aW9uSUQgPSBtX3NvY2tldC0+Y29ubmVjdEluZXQodXJsLmhvc3QoKS51dGY4KCku
ZGF0YSgpLCB1cmwucG9ydCgpLnZhbHVlKCkpOwogICAgIGlmICghbV9jb25uZWN0aW9uSUQpIHsK
LSAgICAgICAgTE9HX0VSUk9SKCJJbnNwZWN0b3IgY2xpZW50IGNvdWxkIG5vdCBjb25uZWN0IHRv
ICVzOiVkIiwgYWRkcmVzcywgcG9ydCk7CisgICAgICAgIExPR19FUlJPUigiSW5zcGVjdG9yIGNs
aWVudCBjb3VsZCBub3QgY29ubmVjdCB0byAlcyIsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKICAgICAgICAgbV9zb2NrZXQgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3Rv
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3Rv
ckNsaWVudC5oCmluZGV4IGQ2Zjg3NDM0YzBiLi41ZTlhM2Y0OTljYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuaApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rv
clNvY2tldEVuZHBvaW50Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ5LDEwICs1MCwxMCBAQCBwdWJs
aWM6CiB1c2luZyBDb25uZWN0aW9uSUQgPSBJbnNwZWN0b3I6OkNvbm5lY3Rpb25JRDsKIHVzaW5n
IFRhcmdldElEID0gSW5zcGVjdG9yOjpUYXJnZXRJRDsKIAotY2xhc3MgUmVtb3RlSW5zcGVjdG9y
Q2xpZW50IDogcHVibGljIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVu
dCB7CitjbGFzcyBSZW1vdGVJbnNwZWN0b3JDbGllbnQgZmluYWwgOiBwdWJsaWMgSW5zcGVjdG9y
OjpSZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRCgpOwogcHVibGljOgotICAgIFJlbW90ZUluc3BlY3RvckNsaWVudChjb25zdCBjaGFy
KiBhZGRyZXNzLCB1bnNpZ25lZCBwb3J0LCBSZW1vdGVJbnNwZWN0b3JPYnNlcnZlciYpOworICAg
IFJlbW90ZUluc3BlY3RvckNsaWVudChVUkwsIFJlbW90ZUluc3BlY3Rvck9ic2VydmVyJik7CiAg
ICAgflJlbW90ZUluc3BlY3RvckNsaWVudCgpOwogCiAgICAgc3RydWN0IFRhcmdldCB7CkBAIC02
NCw2ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEhhc2hNYXA8Q29ubmVjdGlvbklELCBW
ZWN0b3I8VGFyZ2V0Pj4mIHRhcmdldHMoKSBjb25zdCB7IHJldHVybiBtX3RhcmdldHM7IH0KIAor
ICAgIFVSTCB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAgIHZvaWQgaW5zcGVjdChD
b25uZWN0aW9uSUQsIFRhcmdldElELCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNlbmRNZXNz
YWdlVG9CYWNrZW5kKENvbm5lY3Rpb25JRCwgVGFyZ2V0SUQsIGNvbnN0IFN0cmluZyYpOwogICAg
IHZvaWQgY2xvc2VGcm9tRnJvbnRlbmQoQ29ubmVjdGlvbklELCBUYXJnZXRJRCk7CkBAIC04Myw2
ICs4NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25z
dCBTdHJpbmcmKTsKIAorICAgIFVSTCBtX3VybDsKICAgICBSZW1vdGVJbnNwZWN0b3JPYnNlcnZl
ciYgbV9vYnNlcnZlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpSZW1vdGVJbnNw
ZWN0b3JTb2NrZXRFbmRwb2ludD4gbV9zb2NrZXQ7CiAgICAgT3B0aW9uYWw8Q29ubmVjdGlvbklE
PiBtX2Nvbm5lY3Rpb25JRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKaW5kZXgg
MWI2ZDljYzU0ZmMuLmEzNmUxZjU5OTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVy
LmNwcApAQCAtNjksMTIgKzY5LDkgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXI6Omluc3BlY3QoY29uc3QgU3RyaW5nJiBob3N0QW5kUG9ydCwgQ29ubmVjdGkKICAgICAgICAg
Y2xpZW50LT5pbnNwZWN0KGNvbm5lY3Rpb25JRCwgdGFyZ2V0SUQsIHR5cGUpOwogfQogCi12b2lk
IFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6dGFyZ2V0TGlzdENoYW5nZWQoUmVtb3Rl
SW5zcGVjdG9yQ2xpZW50JikKK3ZvaWQgUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyOjp0
YXJnZXRMaXN0Q2hhbmdlZChSZW1vdGVJbnNwZWN0b3JDbGllbnQmIGNsaWVudCkKIHsKLSAgICBp
ZiAobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5pc0xvYWRpbmcoKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgbV9wYWdlLnJlbG9hZCh7IH0pOworICAgIG1fcGFnZS5sb2FkUmVxdWVzdChjbGllbnQu
dXJsKCkpOwogfQogCiB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6cGxhdGZv
cm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlUHJveHksIFdlYlVSTFNjaGVtZVRhc2smIHRh
c2spCkBAIC04Myw5ICs4MCwxNCBAQCB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cjo6cGxhdGZvcm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlUHJveHksCiAgICAgaWYgKCFy
ZXF1ZXN0VVJMLnBvcnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byogY2xpZW50ID0g
bV9pbnNwZWN0b3JDbGllbnRzLmVuc3VyZShyZXF1ZXN0VVJMLmhvc3RBbmRQb3J0KCksIFt0aGlz
LCAmcmVxdWVzdFVSTF0gewotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVJ
bnNwZWN0b3JDbGllbnQ+KHJlcXVlc3RVUkwuaG9zdCgpLnV0ZjgoKS5kYXRhKCksIHJlcXVlc3RV
UkwucG9ydCgpLnZhbHVlKCksICp0aGlzKTsKLSAgICB9KS5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7
CisgICAgYXV0byByZXN1bHQgPSBtX2luc3BlY3RvckNsaWVudHMuZW5zdXJlKHJlcXVlc3RVUkwu
aG9zdEFuZFBvcnQoKSwgW3RoaXMsICZyZXF1ZXN0VVJMXSB7CisgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFJlbW90ZUluc3BlY3RvckNsaWVudD4ocmVxdWVzdFVSTCwgKnRoaXMpOwor
ICAgIH0pOworICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICAvLyBXYWl0IGZv
ciB0YXJnZXRMaXN0Q2hhbmdlZAorICAgICAgICByZXR1cm47CisgICAgfQorICAgIGF1dG8qIGNs
aWVudCA9IHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7CiAKICAgICAvLyBTZXR1cCB0YXJn
ZXQgcG9zdE1lc3NhZ2UgbGlzdGVuZXIKICAgICBhdXRvIGhhbmRsZXIgPSBXZWJTY3JpcHRNZXNz
YWdlSGFuZGxlcjo6Y3JlYXRlKHN0ZDo6bWFrZV91bmlxdWU8U2NyaXB0TWVzc2FnZUNsaWVudD4o
KnRoaXMpLCAiaW5zcGVjdG9yIiwgQVBJOjpVc2VyQ29udGVudFdvcmxkOjpub3JtYWxXb3JsZCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAppbmRleCA5NGUzODk5NDVk
Yy4uN2QyYWQ5ODFhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9X
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAK
QEAgLTYxLDYgKzYxLDI5IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmg+
CisjZW5kaWYKKworI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorc3RhdGljIHZvaWQgaW5p
dGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZlcihTdHJpbmdWaWV3IGFkZHJlc3MpCit7CisgICAg
aWYgKEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5pc1J1bm5p
bmcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwb3MgPSBhZGRyZXNzLmZpbmQoJzon
KTsKKyAgICBpZiAocG9zID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm47CisgICAgYXV0byBo
b3N0ID0gYWRkcmVzcy5zdWJzdHJpbmcoMCwgcG9zKTsKKyAgICBhdXRvIHBvcnQgPSBhZGRyZXNz
LnN1YnN0cmluZyhwb3MgKyAxKS50b1VJbnQ2NFN0cmljdCgpOworCisgICAgaWYgKCFwb3J0KQor
ICAgICAgICByZXR1cm47CisKKyAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNlcnZlcjo6
c2luZ2xldG9uKCkuc3RhcnQoaG9zdC51dGY4KCkuZGF0YSgpLCBwb3J0LnZhbHVlKCkpOworfQor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTIxMSw2ICsyMzQsMTMgQEAgV2ViVmlldzo6V2ViVmlldyhSRUNUIHJlY3QsIGNvbnN0IEFQ
STo6UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24sIEhXTkQgcGEKIHsKICAgICByZWdp
c3RlcldlYlZpZXdXaW5kb3dDbGFzcygpOwogCisjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1Ip
CisgICAgaWYgKGNvbnN0IGNoYXIqIGFkZHJlc3MgPSBnZXRlbnYoIldFQktJVF9JTlNQRUNUT1Jf
U0VSVkVSIikpIHsKKyAgICAgICAgaW5pdGlhbGl6ZVJlbW90ZUluc3BlY3RvclNlcnZlcihhZGRy
ZXNzKTsKKyAgICAgICAgYXV0byBwb3J0ID0gSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2
ZXI6OnNpbmdsZXRvbigpLmxpc3RlbkZvclRhcmdldHMoKTsKKyAgICAgICAgSW5zcGVjdG9yOjpS
ZW1vdGVJbnNwZWN0b3I6OnNldFNlcnZlclBvcnQocG9ydC52YWx1ZU9yKDApKTsKKyAgICB9Cisj
ZW5kaWYKICAgICBtX3dpbmRvdyA9IDo6Q3JlYXRlV2luZG93RXhXKDAsIGtXZWJLaXQyV2ViVmll
d1dpbmRvd0NsYXNzTmFtZSwgMCwgV1NfQ0hJTEQgfCBXU19DTElQU0lCTElOR1MgfCBXU19DTElQ
Q0hJTERSRU4gfCBXU19WSVNJQkxFLAogICAgICAgICByZWN0LmxlZnQsIHJlY3QudG9wLCByZWN0
LnJpZ2h0IC0gcmVjdC5sZWZ0LCByZWN0LmJvdHRvbSAtIHJlY3QudG9wLCBwYXJlbnRXaW5kb3cg
PyBwYXJlbnRXaW5kb3cgOiBIV05EX01FU1NBR0UsIDAsIGluc3RhbmNlSGFuZGxlKCksIHRoaXMp
OwogICAgIEFTU0VSVCg6OklzV2luZG93KG1fd2luZG93KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375279</attachid>
            <date>2019-07-31 19:12:52 -0700</date>
            <delta_ts>2019-09-24 13:53:03 -0700</delta_ts>
            <desc>Updated WIP patch</desc>
            <filename>199938.diff</filename>
            <type>text/plain</type>
            <size>16706</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5jcHAKaW5kZXggN2IxMWUx
ZGUwMWIuLmY2YjUxZDg3YzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
U29ja2V0LmNwcApAQCAtNTAsNiArNTAsNyBAQCBSZW1vdGVJbnNwZWN0b3ImIFJlbW90ZUluc3Bl
Y3Rvcjo6c2luZ2xldG9uKCkKIFJlbW90ZUluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yKCkKIHsK
ICAgICBTb2NrZXQ6OmluaXQoKTsKKyAgICBzdGFydCgpOwogfQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6ZGlkQ2xvc2UoQ29ubmVjdGlvbklEIGlkKQpAQCAtOTUsNyArOTYsNyBAQCB2b2lkIFJl
bW90ZUluc3BlY3Rvcjo6c3RhcnQoKQogCiAgICAgbV9zb2NrZXRDb25uZWN0aW9uID0gUmVtb3Rl
SW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ6OmNyZWF0ZSh0aGlzLCAiUmVtb3RlSW5zcGVjdG9yIik7
CiAKLSAgICBpZiAoc19jb25uZWN0aW9uSWRlbnRpZmllcikgeworICAgIGlmIChzX2Nvbm5lY3Rp
b25JZGVudGlmaWVyICE9IElOVkFMSURfU09DS0VUX1ZBTFVFKSB7CiAgICAgICAgIG1fY2xpZW50
SUQgPSBtX3NvY2tldENvbm5lY3Rpb24tPmNyZWF0ZUNsaWVudChzX2Nvbm5lY3Rpb25JZGVudGlm
aWVyKTsKICAgICAgICAgc19jb25uZWN0aW9uSWRlbnRpZmllciA9IElOVkFMSURfU09DS0VUX1ZB
TFVFOwogICAgIH0gZWxzZQpAQCAtMTM2LDcgKzEzNyw3IEBAIFRhcmdldExpc3RpbmcgUmVtb3Rl
SW5zcGVjdG9yOjpsaXN0aW5nRm9ySW5zcGVjdGlvblRhcmdldChjb25zdCBSZW1vdGVJbnNwZWN0
aW9uCiAgICAgVGFyZ2V0TGlzdGluZyB0YXJnZXRMaXN0aW5nID0gSlNPTjo6T2JqZWN0OjpjcmVh
dGUoKTsKIAogICAgIHRhcmdldExpc3RpbmctPnNldFN0cmluZygibmFtZSJfcywgdGFyZ2V0Lm5h
bWUoKSk7Ci0gICAgdGFyZ2V0TGlzdGluZy0+c2V0U3RyaW5nKCJ1cmwiX3MsIHRhcmdldC5uYW1l
KCkpOworICAgIHRhcmdldExpc3RpbmctPnNldFN0cmluZygidXJsIl9zLCB0YXJnZXQudXJsKCkp
OwogICAgIHRhcmdldExpc3RpbmctPnNldEludGVnZXIoInRhcmdldElEIl9zLCB0YXJnZXQudGFy
Z2V0SWRlbnRpZmllcigpKTsKICAgICB0YXJnZXRMaXN0aW5nLT5zZXRCb29sZWFuKCJoYXNMb2Nh
bERlYnVnZ2VyIl9zLCB0YXJnZXQuaGFzTG9jYWxEZWJ1Z2dlcigpKTsKICAgICBpZiAodGFyZ2V0
LnR5cGUoKSA9PSBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0OjpUeXBlOjpXZWIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yU29ja2V0RW5kcG9pbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmNwcAppbmRleCA3
MTAxNjY4YTk3Yy4uZGYzMGJhZmI4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1Jl
bW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50LmNwcApAQCAtMTc0LDkgKzE3NCwxMCBAQCB2b2lk
IFJlbW90ZUluc3BlY3RvclNvY2tldEVuZHBvaW50OjpyZWN2SWZFbmFibGVkKENvbm5lY3Rpb25J
RCBpZCkKICAgICBpZiAoY29uc3QgYXV0byYgY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMuZ2V0
KGlkKSkgewogICAgICAgICBWZWN0b3I8dWludDhfdD4gcmVjdkJ1ZmZlcihTb2NrZXQ6OkJ1ZmZl
clNpemUpOwogICAgICAgICBpZiAoYXV0byByZWFkU2l6ZSA9IFNvY2tldDo6cmVhZChjb25uZWN0
aW9uLT5zb2NrZXQsIHJlY3ZCdWZmZXIuZGF0YSgpLCByZWN2QnVmZmVyLnNpemUoKSkpIHsKLSAg
ICAgICAgICAgIGlmICgqcmVhZFNpemUgPiAwKQorICAgICAgICAgICAgaWYgKCpyZWFkU2l6ZSA+
IDApIHsKICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5wYXJzZXItPnB1c2hSZWNlaXZlZERh
dGEocmVjdkJ1ZmZlci5kYXRhKCksICpyZWFkU2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAg
ICAgU29ja2V0OjpjbG9zZShjb25uZWN0aW9uLT5zb2NrZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L3dpbi9SZW1vdGVJbnNwZWN0
b3JTb2NrZXRXaW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUv
c29ja2V0L3dpbi9SZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwCmluZGV4IDVlMGE1YzM2MGZi
Li4wNmY3M2U0NTI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L3dpbi9SZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC93aW4vUmVtb3RlSW5z
cGVjdG9yU29ja2V0V2luLmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIE9wdGlvbmFsPHN0ZDo6YXJy
YXk8UGxhdGZvcm1Tb2NrZXRUeXBlLCAyPj4gY3JlYXRlUGFpcigpCiAgICAgaWYgKCFzZXJ2ZXIp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBhZGRyZXNzLnNpbl9wb3J0ID0g
Z2V0UG9ydChzZXJ2ZXIpOworICAgIGFkZHJlc3Muc2luX3BvcnQgPSBodG9ucyhnZXRQb3J0KHNl
cnZlcikpOwogCiAgICAgc3RkOjphcnJheTxQbGF0Zm9ybVNvY2tldFR5cGUsIDI+IHNvY2tldHM7
CiAgICAgc29ja2V0c1swXSA9IGNvbm5lY3RUbyhhZGRyZXNzKTsKQEAgLTI1OSw3ICsyNTksNyBA
QCB1aW50MTZfdCBnZXRQb3J0KFBsYXRmb3JtU29ja2V0VHlwZSBzb2NrZXQpCiAgICAgc3RydWN0
IHNvY2thZGRyX2luIGFkZHJlc3MgPSB7IH07CiAgICAgaW50IGxlbiA9IHNpemVvZihhZGRyZXNz
KTsKICAgICBnZXRzb2NrbmFtZShzb2NrZXQsIHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvY2th
ZGRyKj4oJmFkZHJlc3MpLCAmbGVuKTsKLSAgICByZXR1cm4gYWRkcmVzcy5zaW5fcG9ydDsKKyAg
ICByZXR1cm4gbnRvaHMoYWRkcmVzcy5zaW5fcG9ydCk7CiB9CiAKIE9wdGlvbmFsPHNpemVfdD4g
cmVhZChQbGF0Zm9ybVNvY2tldFR5cGUgc29ja2V0LCB2b2lkKiBidWZmZXIsIGludCBidWZmZXJT
aXplKQpAQCAtMzA4LDcgKzMwOCw3IEBAIGJvb2wgcG9sbChWZWN0b3I8UG9sbGluZ0Rlc2NyaXB0
b3I+JiBwb2xsRGVzY3JpcHRvcnMsIGludCB0aW1lb3V0KQogCiBib29sIGlzUmVhZGFibGUoY29u
c3QgUG9sbGluZ0Rlc2NyaXB0b3ImIHBvbGwpCiB7Ci0gICAgcmV0dXJuIHBvbGwucmV2ZW50cyAm
IFBPTExJTjsKKyAgICByZXR1cm4gKHBvbGwucmV2ZW50cyAmIFBPTExJTikgfHwgKHBvbGwucmV2
ZW50cyAmIFBPTExIVVApOwogfQogCiBib29sIGlzV3JpdGFibGUoY29uc3QgUG9sbGluZ0Rlc2Ny
aXB0b3ImIHBvbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cAppbmRleCAwNmE3MTRmYWJiMy4uNGExYjBkOWM3MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcApAQCAtMjcwLDcgKzI3MCw3IEBAIHZvaWQgSGlzdG9y
eUNvbnRyb2xsZXI6OmludmFsaWRhdGVDdXJyZW50SXRlbUNhY2hlZFBhZ2UoKQogICAgIC8vIFNv
bWVob3cgdGhlIFBhZ2VTdGF0ZSBvYmplY3QgaXMgbm90IHByb3Blcmx5IHVwZGF0ZWQsIGFuZCBp
cyBob2xkaW5nIG9udG8gYSBzdGFsZSBkb2N1bWVudC4KICAgICAvLyBCb3RoIFhjb2RlIGFuZCBG
aWxlTWFrZXIgc2VlIHRoaXMgY3Jhc2gsIFNhZmFyaSBkb2VzIG5vdC4KICAgICAKLSAgICBBU1NF
UlQoY2FjaGVkUGFnZS0+ZG9jdW1lbnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkpOworICAgIC8v
IEFTU0VSVChjYWNoZWRQYWdlLT5kb2N1bWVudCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSk7CiAg
ICAgaWYgKGNhY2hlZFBhZ2UtPmRvY3VtZW50KCkgPT0gbV9mcmFtZS5kb2N1bWVudCgpKSB7CiAg
ICAgICAgIGNhY2hlZFBhZ2UtPmRvY3VtZW50KCktPnNldFBhZ2VDYWNoZVN0YXRlKERvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSk7CiAgICAgICAgIGNhY2hlZFBhZ2UtPmNsZWFyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGll
bnQuY3BwCmluZGV4IGVkMGQ1ZmZlOTU4Li40ZjY5ODcxMDUwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvckNsaWVudC5jcHAK
QEAgLTg1LDE0ICs4NSwyMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2RlYnVnZ2FibGVUeXBl
OwogfTsKIAotUmVtb3RlSW5zcGVjdG9yQ2xpZW50OjpSZW1vdGVJbnNwZWN0b3JDbGllbnQoY29u
c3QgY2hhciogYWRkcmVzcywgdW5zaWduZWQgcG9ydCwgUmVtb3RlSW5zcGVjdG9yT2JzZXJ2ZXIm
IG9ic2VydmVyKQotICAgIDogbV9vYnNlcnZlcihvYnNlcnZlcikKK1JlbW90ZUluc3BlY3RvckNs
aWVudDo6UmVtb3RlSW5zcGVjdG9yQ2xpZW50KFVSTCB1cmwsIFJlbW90ZUluc3BlY3Rvck9ic2Vy
dmVyJiBvYnNlcnZlcikKKyAgICA6IG1fdXJsKHVybCkKKyAgICAsIG1fb2JzZXJ2ZXIob2JzZXJ2
ZXIpCiB7CiAgICAgbV9zb2NrZXQgPSBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNvY2tldEVu
ZHBvaW50OjpjcmVhdGUodGhpcywgIlJlbW90ZUluc3BlY3RvckNsaWVudCIpOwogCi0gICAgbV9j
b25uZWN0aW9uSUQgPSBtX3NvY2tldC0+Y29ubmVjdEluZXQoYWRkcmVzcywgcG9ydCk7CisgICAg
aWYgKCF1cmwuaG9zdCgpIHx8ICF1cmwucG9ydCgpKSB7CisgICAgICAgIExPR19FUlJPUigiSW52
YWxpZCBpbnNwZWN0b3IgdXJsOiAlcyIsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fY29ubmVjdGlvbklEID0gbV9zb2NrZXQtPmNv
bm5lY3RJbmV0KHVybC5ob3N0KCkudXRmOCgpLmRhdGEoKSwgdXJsLnBvcnQoKS52YWx1ZSgpKTsK
ICAgICBpZiAoIW1fY29ubmVjdGlvbklEKSB7Ci0gICAgICAgIExPR19FUlJPUigiSW5zcGVjdG9y
IGNsaWVudCBjb3VsZCBub3QgY29ubmVjdCB0byAlczolZCIsIGFkZHJlc3MsIHBvcnQpOworICAg
ICAgICBMT0dfRVJST1IoIkluc3BlY3RvciBjbGllbnQgY291bGQgbm90IGNvbm5lY3QgdG8gJXMi
LCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIG1fc29ja2V0ID0gbnVsbHB0
cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEzNCwxMCArMTQwLDE0IEBAIHZvaWQgUmVt
b3RlSW5zcGVjdG9yQ2xpZW50Ojpjb25uZWN0aW9uQ2xvc2VkKCkKICAgICBtX3RhcmdldHMuY2xl
YXIoKTsKICAgICBtX2luc3BlY3RvclByb3h5TWFwLmNsZWFyKCk7CiAgICAgbV9vYnNlcnZlci5j
b25uZWN0aW9uQ2xvc2VkKCp0aGlzKTsKKyAgICBtX29ic2VydmVyLnRhcmdldExpc3RDaGFuZ2Vk
KCp0aGlzKTsKIH0KIAogdm9pZCBSZW1vdGVJbnNwZWN0b3JDbGllbnQ6OmRpZENsb3NlKENvbm5l
Y3Rpb25JRCkKIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7CisgICAgICAgIGNvbm5l
Y3Rpb25DbG9zZWQoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZW1vdGVJbnNwZWN0b3JDbGllbnQ6
Omluc3BlY3QoQ29ubmVjdGlvbklEIGNvbm5lY3Rpb25JRCwgVGFyZ2V0SUQgdGFyZ2V0SUQsIGNv
bnN0IFN0cmluZyYgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuaAppbmRleCBkNmY4NzQzNGMwYi4uNWU5YTNmNDk5
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNw
ZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3Rl
SW5zcGVjdG9yQ2xpZW50LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9SZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00
OSwxMCArNTAsMTAgQEAgcHVibGljOgogdXNpbmcgQ29ubmVjdGlvbklEID0gSW5zcGVjdG9yOjpD
b25uZWN0aW9uSUQ7CiB1c2luZyBUYXJnZXRJRCA9IEluc3BlY3Rvcjo6VGFyZ2V0SUQ7CiAKLWNs
YXNzIFJlbW90ZUluc3BlY3RvckNsaWVudCA6IHB1YmxpYyBJbnNwZWN0b3I6OlJlbW90ZUluc3Bl
Y3RvckNvbm5lY3Rpb25DbGllbnQgeworY2xhc3MgUmVtb3RlSW5zcGVjdG9yQ2xpZW50IGZpbmFs
IDogcHVibGljIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQoKTsKIHB1YmxpYzoKLSAgICBSZW1vdGVJbnNwZWN0
b3JDbGllbnQoY29uc3QgY2hhciogYWRkcmVzcywgdW5zaWduZWQgcG9ydCwgUmVtb3RlSW5zcGVj
dG9yT2JzZXJ2ZXImKTsKKyAgICBSZW1vdGVJbnNwZWN0b3JDbGllbnQoVVJMLCBSZW1vdGVJbnNw
ZWN0b3JPYnNlcnZlciYpOwogICAgIH5SZW1vdGVJbnNwZWN0b3JDbGllbnQoKTsKIAogICAgIHN0
cnVjdCBUYXJnZXQgewpAQCAtNjQsNiArNjUsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBIYXNo
TWFwPENvbm5lY3Rpb25JRCwgVmVjdG9yPFRhcmdldD4+JiB0YXJnZXRzKCkgY29uc3QgeyByZXR1
cm4gbV90YXJnZXRzOyB9CiAKKyAgICBVUkwgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0K
ICAgICB2b2lkIGluc3BlY3QoQ29ubmVjdGlvbklELCBUYXJnZXRJRCwgY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChDb25uZWN0aW9uSUQsIFRhcmdldElELCBj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNsb3NlRnJvbUZyb250ZW5kKENvbm5lY3Rpb25JRCwg
VGFyZ2V0SUQpOwpAQCAtODMsNiArODUsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZW5kV2Vi
SW5zcGVjdG9yRXZlbnQoY29uc3QgU3RyaW5nJik7CiAKKyAgICBVUkwgbV91cmw7CiAgICAgUmVt
b3RlSW5zcGVjdG9yT2JzZXJ2ZXImIG1fb2JzZXJ2ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPElu
c3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yU29ja2V0RW5kcG9pbnQ+IG1fc29ja2V0OwogICAgIE9w
dGlvbmFsPENvbm5lY3Rpb25JRD4gbV9jb25uZWN0aW9uSUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2Nv
bEhhbmRsZXIuY3BwCmluZGV4IDFiNmQ5Y2M1NGZjLi5lNzFlNmNjNDQyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3Bl
Y3RvclByb3RvY29sSGFuZGxlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJQ
YWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5oIgogI2luY2x1
ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9K
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgpAQCAtNjksMjMgKzcwLDM4IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yUHJv
dG9jb2xIYW5kbGVyOjppbnNwZWN0KGNvbnN0IFN0cmluZyYgaG9zdEFuZFBvcnQsIENvbm5lY3Rp
CiAgICAgICAgIGNsaWVudC0+aW5zcGVjdChjb25uZWN0aW9uSUQsIHRhcmdldElELCB0eXBlKTsK
IH0KIAotdm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6OnRhcmdldExpc3RDaGFu
Z2VkKFJlbW90ZUluc3BlY3RvckNsaWVudCYpCit2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29s
SGFuZGxlcjo6cnVuU2NyaXB0KGNvbnN0IFN0cmluZyYgc2NyaXB0KQogewotICAgIGlmIChtX3Bh
Z2UucGFnZUxvYWRTdGF0ZSgpLmlzTG9hZGluZygpKQorICAgIG1fcGFnZS5ydW5KYXZhU2NyaXB0
SW5NYWluRnJhbWUoc2NyaXB0LCBmYWxzZSwKKyAgICAgICAgW10oQVBJOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0
YWlscyYgZXhjZXB0aW9uRGV0YWlscywgQ2FsbGJhY2tCYXNlOjpFcnJvcil7CisgICAgICAgICAg
ICBpZiAoaGFkRXhjZXB0aW9uKQorICAgICAgICAgICAgICAgIExPR19FUlJPUigiRXhjZXB0aW9u
IHJ1bm5pbmcgc2NyaXB0IFwiJXNcIiIsIGV4Y2VwdGlvbkRldGFpbHMubWVzc2FnZS51dGY4KCku
ZGF0YSgpKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRs
ZXI6OnRhcmdldExpc3RDaGFuZ2VkKFJlbW90ZUluc3BlY3RvckNsaWVudCYgY2xpZW50KQorewor
ICAgIHJ1blNjcmlwdCgiY2xlYXJUYXJnZXRMaXN0KCk7Il9zKTsKKyAgICBpZiAoY2xpZW50LnRh
cmdldHMoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgcnVuU2NyaXB0KCJzZXROb1RhcmdldHNGb3Vu
ZCgpOyJfcyk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBtX3BhZ2UucmVsb2FkKHsg
fSk7CisgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uSUQgOiBjbGllbnQudGFyZ2V0cygpLmtleXMo
KSkgeworICAgICAgICBmb3IgKGF1dG8mIHRhcmdldCA6IGNsaWVudC50YXJnZXRzKCkuZ2V0KGNv
bm5lY3Rpb25JRCkpCisgICAgICAgICAgICBydW5TY3JpcHQobWFrZVN0cmluZygiYWRkVGFyZ2V0
KCciLCB0YXJnZXQubmFtZSwgIicsICciLCB0YXJnZXQudXJsLCAiJywgJyIsIGNvbm5lY3Rpb25J
RCwgIicsICciLCB0YXJnZXQuaWQsICInLCAnIiwgdGFyZ2V0LnR5cGUsICInKTsiKSk7CisgICAg
fQogfQogCiB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6cGxhdGZvcm1TdGFy
dFRhc2soV2ViUGFnZVByb3h5JiBwYWdlUHJveHksIFdlYlVSTFNjaGVtZVRhc2smIHRhc2spCiB7
CiAgICAgYXV0byYgcmVxdWVzdFVSTCA9IHRhc2sucmVxdWVzdCgpLnVybCgpOwotICAgIGlmICgh
cmVxdWVzdFVSTC5wb3J0KCkpCi0gICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIGNsaWVudCA9
IG1faW5zcGVjdG9yQ2xpZW50cy5lbnN1cmUocmVxdWVzdFVSTC5ob3N0QW5kUG9ydCgpLCBbdGhp
cywgJnJlcXVlc3RVUkxdIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3Rl
SW5zcGVjdG9yQ2xpZW50PihyZXF1ZXN0VVJMLmhvc3QoKS51dGY4KCkuZGF0YSgpLCByZXF1ZXN0
VVJMLnBvcnQoKS52YWx1ZSgpLCAqdGhpcyk7Ci0gICAgfSkuaXRlcmF0b3ItPnZhbHVlLmdldCgp
OworICAgIC8vIFJlLWNyZWF0ZSB0aGUgY29ubmVjdGlvbiB0byBhdm9pZCBob2xkaW5nIG9uIHRv
IGJhZCBjb25uZWN0aW9ucworICAgIG1faW5zcGVjdG9yQ2xpZW50cy5yZW1vdmUocmVxdWVzdFVS
TC5ob3N0QW5kUG9ydCgpKTsKKyAgICBtX2luc3BlY3RvckNsaWVudHMuZW5zdXJlKHJlcXVlc3RV
UkwuaG9zdEFuZFBvcnQoKSwgW3RoaXMsICZyZXF1ZXN0VVJMXSB7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUluc3BlY3RvckNsaWVudD4ocmVxdWVzdFVSTCwgKnRoaXMp
OworICAgIH0pOwogCiAgICAgLy8gU2V0dXAgdGFyZ2V0IHBvc3RNZXNzYWdlIGxpc3RlbmVyCiAg
ICAgYXV0byBoYW5kbGVyID0gV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXI6OmNyZWF0ZShzdGQ6Om1h
a2VfdW5pcXVlPFNjcmlwdE1lc3NhZ2VDbGllbnQ+KCp0aGlzKSwgImluc3BlY3RvciIsIEFQSTo6
VXNlckNvbnRlbnRXb3JsZDo6bm9ybWFsV29ybGQoKSk7CkBAIC0xMTAsMjkgKzEyNiw1MiBAQCB2
b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6cGxhdGZvcm1TdGFydFRhc2soV2Vi
UGFnZVByb3h5JiBwYWdlUHJveHksCiAgICAgICAgICIgIHRkLmlucHV0IHsgd2lkdGg6IDY0cHg7
IH0iCiAgICAgICAgICIgIGlucHV0IHsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDhweDsgfSIKICAg
ICAgICAgIjwvc3R5bGU+IgotICAgICAgICAiPC9oZWFkPjxib2R5PjxoMT5JbnNwZWN0YWJsZSB0
YXJnZXRzPC9oMT4iKTsKLQotICAgIGlmIChjbGllbnQtPnRhcmdldHMoKS5pc0VtcHR5KCkpCi0g
ICAgICAgIGh0bWxCdWlsZGVyLmFwcGVuZCgiPHA+Tm8gdGFyZ2V0cyBmb3VuZDwvcD4iKTsKLSAg
ICBlbHNlIHsKLSAgICAgICAgaHRtbEJ1aWxkZXIuYXBwZW5kKCI8dGFibGU+Iik7Ci0gICAgICAg
IGZvciAoYXV0byYgY29ubmVjdGlvbklEIDogY2xpZW50LT50YXJnZXRzKCkua2V5cygpKSB7Ci0g
ICAgICAgICAgICBmb3IgKGF1dG8mIHRhcmdldCA6IGNsaWVudC0+dGFyZ2V0cygpLmdldChjb25u
ZWN0aW9uSUQpKSB7Ci0gICAgICAgICAgICAgICAgaHRtbEJ1aWxkZXIuYXBwZW5kKG1ha2VTdHJp
bmcoCi0gICAgICAgICAgICAgICAgICAgICI8dGJvZHk+PHRyPiIKLSAgICAgICAgICAgICAgICAg
ICAgIjx0ZCBjbGFzcz1cImRhdGFcIj48ZGl2IGNsYXNzPVwidGFyZ2V0bmFtZVwiPiIsIHRhcmdl
dC5uYW1lLCAiPC9kaXY+PGRpdiBjbGFzcz1cInRhcmdldHVybFwiPiIsIHRhcmdldC51cmwsICI8
L2Rpdj48L3RkPiIKLSAgICAgICAgICAgICAgICAgICAgIjx0ZCBjbGFzcz1cImlucHV0XCI+PGlu
cHV0IHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIkluc3BlY3RcIiBvbmNsaWNrPVwid2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMuaW5zcGVjdG9yLnBvc3RNZXNzYWdlKCciLCBjb25uZWN0aW9u
SUQsICI6IiwgdGFyZ2V0LmlkLCAiOiIsIHRhcmdldC50eXBlLCAiJyk7XCI+PC90ZD4iCi0gICAg
ICAgICAgICAgICAgICAgICI8L3RyPjwvdGJvZHk+IgotICAgICAgICAgICAgICAgICkpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGh0bWxCdWlsZGVyLmFwcGVuZCgiPC90YWJs
ZT4iKTsKLSAgICB9Ci0KLSAgICBodG1sQnVpbGRlci5hcHBlbmQoIjwvYm9keT48L2h0bWw+Iik7
CisgICAgICAgICI8L2hlYWQ+PGJvZHk+PGgxPkluc3BlY3RhYmxlIHRhcmdldHM8L2gxPiIKKyAg
ICAgICAgIjxkaXYgaWQ9XCJ0YXJnZXRsaXN0XCI+PHA+Tm8gdGFyZ2V0cyBmb3VuZDwvcD48L2Rp
dj48L2JvZHk+IgorICAgICAgICAiPHNjcmlwdD4iCisgICAgICAgICJmdW5jdGlvbiBjbGVhclRh
cmdldExpc3QoKSB7IgorICAgICAgICAgICAgImxldCB0YXJnZXREaXYgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGFyZ2V0bGlzdCcpOyIKKyAgICAgICAgICAgICJ3aGlsZSAodGFyZ2V0RGl2
LmZpcnN0Q2hpbGQpIHRhcmdldERpdi5yZW1vdmVDaGlsZCh0YXJnZXREaXYuZmlyc3RDaGlsZCk7
IgorICAgICAgICAifSIKKworICAgICAgICAiZnVuY3Rpb24gc2V0Tm9UYXJnZXRzRm91bmQoKSB7
IgorICAgICAgICAgICAgImxldCB0YXJnZXREaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGFyZ2V0bGlzdCcpOyIKKyAgICAgICAgICAgICJ0YXJnZXREaXYuaW5uZXJIVE1MID0gJzxwPk5v
IHRhcmdldHMgZm91bmQ8L3A+JzsiCisgICAgICAgICJ9IgorCisgICAgICAgICJmdW5jdGlvbiBh
ZGRUYXJnZXQobmFtZSwgdXJsLCBjb25uZWN0aW9uSUQsIHRhcmdldElELCB0YXJnZXRUeXBlKSB7
IgorICAgICAgICAgICAgImxldCB0YWJsZU5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGFyZ2V0RGF0YScpOyIKKyAgICAgICAgICAgICJpZiAoIXRhYmxlTm9kZSkgeyIKKyAgICAgICAg
ICAgICAgICAidGFibGVOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGFibGUnKTsiCisg
ICAgICAgICAgICAgICAgInRhYmxlTm9kZS5pZCA9ICd0YXJnZXREYXRhJzsiCisgICAgICAgICAg
ICAgICAgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXRsaXN0JykuYXBwZW5kQ2hpbGQo
dGFibGVOb2RlKTsiCisgICAgICAgICAgICAifSIKKyAgICAgICAgICAgICJsZXQgdGFyZ2V0TmFt
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOyIKKyAgICAgICAgICAgICJ0YXJnZXRO
YW1lLmNsYXNzTmFtZSA9ICd0YXJnZXRuYW1lJzsiCisgICAgICAgICAgICAidGFyZ2V0TmFtZS5p
bm5lckhUTUwgPSBuYW1lOyIKKyAgICAgICAgICAgICJsZXQgdGFyZ2V0VXJsID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7IgorICAgICAgICAgICAgInRhcmdldFVybC5jbGFzc05hbWUg
PSAndGFyZ2V0dXJsJzsiCisgICAgICAgICAgICAidGFyZ2V0VXJsLmlubmVySFRNTCA9IHVybDsi
CisgICAgICAgICAgICAibGV0IHJvdyA9IHRhYmxlTm9kZS5pbnNlcnRSb3coLTEpOyIKKyAgICAg
ICAgICAgICJsZXQgdGFyZ2V0SW5mb0NlbGwgPSByb3cuaW5zZXJ0Q2VsbCgwKTsiCisgICAgICAg
ICAgICAidGFyZ2V0SW5mb0NlbGwuYXBwZW5kQ2hpbGQodGFyZ2V0TmFtZSk7IgorICAgICAgICAg
ICAgInRhcmdldEluZm9DZWxsLmFwcGVuZENoaWxkKHRhcmdldFVybCk7IgorICAgICAgICAgICAg
ImxldCBpbnNwZWN0QnV0dG9uQ2VsbCA9IHJvdy5pbnNlcnRDZWxsKDEpOyIKKyAgICAgICAgICAg
ICJsZXQgaW5zcGVjdEJ1dHRvbk5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcp
OyIKKyAgICAgICAgICAgICJpbnNwZWN0QnV0dG9uTm9kZS50eXBlID0gJ2J1dHRvbic7IgorICAg
ICAgICAgICAgImluc3BlY3RCdXR0b25Ob2RlLnZhbHVlID0gJ0luc3BlY3QnOyIKKyAgICAgICAg
ICAgICJpbnNwZWN0QnV0dG9uTm9kZS5vbmNsaWNrID0gZnVuY3Rpb24oKSB7IHdpbmRvdy53ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLmluc3BlY3Rvci5wb3N0TWVzc2FnZShgJHtjb25uZWN0aW9uSUR9
OiR7dGFyZ2V0SUR9OiR7dGFyZ2V0VHlwZX1gKSB9OyIKKyAgICAgICAgICAgICJpbnNwZWN0QnV0
dG9uQ2VsbC5hcHBlbmRDaGlsZChpbnNwZWN0QnV0dG9uTm9kZSk7IgorICAgICAgICAifSIKKyAg
ICAgICAgIjwvc2NyaXB0PiIpOworICAgIGh0bWxCdWlsZGVyLmFwcGVuZCgiPC9odG1sPiIpOwog
CiAgICAgYXV0byBodG1sID0gaHRtbEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgcGFn
ZVByb3h5LmxvYWREYXRhKHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oaHRtbC5k
YXRhKCkpLCBodG1sLmxlbmd0aCgpIH0sICJ0ZXh0L2h0bWwiX3MsICJVVEYtOCJfcywgcmVxdWVz
dFVSTCk7CisgICAgYXV0byBkYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoaHRtbC5kYXRhKCks
IGh0bWwubGVuZ3RoKCkpOworICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UocmVxdWVzdFVS
TCwgInRleHQvaHRtbCJfcywgaHRtbC5sZW5ndGgoKSwgIlVURi04Il9zKTsKKyAgICB0YXNrLmRp
ZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CisgICAgdGFzay5kaWRSZWNlaXZlRGF0YShXVEZN
b3ZlKGRhdGEpKTsKKyAgICB0YXNrLmRpZENvbXBsZXRlKFJlc291cmNlRXJyb3IoKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oCmluZGV4
IDcwM2E3NTY2MmI5Li5jYmEyNDk5NTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIu
aApAQCAtNTcsNiArNTcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhX
ZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVUYXNrJikgZmluYWwgeyB9CiAgICAgdm9pZCBwbGF0
Zm9ybVRhc2tDb21wbGV0ZWQoV2ViVVJMU2NoZW1lVGFzayYpIGZpbmFsIHsgfQogCisgICAgdm9p
ZCBydW5TY3JpcHQoY29uc3QgU3RyaW5nJik7CisKICAgICBIYXNoTWFwPFN0cmluZywgc3RkOjp1
bmlxdWVfcHRyPFJlbW90ZUluc3BlY3RvckNsaWVudD4+IG1faW5zcGVjdG9yQ2xpZW50czsKICAg
ICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2Vi
Vmlldy5jcHAKaW5kZXggOTRlMzg5OTQ1ZGMuLjdkMmFkOTgxYTJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCkBAIC02MSw2ICs2MSwyOSBAQAogI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IAorI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L1JlbW90ZUluc3BlY3RvclNlcnZlci5oPgorI2VuZGlmCisKKyNpZiBFTkFCTEUoUkVNT1RFX0lO
U1BFQ1RPUikKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoU3Ry
aW5nVmlldyBhZGRyZXNzKQoreworICAgIGlmIChJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvclNl
cnZlcjo6c2luZ2xldG9uKCkuaXNSdW5uaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gcG9zID0gYWRkcmVzcy5maW5kKCc6Jyk7CisgICAgaWYgKHBvcyA9PSBub3RGb3VuZCkKKyAg
ICAgICAgcmV0dXJuOworICAgIGF1dG8gaG9zdCA9IGFkZHJlc3Muc3Vic3RyaW5nKDAsIHBvcyk7
CisgICAgYXV0byBwb3J0ID0gYWRkcmVzcy5zdWJzdHJpbmcocG9zICsgMSkudG9VSW50NjRTdHJp
Y3QoKTsKKworICAgIGlmICghcG9ydCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5zcGVjdG9y
OjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLnN0YXJ0KGhvc3QudXRmOCgpLmRh
dGEoKSwgcG9ydC52YWx1ZSgpKTsKK30KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yMTEsNiArMjM0LDEzIEBAIFdlYlZpZXc6Oldl
YlZpZXcoUkVDVCByZWN0LCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0
aW9uLCBIV05EIHBhCiB7CiAgICAgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsKIAorI2lm
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQorICAgIGlmIChjb25zdCBjaGFyKiBhZGRyZXNzID0g
Z2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NFUlZFUiIpKSB7CisgICAgICAgIGluaXRpYWxpemVS
ZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoYWRkcmVzcyk7CisgICAgICAgIGF1dG8gcG9ydCA9IEluc3Bl
Y3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5saXN0ZW5Gb3JUYXJnZXRz
KCk7CisgICAgICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzZXRTZXJ2ZXJQb3J0KHBv
cnQudmFsdWVPcigwKSk7CisgICAgfQorI2VuZGlmCiAgICAgbV93aW5kb3cgPSA6OkNyZWF0ZVdp
bmRvd0V4VygwLCBrV2ViS2l0MldlYlZpZXdXaW5kb3dDbGFzc05hbWUsIDAsIFdTX0NISUxEIHwg
V1NfQ0xJUFNJQkxJTkdTIHwgV1NfQ0xJUENISUxEUkVOIHwgV1NfVklTSUJMRSwKICAgICAgICAg
cmVjdC5sZWZ0LCByZWN0LnRvcCwgcmVjdC5yaWdodCAtIHJlY3QubGVmdCwgcmVjdC5ib3R0b20g
LSByZWN0LnRvcCwgcGFyZW50V2luZG93ID8gcGFyZW50V2luZG93IDogSFdORF9NRVNTQUdFLCAw
LCBpbnN0YW5jZUhhbmRsZSgpLCB0aGlzKTsKICAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3dpbmRv
dykpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379488</attachid>
            <date>2019-09-24 13:53:03 -0700</date>
            <delta_ts>2019-09-24 14:21:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>199938.diff</filename>
            <type>text/plain</type>
            <size>13340</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5jcHAKaW5kZXggMDNlNTEx
ZGM4ZWYuLjRiOGJmOTk2NjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9y
U29ja2V0LmNwcApAQCAtNTAsNiArNTAsNyBAQCBSZW1vdGVJbnNwZWN0b3ImIFJlbW90ZUluc3Bl
Y3Rvcjo6c2luZ2xldG9uKCkKIFJlbW90ZUluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yKCkKIHsK
ICAgICBTb2NrZXQ6OmluaXQoKTsKKyAgICBzdGFydCgpOwogfQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3Rvcjo6ZGlkQ2xvc2UoQ29ubmVjdGlvbklEIGlkKQpAQCAtOTMsNyArOTQsNyBAQCB2b2lkIFJl
bW90ZUluc3BlY3Rvcjo6c3RhcnQoKQogCiAgICAgbV9lbmFibGVkID0gdHJ1ZTsKIAotICAgIGlm
IChzX2Nvbm5lY3Rpb25JZGVudGlmaWVyKSB7CisgICAgaWYgKHNfY29ubmVjdGlvbklkZW50aWZp
ZXIgIT0gSU5WQUxJRF9TT0NLRVRfVkFMVUUpIHsKICAgICAgICAgbV9jbGllbnRJRCA9IGNyZWF0
ZUNsaWVudChzX2Nvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICAgICAgc19jb25uZWN0aW9uSWRl
bnRpZmllciA9IElOVkFMSURfU09DS0VUX1ZBTFVFOwogICAgIH0gZWxzZQpAQCAtMTMzLDcgKzEz
NCw3IEBAIFRhcmdldExpc3RpbmcgUmVtb3RlSW5zcGVjdG9yOjpsaXN0aW5nRm9ySW5zcGVjdGlv
blRhcmdldChjb25zdCBSZW1vdGVJbnNwZWN0aW9uCiAgICAgVGFyZ2V0TGlzdGluZyB0YXJnZXRM
aXN0aW5nID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKIAogICAgIHRhcmdldExpc3RpbmctPnNl
dFN0cmluZygibmFtZSJfcywgdGFyZ2V0Lm5hbWUoKSk7Ci0gICAgdGFyZ2V0TGlzdGluZy0+c2V0
U3RyaW5nKCJ1cmwiX3MsIHRhcmdldC5uYW1lKCkpOworICAgIHRhcmdldExpc3RpbmctPnNldFN0
cmluZygidXJsIl9zLCB0YXJnZXQudXJsKCkpOwogICAgIHRhcmdldExpc3RpbmctPnNldEludGVn
ZXIoInRhcmdldElEIl9zLCB0YXJnZXQudGFyZ2V0SWRlbnRpZmllcigpKTsKICAgICB0YXJnZXRM
aXN0aW5nLT5zZXRCb29sZWFuKCJoYXNMb2NhbERlYnVnZ2VyIl9zLCB0YXJnZXQuaGFzTG9jYWxE
ZWJ1Z2dlcigpKTsKICAgICBpZiAodGFyZ2V0LnR5cGUoKSA9PSBSZW1vdGVJbnNwZWN0aW9uVGFy
Z2V0OjpUeXBlOjpXZWIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3JlbW90ZS9zb2NrZXQvd2luL1JlbW90ZUluc3BlY3RvclNvY2tldFdpbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvd2luL1JlbW90ZUluc3Bl
Y3RvclNvY2tldFdpbi5jcHAKaW5kZXggNWUwYTVjMzYwZmIuLjA2ZjczZTQ1MjRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvd2luL1Jl
bW90ZUluc3BlY3RvclNvY2tldFdpbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9yZW1vdGUvc29ja2V0L3dpbi9SZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwCkBA
IC0yMTUsNyArMjE1LDcgQEAgT3B0aW9uYWw8c3RkOjphcnJheTxQbGF0Zm9ybVNvY2tldFR5cGUs
IDI+PiBjcmVhdGVQYWlyKCkKICAgICBpZiAoIXNlcnZlcikKICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKIAotICAgIGFkZHJlc3Muc2luX3BvcnQgPSBnZXRQb3J0KHNlcnZlcik7CisgICAg
YWRkcmVzcy5zaW5fcG9ydCA9IGh0b25zKGdldFBvcnQoc2VydmVyKSk7CiAKICAgICBzdGQ6OmFy
cmF5PFBsYXRmb3JtU29ja2V0VHlwZSwgMj4gc29ja2V0czsKICAgICBzb2NrZXRzWzBdID0gY29u
bmVjdFRvKGFkZHJlc3MpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHVpbnQxNl90IGdldFBvcnQoUGxh
dGZvcm1Tb2NrZXRUeXBlIHNvY2tldCkKICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcmVzcyA9
IHsgfTsKICAgICBpbnQgbGVuID0gc2l6ZW9mKGFkZHJlc3MpOwogICAgIGdldHNvY2tuYW1lKHNv
Y2tldCwgcmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc29ja2FkZHIqPigmYWRkcmVzcyksICZsZW4p
OwotICAgIHJldHVybiBhZGRyZXNzLnNpbl9wb3J0OworICAgIHJldHVybiBudG9ocyhhZGRyZXNz
LnNpbl9wb3J0KTsKIH0KIAogT3B0aW9uYWw8c2l6ZV90PiByZWFkKFBsYXRmb3JtU29ja2V0VHlw
ZSBzb2NrZXQsIHZvaWQqIGJ1ZmZlciwgaW50IGJ1ZmZlclNpemUpCkBAIC0zMDgsNyArMzA4LDcg
QEAgYm9vbCBwb2xsKFZlY3RvcjxQb2xsaW5nRGVzY3JpcHRvcj4mIHBvbGxEZXNjcmlwdG9ycywg
aW50IHRpbWVvdXQpCiAKIGJvb2wgaXNSZWFkYWJsZShjb25zdCBQb2xsaW5nRGVzY3JpcHRvciYg
cG9sbCkKIHsKLSAgICByZXR1cm4gcG9sbC5yZXZlbnRzICYgUE9MTElOOworICAgIHJldHVybiAo
cG9sbC5yZXZlbnRzICYgUE9MTElOKSB8fCAocG9sbC5yZXZlbnRzICYgUE9MTEhVUCk7CiB9CiAK
IGJvb2wgaXNXcml0YWJsZShjb25zdCBQb2xsaW5nRGVzY3JpcHRvciYgcG9sbCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvckNsaWVu
dC5jcHAKaW5kZXggMDU0MDlkZjU2NDYuLjY3ZTIzODgzNGJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmNwcApA
QCAtODUsMTIgKzg1LDE3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fZGVidWdnYWJsZVR5cGU7
CiB9OwogCi1SZW1vdGVJbnNwZWN0b3JDbGllbnQ6OlJlbW90ZUluc3BlY3RvckNsaWVudChjb25z
dCBjaGFyKiBhZGRyZXNzLCB1bnNpZ25lZCBwb3J0LCBSZW1vdGVJbnNwZWN0b3JPYnNlcnZlciYg
b2JzZXJ2ZXIpCitSZW1vdGVJbnNwZWN0b3JDbGllbnQ6OlJlbW90ZUluc3BlY3RvckNsaWVudChV
UkwgdXJsLCBSZW1vdGVJbnNwZWN0b3JPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgOiBtX29ic2Vy
dmVyKG9ic2VydmVyKQogewotICAgIG1fY29ubmVjdGlvbklEID0gY29ubmVjdEluZXQoYWRkcmVz
cywgcG9ydCk7CisgICAgaWYgKCF1cmwuaG9zdCgpIHx8ICF1cmwucG9ydCgpKSB7CisgICAgICAg
IExPR19FUlJPUigiSW52YWxpZCBpbnNwZWN0b3IgdXJsOiAlcyIsIHVybC5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fY29ubmVjdGlvbklE
ID0gY29ubmVjdEluZXQodXJsLmhvc3QoKS51dGY4KCkuZGF0YSgpLCB1cmwucG9ydCgpLnZhbHVl
KCkpOwogICAgIGlmICghbV9jb25uZWN0aW9uSUQpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJJbnNw
ZWN0b3IgY2xpZW50IGNvdWxkIG5vdCBjb25uZWN0IHRvICVzOiVkIiwgYWRkcmVzcywgcG9ydCk7
CisgICAgICAgIExPR19FUlJPUigiSW5zcGVjdG9yIGNsaWVudCBjb3VsZCBub3QgY29ubmVjdCB0
byAlcyIsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtMTMxLDEwICsxMzYsMTQgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JDbGllbnQ6OmNv
bm5lY3Rpb25DbG9zZWQoKQogICAgIG1fdGFyZ2V0cy5jbGVhcigpOwogICAgIG1faW5zcGVjdG9y
UHJveHlNYXAuY2xlYXIoKTsKICAgICBtX29ic2VydmVyLmNvbm5lY3Rpb25DbG9zZWQoKnRoaXMp
OworICAgIG1fb2JzZXJ2ZXIudGFyZ2V0TGlzdENoYW5nZWQoKnRoaXMpOwogfQogCiB2b2lkIFJl
bW90ZUluc3BlY3RvckNsaWVudDo6ZGlkQ2xvc2UoQ29ubmVjdGlvbklEKQogeworICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXNdIHsKKyAgICAgICAgY29ubmVjdGlvbkNsb3NlZCgpOworICAgIH0p
OwogfQogCiB2b2lkIFJlbW90ZUluc3BlY3RvckNsaWVudDo6aW5zcGVjdChDb25uZWN0aW9uSUQg
Y29ubmVjdGlvbklELCBUYXJnZXRJRCB0YXJnZXRJRCwgY29uc3QgU3RyaW5nJiB0eXBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvckNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvckNs
aWVudC5oCmluZGV4IDBiMmExMjVkMmQ4Li44ZTRkOGVlMTE0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuaApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3RvckNv
bm5lY3Rpb25DbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDgsMTAgKzQ5LDEwIEBAIHB1Ymxp
YzoKIHVzaW5nIENvbm5lY3Rpb25JRCA9IEluc3BlY3Rvcjo6Q29ubmVjdGlvbklEOwogdXNpbmcg
VGFyZ2V0SUQgPSBJbnNwZWN0b3I6OlRhcmdldElEOwogCi1jbGFzcyBSZW1vdGVJbnNwZWN0b3JD
bGllbnQgOiBwdWJsaWMgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xpZW50
IHsKK2NsYXNzIFJlbW90ZUluc3BlY3RvckNsaWVudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3I6
OlJlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEKCk7CiBwdWJsaWM6Ci0gICAgUmVtb3RlSW5zcGVjdG9yQ2xpZW50KGNvbnN0IGNoYXIq
IGFkZHJlc3MsIHVuc2lnbmVkIHBvcnQsIFJlbW90ZUluc3BlY3Rvck9ic2VydmVyJik7CisgICAg
UmVtb3RlSW5zcGVjdG9yQ2xpZW50KFVSTCwgUmVtb3RlSW5zcGVjdG9yT2JzZXJ2ZXImKTsKICAg
ICB+UmVtb3RlSW5zcGVjdG9yQ2xpZW50KCk7CiAKICAgICBzdHJ1Y3QgVGFyZ2V0IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90
b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUlu
c3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKaW5kZXggMzA1OGZhYTIwOTUuLjgzNjVhYzJhZTg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yUHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb2Nr
ZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlNjcmlwdE1lc3NhZ2VIYW5k
bGVyLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC02NiwyNyArNjcsNDggQEAgcHJpdmF0ZToK
IAogdm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6Omluc3BlY3QoY29uc3QgU3Ry
aW5nJiBob3N0QW5kUG9ydCwgQ29ubmVjdGlvbklEIGNvbm5lY3Rpb25JRCwgVGFyZ2V0SUQgdGFy
Z2V0SUQsIGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICBpZiAoYXV0byogY2xpZW50ID0gbV9p
bnNwZWN0b3JDbGllbnRzLmdldChob3N0QW5kUG9ydCkpCi0gICAgICAgIGNsaWVudC0+aW5zcGVj
dChjb25uZWN0aW9uSUQsIHRhcmdldElELCB0eXBlKTsKKyAgICBpZiAobV9pbnNwZWN0b3JDbGll
bnQpCisgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5pbnNwZWN0KGNvbm5lY3Rpb25JRCwgdGFy
Z2V0SUQsIHR5cGUpOwogfQogCi12b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6
dGFyZ2V0TGlzdENoYW5nZWQoUmVtb3RlSW5zcGVjdG9yQ2xpZW50JikKK3ZvaWQgUmVtb3RlSW5z
cGVjdG9yUHJvdG9jb2xIYW5kbGVyOjpydW5TY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7
Ci0gICAgaWYgKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuaXNMb2FkaW5nKCkpCi0gICAgICAgIHJl
dHVybjsKKyAgICBtX3BhZ2UucnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHNjcmlwdCwgZmFsc2Us
CisgICAgICAgIFtdKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRp
b24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmIGV4Y2VwdGlvbkRldGFpbHMsIENh
bGxiYWNrQmFzZTo6RXJyb3IpeworICAgICAgICAgICAgaWYgKGhhZEV4Y2VwdGlvbikKKyAgICAg
ICAgICAgICAgICBMT0dfRVJST1IoIkV4Y2VwdGlvbiBydW5uaW5nIHNjcmlwdCBcIiVzXCIiLCBl
eGNlcHRpb25EZXRhaWxzLm1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisgICAgfSk7Cit9CiAKLSAg
ICBtX3BhZ2UucmVsb2FkKHsgfSk7Cit2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cjo6dGFyZ2V0TGlzdENoYW5nZWQoUmVtb3RlSW5zcGVjdG9yQ2xpZW50JiBjbGllbnQpCit7Cisg
ICAgU3RyaW5nQnVpbGRlciBodG1sOworICAgIGlmIChjbGllbnQudGFyZ2V0cygpLmlzRW1wdHko
KSkKKyAgICAgICAgaHRtbC5hcHBlbmQoIjxwPk5vIHRhcmdldHMgZm91bmQ8L3A+Il9zKTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgaHRtbC5hcHBlbmQoIjx0YWJsZT4iKTsKKyAgICAgICAgZm9yIChh
dXRvJiBjb25uZWN0aW9uSUQgOiBjbGllbnQudGFyZ2V0cygpLmtleXMoKSkgeworICAgICAgICAg
ICAgZm9yIChhdXRvJiB0YXJnZXQgOiBjbGllbnQudGFyZ2V0cygpLmdldChjb25uZWN0aW9uSUQp
KSB7CisgICAgICAgICAgICAgICAgaHRtbC5hcHBlbmQobWFrZVN0cmluZygKKyAgICAgICAgICAg
ICAgICAgICAgIjx0Ym9keT48dHI+IgorICAgICAgICAgICAgICAgICAgICAiPHRkIGNsYXNzPVwi
ZGF0YVwiPjxkaXYgY2xhc3M9XCJ0YXJnZXRuYW1lXCI+IiwgdGFyZ2V0Lm5hbWUsICI8L2Rpdj48
ZGl2IGNsYXNzPVwidGFyZ2V0dXJsXCI+IiwgdGFyZ2V0LnVybCwgIjwvZGl2PjwvdGQ+IgorICAg
ICAgICAgICAgICAgICAgICAiPHRkIGNsYXNzPVwiaW5wdXRcIj48aW5wdXQgdHlwZT1cImJ1dHRv
blwiIHZhbHVlPVwiSW5zcGVjdFwiIG9uY2xpY2s9XCJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy5pbnNwZWN0b3IucG9zdE1lc3NhZ2UoXFwnIiwgY29ubmVjdGlvbklELCAiOiIsIHRhcmdl
dC5pZCwgIjoiLCB0YXJnZXQudHlwZSwgIlxcJyk7XCI+PC90ZD4iCisgICAgICAgICAgICAgICAg
ICAgICI8L3RyPjwvdGJvZHk+IgorICAgICAgICAgICAgICAgICkpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIGh0bWwuYXBwZW5kKCI8L3RhYmxlPiIpOworICAgIH0KKyAgICBy
dW5TY3JpcHQobWFrZVN0cmluZygidXBkYXRlVGFyZ2V0cygnIiwgaHRtbC50b1N0cmluZygpLCAi
Jyk7IikpOwogfQogCiB2b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlcjo6cGxhdGZv
cm1TdGFydFRhc2soV2ViUGFnZVByb3h5JiBwYWdlUHJveHksIFdlYlVSTFNjaGVtZVRhc2smIHRh
c2spCiB7CiAgICAgYXV0byYgcmVxdWVzdFVSTCA9IHRhc2sucmVxdWVzdCgpLnVybCgpOwotICAg
IGlmICghcmVxdWVzdFVSTC5wb3J0KCkpCi0gICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIGNs
aWVudCA9IG1faW5zcGVjdG9yQ2xpZW50cy5lbnN1cmUocmVxdWVzdFVSTC5ob3N0QW5kUG9ydCgp
LCBbdGhpcywgJnJlcXVlc3RVUkxdIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3Rl
SW5zcGVjdG9yQ2xpZW50PihyZXF1ZXN0VVJMLmhvc3QoKS51dGY4KCkuZGF0YSgpLCByZXF1ZXN0
VVJMLnBvcnQoKS52YWx1ZSgpLCAqdGhpcyk7Ci0gICAgfSkuaXRlcmF0b3ItPnZhbHVlLmdldCgp
OworICAgIC8vIERlc3Ryb3kgdGhlIGNsaWVudCBiZWZvcmUgY3JlYXRpbmcgYSBuZXcgY29ubmVj
dGlvbiBzbyBpdCBjYW4gY29ubmVjdCB0byB0aGUgc2FtZSBwb3J0CisgICAgbV9pbnNwZWN0b3JD
bGllbnQgPSBudWxscHRyOworICAgIG1faW5zcGVjdG9yQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxSZW1vdGVJbnNwZWN0b3JDbGllbnQ+KHJlcXVlc3RVUkwsICp0aGlzKTsKIAogICAgIC8vIFNl
dHVwIHRhcmdldCBwb3N0TWVzc2FnZSBsaXN0ZW5lcgogICAgIGF1dG8gaGFuZGxlciA9IFdlYlNj
cmlwdE1lc3NhZ2VIYW5kbGVyOjpjcmVhdGUobWFrZVVuaXF1ZTxTY3JpcHRNZXNzYWdlQ2xpZW50
PigqdGhpcyksICJpbnNwZWN0b3IiLCBBUEk6OlVzZXJDb250ZW50V29ybGQ6Om5vcm1hbFdvcmxk
KCkpOwpAQCAtMTExLDI5ICsxMzMsMjIgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhh
bmRsZXI6OnBsYXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZVByb3h5LAogICAgICAg
ICAiICB0ZC5pbnB1dCB7IHdpZHRoOiA2NHB4OyB9IgogICAgICAgICAiICBpbnB1dCB7IHdpZHRo
OiAxMDAlOyBwYWRkaW5nOiA4cHg7IH0iCiAgICAgICAgICI8L3N0eWxlPiIKLSAgICAgICAgIjwv
aGVhZD48Ym9keT48aDE+SW5zcGVjdGFibGUgdGFyZ2V0czwvaDE+Iik7Ci0KLSAgICBpZiAoY2xp
ZW50LT50YXJnZXRzKCkuaXNFbXB0eSgpKQotICAgICAgICBodG1sQnVpbGRlci5hcHBlbmQoIjxw
Pk5vIHRhcmdldHMgZm91bmQ8L3A+Iik7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGh0bWxCdWlsZGVy
LmFwcGVuZCgiPHRhYmxlPiIpOwotICAgICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb25JRCA6IGNs
aWVudC0+dGFyZ2V0cygpLmtleXMoKSkgewotICAgICAgICAgICAgZm9yIChhdXRvJiB0YXJnZXQg
OiBjbGllbnQtPnRhcmdldHMoKS5nZXQoY29ubmVjdGlvbklEKSkgewotICAgICAgICAgICAgICAg
IGh0bWxCdWlsZGVyLmFwcGVuZChtYWtlU3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAiPHRi
b2R5Pjx0cj4iCi0gICAgICAgICAgICAgICAgICAgICI8dGQgY2xhc3M9XCJkYXRhXCI+PGRpdiBj
bGFzcz1cInRhcmdldG5hbWVcIj4iLCB0YXJnZXQubmFtZSwgIjwvZGl2PjxkaXYgY2xhc3M9XCJ0
YXJnZXR1cmxcIj4iLCB0YXJnZXQudXJsLCAiPC9kaXY+PC90ZD4iCi0gICAgICAgICAgICAgICAg
ICAgICI8dGQgY2xhc3M9XCJpbnB1dFwiPjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCJJ
bnNwZWN0XCIgb25jbGljaz1cIndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmluc3BlY3Rv
ci5wb3N0TWVzc2FnZSgnIiwgY29ubmVjdGlvbklELCAiOiIsIHRhcmdldC5pZCwgIjoiLCB0YXJn
ZXQudHlwZSwgIicpO1wiPjwvdGQ+IgotICAgICAgICAgICAgICAgICAgICAiPC90cj48L3Rib2R5
PiIKLSAgICAgICAgICAgICAgICApKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBodG1sQnVpbGRlci5hcHBlbmQoIjwvdGFibGU+Iik7Ci0gICAgfQotCi0gICAgaHRtbEJ1aWxk
ZXIuYXBwZW5kKCI8L2JvZHk+PC9odG1sPiIpOworICAgICAgICAiPC9oZWFkPjxib2R5PjxoMT5J
bnNwZWN0YWJsZSB0YXJnZXRzPC9oMT4iCisgICAgICAgICI8ZGl2IGlkPVwidGFyZ2V0bGlzdFwi
PjxwPk5vIHRhcmdldHMgZm91bmQ8L3A+PC9kaXY+PC9ib2R5PiIKKyAgICAgICAgIjxzY3JpcHQ+
IgorICAgICAgICAiZnVuY3Rpb24gdXBkYXRlVGFyZ2V0cyhzdHIpIHsiCisgICAgICAgICAgICAi
bGV0IHRhcmdldERpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXRsaXN0Jyk7Igor
ICAgICAgICAgICAgInRhcmdldERpdi5pbm5lckhUTUwgPSBzdHI7IgorICAgICAgICAifSIKKyAg
ICAgICAgIjwvc2NyaXB0PiIpOworICAgIGh0bWxCdWlsZGVyLmFwcGVuZCgiPC9odG1sPiIpOwog
CiAgICAgYXV0byBodG1sID0gaHRtbEJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7Ci0gICAgcGFn
ZVByb3h5LmxvYWREYXRhKHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oaHRtbC5k
YXRhKCkpLCBodG1sLmxlbmd0aCgpIH0sICJ0ZXh0L2h0bWwiX3MsICJVVEYtOCJfcywgcmVxdWVz
dFVSTCk7CisgICAgYXV0byBkYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoaHRtbC5kYXRhKCks
IGh0bWwubGVuZ3RoKCkpOworICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UocmVxdWVzdFVS
TCwgInRleHQvaHRtbCJfcywgaHRtbC5sZW5ndGgoKSwgIlVURi04Il9zKTsKKyAgICB0YXNrLmRp
ZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CisgICAgdGFzay5kaWRSZWNlaXZlRGF0YShXVEZN
b3ZlKGRhdGEpKTsKKyAgICB0YXNrLmRpZENvbXBsZXRlKFJlc291cmNlRXJyb3IoKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oCmluZGV4
IDcwM2E3NTY2MmI5Li4wYzFjMjY3MmMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3Mvc29ja2V0L1JlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIu
aApAQCAtNTcsNyArNTcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1TdG9wVGFzayhX
ZWJQYWdlUHJveHkmLCBXZWJVUkxTY2hlbWVUYXNrJikgZmluYWwgeyB9CiAgICAgdm9pZCBwbGF0
Zm9ybVRhc2tDb21wbGV0ZWQoV2ViVVJMU2NoZW1lVGFzayYpIGZpbmFsIHsgfQogCi0gICAgSGFz
aE1hcDxTdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVJbnNwZWN0b3JDbGllbnQ+PiBtX2lu
c3BlY3RvckNsaWVudHM7CisgICAgdm9pZCBydW5TY3JpcHQoY29uc3QgU3RyaW5nJik7CisKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW5zcGVjdG9yQ2xpZW50PiBtX2luc3BlY3RvckNsaWVu
dDsKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L3dpbi9XZWJWaWV3LmNwcAppbmRleCA5YjkyMjYxN2I4NS4uMTUzOTU0ZTg4YjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKQEAgLTYwLDYgKzYwLDcgQEAKIAogI2lm
IEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogI2luY2x1ZGUgIlJlbW90ZUluc3BlY3RvclByb3Rv
Y29sSGFuZGxlci5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3RvclNl
cnZlci5oPgogI2VuZGlmCiAKICNpZiBVU0UoQ0FJUk8pCkBAIC04Niw2ICs4NywyNSBAQCBlbnVt
IHsKICAgICBVcGRhdGVBY3RpdmVTdGF0ZVRpbWVyID0gMSwKIH07CiAKKyNpZiBFTkFCTEUoUkVN
T1RFX0lOU1BFQ1RPUikKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVSZW1vdGVJbnNwZWN0b3JTZXJ2
ZXIoU3RyaW5nVmlldyBhZGRyZXNzKQoreworICAgIGlmIChJbnNwZWN0b3I6OlJlbW90ZUluc3Bl
Y3RvclNlcnZlcjo6c2luZ2xldG9uKCkuaXNSdW5uaW5nKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8gcG9zID0gYWRkcmVzcy5maW5kKCc6Jyk7CisgICAgaWYgKHBvcyA9PSBub3RGb3Vu
ZCkKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8gaG9zdCA9IGFkZHJlc3Muc3Vic3RyaW5nKDAs
IHBvcyk7CisgICAgYXV0byBwb3J0ID0gYWRkcmVzcy5zdWJzdHJpbmcocG9zICsgMSkudG9VSW50
NjRTdHJpY3QoKTsKKworICAgIGlmICghcG9ydCkKKyAgICAgICAgcmV0dXJuOworCisgICAgSW5z
cGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLnN0YXJ0KGhvc3QudXRm
OCgpLmRhdGEoKSwgcG9ydC52YWx1ZSgpKTsKK30KKyNlbmRpZgorCiBMUkVTVUxUIENBTExCQUNL
IFdlYlZpZXc6OldlYlZpZXdXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0g
d1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogewogICAgIExPTkdfUFRSIGxvbmdQdHIgPSA6OkdldFdp
bmRvd0xvbmdQdHIoaFduZCwgMCk7CkBAIC0yMjUsNiArMjQ1LDEzIEBAIFdlYlZpZXc6OldlYlZp
ZXcoUkVDVCByZWN0LCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9u
LCBIV05EIHBhCiB7CiAgICAgcmVnaXN0ZXJXZWJWaWV3V2luZG93Q2xhc3MoKTsKIAorI2lmIEVO
QUJMRShSRU1PVEVfSU5TUEVDVE9SKQorICAgIGlmIChjb25zdCBjaGFyKiBhZGRyZXNzID0gZ2V0
ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NFUlZFUiIpKSB7CisgICAgICAgIGluaXRpYWxpemVSZW1v
dGVJbnNwZWN0b3JTZXJ2ZXIoYWRkcmVzcyk7CisgICAgICAgIGF1dG8gcG9ydCA9IEluc3BlY3Rv
cjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5saXN0ZW5Gb3JUYXJnZXRzKCk7
CisgICAgICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzZXRTZXJ2ZXJQb3J0KHBvcnQu
dmFsdWVPcigwKSk7CisgICAgfQorI2VuZGlmCiAgICAgbV93aW5kb3cgPSA6OkNyZWF0ZVdpbmRv
d0V4VygwLCBrV2ViS2l0MldlYlZpZXdXaW5kb3dDbGFzc05hbWUsIDAsIFdTX0NISUxEIHwgV1Nf
Q0xJUFNJQkxJTkdTIHwgV1NfQ0xJUENISUxEUkVOIHwgV1NfVklTSUJMRSwKICAgICAgICAgcmVj
dC5sZWZ0LCByZWN0LnRvcCwgcmVjdC5yaWdodCAtIHJlY3QubGVmdCwgcmVjdC5ib3R0b20gLSBy
ZWN0LnRvcCwgcGFyZW50V2luZG93ID8gcGFyZW50V2luZG93IDogSFdORF9NRVNTQUdFLCAwLCBp
bnN0YW5jZUhhbmRsZSgpLCB0aGlzKTsKICAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3dpbmRvdykp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379491</attachid>
            <date>2019-09-24 14:21:02 -0700</date>
            <delta_ts>2019-09-24 18:46:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>199938-changelog.diff</filename>
            <type>text/plain</type>
            <size>15390</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDYwNGU4NzkxMTFmLi43MWIzZTMwYzhlYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTktMDktMjQgIENocmlz
dG9waGVyIFJlaWQgIDxjaHJpcy5yZWlkQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5DYWlyb10g
U3RhcnQgUmVtb3RlSW5zcGVjdG9yU2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk5MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzMzIz
MDQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
aW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcmVtb3RlL3NvY2tldC93aW4vUmVtb3RlSW5zcGVjdG9yU29ja2V0V2lu
LmNwcDoKKyAgICAgICAgICAtIEZpeGVkIHNvbWUgbmV0d29yayBieXRlIG9yZGVyIGlzc3Vlcwor
ICAgICAgICAgIC0gTmVlZCB0byBjaGVjayBmb3IgUE9MTEhVUCBpbiBpc1JlYWRhYmxlIGFzIGNs
b3NlZCB3aW5kb3dzIHNvY2tldHMgZG9uJ3QgaGF2ZSBQT0xMSU4gc2V0CisKIDIwMTktMDktMTkg
IE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yaW5nOiBm
aXggYnJva2VuIGluZGVudGF0aW9uIGluIEpTTm9uRGVzdHJ1Y3RpYmxlUHJveHkuaC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1v
dGVJbnNwZWN0b3JTb2NrZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9y
ZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5jcHAKaW5kZXggMDNlNTExZGM4ZWYu
LjRiOGJmOTk2NjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0
LmNwcApAQCAtNTAsNiArNTAsNyBAQCBSZW1vdGVJbnNwZWN0b3ImIFJlbW90ZUluc3BlY3Rvcjo6
c2luZ2xldG9uKCkKIFJlbW90ZUluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yKCkKIHsKICAgICBT
b2NrZXQ6OmluaXQoKTsKKyAgICBzdGFydCgpOwogfQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6
ZGlkQ2xvc2UoQ29ubmVjdGlvbklEIGlkKQpAQCAtOTMsNyArOTQsNyBAQCB2b2lkIFJlbW90ZUlu
c3BlY3Rvcjo6c3RhcnQoKQogCiAgICAgbV9lbmFibGVkID0gdHJ1ZTsKIAotICAgIGlmIChzX2Nv
bm5lY3Rpb25JZGVudGlmaWVyKSB7CisgICAgaWYgKHNfY29ubmVjdGlvbklkZW50aWZpZXIgIT0g
SU5WQUxJRF9TT0NLRVRfVkFMVUUpIHsKICAgICAgICAgbV9jbGllbnRJRCA9IGNyZWF0ZUNsaWVu
dChzX2Nvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICAgICAgc19jb25uZWN0aW9uSWRlbnRpZmll
ciA9IElOVkFMSURfU09DS0VUX1ZBTFVFOwogICAgIH0gZWxzZQpAQCAtMTMzLDcgKzEzNCw3IEBA
IFRhcmdldExpc3RpbmcgUmVtb3RlSW5zcGVjdG9yOjpsaXN0aW5nRm9ySW5zcGVjdGlvblRhcmdl
dChjb25zdCBSZW1vdGVJbnNwZWN0aW9uCiAgICAgVGFyZ2V0TGlzdGluZyB0YXJnZXRMaXN0aW5n
ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKIAogICAgIHRhcmdldExpc3RpbmctPnNldFN0cmlu
ZygibmFtZSJfcywgdGFyZ2V0Lm5hbWUoKSk7Ci0gICAgdGFyZ2V0TGlzdGluZy0+c2V0U3RyaW5n
KCJ1cmwiX3MsIHRhcmdldC5uYW1lKCkpOworICAgIHRhcmdldExpc3RpbmctPnNldFN0cmluZygi
dXJsIl9zLCB0YXJnZXQudXJsKCkpOwogICAgIHRhcmdldExpc3RpbmctPnNldEludGVnZXIoInRh
cmdldElEIl9zLCB0YXJnZXQudGFyZ2V0SWRlbnRpZmllcigpKTsKICAgICB0YXJnZXRMaXN0aW5n
LT5zZXRCb29sZWFuKCJoYXNMb2NhbERlYnVnZ2VyIl9zLCB0YXJnZXQuaGFzTG9jYWxEZWJ1Z2dl
cigpKTsKICAgICBpZiAodGFyZ2V0LnR5cGUoKSA9PSBSZW1vdGVJbnNwZWN0aW9uVGFyZ2V0OjpU
eXBlOjpXZWIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9zb2NrZXQvd2luL1JlbW90ZUluc3BlY3RvclNvY2tldFdpbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvd2luL1JlbW90ZUluc3BlY3RvclNv
Y2tldFdpbi5jcHAKaW5kZXggNWUwYTVjMzYwZmIuLjA2ZjczZTQ1MjRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9zb2NrZXQvd2luL1JlbW90ZUlu
c3BlY3RvclNvY2tldFdpbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvc29ja2V0L3dpbi9SZW1vdGVJbnNwZWN0b3JTb2NrZXRXaW4uY3BwCkBAIC0yMTUs
NyArMjE1LDcgQEAgT3B0aW9uYWw8c3RkOjphcnJheTxQbGF0Zm9ybVNvY2tldFR5cGUsIDI+PiBj
cmVhdGVQYWlyKCkKICAgICBpZiAoIXNlcnZlcikKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKIAotICAgIGFkZHJlc3Muc2luX3BvcnQgPSBnZXRQb3J0KHNlcnZlcik7CisgICAgYWRkcmVz
cy5zaW5fcG9ydCA9IGh0b25zKGdldFBvcnQoc2VydmVyKSk7CiAKICAgICBzdGQ6OmFycmF5PFBs
YXRmb3JtU29ja2V0VHlwZSwgMj4gc29ja2V0czsKICAgICBzb2NrZXRzWzBdID0gY29ubmVjdFRv
KGFkZHJlc3MpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHVpbnQxNl90IGdldFBvcnQoUGxhdGZvcm1T
b2NrZXRUeXBlIHNvY2tldCkKICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcmVzcyA9IHsgfTsK
ICAgICBpbnQgbGVuID0gc2l6ZW9mKGFkZHJlc3MpOwogICAgIGdldHNvY2tuYW1lKHNvY2tldCwg
cmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc29ja2FkZHIqPigmYWRkcmVzcyksICZsZW4pOwotICAg
IHJldHVybiBhZGRyZXNzLnNpbl9wb3J0OworICAgIHJldHVybiBudG9ocyhhZGRyZXNzLnNpbl9w
b3J0KTsKIH0KIAogT3B0aW9uYWw8c2l6ZV90PiByZWFkKFBsYXRmb3JtU29ja2V0VHlwZSBzb2Nr
ZXQsIHZvaWQqIGJ1ZmZlciwgaW50IGJ1ZmZlclNpemUpCkBAIC0zMDgsNyArMzA4LDcgQEAgYm9v
bCBwb2xsKFZlY3RvcjxQb2xsaW5nRGVzY3JpcHRvcj4mIHBvbGxEZXNjcmlwdG9ycywgaW50IHRp
bWVvdXQpCiAKIGJvb2wgaXNSZWFkYWJsZShjb25zdCBQb2xsaW5nRGVzY3JpcHRvciYgcG9sbCkK
IHsKLSAgICByZXR1cm4gcG9sbC5yZXZlbnRzICYgUE9MTElOOworICAgIHJldHVybiAocG9sbC5y
ZXZlbnRzICYgUE9MTElOKSB8fCAocG9sbC5yZXZlbnRzICYgUE9MTEhVUCk7CiB9CiAKIGJvb2wg
aXNXcml0YWJsZShjb25zdCBQb2xsaW5nRGVzY3JpcHRvciYgcG9sbCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWNl
YjFkMzVkY2QuLmRiNTg2NDNjMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTA5
LTI0ICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4KKworICAgICAgICBb
V2luQ2Fpcm9dIFN0YXJ0IFJlbW90ZUluc3BlY3RvclNlcnZlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTM4CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81MzMyMzA0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBFbmFibGUgdGhlIHJlbW90ZSBpbnNwZWN0b3IgY2xpZW50IG9uIFdpbkNhaXJvLgor
ICAgICAgICBUaGUgaW5zcGVjdG9yIHNlcnZlciB3aWxsIHJ1biBpZiB0aGUgV0VCS0lUX0lOU1BF
Q1RPUl9TRVJWRVIgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LgorICAgICAgICBXRUJLSVRf
SU5TUEVDVE9SX1NFUlZFUiBuZWVkcyB0byBiZSBzZXQgaW4gdGhlIGZvcm0gb2YgPGlwPjpwb3J0
IGUuZy4gV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVI9MTI3LjAuMC4xOjEyMzQuCisKKyAgICAgICAg
VXBkYXRlZCB0aGUgcHJvdG9jb2wgaGFuZGxlciB0byB1cGRhdGUgdGhlIHRhcmdldCBsaXN0IHdp
dGggRE9NIG1hbmlwdWxhdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9zb2NrZXQvUmVtb3Rl
SW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvc29ja2V0L1JlbW90ZUlu
c3BlY3RvckNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yUHJvdG9jb2xIYW5kbGVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvc29ja2V0L1JlbW90
ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2Vi
Vmlldy5jcHA6CisKIDIwMTktMDktMTkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgQ3JlYXRlIEluamVjdGVkQnVuZGxlIFNQSSB0byBiZXR0ZXIgc3VwcG9y
dCBOU1NlY3VyZUNvZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29j
a2V0L1JlbW90ZUluc3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAwNTQwOWRmNTY0Ni4uNjdlMjM4
ODM0YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJ
bnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9S
ZW1vdGVJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC04NSwxMiArODUsMTcgQEAgcHJpdmF0ZToKICAg
ICBTdHJpbmcgbV9kZWJ1Z2dhYmxlVHlwZTsKIH07CiAKLVJlbW90ZUluc3BlY3RvckNsaWVudDo6
UmVtb3RlSW5zcGVjdG9yQ2xpZW50KGNvbnN0IGNoYXIqIGFkZHJlc3MsIHVuc2lnbmVkIHBvcnQs
IFJlbW90ZUluc3BlY3Rvck9ic2VydmVyJiBvYnNlcnZlcikKK1JlbW90ZUluc3BlY3RvckNsaWVu
dDo6UmVtb3RlSW5zcGVjdG9yQ2xpZW50KFVSTCB1cmwsIFJlbW90ZUluc3BlY3Rvck9ic2VydmVy
JiBvYnNlcnZlcikKICAgICA6IG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCiB7Ci0gICAgbV9jb25uZWN0
aW9uSUQgPSBjb25uZWN0SW5ldChhZGRyZXNzLCBwb3J0KTsKKyAgICBpZiAoIXVybC5ob3N0KCkg
fHwgIXVybC5wb3J0KCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJJbnZhbGlkIGluc3BlY3RvciB1
cmw6ICVzIiwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9jb25uZWN0aW9uSUQgPSBjb25uZWN0SW5ldCh1cmwuaG9zdCgpLnV0Zjgo
KS5kYXRhKCksIHVybC5wb3J0KCkudmFsdWUoKSk7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25JRCkg
ewotICAgICAgICBMT0dfRVJST1IoIkluc3BlY3RvciBjbGllbnQgY291bGQgbm90IGNvbm5lY3Qg
dG8gJXM6JWQiLCBhZGRyZXNzLCBwb3J0KTsKKyAgICAgICAgTE9HX0VSUk9SKCJJbnNwZWN0b3Ig
Y2xpZW50IGNvdWxkIG5vdCBjb25uZWN0IHRvICVzIiwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzEsMTAgKzEzNiwxNCBAQCB2b2lk
IFJlbW90ZUluc3BlY3RvckNsaWVudDo6Y29ubmVjdGlvbkNsb3NlZCgpCiAgICAgbV90YXJnZXRz
LmNsZWFyKCk7CiAgICAgbV9pbnNwZWN0b3JQcm94eU1hcC5jbGVhcigpOwogICAgIG1fb2JzZXJ2
ZXIuY29ubmVjdGlvbkNsb3NlZCgqdGhpcyk7CisgICAgbV9vYnNlcnZlci50YXJnZXRMaXN0Q2hh
bmdlZCgqdGhpcyk7CiB9CiAKIHZvaWQgUmVtb3RlSW5zcGVjdG9yQ2xpZW50OjpkaWRDbG9zZShD
b25uZWN0aW9uSUQpCiB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpc10geworICAgICAgICBj
b25uZWN0aW9uQ2xvc2VkKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgUmVtb3RlSW5zcGVjdG9yQ2xp
ZW50OjppbnNwZWN0KENvbm5lY3Rpb25JRCBjb25uZWN0aW9uSUQsIFRhcmdldElEIHRhcmdldElE
LCBjb25zdCBTdHJpbmcmIHR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggMGIyYTEyNWQyZDguLjc1NGE5
MTRlN2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3Rl
SW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1Jl
bW90ZUluc3BlY3RvckNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvUmVtb3RlSW5zcGVjdG9yQ29ubmVjdGlvbkNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDgsMTAgKzQ5LDEwIEBAIHB1
YmxpYzoKIHVzaW5nIENvbm5lY3Rpb25JRCA9IEluc3BlY3Rvcjo6Q29ubmVjdGlvbklEOwogdXNp
bmcgVGFyZ2V0SUQgPSBJbnNwZWN0b3I6OlRhcmdldElEOwogCi1jbGFzcyBSZW1vdGVJbnNwZWN0
b3JDbGllbnQgOiBwdWJsaWMgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JDb25uZWN0aW9uQ2xp
ZW50IHsKK2NsYXNzIFJlbW90ZUluc3BlY3RvckNsaWVudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0
b3I6OlJlbW90ZUluc3BlY3RvckNvbm5lY3Rpb25DbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEKCk7CiBwdWJsaWM6Ci0gICAgUmVtb3RlSW5zcGVjdG9yQ2xpZW50KGNvbnN0IGNo
YXIqIGFkZHJlc3MsIHVuc2lnbmVkIHBvcnQsIFJlbW90ZUluc3BlY3Rvck9ic2VydmVyJik7Cisg
ICAgUmVtb3RlSW5zcGVjdG9yQ2xpZW50KFVSTCwgUmVtb3RlSW5zcGVjdG9yT2JzZXJ2ZXImKTsK
ICAgICB+UmVtb3RlSW5zcGVjdG9yQ2xpZW50KCk7CiAKICAgICBzdHJ1Y3QgVGFyZ2V0IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQ
cm90b2NvbEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvc29ja2V0L1JlbW90
ZUluc3BlY3RvclByb3RvY29sSGFuZGxlci5jcHAKaW5kZXggMzA1OGZhYTIwOTUuLjEyMTJjYzdj
ODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlNjcmlwdE1lc3NhZ2VI
YW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC02NiwyNyArNjcsNDggQEAgcHJpdmF0
ZToKIAogdm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6Omluc3BlY3QoY29uc3Qg
U3RyaW5nJiBob3N0QW5kUG9ydCwgQ29ubmVjdGlvbklEIGNvbm5lY3Rpb25JRCwgVGFyZ2V0SUQg
dGFyZ2V0SUQsIGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLSAgICBpZiAoYXV0byogY2xpZW50ID0g
bV9pbnNwZWN0b3JDbGllbnRzLmdldChob3N0QW5kUG9ydCkpCi0gICAgICAgIGNsaWVudC0+aW5z
cGVjdChjb25uZWN0aW9uSUQsIHRhcmdldElELCB0eXBlKTsKKyAgICBpZiAobV9pbnNwZWN0b3JD
bGllbnQpCisgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LT5pbnNwZWN0KGNvbm5lY3Rpb25JRCwg
dGFyZ2V0SUQsIHR5cGUpOwogfQogCi12b2lkIFJlbW90ZUluc3BlY3RvclByb3RvY29sSGFuZGxl
cjo6dGFyZ2V0TGlzdENoYW5nZWQoUmVtb3RlSW5zcGVjdG9yQ2xpZW50JikKK3ZvaWQgUmVtb3Rl
SW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyOjpydW5TY3JpcHQoY29uc3QgU3RyaW5nJiBzY3JpcHQp
CiB7Ci0gICAgaWYgKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuaXNMb2FkaW5nKCkpCi0gICAgICAg
IHJldHVybjsKKyAgICBtX3BhZ2UucnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKHNjcmlwdCwgZmFs
c2UsCisgICAgICAgIFtdKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNl
cHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmIGV4Y2VwdGlvbkRldGFpbHMs
IENhbGxiYWNrQmFzZTo6RXJyb3IpIHsKKyAgICAgICAgICAgIGlmIChoYWRFeGNlcHRpb24pCisg
ICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJFeGNlcHRpb24gcnVubmluZyBzY3JpcHQgXCIlc1wi
IiwgZXhjZXB0aW9uRGV0YWlscy5tZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworICAgIH0pOworfQog
Ci0gICAgbV9wYWdlLnJlbG9hZCh7IH0pOwordm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhh
bmRsZXI6OnRhcmdldExpc3RDaGFuZ2VkKFJlbW90ZUluc3BlY3RvckNsaWVudCYgY2xpZW50KQor
eworICAgIFN0cmluZ0J1aWxkZXIgaHRtbDsKKyAgICBpZiAoY2xpZW50LnRhcmdldHMoKS5pc0Vt
cHR5KCkpCisgICAgICAgIGh0bWwuYXBwZW5kKCI8cD5ObyB0YXJnZXRzIGZvdW5kPC9wPiJfcyk7
CisgICAgZWxzZSB7CisgICAgICAgIGh0bWwuYXBwZW5kKCI8dGFibGU+Iik7CisgICAgICAgIGZv
ciAoYXV0byYgY29ubmVjdGlvbklEIDogY2xpZW50LnRhcmdldHMoKS5rZXlzKCkpIHsKKyAgICAg
ICAgICAgIGZvciAoYXV0byYgdGFyZ2V0IDogY2xpZW50LnRhcmdldHMoKS5nZXQoY29ubmVjdGlv
bklEKSkgeworICAgICAgICAgICAgICAgIGh0bWwuYXBwZW5kKG1ha2VTdHJpbmcoCisgICAgICAg
ICAgICAgICAgICAgICI8dGJvZHk+PHRyPiIKKyAgICAgICAgICAgICAgICAgICAgIjx0ZCBjbGFz
cz1cImRhdGFcIj48ZGl2IGNsYXNzPVwidGFyZ2V0bmFtZVwiPiIsIHRhcmdldC5uYW1lLCAiPC9k
aXY+PGRpdiBjbGFzcz1cInRhcmdldHVybFwiPiIsIHRhcmdldC51cmwsICI8L2Rpdj48L3RkPiIK
KyAgICAgICAgICAgICAgICAgICAgIjx0ZCBjbGFzcz1cImlucHV0XCI+PGlucHV0IHR5cGU9XCJi
dXR0b25cIiB2YWx1ZT1cIkluc3BlY3RcIiBvbmNsaWNrPVwid2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMuaW5zcGVjdG9yLnBvc3RNZXNzYWdlKFxcJyIsIGNvbm5lY3Rpb25JRCwgIjoiLCB0
YXJnZXQuaWQsICI6IiwgdGFyZ2V0LnR5cGUsICJcXCcpO1wiPjwvdGQ+IgorICAgICAgICAgICAg
ICAgICAgICAiPC90cj48L3Rib2R5PiIKKyAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICBodG1sLmFwcGVuZCgiPC90YWJsZT4iKTsKKyAgICB9Cisg
ICAgcnVuU2NyaXB0KG1ha2VTdHJpbmcoInVwZGF0ZVRhcmdldHMoJyIsIGh0bWwudG9TdHJpbmco
KSwgIicpOyIpKTsKIH0KIAogdm9pZCBSZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXI6OnBs
YXRmb3JtU3RhcnRUYXNrKFdlYlBhZ2VQcm94eSYgcGFnZVByb3h5LCBXZWJVUkxTY2hlbWVUYXNr
JiB0YXNrKQogewogICAgIGF1dG8mIHJlcXVlc3RVUkwgPSB0YXNrLnJlcXVlc3QoKS51cmwoKTsK
LSAgICBpZiAoIXJlcXVlc3RVUkwucG9ydCgpKQotICAgICAgICByZXR1cm47CiAKLSAgICBhdXRv
KiBjbGllbnQgPSBtX2luc3BlY3RvckNsaWVudHMuZW5zdXJlKHJlcXVlc3RVUkwuaG9zdEFuZFBv
cnQoKSwgW3RoaXMsICZyZXF1ZXN0VVJMXSB7Ci0gICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJl
bW90ZUluc3BlY3RvckNsaWVudD4ocmVxdWVzdFVSTC5ob3N0KCkudXRmOCgpLmRhdGEoKSwgcmVx
dWVzdFVSTC5wb3J0KCkudmFsdWUoKSwgKnRoaXMpOwotICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5n
ZXQoKTsKKyAgICAvLyBEZXN0cm95IHRoZSBjbGllbnQgYmVmb3JlIGNyZWF0aW5nIGEgbmV3IGNv
bm5lY3Rpb24gc28gaXQgY2FuIGNvbm5lY3QgdG8gdGhlIHNhbWUgcG9ydAorICAgIG1faW5zcGVj
dG9yQ2xpZW50ID0gbnVsbHB0cjsKKyAgICBtX2luc3BlY3RvckNsaWVudCA9IG1ha2VVbmlxdWU8
UmVtb3RlSW5zcGVjdG9yQ2xpZW50PihyZXF1ZXN0VVJMLCAqdGhpcyk7CiAKICAgICAvLyBTZXR1
cCB0YXJnZXQgcG9zdE1lc3NhZ2UgbGlzdGVuZXIKICAgICBhdXRvIGhhbmRsZXIgPSBXZWJTY3Jp
cHRNZXNzYWdlSGFuZGxlcjo6Y3JlYXRlKG1ha2VVbmlxdWU8U2NyaXB0TWVzc2FnZUNsaWVudD4o
KnRoaXMpLCAiaW5zcGVjdG9yIiwgQVBJOjpVc2VyQ29udGVudFdvcmxkOjpub3JtYWxXb3JsZCgp
KTsKQEAgLTExMSwyOSArMTMzLDIyIEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5k
bGVyOjpwbGF0Zm9ybVN0YXJ0VGFzayhXZWJQYWdlUHJveHkmIHBhZ2VQcm94eSwKICAgICAgICAg
IiAgdGQuaW5wdXQgeyB3aWR0aDogNjRweDsgfSIKICAgICAgICAgIiAgaW5wdXQgeyB3aWR0aDog
MTAwJTsgcGFkZGluZzogOHB4OyB9IgogICAgICAgICAiPC9zdHlsZT4iCi0gICAgICAgICI8L2hl
YWQ+PGJvZHk+PGgxPkluc3BlY3RhYmxlIHRhcmdldHM8L2gxPiIpOwotCi0gICAgaWYgKGNsaWVu
dC0+dGFyZ2V0cygpLmlzRW1wdHkoKSkKLSAgICAgICAgaHRtbEJ1aWxkZXIuYXBwZW5kKCI8cD5O
byB0YXJnZXRzIGZvdW5kPC9wPiIpOwotICAgIGVsc2UgewotICAgICAgICBodG1sQnVpbGRlci5h
cHBlbmQoIjx0YWJsZT4iKTsKLSAgICAgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uSUQgOiBjbGll
bnQtPnRhcmdldHMoKS5rZXlzKCkpIHsKLSAgICAgICAgICAgIGZvciAoYXV0byYgdGFyZ2V0IDog
Y2xpZW50LT50YXJnZXRzKCkuZ2V0KGNvbm5lY3Rpb25JRCkpIHsKLSAgICAgICAgICAgICAgICBo
dG1sQnVpbGRlci5hcHBlbmQobWFrZVN0cmluZygKLSAgICAgICAgICAgICAgICAgICAgIjx0Ym9k
eT48dHI+IgotICAgICAgICAgICAgICAgICAgICAiPHRkIGNsYXNzPVwiZGF0YVwiPjxkaXYgY2xh
c3M9XCJ0YXJnZXRuYW1lXCI+IiwgdGFyZ2V0Lm5hbWUsICI8L2Rpdj48ZGl2IGNsYXNzPVwidGFy
Z2V0dXJsXCI+IiwgdGFyZ2V0LnVybCwgIjwvZGl2PjwvdGQ+IgotICAgICAgICAgICAgICAgICAg
ICAiPHRkIGNsYXNzPVwiaW5wdXRcIj48aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiSW5z
cGVjdFwiIG9uY2xpY2s9XCJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5pbnNwZWN0b3Iu
cG9zdE1lc3NhZ2UoJyIsIGNvbm5lY3Rpb25JRCwgIjoiLCB0YXJnZXQuaWQsICI6IiwgdGFyZ2V0
LnR5cGUsICInKTtcIj48L3RkPiIKLSAgICAgICAgICAgICAgICAgICAgIjwvdHI+PC90Ym9keT4i
Ci0gICAgICAgICAgICAgICAgKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg
aHRtbEJ1aWxkZXIuYXBwZW5kKCI8L3RhYmxlPiIpOwotICAgIH0KLQotICAgIGh0bWxCdWlsZGVy
LmFwcGVuZCgiPC9ib2R5PjwvaHRtbD4iKTsKKyAgICAgICAgIjwvaGVhZD48Ym9keT48aDE+SW5z
cGVjdGFibGUgdGFyZ2V0czwvaDE+IgorICAgICAgICAiPGRpdiBpZD1cInRhcmdldGxpc3RcIj48
cD5ObyB0YXJnZXRzIGZvdW5kPC9wPjwvZGl2PjwvYm9keT4iCisgICAgICAgICI8c2NyaXB0PiIK
KyAgICAgICAgImZ1bmN0aW9uIHVwZGF0ZVRhcmdldHMoc3RyKSB7IgorICAgICAgICAgICAgImxl
dCB0YXJnZXREaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0bGlzdCcpOyIKKyAg
ICAgICAgICAgICJ0YXJnZXREaXYuaW5uZXJIVE1MID0gc3RyOyIKKyAgICAgICAgIn0iCisgICAg
ICAgICI8L3NjcmlwdD4iKTsKKyAgICBodG1sQnVpbGRlci5hcHBlbmQoIjwvaHRtbD4iKTsKIAog
ICAgIGF1dG8gaHRtbCA9IGh0bWxCdWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOwotICAgIHBhZ2VQ
cm94eS5sb2FkRGF0YSh7IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGh0bWwuZGF0
YSgpKSwgaHRtbC5sZW5ndGgoKSB9LCAidGV4dC9odG1sIl9zLCAiVVRGLTgiX3MsIHJlcXVlc3RV
UkwpOworICAgIGF1dG8gZGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGh0bWwuZGF0YSgpLCBo
dG1sLmxlbmd0aCgpKTsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKHJlcXVlc3RVUkws
ICJ0ZXh0L2h0bWwiX3MsIGh0bWwubGVuZ3RoKCksICJVVEYtOCJfcyk7CisgICAgdGFzay5kaWRS
ZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOworICAgIHRhc2suZGlkUmVjZWl2ZURhdGEoV1RGTW92
ZShkYXRhKSk7CisgICAgdGFzay5kaWRDb21wbGV0ZShSZXNvdXJjZUVycm9yKCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaAppbmRleCA3
MDNhNzU2NjJiOS4uMGMxYzI2NzJjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JQcm90b2NvbEhhbmRsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yUHJvdG9jb2xIYW5kbGVyLmgK
QEAgLTU3LDcgKzU3LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU3RvcFRhc2soV2Vi
UGFnZVByb3h5JiwgV2ViVVJMU2NoZW1lVGFzayYpIGZpbmFsIHsgfQogICAgIHZvaWQgcGxhdGZv
cm1UYXNrQ29tcGxldGVkKFdlYlVSTFNjaGVtZVRhc2smKSBmaW5hbCB7IH0KIAotICAgIEhhc2hN
YXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlSW5zcGVjdG9yQ2xpZW50Pj4gbV9pbnNw
ZWN0b3JDbGllbnRzOworICAgIHZvaWQgcnVuU2NyaXB0KGNvbnN0IFN0cmluZyYpOworCisgICAg
c3RkOjp1bmlxdWVfcHRyPFJlbW90ZUluc3BlY3RvckNsaWVudD4gbV9pbnNwZWN0b3JDbGllbnQ7
CiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93
aW4vV2ViVmlldy5jcHAKaW5kZXggOWI5MjI2MTdiODUuLjE1Mzk1NGU4OGI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCkBAIC02MCw2ICs2MCw3IEBACiAKICNpZiBF
TkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICNpbmNsdWRlICJSZW1vdGVJbnNwZWN0b3JQcm90b2Nv
bEhhbmRsZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3JTZXJ2
ZXIuaD4KICNlbmRpZgogCiAjaWYgVVNFKENBSVJPKQpAQCAtODYsNiArODcsMjUgQEAgZW51bSB7
CiAgICAgVXBkYXRlQWN0aXZlU3RhdGVUaW1lciA9IDEsCiB9OwogCisjaWYgRU5BQkxFKFJFTU9U
RV9JTlNQRUNUT1IpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplUmVtb3RlSW5zcGVjdG9yU2VydmVy
KFN0cmluZ1ZpZXcgYWRkcmVzcykKK3sKKyAgICBpZiAoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0
b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLmlzUnVubmluZygpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBhdXRvIHBvcyA9IGFkZHJlc3MuZmluZCgnOicpOworICAgIGlmIChwb3MgPT0gbm90Rm91bmQp
CisgICAgICAgIHJldHVybjsKKyAgICBhdXRvIGhvc3QgPSBhZGRyZXNzLnN1YnN0cmluZygwLCBw
b3MpOworICAgIGF1dG8gcG9ydCA9IGFkZHJlc3Muc3Vic3RyaW5nKHBvcyArIDEpLnRvVUludDY0
U3RyaWN0KCk7CisKKyAgICBpZiAoIXBvcnQpCisgICAgICAgIHJldHVybjsKKworICAgIEluc3Bl
Y3Rvcjo6UmVtb3RlSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5zdGFydChob3N0LnV0Zjgo
KS5kYXRhKCksIHBvcnQudmFsdWUoKSk7Cit9CisjZW5kaWYKKwogTFJFU1VMVCBDQUxMQkFDSyBX
ZWJWaWV3OjpXZWJWaWV3V25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSkKIHsKICAgICBMT05HX1BUUiBsb25nUHRyID0gOjpHZXRXaW5k
b3dMb25nUHRyKGhXbmQsIDApOwpAQCAtMjI1LDYgKzI0NSwxMyBAQCBXZWJWaWV3OjpXZWJWaWV3
KFJFQ1QgcmVjdCwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbiwg
SFdORCBwYQogewogICAgIHJlZ2lzdGVyV2ViVmlld1dpbmRvd0NsYXNzKCk7CiAKKyNpZiBFTkFC
TEUoUkVNT1RFX0lOU1BFQ1RPUikKKyAgICBpZiAoY29uc3QgY2hhciogYWRkcmVzcyA9IGdldGVu
digiV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIiKSkgeworICAgICAgICBpbml0aWFsaXplUmVtb3Rl
SW5zcGVjdG9yU2VydmVyKGFkZHJlc3MpOworICAgICAgICBhdXRvIHBvcnQgPSBJbnNwZWN0b3I6
OlJlbW90ZUluc3BlY3RvclNlcnZlcjo6c2luZ2xldG9uKCkubGlzdGVuRm9yVGFyZ2V0cygpOwor
ICAgICAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6c2V0U2VydmVyUG9ydChwb3J0LnZh
bHVlT3IoMCkpOworICAgIH0KKyNlbmRpZgogICAgIG1fd2luZG93ID0gOjpDcmVhdGVXaW5kb3dF
eFcoMCwga1dlYktpdDJXZWJWaWV3V2luZG93Q2xhc3NOYW1lLCAwLCBXU19DSElMRCB8IFdTX0NM
SVBTSUJMSU5HUyB8IFdTX0NMSVBDSElMRFJFTiB8IFdTX1ZJU0lCTEUsCiAgICAgICAgIHJlY3Qu
bGVmdCwgcmVjdC50b3AsIHJlY3QucmlnaHQgLSByZWN0LmxlZnQsIHJlY3QuYm90dG9tIC0gcmVj
dC50b3AsIHBhcmVudFdpbmRvdyA/IHBhcmVudFdpbmRvdyA6IEhXTkRfTUVTU0FHRSwgMCwgaW5z
dGFuY2VIYW5kbGUoKSwgdGhpcyk7CiAgICAgQVNTRVJUKDo6SXNXaW5kb3cobV93aW5kb3cpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>