<?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>183105</bug_id>
          
          <creation_ts>2018-02-24 19:40:10 -0800</creation_ts>
          <short_desc>Service workers do not work well inside Web.app</short_desc>
          <delta_ts>2018-02-25 11:02:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>rniwa</cc>
    
    <cc>tomac</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1401898</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-24 19:40:10 -0800</bug_when>
    <thetext>Service workers do not work well inside Web.app. This is because Web.app does not use the default sessionID. However, ServiceWorkerThread hardcodes the default sessionID, which means that ServiceWorkers end up with a different SWServer than their client pages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401899</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-24 19:41:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/37864140&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401900</commentid>
    <comment_count>2</comment_count>
      <attachid>334571</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-24 20:06:07 -0800</bug_when>
    <thetext>Created attachment 334571
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401901</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-24 20:07:44 -0800</bug_when>
    <thetext>Attachment 334571 did not pass style-queue:


ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401906</commentid>
    <comment_count>4</comment_count>
      <attachid>334573</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-24 22:22:36 -0800</bug_when>
    <thetext>Created attachment 334573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401907</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-24 22:23:38 -0800</bug_when>
    <thetext>Attachment 334573 did not pass style-queue:


ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401908</commentid>
    <comment_count>6</comment_count>
      <attachid>334574</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-24 22:45:48 -0800</bug_when>
    <thetext>Created attachment 334574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401909</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-24 22:46:49 -0800</bug_when>
    <thetext>Attachment 334574 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:346:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:360:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:369:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:374:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:376:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:381:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:393:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 9 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401910</commentid>
    <comment_count>8</comment_count>
      <attachid>334575</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-24 22:52:02 -0800</bug_when>
    <thetext>Created attachment 334575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401911</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-24 22:53:45 -0800</bug_when>
    <thetext>Attachment 334575 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:346:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:360:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:369:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:374:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:376:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:381:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:393:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 9 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401919</commentid>
    <comment_count>10</comment_count>
      <attachid>334579</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-25 08:27:35 -0800</bug_when>
    <thetext>Created attachment 334579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401920</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-25 08:28:30 -0800</bug_when>
    <thetext>Attachment 334579 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:346:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:360:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:369:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:374:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:376:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:381:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:393:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 9 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401923</commentid>
    <comment_count>12</comment_count>
      <attachid>334579</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-25 09:46:21 -0800</bug_when>
    <thetext>Comment on attachment 334579
Patch

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        We were failed to forward IPC messages to the ChildProcess class here. As a result,

failed -&gt; failing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401925</commentid>
    <comment_count>13</comment_count>
      <attachid>334581</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-25 10:13:18 -0800</bug_when>
    <thetext>Created attachment 334581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401926</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-25 10:14:08 -0800</bug_when>
    <thetext>Attachment 334581 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:346:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:360:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:369:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:374:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:376:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:381:  Extra space after ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:393:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 9 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401930</commentid>
    <comment_count>15</comment_count>
      <attachid>334581</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-25 11:02:20 -0800</bug_when>
    <thetext>Comment on attachment 334581
Patch

Clearing flags on attachment: 334581

Committed r228978: &lt;https://trac.webkit.org/changeset/228978&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401931</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-25 11:02:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334571</attachid>
            <date>2018-02-24 20:06:07 -0800</date>
            <delta_ts>2018-02-24 22:22:35 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>183105_wip.patch</filename>
            <type>text/plain</type>
            <size>8788</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YS5jcHAKaW5kZXggNGM0YmYyMzY0Y2UuLmNkMDlhOTdjOTQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRl
eHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRleHREYXRhLmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6Omlz
b2xhdGVkQ29weSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHsgam9iRGF0YUlkZW50aWZpZXIsIHJl
Z2lzdHJhdGlvbi5pc29sYXRlZENvcHkoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNjcmlw
dC5pc29sYXRlZENvcHkoKSwgY29udGVudFNlY3VyaXR5UG9saWN5Lmlzb2xhdGVkQ29weSgpLCBz
Y3JpcHRVUkwuaXNvbGF0ZWRDb3B5KCksIHdvcmtlclR5cGUsIGxvYWRlZEZyb21EaXNrIH07Cisg
ICAgcmV0dXJuIHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi5pc29sYXRlZENvcHko
KSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNjcmlwdC5pc29sYXRlZENvcHkoKSwgY29udGVu
dFNlY3VyaXR5UG9saWN5Lmlzb2xhdGVkQ29weSgpLCBzY3JpcHRVUkwuaXNvbGF0ZWRDb3B5KCks
IHdvcmtlclR5cGUsIHNlc3Npb25JRCwgbG9hZGVkRnJvbURpc2sgfTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oCmluZGV4IGY1YTNlMDkxNjkyLi5iOTNkOTIy
MTYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVk
ZSAiV29ya2VyVHlwZS5oIgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKIApAQCAtNDQsNiArNDUsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhIHsKICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMg
Y29udGVudFNlY3VyaXR5UG9saWN5OwogICAgIFVSTCBzY3JpcHRVUkw7CiAgICAgV29ya2VyVHlw
ZSB3b3JrZXJUeXBlOworICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBib29sIGxv
YWRlZEZyb21EaXNrOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OwpAQCAtNTUsNyArNTcsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNv
bnRleHREYXRhIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rl
ciA8PCBqb2JEYXRhSWRlbnRpZmllciA8PCByZWdpc3RyYXRpb24gPDwgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIgPDwgc2NyaXB0IDw8IGNvbnRlbnRTZWN1cml0eVBvbGljeSA8PCBzY3JpcHRVUkwg
PDwgd29ya2VyVHlwZSA8PCBsb2FkZWRGcm9tRGlzazsKKyAgICBlbmNvZGVyIDw8IGpvYkRhdGFJ
ZGVudGlmaWVyIDw8IHJlZ2lzdHJhdGlvbiA8PCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA8PCBz
Y3JpcHQgPDwgY29udGVudFNlY3VyaXR5UG9saWN5IDw8IHNjcmlwdFVSTCA8PCB3b3JrZXJUeXBl
IDw8IHNlc3Npb25JRCA8PCBsb2FkZWRGcm9tRGlzazsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KQEAgLTkxLDExICs5MywxNSBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YT4gU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpkZWNvZGUoRGVjb2RlcgogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKHdvcmtlclR5cGUpKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoc2Vzc2lvbklEKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAg
IGJvb2wgbG9hZGVkRnJvbURpc2s7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsb2FkZWRGcm9t
RGlzaykpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4ge3sgV1RG
TW92ZSgqam9iRGF0YUlkZW50aWZpZXIpLCBXVEZNb3ZlKCpyZWdpc3RyYXRpb24pLCBXVEZNb3Zl
KCpzZXJ2aWNlV29ya2VySWRlbnRpZmllciksIFdURk1vdmUoc2NyaXB0KSwgV1RGTW92ZShjb250
ZW50U2VjdXJpdHlQb2xpY3kpLCBXVEZNb3ZlKHNjcmlwdFVSTCksIHdvcmtlclR5cGUsIGxvYWRl
ZEZyb21EaXNrIH19OworICAgIHJldHVybiB7eyBXVEZNb3ZlKCpqb2JEYXRhSWRlbnRpZmllciks
IFdURk1vdmUoKnJlZ2lzdHJhdGlvbiksIFdURk1vdmUoKnNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KSwgV1RGTW92ZShzY3JpcHQpLCBXVEZNb3ZlKGNvbnRlbnRTZWN1cml0eVBvbGljeSksIFdURk1v
dmUoc2NyaXB0VVJMKSwgd29ya2VyVHlwZSwgc2Vzc2lvbklELCBsb2FkZWRGcm9tRGlzayB9fTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApp
bmRleCA2NTQzYTFmODAxYS4uZjk4MDM0ZTQ3ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwCkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRp
bWUgZmxhZ3MKIAogU2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChjb25z
dCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcm
JiB1c2VyQWdlbnQsIFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdn
ZXJQcm94eSYgZGVidWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlk
YkNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDog
V29ya2VyVGhyZWFkKGRhdGEuc2NyaXB0VVJMLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9y
OjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdl
bnQpLCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCksIGRhdGEuc2Ny
aXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250
ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2Ny
aXB0VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwg
c29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCksIFNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgIDogV29ya2VyVGhyZWFkKGRhdGEuc2Ny
aXB0VVJMLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6
OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3b3JrU3RhdGVOb3Rp
Zmllcjo6c2luZ2xldG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVi
dWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3Jr
ZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZh
bHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQoKSwgTW9ub3Rv
bmljVGltZTo6bm93KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6
UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCksIGRhdGEuc2Vzc2lvbklEKQogICAgICwg
bV9kYXRhKGRhdGEuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1
bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25E
YXRhYmFzZS5jcHAKaW5kZXggNmVlZDliNWE0Y2EuLmViMWFhZjIxZTZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJh
dGlvbkRhdGFiYXNlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlNRTGl0ZUZpbGVT
eXN0ZW0uaCIKICNpbmNsdWRlICJTUUxpdGVTdGF0ZW1lbnQuaCIKICNpbmNsdWRlICJTUUxpdGVU
cmFuc2FjdGlvbi5oIgorI2luY2x1ZGUgIlNXU2VydmVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgpAQCAtMzU1LDcgKzM1Niw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25E
YXRhYmFzZTo6aW1wb3J0UmVjb3JkcygpCiAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uSWRlbnRp
ZmllciA9IGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllclR5cGU+KCk7CiAgICAgICAgIGF1dG8gc2VydmljZVdvcmtlckRhdGEgPSBTZXJ2
aWNlV29ya2VyRGF0YSB7IHdvcmtlcklkZW50aWZpZXIsIHNjcmlwdFVSTCwgU2VydmljZVdvcmtl
clN0YXRlOjpBY3RpdmF0ZWQsICp3b3JrZXJUeXBlLCByZWdpc3RyYXRpb25JZGVudGlmaWVyIH07
CiAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEgeyBXVEZNb3ZlKCprZXkpLCByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBVUkwob3JpZ2luVVJM
LCBzY29wZVBhdGgpLCAqdXBkYXRlVmlhQ2FjaGUsIGxhc3RVcGRhdGVDaGVja1RpbWUsIHN0ZDo6
bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHNlcnZpY2VXb3JrZXJEYXRhKSB9OwotICAg
ICAgICBhdXRvIGNvbnRleHREYXRhID0gU2VydmljZVdvcmtlckNvbnRleHREYXRhIHsgc3RkOjpu
dWxsb3B0LCBXVEZNb3ZlKHJlZ2lzdHJhdGlvbiksIHdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUo
c2NyaXB0KSwgV1RGTW92ZShjb250ZW50U2VjdXJpdHlQb2xpY3kpLCBXVEZNb3ZlKHNjcmlwdFVS
TCksICp3b3JrZXJUeXBlLCB0cnVlIH07CisgICAgICAgIGF1dG8gY29udGV4dERhdGEgPSBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEgeyBzdGQ6Om51bGxvcHQsIFdURk1vdmUocmVnaXN0cmF0aW9u
KSwgd29ya2VySWRlbnRpZmllciwgV1RGTW92ZShzY3JpcHQpLCBXVEZNb3ZlKGNvbnRlbnRTZWN1
cml0eVBvbGljeSksIFdURk1vdmUoc2NyaXB0VVJMKSwgKndvcmtlclR5cGUsIG1fc3RvcmUuc2Vy
dmVyKCkuc2Vzc2lvbklEKCksIHRydWUgfTsKIAogICAgICAgICBwb3N0VGFza1JlcGx5KGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjphZGRSZWdpc3Ry
YXRpb25Ub1N0b3JlLCBXVEZNb3ZlKGNvbnRleHREYXRhKSkpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3Rv
cmUuaAppbmRleCAxMzM3OWQ4YWY2OS4uMjllODIxNGIzMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmgK
QEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZvaWQgZGF0YWJhc2VGYWlsZWRUb09wZW4o
KTsKICAgICB2b2lkIGRhdGFiYXNlT3BlbmVkQW5kUmVjb3Jkc0ltcG9ydGVkKCk7CiAKKyAgICBT
V1NlcnZlciYgc2VydmVyKCkgeyByZXR1cm4gbV9zZXJ2ZXI7IH07CisKIHByaXZhdGU6CiAgICAg
dm9pZCBzY2hlZHVsZURhdGFiYXNlUHVzaElmTmVjZXNzYXJ5KCk7CiAgICAgdm9pZCBwdXNoQ2hh
bmdlc1RvRGF0YWJhc2UoV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRl
eCA2YzYwNTc4NGUxZC4uMDA3NWYwM2RhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC00OTIsNyArNDkyLDcgQEAgdm9p
ZCBTV1NlcnZlcjo6cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBTZXIKIAogdm9pZCBTV1NlcnZlcjo6dXBkYXRlV29ya2VyKENvbm5l
Y3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJZGVu
dGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBXb3JrZXJUeXBlIHR5cGUpCiB7Ci0g
ICAgdHJ5SW5zdGFsbENvbnRleHREYXRhKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlv
bi5kYXRhKCksIGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VySWRlbnRpZmll
clR5cGU+KCksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB1cmwsIHR5cGUsIGZhbHNl
IH0pOworICAgIHRyeUluc3RhbGxDb250ZXh0RGF0YSh7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdp
c3RyYXRpb24uZGF0YSgpLCBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtlcklk
ZW50aWZpZXJUeXBlPigpLCBzY3JpcHQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgdXJsLCB0eXBl
LCBzZXNzaW9uSUQoKSwgZmFsc2UgfSk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnRyeUluc3RhbGxD
b250ZXh0RGF0YShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBkYXRhKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNw
cAppbmRleCBlMWU2OTk3NGFmOS4uOTY4ODExYzkwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCkBAIC03
Myw3ICs3Myw3IEBAIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBTV1NlcnZlcldvcmtlcjo6Y29u
dGV4dERhdGEoKSBjb25zdAogICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IG1fc2VydmVyLmdldFJl
Z2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSk7CiAgICAgQVNTRVJUKHJlZ2lzdHJhdGlvbik7
CiAKLSAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHJlZ2lzdHJhdGlvbi0+ZGF0YSgpLCBtX2Rh
dGEuaWRlbnRpZmllciwgbV9zY3JpcHQsIG1fY29udGVudFNlY3VyaXR5UG9saWN5LCBtX2RhdGEu
c2NyaXB0VVJMLCBtX2RhdGEudHlwZSwgZmFsc2UgfTsKKyAgICByZXR1cm4geyBzdGQ6Om51bGxv
cHQsIHJlZ2lzdHJhdGlvbi0+ZGF0YSgpLCBtX2RhdGEuaWRlbnRpZmllciwgbV9zY3JpcHQsIG1f
Y29udGVudFNlY3VyaXR5UG9saWN5LCBtX2RhdGEuc2NyaXB0VVJMLCBtX2RhdGEudHlwZSwgbV9z
ZXJ2ZXIuc2Vzc2lvbklEKCksIGZhbHNlIH07CiB9CiAKIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRl
cm1pbmF0ZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334573</attachid>
            <date>2018-02-24 22:22:36 -0800</date>
            <delta_ts>2018-02-24 22:45:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183105-20180224222236.patch</filename>
            <type>text/plain</type>
            <size>19803</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ3OTBmMDgzNmMyMzM1
MmQ1MTIxZDMyNTczMmI4ZmM3YTVjNDc4Yi4uMDE4OTQ5MWQ2ZTJiMjg5OTVjZWJmNmQ5ZjI1MjMx
OTYyYzJhNDQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSB3b3JrZXJzIGRv
IG5vdCB3b3JrIHdlbGwgaW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc4
NjQxNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkgd2FzIGhhcmRjb2RlZCBpbiB0aGUgU2Vydmlj
ZVdvcmtlclRocmVhZCBjb25zdHJ1Y3RvcgorICAgICAgICBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBz
ZXNzaW9uSUQgb2YgdGhlIFNXU2VydmVyIHRoYXQgY3JlYXRlZCB0aGUgc2VydmljZSB3b3JrZXIg
dGhyZWFkLgorICAgICAgICBBcyBhIHJlc3VsdCwgd2hlbiB0aGUgU2VydmljZSBXb3JrZXIgd291
bGQgZXN0YWJsaXNoIGEgU1dDbGllbnRDb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBzZXJ2ZXIs
IGl0IHdvdWxkIHVzZSB0aGUgd3Jvbmcgc2Vzc2lvbklEIGFuZCB3b3VsZCBlbmQgdXAgdXNpbmcg
YSBkaWZmZXJlbnQgU1dTZXJ2ZXIKKyAgICAgICAgKFNpbmNlIHdlIGhhdmUgYSBkaWZmZXJlbnQg
U1dTZXJ2ZXIgaW5zdGFuY2UgcGVyIHNlc3Npb25JRCkuIEFzIGEgcmVzdWx0LAorICAgICAgICBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIC8gU2VydmljZVdvcmtlciBvYmplY3RzIGluc2lkZSB0
aGUgc2VydmljZSB3b3JrZXIgd291bGQgbm90CisgICAgICAgIGJlIGtlcHQgaW4gc3luYyB3aXRo
IHRoZSBzZXJ2ZXIgKHNpbmNlIHRoZXkgcmVnaXN0ZXJlZCB0aGVtc2VsdmVzIHdpdGggdGhlIHdy
b25nCisgICAgICAgIFNXU2VydmVyKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVz
dC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhOjppc29sYXRl
ZENvcHkgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNl
cnZpY2VXb3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYWdl
Rm9yU2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVn
aXN0cmF0aW9uU3RvcmU6OnNlcnZlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dXBkYXRlV29ya2Vy
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpjb250ZXh0RGF0YSBjb25zdCk6CisK
IDIwMTgtMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBD
cmFzaCB1bmRlciBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKFdU
Rjo6U3RyaW5nIGNvbnN0JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODQwMDdlN2NhMWNiYThlMjFlZmI4YjZiODJh
Njg3Mjk2MmQxZTE1MS4uYjhhZTdmMzNlMGFlNDYwYWQ3MmJjNzRmMzhmNWYxYjM0MThmZGYxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wMi0yNCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2Ugd29ya2VycyBkbyBub3Qgd29yayB3ZWxs
IGluc2lkZSBXZWIuYXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODMxMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3ODY0MTQwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICBXZSB3ZXJlIGZhaWxlZCB0byBmb3J3YXJkIElQ
QyBtZXNzYWdlcyB0byB0aGUgQ2hpbGRQcm9jZXNzIGNsYXNzIGhlcmUuIEFzIGEgcmVzdWx0LAor
ICAgICAgICB0aGUgQ2hpbGRQcm9jZXNzOjpSZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJz
Q2FuSGFuZGxlIElQQyB3YXMgYmVpbmcgaWdub3JlZAorICAgICAgICBieSB0aGUgU3RvcmFnZVBy
b2Nlc3MuCisKIDIwMTgtMDItMjQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgV1BFIGJyZWFrYWdlIGZpeC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YS5jcHAKaW5kZXggNGM0YmYyMzY0Y2U0Y2YxMjUzODU4NjhiOTg1ZjhiN2ViMDE4ZDdlYi4uY2Qw
OWE5N2M5NDc5NzdmMzNmODdlN2Q5NmY5ODY1ZGJhNDBlYjAxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjppc29sYXRlZENvcHkoKSBj
b25zdAogewotICAgIHJldHVybiB7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNv
bGF0ZWRDb3B5KCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5
KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeS5pc29sYXRlZENvcHkoKSwgc2NyaXB0VVJMLmlzb2xh
dGVkQ29weSgpLCB3b3JrZXJUeXBlLCBsb2FkZWRGcm9tRGlzayB9OworICAgIHJldHVybiB7IGpv
YkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNvbGF0ZWRDb3B5KCksIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRTZWN1cml0eVBvbGlj
eS5pc29sYXRlZENvcHkoKSwgc2NyaXB0VVJMLmlzb2xhdGVkQ29weSgpLCB3b3JrZXJUeXBlLCBz
ZXNzaW9uSUQsIGxvYWRlZEZyb21EaXNrIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEuaAppbmRleCBmNWEzZTA5MTY5MmE1OTA4NTRlZWQ5MWJlNWU0MzUxYjBi
NzY0NTcwLi5iOTNkOTIyMTYyZTBhYzc5NGExZTc1MmJiOWFiZTRjMWFhMzFiOWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBl
LmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQogCkBAIC00NCw2ICs0NSw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEg
ewogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyBjb250ZW50U2VjdXJp
dHlQb2xpY3k7CiAgICAgVVJMIHNjcmlwdFVSTDsKICAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7
CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIGJvb2wgbG9hZGVkRnJvbURpc2s7
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CkBAIC01NSw3ICs1Nyw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgewog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGpvYkRhdGFJ
ZGVudGlmaWVyIDw8IHJlZ2lzdHJhdGlvbiA8PCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA8PCBz
Y3JpcHQgPDwgY29udGVudFNlY3VyaXR5UG9saWN5IDw8IHNjcmlwdFVSTCA8PCB3b3JrZXJUeXBl
IDw8IGxvYWRlZEZyb21EaXNrOworICAgIGVuY29kZXIgPDwgam9iRGF0YUlkZW50aWZpZXIgPDwg
cmVnaXN0cmF0aW9uIDw8IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIDw8IHNjcmlwdCA8PCBjb250
ZW50U2VjdXJpdHlQb2xpY3kgPDwgc2NyaXB0VVJMIDw8IHdvcmtlclR5cGUgPDwgc2Vzc2lvbklE
IDw8IGxvYWRlZEZyb21EaXNrOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtOTEs
MTEgKzkzLDE1IEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE6OmRlY29kZShEZWNvZGVyCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUVudW0od29ya2VyVHlwZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZXNz
aW9uSUQpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAgYm9vbCBsb2FkZWRG
cm9tRGlzazsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxvYWRlZEZyb21EaXNrKSkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpqb2JEYXRh
SWRlbnRpZmllciksIFdURk1vdmUoKnJlZ2lzdHJhdGlvbiksIFdURk1vdmUoKnNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSwgV1RGTW92ZShzY3JpcHQpLCBXVEZNb3ZlKGNvbnRlbnRTZWN1cml0eVBv
bGljeSksIFdURk1vdmUoc2NyaXB0VVJMKSwgd29ya2VyVHlwZSwgbG9hZGVkRnJvbURpc2sgfX07
CisgICAgcmV0dXJuIHt7IFdURk1vdmUoKmpvYkRhdGFJZGVudGlmaWVyKSwgV1RGTW92ZSgqcmVn
aXN0cmF0aW9uKSwgV1RGTW92ZSgqc2VydmljZVdvcmtlcklkZW50aWZpZXIpLCBXVEZNb3ZlKHNj
cmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9saWN5KSwgV1RGTW92ZShzY3JpcHRVUkwp
LCB3b3JrZXJUeXBlLCBzZXNzaW9uSUQsIGxvYWRlZEZyb21EaXNrIH19OwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDY1NDNhMWY4
MDFhZjYxMjBmNTM3OGNmNjY3ZTQ2NDVhNTA2NzIxNzMuLmY5ODAzNGU0N2VlZTk3MTBkMGJjNzlk
MGIwY2NmYWRkZjUxNmRhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC03MSw3
ICs3MSw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxhZ3MKIAog
U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQs
IFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVi
dWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Q
cm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDogV29ya2VyVGhyZWFk
KGRhdGEuc2NyaXB0VVJMLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVy
c0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3b3Jr
U3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2FkZXJQ
cm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJl
ZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250ZW50U2VjdXJpdHlQ
b2xpY3ksIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQo
KSwgTW9ub3RvbmljVGltZTo6bm93KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlk
ZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCksIFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKQorICAgIDogV29ya2VyVGhyZWFkKGRhdGEuc2NyaXB0VVJMLCAic2Vy
dmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50
aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xl
dG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwg
RHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93
KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdz
OjpjcmVhdGVBbGxFbmFibGVkKCksIGRhdGEuc2Vzc2lvbklEKQogICAgICwgbV9kYXRhKGRhdGEu
aXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15U2VydmljZVdv
cmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuY3BwCmluZGV4IGY5ZTExMmYwNTU1NjAwZjcxNTFkYmZmOWJhNjZmMDY0ZDE4M2Q1Mjgu
LjI4NDE5MzBkODg0NDI5MDg0ZDIzOTRjNzc5NTVmYTJlMTU1YzMwOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtNDgsOSArNDgsMTEgQEAgVVJMIHN0YXRpYyBp
bmxpbmUgdG9wT3JpZ2luVVJMKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pCiAgICAgcmV0
dXJuIHVybDsKIH0KIAotc3RhdGljIGlubGluZSBVbmlxdWVSZWY8UGFnZT4gY3JlYXRlUGFnZUZv
clNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5KQorc3RhdGljIGlubGluZSBVbmlxdWVS
ZWY8UGFnZT4gY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5LCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgYXV0byBwYWdlID0gbWFrZVVuaXF1ZVJl
ZjxQYWdlPihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICBwYWdlLT5zZXRTZXNzaW9uSUQo
c2Vzc2lvbklEKTsKKwogICAgIGF1dG8mIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwog
ICAgIG1haW5GcmFtZS5sb2FkZXIoKS5pbml0Rm9yU3ludGhlc2l6ZWREb2N1bWVudCh7IH0pOwog
ICAgIGF1dG8gZG9jdW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRl
cigmbWFpbkZyYW1lLCBkYXRhLnNjcmlwdFVSTCk7CkBAIC04NCw3ICs4Niw3IEBAIHN0YXRpYyBI
YXNoU2V0PFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSo+JiBhbGxTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveGllcygpCiB9CiAKIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92
aWRlciwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tp
bmdQb2xpY3kpCi0gICAgOiBtX3BhZ2UoY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoV1RGTW92
ZShwYWdlQ29uZmlndXJhdGlvbiksIGRhdGEsIHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkpCisgICAg
OiBtX3BhZ2UoY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoV1RGTW92ZShwYWdlQ29uZmlndXJh
dGlvbiksIGRhdGEsIHN0b3JhZ2VCbG9ja2luZ1BvbGljeSwgZGF0YS5zZXNzaW9uSUQpKQogICAg
ICwgbV9kb2N1bWVudCgqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQogICAgICwgbV9z
ZXJ2aWNlV29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShkYXRhLCBzZXNz
aW9uSUQsIFdURk1vdmUodXNlckFnZW50KSwgKnRoaXMsICp0aGlzLCBpZGJDb25uZWN0aW9uUHJv
eHkobV9kb2N1bWVudCksIG1fZG9jdW1lbnQtPnNvY2tldFByb3ZpZGVyKCkpKQogICAgICwgbV9j
YWNoZVN0b3JhZ2VQcm92aWRlcihjYWNoZVN0b3JhZ2VQcm92aWRlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25E
YXRhYmFzZS5jcHAKaW5kZXggNmVlZDliNWE0Y2FmNDNmOTU0ZWE2ZWY5NzI3ZDRhNWMyMDIyMTQ3
OS4uZWIxYWFmMjFlNmNkMjhiOTg0YTI3MzY5Njc5YTQ2NDZkYjA1ZmZhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3Ry
YXRpb25EYXRhYmFzZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTUUxpdGVGaWxl
U3lzdGVtLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRl
VHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTV1NlcnZlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KQEAgLTM1NSw3ICszNTYsNyBAQCBTdHJpbmcgUmVnaXN0cmF0aW9u
RGF0YWJhc2U6OmltcG9ydFJlY29yZHMoKQogICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgPSBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXJUeXBlPigpOwogICAgICAgICBhdXRvIHNlcnZpY2VXb3JrZXJEYXRhID0gU2Vy
dmljZVdvcmtlckRhdGEgeyB3b3JrZXJJZGVudGlmaWVyLCBzY3JpcHRVUkwsIFNlcnZpY2VXb3Jr
ZXJTdGF0ZTo6QWN0aXZhdGVkLCAqd29ya2VyVHlwZSwgcmVnaXN0cmF0aW9uSWRlbnRpZmllciB9
OwogICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhIHsgV1RGTW92ZSgqa2V5KSwgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgVVJMKG9yaWdpblVS
TCwgc2NvcGVQYXRoKSwgKnVwZGF0ZVZpYUNhY2hlLCBsYXN0VXBkYXRlQ2hlY2tUaW1lLCBzdGQ6
Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShzZXJ2aWNlV29ya2VyRGF0YSkgfTsKLSAg
ICAgICAgYXV0byBjb250ZXh0RGF0YSA9IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7IHN0ZDo6
bnVsbG9wdCwgV1RGTW92ZShyZWdpc3RyYXRpb24pLCB3b3JrZXJJZGVudGlmaWVyLCBXVEZNb3Zl
KHNjcmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9saWN5KSwgV1RGTW92ZShzY3JpcHRV
UkwpLCAqd29ya2VyVHlwZSwgdHJ1ZSB9OworICAgICAgICBhdXRvIGNvbnRleHREYXRhID0gU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhIHsgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHJlZ2lzdHJhdGlv
biksIHdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUoc2NyaXB0KSwgV1RGTW92ZShjb250ZW50U2Vj
dXJpdHlQb2xpY3kpLCBXVEZNb3ZlKHNjcmlwdFVSTCksICp3b3JrZXJUeXBlLCBtX3N0b3JlLnNl
cnZlcigpLnNlc3Npb25JRCgpLCB0cnVlIH07CiAKICAgICAgICAgcG9zdFRhc2tSZXBseShjcmVh
dGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZSZWdpc3RyYXRpb25EYXRhYmFzZTo6YWRkUmVnaXN0
cmF0aW9uVG9TdG9yZSwgV1RGTW92ZShjb250ZXh0RGF0YSkpKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0
b3JlLmgKaW5kZXggMTMzNzlkOGFmNjliODIyMDEwMzQwN2M1ZTk4ZDcwYWZiMWY5ZGRkNS4uMjll
ODIxNGIzMDFjNjUzMjJhMzFiMTZlNWEwMzQ0NThlNDg1OWI5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUu
aApAQCAtNTksNiArNTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkYXRhYmFzZUZhaWxlZFRvT3Bl
bigpOwogICAgIHZvaWQgZGF0YWJhc2VPcGVuZWRBbmRSZWNvcmRzSW1wb3J0ZWQoKTsKIAorICAg
IFNXU2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsgfTsKKwogcHJpdmF0ZToKICAg
ICB2b2lkIHNjaGVkdWxlRGF0YWJhc2VQdXNoSWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIHB1c2hD
aGFuZ2VzVG9EYXRhYmFzZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmlu
ZGV4IDZjNjA1Nzg0ZTFkOGZlMGVjMDNjMDU2OTYzMjNlMTJkOGYwMGFjYmIuLjAwNzVmMDNkYTc4
MDVlNWYzMjI4NmU3NjY3Y2JmZjhiYWNjMzZlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC00OTIsNyArNDkyLDcgQEAg
dm9pZCBTV1NlcnZlcjo6cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBTZXIKIAogdm9pZCBTV1NlcnZlcjo6dXBkYXRlV29ya2VyKENv
bm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJ
ZGVudGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBXb3JrZXJUeXBlIHR5cGUpCiB7
Ci0gICAgdHJ5SW5zdGFsbENvbnRleHREYXRhKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJh
dGlvbi5kYXRhKCksIGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VySWRlbnRp
ZmllclR5cGU+KCksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB1cmwsIHR5cGUsIGZh
bHNlIH0pOworICAgIHRyeUluc3RhbGxDb250ZXh0RGF0YSh7IGpvYkRhdGFJZGVudGlmaWVyLCBy
ZWdpc3RyYXRpb24uZGF0YSgpLCBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtl
cklkZW50aWZpZXJUeXBlPigpLCBzY3JpcHQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgdXJsLCB0
eXBlLCBzZXNzaW9uSUQoKSwgZmFsc2UgfSk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnRyeUluc3Rh
bGxDb250ZXh0RGF0YShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBkYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmNwcAppbmRleCBlMWU2OTk3NGFmOWZhYzU1YThhNTAwNWU4MTk3MWU0ZGVjODU4YmUyLi45Njg4
MTFjOTBlMGFjODhiOWNlMzgzZjBiZjk4ODUwNTFiNDdhYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApA
QCAtNzMsNyArNzMsNyBAQCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgU1dTZXJ2ZXJXb3JrZXI6
OmNvbnRleHREYXRhKCkgY29uc3QKICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5n
ZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOwogICAgIEFTU0VSVChyZWdpc3RyYXRp
b24pOwogCi0gICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCByZWdpc3RyYXRpb24tPmRhdGEoKSwg
bV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9k
YXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUsIGZhbHNlIH07CisgICAgcmV0dXJuIHsgc3RkOjpu
dWxsb3B0LCByZWdpc3RyYXRpb24tPmRhdGEoKSwgbV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0
LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9kYXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUs
IG1fc2VydmVyLnNlc3Npb25JRCgpLCBmYWxzZSB9OwogfQogCiB2b2lkIFNXU2VydmVyV29ya2Vy
Ojp0ZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQ
cm9jZXNzLmNwcAppbmRleCA4MjFhMzE2MjQzNDA2Y2I2MDNiNWY2Zjc2ZTEyYTY3YTczNTkyYTQy
Li5lNTA3N2I0MmI2ZTBjMDNkY2JkOGU3Zjk4ZWNmYTgxNDYxMWRhZWMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzLmgiCiAK
KyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgpAQCAtMTM4LDYg
KzEzOSwxMSBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlcgogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpD
aGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBDaGlsZFByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHN3
Q29ubmVjdGlvbiA9IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Z2xvYmFsU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggODA2M2UzZjliZGNhZDA3ZjQ0YzJkNmU3N2FkZWU3ZWVlYjkzYWI2
NS4uYmQ3MjYzYjU0ZDg0MmE4OTAxYjdlNTk0YTIzZDkzZDEzNTgyNjA5NCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE4LTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2Vy
dmljZSB3b3JrZXJzIGRvIG5vdCB3b3JrIHdlbGwgaW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzc4NjQxNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisKIDIwMTgt
MDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBjdXJyZW50VGltZU1TKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KaW5kZXggMzQzZjk3OTdkNjcyMjcyNTljNzczNGI3Y2I2MzEzOTFlNzczYmQwNy4uNTEwYzhm
NDVjYTNjMDI5MmZiMzM5NTRjYjZkZmQ2NDNjMzNjMTkxMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tFeHBl
cmltZW50YWxGZWF0dXJlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9EZXF1ZS5oPgogI2ltcG9ydCA8d3RmL0hhc2hN
YXAuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTkyOSw2ICs5MzAsNTQgQEAgVEVT
VChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkJpdCkKICAgICBk
b25lID0gZmFsc2U7CiB9CiAKK1RFU1QoU2VydmljZVdvcmtlcnMsIE5vbkRlZmF1bHRTZXNzaW9u
SUQpCit7CisgICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNG
b3JBbGxPcmlnaW5zXTsKKworICAgIE5TVVJMICpzZXJ2aWNlV29ya2Vyc1BhdGggPSBbTlNVUkwg
ZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVzdFdlYktpdEFQSS9DdXN0b21X
ZWJzaXRlRGF0YS9TZXJ2aWNlV29ya2Vycy8iIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhd
IGlzRGlyZWN0b3J5OllFU107CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBy
ZW1vdmVJdGVtQXRVUkw6c2VydmljZVdvcmtlcnNQYXRoIGVycm9yOm5pbF07CisgICAgRVhQRUNU
X0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpz
ZXJ2aWNlV29ya2Vyc1BhdGgucGF0aF0pOworICAgIE5TVVJMICppZGJQYXRoID0gW05TVVJMIGZp
bGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkvV2ViS2l0L1Rlc3RXZWJLaXRBUEkvQ3VzdG9tV2Vi
c2l0ZURhdGEvSW5kZXhlZERCLyIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJl
Y3Rvcnk6WUVTXTsKKyAgICBbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0
ZW1BdFVSTDppZGJQYXRoIGVycm9yOm5pbF07CisgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDppZGJQYXRoLnBhdGhdKTsKKwor
ICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5Q
dHI8X1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IHdlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFs
bG9jXSBpbml0XSk7CisgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCkuX3Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgPSBzZXJ2aWNlV29ya2Vyc1BhdGg7Cisg
ICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uZ2V0KCkuX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5ID0gaWRiUGF0aDsKKworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURh
dGFTdG9yZSA9IFtbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10gX2luaXRXaXRoQ29uZmlndXJh
dGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKV0gYXV0b3JlbGVhc2VdOwor
CisgICAgUmV0YWluUHRyPFNXTWVzc2FnZUhhbmRsZXI+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHRO
UyhbW1NXTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
dXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFu
ZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKworICAgIFJldGFpblB0cjxTV1NjaGVtZXM+IGhhbmRs
ZXIgPSBhZG9wdE5TKFtbU1dTY2hlbWVzIGFsbG9jXSBpbml0XSk7CisgICAgaGFuZGxlci0+cmVz
b3VyY2VzLnNldCgic3c6Ly9ob3N0L21haW4uaHRtbCIsIFJlc291cmNlSW5mbyB7IEAidGV4dC9o
dG1sIiwgbWFpbkJ5dGVzIH0pOworICAgIGhhbmRsZXItPnJlc291cmNlcy5zZXQoInN3Oi8vaG9z
dC9zdy5qcyIsIFJlc291cmNlSW5mbyB7IEAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIsIHNjcmlw
dEJ5dGVzIH0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxl
ci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJTVyJdOworCisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7
CisgICAgW3dlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJV
UkxTY2hlbWVTZXJ2aWNlV29ya2Vyc0NhbkhhbmRsZTpAInN3Il07CisKKyAgICBOU1VSTFJlcXVl
c3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAg
ZG9uZSA9IGZhbHNlOworCisgICAgd2ViVmlldyA9IG51bGxwdHI7CisKKyAgICBbY29uZmlndXJh
dGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOltOU1Nl
dCBzZXRXaXRoT2JqZWN0OldLV2Vic2l0ZURhdGFUeXBlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bnNdIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICp3
ZWJzaXRlRGF0YVJlY29yZHMpIHsKKyAgICAgICAgRVhQRUNUX0VRKDF1LCBbd2Vic2l0ZURhdGFS
ZWNvcmRzIGNvdW50XSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFt3ZWJzaXRlRGF0YVJlY29yZHNb
MF0uZGlzcGxheU5hbWUgaXNFcXVhbFRvU3RyaW5nOkAic3cgaG9zdCJdKTsKKworICAgICAgICBk
b25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQorCiAjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQogCiAj
ZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334574</attachid>
            <date>2018-02-24 22:45:48 -0800</date>
            <delta_ts>2018-02-24 22:52:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183105-20180224224547.patch</filename>
            <type>text/plain</type>
            <size>21258</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ3OTBmMDgzNmMyMzM1
MmQ1MTIxZDMyNTczMmI4ZmM3YTVjNDc4Yi4uMDE4OTQ5MWQ2ZTJiMjg5OTVjZWJmNmQ5ZjI1MjMx
OTYyYzJhNDQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSB3b3JrZXJzIGRv
IG5vdCB3b3JrIHdlbGwgaW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc4
NjQxNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkgd2FzIGhhcmRjb2RlZCBpbiB0aGUgU2Vydmlj
ZVdvcmtlclRocmVhZCBjb25zdHJ1Y3RvcgorICAgICAgICBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBz
ZXNzaW9uSUQgb2YgdGhlIFNXU2VydmVyIHRoYXQgY3JlYXRlZCB0aGUgc2VydmljZSB3b3JrZXIg
dGhyZWFkLgorICAgICAgICBBcyBhIHJlc3VsdCwgd2hlbiB0aGUgU2VydmljZSBXb3JrZXIgd291
bGQgZXN0YWJsaXNoIGEgU1dDbGllbnRDb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBzZXJ2ZXIs
IGl0IHdvdWxkIHVzZSB0aGUgd3Jvbmcgc2Vzc2lvbklEIGFuZCB3b3VsZCBlbmQgdXAgdXNpbmcg
YSBkaWZmZXJlbnQgU1dTZXJ2ZXIKKyAgICAgICAgKFNpbmNlIHdlIGhhdmUgYSBkaWZmZXJlbnQg
U1dTZXJ2ZXIgaW5zdGFuY2UgcGVyIHNlc3Npb25JRCkuIEFzIGEgcmVzdWx0LAorICAgICAgICBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIC8gU2VydmljZVdvcmtlciBvYmplY3RzIGluc2lkZSB0
aGUgc2VydmljZSB3b3JrZXIgd291bGQgbm90CisgICAgICAgIGJlIGtlcHQgaW4gc3luYyB3aXRo
IHRoZSBzZXJ2ZXIgKHNpbmNlIHRoZXkgcmVnaXN0ZXJlZCB0aGVtc2VsdmVzIHdpdGggdGhlIHdy
b25nCisgICAgICAgIFNXU2VydmVyKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVz
dC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhOjppc29sYXRl
ZENvcHkgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNl
cnZpY2VXb3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYWdl
Rm9yU2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVn
aXN0cmF0aW9uU3RvcmU6OnNlcnZlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dXBkYXRlV29ya2Vy
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpjb250ZXh0RGF0YSBjb25zdCk6CisK
IDIwMTgtMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBD
cmFzaCB1bmRlciBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKFdU
Rjo6U3RyaW5nIGNvbnN0JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODQwMDdlN2NhMWNiYThlMjFlZmI4YjZiODJh
Njg3Mjk2MmQxZTE1MS4uYjhhZTdmMzNlMGFlNDYwYWQ3MmJjNzRmMzhmNWYxYjM0MThmZGYxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wMi0yNCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2Ugd29ya2VycyBkbyBub3Qgd29yayB3ZWxs
IGluc2lkZSBXZWIuYXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODMxMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3ODY0MTQwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICBXZSB3ZXJlIGZhaWxlZCB0byBmb3J3YXJkIElQ
QyBtZXNzYWdlcyB0byB0aGUgQ2hpbGRQcm9jZXNzIGNsYXNzIGhlcmUuIEFzIGEgcmVzdWx0LAor
ICAgICAgICB0aGUgQ2hpbGRQcm9jZXNzOjpSZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJz
Q2FuSGFuZGxlIElQQyB3YXMgYmVpbmcgaWdub3JlZAorICAgICAgICBieSB0aGUgU3RvcmFnZVBy
b2Nlc3MuCisKIDIwMTgtMDItMjQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgV1BFIGJyZWFrYWdlIGZpeC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YS5jcHAKaW5kZXggNGM0YmYyMzY0Y2U0Y2YxMjUzODU4NjhiOTg1ZjhiN2ViMDE4ZDdlYi4uY2Qw
OWE5N2M5NDc5NzdmMzNmODdlN2Q5NmY5ODY1ZGJhNDBlYjAxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjppc29sYXRlZENvcHkoKSBj
b25zdAogewotICAgIHJldHVybiB7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNv
bGF0ZWRDb3B5KCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5
KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeS5pc29sYXRlZENvcHkoKSwgc2NyaXB0VVJMLmlzb2xh
dGVkQ29weSgpLCB3b3JrZXJUeXBlLCBsb2FkZWRGcm9tRGlzayB9OworICAgIHJldHVybiB7IGpv
YkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNvbGF0ZWRDb3B5KCksIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRTZWN1cml0eVBvbGlj
eS5pc29sYXRlZENvcHkoKSwgc2NyaXB0VVJMLmlzb2xhdGVkQ29weSgpLCB3b3JrZXJUeXBlLCBz
ZXNzaW9uSUQsIGxvYWRlZEZyb21EaXNrIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEuaAppbmRleCBmNWEzZTA5MTY5MmE1OTA4NTRlZWQ5MWJlNWU0MzUxYjBi
NzY0NTcwLi5iOTNkOTIyMTYyZTBhYzc5NGExZTc1MmJiOWFiZTRjMWFhMzFiOWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBl
LmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQogCkBAIC00NCw2ICs0NSw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEg
ewogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyBjb250ZW50U2VjdXJp
dHlQb2xpY3k7CiAgICAgVVJMIHNjcmlwdFVSTDsKICAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7
CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIGJvb2wgbG9hZGVkRnJvbURpc2s7
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CkBAIC01NSw3ICs1Nyw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgewog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGpvYkRhdGFJ
ZGVudGlmaWVyIDw8IHJlZ2lzdHJhdGlvbiA8PCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA8PCBz
Y3JpcHQgPDwgY29udGVudFNlY3VyaXR5UG9saWN5IDw8IHNjcmlwdFVSTCA8PCB3b3JrZXJUeXBl
IDw8IGxvYWRlZEZyb21EaXNrOworICAgIGVuY29kZXIgPDwgam9iRGF0YUlkZW50aWZpZXIgPDwg
cmVnaXN0cmF0aW9uIDw8IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIDw8IHNjcmlwdCA8PCBjb250
ZW50U2VjdXJpdHlQb2xpY3kgPDwgc2NyaXB0VVJMIDw8IHdvcmtlclR5cGUgPDwgc2Vzc2lvbklE
IDw8IGxvYWRlZEZyb21EaXNrOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtOTEs
MTEgKzkzLDE1IEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE6OmRlY29kZShEZWNvZGVyCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUVudW0od29ya2VyVHlwZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZXNz
aW9uSUQpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAgYm9vbCBsb2FkZWRG
cm9tRGlzazsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxvYWRlZEZyb21EaXNrKSkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpqb2JEYXRh
SWRlbnRpZmllciksIFdURk1vdmUoKnJlZ2lzdHJhdGlvbiksIFdURk1vdmUoKnNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSwgV1RGTW92ZShzY3JpcHQpLCBXVEZNb3ZlKGNvbnRlbnRTZWN1cml0eVBv
bGljeSksIFdURk1vdmUoc2NyaXB0VVJMKSwgd29ya2VyVHlwZSwgbG9hZGVkRnJvbURpc2sgfX07
CisgICAgcmV0dXJuIHt7IFdURk1vdmUoKmpvYkRhdGFJZGVudGlmaWVyKSwgV1RGTW92ZSgqcmVn
aXN0cmF0aW9uKSwgV1RGTW92ZSgqc2VydmljZVdvcmtlcklkZW50aWZpZXIpLCBXVEZNb3ZlKHNj
cmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9saWN5KSwgV1RGTW92ZShzY3JpcHRVUkwp
LCB3b3JrZXJUeXBlLCBzZXNzaW9uSUQsIGxvYWRlZEZyb21EaXNrIH19OwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDY1NDNhMWY4
MDFhZjYxMjBmNTM3OGNmNjY3ZTQ2NDVhNTA2NzIxNzMuLmY5ODAzNGU0N2VlZTk3MTBkMGJjNzlk
MGIwY2NmYWRkZjUxNmRhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC03MSw3
ICs3MSw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxhZ3MKIAog
U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQs
IFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVi
dWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Q
cm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDogV29ya2VyVGhyZWFk
KGRhdGEuc2NyaXB0VVJMLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVy
c0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3b3Jr
U3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2FkZXJQ
cm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJl
ZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250ZW50U2VjdXJpdHlQ
b2xpY3ksIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQo
KSwgTW9ub3RvbmljVGltZTo6bm93KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlk
ZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCksIFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKQorICAgIDogV29ya2VyVGhyZWFkKGRhdGEuc2NyaXB0VVJMLCAic2Vy
dmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50
aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xl
dG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwg
RHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93
KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdz
OjpjcmVhdGVBbGxFbmFibGVkKCksIGRhdGEuc2Vzc2lvbklEKQogICAgICwgbV9kYXRhKGRhdGEu
aXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15U2VydmljZVdv
cmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuY3BwCmluZGV4IGY5ZTExMmYwNTU1NjAwZjcxNTFkYmZmOWJhNjZmMDY0ZDE4M2Q1Mjgu
LjI4NDE5MzBkODg0NDI5MDg0ZDIzOTRjNzc5NTVmYTJlMTU1YzMwOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtNDgsOSArNDgsMTEgQEAgVVJMIHN0YXRpYyBp
bmxpbmUgdG9wT3JpZ2luVVJMKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pCiAgICAgcmV0
dXJuIHVybDsKIH0KIAotc3RhdGljIGlubGluZSBVbmlxdWVSZWY8UGFnZT4gY3JlYXRlUGFnZUZv
clNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5KQorc3RhdGljIGlubGluZSBVbmlxdWVS
ZWY8UGFnZT4gY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5LCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgYXV0byBwYWdlID0gbWFrZVVuaXF1ZVJl
ZjxQYWdlPihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICBwYWdlLT5zZXRTZXNzaW9uSUQo
c2Vzc2lvbklEKTsKKwogICAgIGF1dG8mIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwog
ICAgIG1haW5GcmFtZS5sb2FkZXIoKS5pbml0Rm9yU3ludGhlc2l6ZWREb2N1bWVudCh7IH0pOwog
ICAgIGF1dG8gZG9jdW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRl
cigmbWFpbkZyYW1lLCBkYXRhLnNjcmlwdFVSTCk7CkBAIC04NCw3ICs4Niw3IEBAIHN0YXRpYyBI
YXNoU2V0PFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSo+JiBhbGxTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveGllcygpCiB9CiAKIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92
aWRlciwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tp
bmdQb2xpY3kpCi0gICAgOiBtX3BhZ2UoY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoV1RGTW92
ZShwYWdlQ29uZmlndXJhdGlvbiksIGRhdGEsIHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkpCisgICAg
OiBtX3BhZ2UoY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoV1RGTW92ZShwYWdlQ29uZmlndXJh
dGlvbiksIGRhdGEsIHN0b3JhZ2VCbG9ja2luZ1BvbGljeSwgZGF0YS5zZXNzaW9uSUQpKQogICAg
ICwgbV9kb2N1bWVudCgqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQogICAgICwgbV9z
ZXJ2aWNlV29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShkYXRhLCBzZXNz
aW9uSUQsIFdURk1vdmUodXNlckFnZW50KSwgKnRoaXMsICp0aGlzLCBpZGJDb25uZWN0aW9uUHJv
eHkobV9kb2N1bWVudCksIG1fZG9jdW1lbnQtPnNvY2tldFByb3ZpZGVyKCkpKQogICAgICwgbV9j
YWNoZVN0b3JhZ2VQcm92aWRlcihjYWNoZVN0b3JhZ2VQcm92aWRlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25E
YXRhYmFzZS5jcHAKaW5kZXggNmVlZDliNWE0Y2FmNDNmOTU0ZWE2ZWY5NzI3ZDRhNWMyMDIyMTQ3
OS4uZWIxYWFmMjFlNmNkMjhiOTg0YTI3MzY5Njc5YTQ2NDZkYjA1ZmZhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3Ry
YXRpb25EYXRhYmFzZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTUUxpdGVGaWxl
U3lzdGVtLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRl
VHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTV1NlcnZlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KQEAgLTM1NSw3ICszNTYsNyBAQCBTdHJpbmcgUmVnaXN0cmF0aW9u
RGF0YWJhc2U6OmltcG9ydFJlY29yZHMoKQogICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgPSBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXJUeXBlPigpOwogICAgICAgICBhdXRvIHNlcnZpY2VXb3JrZXJEYXRhID0gU2Vy
dmljZVdvcmtlckRhdGEgeyB3b3JrZXJJZGVudGlmaWVyLCBzY3JpcHRVUkwsIFNlcnZpY2VXb3Jr
ZXJTdGF0ZTo6QWN0aXZhdGVkLCAqd29ya2VyVHlwZSwgcmVnaXN0cmF0aW9uSWRlbnRpZmllciB9
OwogICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhIHsgV1RGTW92ZSgqa2V5KSwgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgVVJMKG9yaWdpblVS
TCwgc2NvcGVQYXRoKSwgKnVwZGF0ZVZpYUNhY2hlLCBsYXN0VXBkYXRlQ2hlY2tUaW1lLCBzdGQ6
Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShzZXJ2aWNlV29ya2VyRGF0YSkgfTsKLSAg
ICAgICAgYXV0byBjb250ZXh0RGF0YSA9IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7IHN0ZDo6
bnVsbG9wdCwgV1RGTW92ZShyZWdpc3RyYXRpb24pLCB3b3JrZXJJZGVudGlmaWVyLCBXVEZNb3Zl
KHNjcmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9saWN5KSwgV1RGTW92ZShzY3JpcHRV
UkwpLCAqd29ya2VyVHlwZSwgdHJ1ZSB9OworICAgICAgICBhdXRvIGNvbnRleHREYXRhID0gU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhIHsgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHJlZ2lzdHJhdGlv
biksIHdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUoc2NyaXB0KSwgV1RGTW92ZShjb250ZW50U2Vj
dXJpdHlQb2xpY3kpLCBXVEZNb3ZlKHNjcmlwdFVSTCksICp3b3JrZXJUeXBlLCBtX3N0b3JlLnNl
cnZlcigpLnNlc3Npb25JRCgpLCB0cnVlIH07CiAKICAgICAgICAgcG9zdFRhc2tSZXBseShjcmVh
dGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZSZWdpc3RyYXRpb25EYXRhYmFzZTo6YWRkUmVnaXN0
cmF0aW9uVG9TdG9yZSwgV1RGTW92ZShjb250ZXh0RGF0YSkpKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0
b3JlLmgKaW5kZXggMTMzNzlkOGFmNjliODIyMDEwMzQwN2M1ZTk4ZDcwYWZiMWY5ZGRkNS4uMjll
ODIxNGIzMDFjNjUzMjJhMzFiMTZlNWEwMzQ0NThlNDg1OWI5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUu
aApAQCAtNTksNiArNTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkYXRhYmFzZUZhaWxlZFRvT3Bl
bigpOwogICAgIHZvaWQgZGF0YWJhc2VPcGVuZWRBbmRSZWNvcmRzSW1wb3J0ZWQoKTsKIAorICAg
IFNXU2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsgfTsKKwogcHJpdmF0ZToKICAg
ICB2b2lkIHNjaGVkdWxlRGF0YWJhc2VQdXNoSWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIHB1c2hD
aGFuZ2VzVG9EYXRhYmFzZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmlu
ZGV4IDZjNjA1Nzg0ZTFkOGZlMGVjMDNjMDU2OTYzMjNlMTJkOGYwMGFjYmIuLjAwNzVmMDNkYTc4
MDVlNWYzMjI4NmU3NjY3Y2JmZjhiYWNjMzZlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC00OTIsNyArNDkyLDcgQEAg
dm9pZCBTV1NlcnZlcjo6cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBTZXIKIAogdm9pZCBTV1NlcnZlcjo6dXBkYXRlV29ya2VyKENv
bm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJ
ZGVudGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBXb3JrZXJUeXBlIHR5cGUpCiB7
Ci0gICAgdHJ5SW5zdGFsbENvbnRleHREYXRhKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJh
dGlvbi5kYXRhKCksIGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VySWRlbnRp
ZmllclR5cGU+KCksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB1cmwsIHR5cGUsIGZh
bHNlIH0pOworICAgIHRyeUluc3RhbGxDb250ZXh0RGF0YSh7IGpvYkRhdGFJZGVudGlmaWVyLCBy
ZWdpc3RyYXRpb24uZGF0YSgpLCBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtl
cklkZW50aWZpZXJUeXBlPigpLCBzY3JpcHQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgdXJsLCB0
eXBlLCBzZXNzaW9uSUQoKSwgZmFsc2UgfSk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnRyeUluc3Rh
bGxDb250ZXh0RGF0YShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBkYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmNwcAppbmRleCBlMWU2OTk3NGFmOWZhYzU1YThhNTAwNWU4MTk3MWU0ZGVjODU4YmUyLi45Njg4
MTFjOTBlMGFjODhiOWNlMzgzZjBiZjk4ODUwNTFiNDdhYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApA
QCAtNzMsNyArNzMsNyBAQCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgU1dTZXJ2ZXJXb3JrZXI6
OmNvbnRleHREYXRhKCkgY29uc3QKICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5n
ZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOwogICAgIEFTU0VSVChyZWdpc3RyYXRp
b24pOwogCi0gICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCByZWdpc3RyYXRpb24tPmRhdGEoKSwg
bV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9k
YXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUsIGZhbHNlIH07CisgICAgcmV0dXJuIHsgc3RkOjpu
dWxsb3B0LCByZWdpc3RyYXRpb24tPmRhdGEoKSwgbV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0
LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9kYXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUs
IG1fc2VydmVyLnNlc3Npb25JRCgpLCBmYWxzZSB9OwogfQogCiB2b2lkIFNXU2VydmVyV29ya2Vy
Ojp0ZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQ
cm9jZXNzLmNwcAppbmRleCA4MjFhMzE2MjQzNDA2Y2I2MDNiNWY2Zjc2ZTEyYTY3YTczNTkyYTQy
Li5lNTA3N2I0MmI2ZTBjMDNkY2JkOGU3Zjk4ZWNmYTgxNDYxMWRhZWMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzLmgiCiAK
KyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgpAQCAtMTM4LDYg
KzEzOSwxMSBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlcgogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpD
aGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBDaGlsZFByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHN3
Q29ubmVjdGlvbiA9IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Z2xvYmFsU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggODA2M2UzZjliZGNhZDA3ZjQ0YzJkNmU3N2FkZWU3ZWVlYjkzYWI2
NS4uYmQ3MjYzYjU0ZDg0MmE4OTAxYjdlNTk0YTIzZDkzZDEzNTgyNjA5NCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE4LTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2Vy
dmljZSB3b3JrZXJzIGRvIG5vdCB3b3JrIHdlbGwgaW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzc4NjQxNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisKIDIwMTgt
MDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBjdXJyZW50VGltZU1TKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KaW5kZXggMzQzZjk3OTdkNjcyMjcyNTljNzczNGI3Y2I2MzEzOTFlNzczYmQwNy4uNDVhYjNl
ZDlkZmFhZDUwYjEwY2ZlODhlYzRhZmI1OTk3ZWE4MGY1OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tFeHBl
cmltZW50YWxGZWF0dXJlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9EZXF1ZS5oPgogI2ltcG9ydCA8d3RmL0hhc2hN
YXAuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTM0Miw2ICszNDMsNTUgQEAgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJy9zdy5qcycpLnRoZW4oZnVuY3Rpb24ocmVn
KSB7CiA8L3NjcmlwdD4KIClTV1JFU09VUkNFIjsKIAorc3RhdGljIGNvbnN0IGNoYXIqIG1haW5C
eXRlc0ZvclNlc3Npb25JRFRlc3QgPSBSIlNXUkVTT1VSQ0UoCis8c2NyaXB0PgorCitmdW5jdGlv
biBsb2cobXNnKQoreworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnN3LnBvc3RN
ZXNzYWdlKG1zZyk7Cit9CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgeworICAgIGxvZyhldmVudC5kYXRhKTsKK30p
OworCit0cnkgeworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcignL3N3LmpzJyku
dGhlbihmdW5jdGlvbihyZWcpIHsKKyAgICB3b3JrZXIgPSByZWcuaW5zdGFsbGluZzsKKyAgICB3
b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgaWYgKHdvcmtlci5zdGF0ZSA9PSAnYWN0aXZhdGVkJykKKyAgICAgICAgICAgIHdvcmtlci5w
b3N0TWVzc2FnZSgiVEVTVCIpOworICAgIH0pOworfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsK
KyAgICBsb2coIlJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aDogIiArIGVycm9yKTsKK30pOworfSBj
YXRjaChlKSB7CisgICAgbG9nKCJFeGNlcHRpb246ICIgKyBlKTsKK30KKworPC9zY3JpcHQ+Cisp
U1dSRVNPVVJDRSI7CisKK3N0YXRpYyBjb25zdCBjaGFyKiBzY3JpcHRCeXRlc0ZvclNlc3Npb25J
RFRlc3QgPSBSIlNXUkVTT1VSQ0UoCisKK3ZhciB3YXNBY3RpdmF0ZWQgPSBmYWxzZTsKKworc2Vs
Zi5hZGRFdmVudExpc3RlbmVyKCJhY3RpdmF0ZSIsIGV2ZW50ID0+IHsKKyAgICBldmVudC53YWl0
VW50aWwoY2xpZW50cy5jbGFpbSgpLnRoZW4oICgpID0+IHsKKyAgICAgICAgd2FzQWN0aXZhdGVk
ID0gdHJ1ZTsKKyAgICB9KSk7Cit9KTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgKGV2ZW50KSA9PiB7CisgICAgaWYgKHdhc0FjdGl2YXRlZCAmJiByZWdpc3RyYXRpb24uYWN0
aXZlKQorICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIlBBU1M6IGFjdGl2YXRpb24g
c3VjY2Vzc2Z1bCIpOworICAgIGVsc2UKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdl
KCJGQUlMOiBmYWlsZWQgdG8gYWN0aXZhdGUiKTsKK30pOworCispU1dSRVNPVVJDRSI7CisKIFRF
U1QoU2VydmljZVdvcmtlcnMsIEJhc2ljKQogewogICAgIEFTU0VSVChtYWluQnl0ZXMpOwpAQCAt
OTI5LDYgKzk3OSw1NSBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uQml0KQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAorVEVTVChTZXJ2aWNlV29ya2Vy
cywgTm9uRGVmYXVsdFNlc3Npb25JRCkKK3sKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3JlIF9hbGxv
d1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgTlNVUkwgKnNlcnZpY2VX
b3JrZXJzUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9U
ZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL1NlcnZpY2VXb3JrZXJzLyIgc3RyaW5nQnlF
eHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBbW05TRmlsZU1hbmFn
ZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpzZXJ2aWNlV29ya2Vyc1BhdGggZXJy
b3I6bmlsXTsKKyAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XSBmaWxlRXhpc3RzQXRQYXRoOnNlcnZpY2VXb3JrZXJzUGF0aC5wYXRoXSk7CisgICAgTlNVUkwg
KmlkYlBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVz
dFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4cGFuZGlu
Z1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmlkYlBhdGggZXJyb3I6bmlsXTsKKyAgICBFWFBF
Q1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRo
OmlkYlBhdGgucGF0aF0pOworCisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFJldGFpblB0cjxfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4g
d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5nZXQoKS5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA9IHNl
cnZpY2VXb3JrZXJzUGF0aDsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQo
KS5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoOworCisgICAgY29uZmlndXJh
dGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gW1tbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXSBhdXRvcmVsZWFzZV07CisKKyAgICBSZXRhaW5QdHI8U1dNZXNzYWdlSGFuZGxlcldpdGhF
eHBlY3RlZE1lc3NhZ2U+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhhbmRs
ZXJXaXRoRXhwZWN0ZWRNZXNzYWdlIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9u
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhh
bmRsZXIuZ2V0KCkgbmFtZTpAInN3Il07CisKKyAgICBSZXRhaW5QdHI8U1dTY2hlbWVzPiBoYW5k
bGVyID0gYWRvcHROUyhbW1NXU2NoZW1lcyBhbGxvY10gaW5pdF0pOworICAgIGhhbmRsZXItPnJl
c291cmNlcy5zZXQoInN3Oi8vaG9zdC9tYWluLmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQv
aHRtbCIsIG1haW5CeXRlc0ZvclNlc3Npb25JRFRlc3QgfSk7CisgICAgaGFuZGxlci0+cmVzb3Vy
Y2VzLnNldCgic3c6Ly9ob3N0L3N3LmpzIiwgUmVzb3VyY2VJbmZvIHsgQCJhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0Iiwgc2NyaXB0Qnl0ZXNGb3JTZXNzaW9uSURUZXN0IH0pOworICAgIFtjb25maWd1
cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJT
VyJdOworCisgICAgZXhwZWN0ZWRNZXNzYWdlID0gIlBBU1M6IGFjdGl2YXRpb24gc3VjY2Vzc2Z1
bCI7CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcuZ2V0KCkuY29uZmln
dXJhdGlvbi5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vyc0Nhbkhh
bmRsZTpAInN3Il07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRt
bCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgd2ViVmll
dyA9IG51bGxwdHI7CisKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3Jl
IGZldGNoRGF0YVJlY29yZHNPZlR5cGVzOltOU1NldCBzZXRXaXRoT2JqZWN0OldLV2Vic2l0ZURh
dGFUeXBlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnNdIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNB
cnJheTxXS1dlYnNpdGVEYXRhUmVjb3JkICo+ICp3ZWJzaXRlRGF0YVJlY29yZHMpIHsKKyAgICAg
ICAgRVhQRUNUX0VRKDF1LCBbd2Vic2l0ZURhdGFSZWNvcmRzIGNvdW50XSk7CisgICAgICAgIEVY
UEVDVF9UUlVFKFt3ZWJzaXRlRGF0YVJlY29yZHNbMF0uZGlzcGxheU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOkAic3cgaG9zdCJdKTsKKworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQor
CiAjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334575</attachid>
            <date>2018-02-24 22:52:02 -0800</date>
            <delta_ts>2018-02-25 08:27:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183105-20180224225201.patch</filename>
            <type>text/plain</type>
            <size>21353</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ3OTBmMDgzNmMyMzM1
MmQ1MTIxZDMyNTczMmI4ZmM3YTVjNDc4Yi4uMDE4OTQ5MWQ2ZTJiMjg5OTVjZWJmNmQ5ZjI1MjMx
OTYyYzJhNDQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSB3b3JrZXJzIGRv
IG5vdCB3b3JrIHdlbGwgaW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc4
NjQxNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkgd2FzIGhhcmRjb2RlZCBpbiB0aGUgU2Vydmlj
ZVdvcmtlclRocmVhZCBjb25zdHJ1Y3RvcgorICAgICAgICBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBz
ZXNzaW9uSUQgb2YgdGhlIFNXU2VydmVyIHRoYXQgY3JlYXRlZCB0aGUgc2VydmljZSB3b3JrZXIg
dGhyZWFkLgorICAgICAgICBBcyBhIHJlc3VsdCwgd2hlbiB0aGUgU2VydmljZSBXb3JrZXIgd291
bGQgZXN0YWJsaXNoIGEgU1dDbGllbnRDb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBzZXJ2ZXIs
IGl0IHdvdWxkIHVzZSB0aGUgd3Jvbmcgc2Vzc2lvbklEIGFuZCB3b3VsZCBlbmQgdXAgdXNpbmcg
YSBkaWZmZXJlbnQgU1dTZXJ2ZXIKKyAgICAgICAgKFNpbmNlIHdlIGhhdmUgYSBkaWZmZXJlbnQg
U1dTZXJ2ZXIgaW5zdGFuY2UgcGVyIHNlc3Npb25JRCkuIEFzIGEgcmVzdWx0LAorICAgICAgICBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIC8gU2VydmljZVdvcmtlciBvYmplY3RzIGluc2lkZSB0
aGUgc2VydmljZSB3b3JrZXIgd291bGQgbm90CisgICAgICAgIGJlIGtlcHQgaW4gc3luYyB3aXRo
IHRoZSBzZXJ2ZXIgKHNpbmNlIHRoZXkgcmVnaXN0ZXJlZCB0aGVtc2VsdmVzIHdpdGggdGhlIHdy
b25nCisgICAgICAgIFNXU2VydmVyKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVz
dC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhOjppc29sYXRl
ZENvcHkgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNl
cnZpY2VXb3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYWdl
Rm9yU2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVn
aXN0cmF0aW9uU3RvcmU6OnNlcnZlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dXBkYXRlV29ya2Vy
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpjb250ZXh0RGF0YSBjb25zdCk6CisK
IDIwMTgtMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBD
cmFzaCB1bmRlciBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKFdU
Rjo6U3RyaW5nIGNvbnN0JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODQwMDdlN2NhMWNiYThlMjFlZmI4YjZiODJh
Njg3Mjk2MmQxZTE1MS4uYjhhZTdmMzNlMGFlNDYwYWQ3MmJjNzRmMzhmNWYxYjM0MThmZGYxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wMi0yNCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2Ugd29ya2VycyBkbyBub3Qgd29yayB3ZWxs
IGluc2lkZSBXZWIuYXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODMxMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3ODY0MTQwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICBXZSB3ZXJlIGZhaWxlZCB0byBmb3J3YXJkIElQ
QyBtZXNzYWdlcyB0byB0aGUgQ2hpbGRQcm9jZXNzIGNsYXNzIGhlcmUuIEFzIGEgcmVzdWx0LAor
ICAgICAgICB0aGUgQ2hpbGRQcm9jZXNzOjpSZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJz
Q2FuSGFuZGxlIElQQyB3YXMgYmVpbmcgaWdub3JlZAorICAgICAgICBieSB0aGUgU3RvcmFnZVBy
b2Nlc3MuCisKIDIwMTgtMDItMjQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgV1BFIGJyZWFrYWdlIGZpeC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YS5jcHAKaW5kZXggNGM0YmYyMzY0Y2U0Y2YxMjUzODU4NjhiOTg1ZjhiN2ViMDE4ZDdlYi4uY2Qw
OWE5N2M5NDc5NzdmMzNmODdlN2Q5NmY5ODY1ZGJhNDBlYjAxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjppc29sYXRlZENvcHkoKSBj
b25zdAogewotICAgIHJldHVybiB7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNv
bGF0ZWRDb3B5KCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5
KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeS5pc29sYXRlZENvcHkoKSwgc2NyaXB0VVJMLmlzb2xh
dGVkQ29weSgpLCB3b3JrZXJUeXBlLCBsb2FkZWRGcm9tRGlzayB9OworICAgIHJldHVybiB7IGpv
YkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNvbGF0ZWRDb3B5KCksIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRTZWN1cml0eVBvbGlj
eS5pc29sYXRlZENvcHkoKSwgc2NyaXB0VVJMLmlzb2xhdGVkQ29weSgpLCB3b3JrZXJUeXBlLCBz
ZXNzaW9uSUQsIGxvYWRlZEZyb21EaXNrIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEuaAppbmRleCBmNWEzZTA5MTY5MmE1OTA4NTRlZWQ5MWJlNWU0MzUxYjBi
NzY0NTcwLi5iOTNkOTIyMTYyZTBhYzc5NGExZTc1MmJiOWFiZTRjMWFhMzFiOWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBl
LmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQogCkBAIC00NCw2ICs0NSw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEg
ewogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyBjb250ZW50U2VjdXJp
dHlQb2xpY3k7CiAgICAgVVJMIHNjcmlwdFVSTDsKICAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7
CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIGJvb2wgbG9hZGVkRnJvbURpc2s7
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CkBAIC01NSw3ICs1Nyw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgewog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGpvYkRhdGFJ
ZGVudGlmaWVyIDw8IHJlZ2lzdHJhdGlvbiA8PCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA8PCBz
Y3JpcHQgPDwgY29udGVudFNlY3VyaXR5UG9saWN5IDw8IHNjcmlwdFVSTCA8PCB3b3JrZXJUeXBl
IDw8IGxvYWRlZEZyb21EaXNrOworICAgIGVuY29kZXIgPDwgam9iRGF0YUlkZW50aWZpZXIgPDwg
cmVnaXN0cmF0aW9uIDw8IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIDw8IHNjcmlwdCA8PCBjb250
ZW50U2VjdXJpdHlQb2xpY3kgPDwgc2NyaXB0VVJMIDw8IHdvcmtlclR5cGUgPDwgc2Vzc2lvbklE
IDw8IGxvYWRlZEZyb21EaXNrOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtOTEs
MTEgKzkzLDE1IEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE6OmRlY29kZShEZWNvZGVyCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUVudW0od29ya2VyVHlwZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZXNz
aW9uSUQpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAgYm9vbCBsb2FkZWRG
cm9tRGlzazsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxvYWRlZEZyb21EaXNrKSkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpqb2JEYXRh
SWRlbnRpZmllciksIFdURk1vdmUoKnJlZ2lzdHJhdGlvbiksIFdURk1vdmUoKnNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSwgV1RGTW92ZShzY3JpcHQpLCBXVEZNb3ZlKGNvbnRlbnRTZWN1cml0eVBv
bGljeSksIFdURk1vdmUoc2NyaXB0VVJMKSwgd29ya2VyVHlwZSwgbG9hZGVkRnJvbURpc2sgfX07
CisgICAgcmV0dXJuIHt7IFdURk1vdmUoKmpvYkRhdGFJZGVudGlmaWVyKSwgV1RGTW92ZSgqcmVn
aXN0cmF0aW9uKSwgV1RGTW92ZSgqc2VydmljZVdvcmtlcklkZW50aWZpZXIpLCBXVEZNb3ZlKHNj
cmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9saWN5KSwgV1RGTW92ZShzY3JpcHRVUkwp
LCB3b3JrZXJUeXBlLCBzZXNzaW9uSUQsIGxvYWRlZEZyb21EaXNrIH19OwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDY1NDNhMWY4
MDFhZjYxMjBmNTM3OGNmNjY3ZTQ2NDVhNTA2NzIxNzMuLmY5ODAzNGU0N2VlZTk3MTBkMGJjNzlk
MGIwY2NmYWRkZjUxNmRhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC03MSw3
ICs3MSw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxhZ3MKIAog
U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQs
IFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVi
dWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Q
cm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDogV29ya2VyVGhyZWFk
KGRhdGEuc2NyaXB0VVJMLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVy
c0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3b3Jr
U3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2FkZXJQ
cm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJl
ZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250ZW50U2VjdXJpdHlQ
b2xpY3ksIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQo
KSwgTW9ub3RvbmljVGltZTo6bm93KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlk
ZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCksIFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKQorICAgIDogV29ya2VyVGhyZWFkKGRhdGEuc2NyaXB0VVJMLCAic2Vy
dmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50
aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xl
dG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwg
RHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93
KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdz
OjpjcmVhdGVBbGxFbmFibGVkKCksIGRhdGEuc2Vzc2lvbklEKQogICAgICwgbV9kYXRhKGRhdGEu
aXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15U2VydmljZVdv
cmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuY3BwCmluZGV4IGY5ZTExMmYwNTU1NjAwZjcxNTFkYmZmOWJhNjZmMDY0ZDE4M2Q1Mjgu
LjI4NDE5MzBkODg0NDI5MDg0ZDIzOTRjNzc5NTVmYTJlMTU1YzMwOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtNDgsOSArNDgsMTEgQEAgVVJMIHN0YXRpYyBp
bmxpbmUgdG9wT3JpZ2luVVJMKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pCiAgICAgcmV0
dXJuIHVybDsKIH0KIAotc3RhdGljIGlubGluZSBVbmlxdWVSZWY8UGFnZT4gY3JlYXRlUGFnZUZv
clNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5KQorc3RhdGljIGlubGluZSBVbmlxdWVS
ZWY8UGFnZT4gY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5LCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgYXV0byBwYWdlID0gbWFrZVVuaXF1ZVJl
ZjxQYWdlPihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICBwYWdlLT5zZXRTZXNzaW9uSUQo
c2Vzc2lvbklEKTsKKwogICAgIGF1dG8mIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwog
ICAgIG1haW5GcmFtZS5sb2FkZXIoKS5pbml0Rm9yU3ludGhlc2l6ZWREb2N1bWVudCh7IH0pOwog
ICAgIGF1dG8gZG9jdW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRl
cigmbWFpbkZyYW1lLCBkYXRhLnNjcmlwdFVSTCk7CkBAIC04NCw3ICs4Niw3IEBAIHN0YXRpYyBI
YXNoU2V0PFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSo+JiBhbGxTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveGllcygpCiB9CiAKIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92
aWRlciwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tp
bmdQb2xpY3kpCi0gICAgOiBtX3BhZ2UoY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoV1RGTW92
ZShwYWdlQ29uZmlndXJhdGlvbiksIGRhdGEsIHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkpCisgICAg
OiBtX3BhZ2UoY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoV1RGTW92ZShwYWdlQ29uZmlndXJh
dGlvbiksIGRhdGEsIHN0b3JhZ2VCbG9ja2luZ1BvbGljeSwgZGF0YS5zZXNzaW9uSUQpKQogICAg
ICwgbV9kb2N1bWVudCgqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQogICAgICwgbV9z
ZXJ2aWNlV29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShkYXRhLCBzZXNz
aW9uSUQsIFdURk1vdmUodXNlckFnZW50KSwgKnRoaXMsICp0aGlzLCBpZGJDb25uZWN0aW9uUHJv
eHkobV9kb2N1bWVudCksIG1fZG9jdW1lbnQtPnNvY2tldFByb3ZpZGVyKCkpKQogICAgICwgbV9j
YWNoZVN0b3JhZ2VQcm92aWRlcihjYWNoZVN0b3JhZ2VQcm92aWRlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25E
YXRhYmFzZS5jcHAKaW5kZXggNmVlZDliNWE0Y2FmNDNmOTU0ZWE2ZWY5NzI3ZDRhNWMyMDIyMTQ3
OS4uZWIxYWFmMjFlNmNkMjhiOTg0YTI3MzY5Njc5YTQ2NDZkYjA1ZmZhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3Ry
YXRpb25EYXRhYmFzZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTUUxpdGVGaWxl
U3lzdGVtLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRl
VHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTV1NlcnZlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KQEAgLTM1NSw3ICszNTYsNyBAQCBTdHJpbmcgUmVnaXN0cmF0aW9u
RGF0YWJhc2U6OmltcG9ydFJlY29yZHMoKQogICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgPSBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXJUeXBlPigpOwogICAgICAgICBhdXRvIHNlcnZpY2VXb3JrZXJEYXRhID0gU2Vy
dmljZVdvcmtlckRhdGEgeyB3b3JrZXJJZGVudGlmaWVyLCBzY3JpcHRVUkwsIFNlcnZpY2VXb3Jr
ZXJTdGF0ZTo6QWN0aXZhdGVkLCAqd29ya2VyVHlwZSwgcmVnaXN0cmF0aW9uSWRlbnRpZmllciB9
OwogICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhIHsgV1RGTW92ZSgqa2V5KSwgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgVVJMKG9yaWdpblVS
TCwgc2NvcGVQYXRoKSwgKnVwZGF0ZVZpYUNhY2hlLCBsYXN0VXBkYXRlQ2hlY2tUaW1lLCBzdGQ6
Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShzZXJ2aWNlV29ya2VyRGF0YSkgfTsKLSAg
ICAgICAgYXV0byBjb250ZXh0RGF0YSA9IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7IHN0ZDo6
bnVsbG9wdCwgV1RGTW92ZShyZWdpc3RyYXRpb24pLCB3b3JrZXJJZGVudGlmaWVyLCBXVEZNb3Zl
KHNjcmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9saWN5KSwgV1RGTW92ZShzY3JpcHRV
UkwpLCAqd29ya2VyVHlwZSwgdHJ1ZSB9OworICAgICAgICBhdXRvIGNvbnRleHREYXRhID0gU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhIHsgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHJlZ2lzdHJhdGlv
biksIHdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUoc2NyaXB0KSwgV1RGTW92ZShjb250ZW50U2Vj
dXJpdHlQb2xpY3kpLCBXVEZNb3ZlKHNjcmlwdFVSTCksICp3b3JrZXJUeXBlLCBtX3N0b3JlLnNl
cnZlcigpLnNlc3Npb25JRCgpLCB0cnVlIH07CiAKICAgICAgICAgcG9zdFRhc2tSZXBseShjcmVh
dGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZSZWdpc3RyYXRpb25EYXRhYmFzZTo6YWRkUmVnaXN0
cmF0aW9uVG9TdG9yZSwgV1RGTW92ZShjb250ZXh0RGF0YSkpKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0
b3JlLmgKaW5kZXggMTMzNzlkOGFmNjliODIyMDEwMzQwN2M1ZTk4ZDcwYWZiMWY5ZGRkNS4uMjll
ODIxNGIzMDFjNjUzMjJhMzFiMTZlNWEwMzQ0NThlNDg1OWI5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUu
aApAQCAtNTksNiArNTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkYXRhYmFzZUZhaWxlZFRvT3Bl
bigpOwogICAgIHZvaWQgZGF0YWJhc2VPcGVuZWRBbmRSZWNvcmRzSW1wb3J0ZWQoKTsKIAorICAg
IFNXU2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsgfTsKKwogcHJpdmF0ZToKICAg
ICB2b2lkIHNjaGVkdWxlRGF0YWJhc2VQdXNoSWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIHB1c2hD
aGFuZ2VzVG9EYXRhYmFzZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmlu
ZGV4IDZjNjA1Nzg0ZTFkOGZlMGVjMDNjMDU2OTYzMjNlMTJkOGYwMGFjYmIuLjAwNzVmMDNkYTc4
MDVlNWYzMjI4NmU3NjY3Y2JmZjhiYWNjMzZlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC00OTIsNyArNDkyLDcgQEAg
dm9pZCBTV1NlcnZlcjo6cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBTZXIKIAogdm9pZCBTV1NlcnZlcjo6dXBkYXRlV29ya2VyKENv
bm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJ
ZGVudGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBXb3JrZXJUeXBlIHR5cGUpCiB7
Ci0gICAgdHJ5SW5zdGFsbENvbnRleHREYXRhKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJh
dGlvbi5kYXRhKCksIGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VySWRlbnRp
ZmllclR5cGU+KCksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB1cmwsIHR5cGUsIGZh
bHNlIH0pOworICAgIHRyeUluc3RhbGxDb250ZXh0RGF0YSh7IGpvYkRhdGFJZGVudGlmaWVyLCBy
ZWdpc3RyYXRpb24uZGF0YSgpLCBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtl
cklkZW50aWZpZXJUeXBlPigpLCBzY3JpcHQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgdXJsLCB0
eXBlLCBzZXNzaW9uSUQoKSwgZmFsc2UgfSk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnRyeUluc3Rh
bGxDb250ZXh0RGF0YShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBkYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmNwcAppbmRleCBlMWU2OTk3NGFmOWZhYzU1YThhNTAwNWU4MTk3MWU0ZGVjODU4YmUyLi45Njg4
MTFjOTBlMGFjODhiOWNlMzgzZjBiZjk4ODUwNTFiNDdhYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApA
QCAtNzMsNyArNzMsNyBAQCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgU1dTZXJ2ZXJXb3JrZXI6
OmNvbnRleHREYXRhKCkgY29uc3QKICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5n
ZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOwogICAgIEFTU0VSVChyZWdpc3RyYXRp
b24pOwogCi0gICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCByZWdpc3RyYXRpb24tPmRhdGEoKSwg
bV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9k
YXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUsIGZhbHNlIH07CisgICAgcmV0dXJuIHsgc3RkOjpu
dWxsb3B0LCByZWdpc3RyYXRpb24tPmRhdGEoKSwgbV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0
LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9kYXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUs
IG1fc2VydmVyLnNlc3Npb25JRCgpLCBmYWxzZSB9OwogfQogCiB2b2lkIFNXU2VydmVyV29ya2Vy
Ojp0ZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQ
cm9jZXNzLmNwcAppbmRleCA4MjFhMzE2MjQzNDA2Y2I2MDNiNWY2Zjc2ZTEyYTY3YTczNTkyYTQy
Li5lNTA3N2I0MmI2ZTBjMDNkY2JkOGU3Zjk4ZWNmYTgxNDYxMWRhZWMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzLmgiCiAK
KyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgpAQCAtMTM4LDYg
KzEzOSwxMSBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlcgogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpD
aGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBDaGlsZFByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHN3
Q29ubmVjdGlvbiA9IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Z2xvYmFsU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggODA2M2UzZjliZGNhZDA3ZjQ0YzJkNmU3N2FkZWU3ZWVlYjkzYWI2
NS4uYmQ3MjYzYjU0ZDg0MmE4OTAxYjdlNTk0YTIzZDkzZDEzNTgyNjA5NCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE4LTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2Vy
dmljZSB3b3JrZXJzIGRvIG5vdCB3b3JrIHdlbGwgaW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzc4NjQxNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisKIDIwMTgt
MDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBjdXJyZW50VGltZU1TKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KaW5kZXggMzQzZjk3OTdkNjcyMjcyNTljNzczNGI3Y2I2MzEzOTFlNzczYmQwNy4uZGNiODQw
NzQ4MGMwNDdjZDg1YzhlNWU0NzA4OWNiZjI2NjNkN2QyYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tFeHBl
cmltZW50YWxGZWF0dXJlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9EZXF1ZS5oPgogI2ltcG9ydCA8d3RmL0hhc2hN
YXAuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTM0Miw2ICszNDMsNTUgQEAgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJy9zdy5qcycpLnRoZW4oZnVuY3Rpb24ocmVn
KSB7CiA8L3NjcmlwdD4KIClTV1JFU09VUkNFIjsKIAorc3RhdGljIGNvbnN0IGNoYXIqIG1haW5C
eXRlc0ZvclNlc3Npb25JRFRlc3QgPSBSIlNXUkVTT1VSQ0UoCis8c2NyaXB0PgorCitmdW5jdGlv
biBsb2cobXNnKQoreworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnN3LnBvc3RN
ZXNzYWdlKG1zZyk7Cit9CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgeworICAgIGxvZyhldmVudC5kYXRhKTsKK30p
OworCit0cnkgeworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcignL3N3LmpzJyku
dGhlbihmdW5jdGlvbihyZWcpIHsKKyAgICB3b3JrZXIgPSByZWcuaW5zdGFsbGluZzsKKyAgICB3
b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgaWYgKHdvcmtlci5zdGF0ZSA9PSAnYWN0aXZhdGVkJykKKyAgICAgICAgICAgIHdvcmtlci5w
b3N0TWVzc2FnZSgiVEVTVCIpOworICAgIH0pOworfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsK
KyAgICBsb2coIlJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aDogIiArIGVycm9yKTsKK30pOworfSBj
YXRjaChlKSB7CisgICAgbG9nKCJFeGNlcHRpb246ICIgKyBlKTsKK30KKworPC9zY3JpcHQ+Cisp
U1dSRVNPVVJDRSI7CisKK3N0YXRpYyBjb25zdCBjaGFyKiBzY3JpcHRCeXRlc0ZvclNlc3Npb25J
RFRlc3QgPSBSIlNXUkVTT1VSQ0UoCisKK3ZhciB3YXNBY3RpdmF0ZWQgPSBmYWxzZTsKKworc2Vs
Zi5hZGRFdmVudExpc3RlbmVyKCJhY3RpdmF0ZSIsIGV2ZW50ID0+IHsKKyAgICBldmVudC53YWl0
VW50aWwoY2xpZW50cy5jbGFpbSgpLnRoZW4oICgpID0+IHsKKyAgICAgICAgd2FzQWN0aXZhdGVk
ID0gdHJ1ZTsKKyAgICB9KSk7Cit9KTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgKGV2ZW50KSA9PiB7CisgICAgaWYgKHdhc0FjdGl2YXRlZCAmJiByZWdpc3RyYXRpb24uYWN0
aXZlKQorICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIlBBU1M6IGFjdGl2YXRpb24g
c3VjY2Vzc2Z1bCIpOworICAgIGVsc2UKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdl
KCJGQUlMOiBmYWlsZWQgdG8gYWN0aXZhdGUiKTsKK30pOworCispU1dSRVNPVVJDRSI7CisKIFRF
U1QoU2VydmljZVdvcmtlcnMsIEJhc2ljKQogewogICAgIEFTU0VSVChtYWluQnl0ZXMpOwpAQCAt
OTI5LDYgKzk3OSw1NyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uQml0KQogICAgIGRvbmUgPSBmYWxzZTsKIH0KIAorVEVTVChTZXJ2aWNlV29ya2Vy
cywgTm9uRGVmYXVsdFNlc3Npb25JRCkKK3sKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3JlIF9hbGxv
d1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgTlNVUkwgKnNlcnZpY2VX
b3JrZXJzUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9U
ZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL1NlcnZpY2VXb3JrZXJzLyIgc3RyaW5nQnlF
eHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBbW05TRmlsZU1hbmFn
ZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpzZXJ2aWNlV29ya2Vyc1BhdGggZXJy
b3I6bmlsXTsKKyAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XSBmaWxlRXhpc3RzQXRQYXRoOnNlcnZpY2VXb3JrZXJzUGF0aC5wYXRoXSk7CisgICAgTlNVUkwg
KmlkYlBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvVGVz
dFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4cGFuZGlu
Z1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmlkYlBhdGggZXJyb3I6bmlsXTsKKyAgICBFWFBF
Q1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRo
OmlkYlBhdGgucGF0aF0pOworCisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFJldGFpblB0cjxfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4g
d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbi5nZXQoKS5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA9IHNl
cnZpY2VXb3JrZXJzUGF0aDsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQo
KS5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoOworCisgICAgY29uZmlndXJh
dGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gW1tbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXSBhdXRvcmVsZWFzZV07CisKKyAgICBSZXRhaW5QdHI8U1dNZXNzYWdlSGFuZGxlcldpdGhF
eHBlY3RlZE1lc3NhZ2U+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhhbmRs
ZXJXaXRoRXhwZWN0ZWRNZXNzYWdlIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9u
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhh
bmRsZXIuZ2V0KCkgbmFtZTpAInN3Il07CisKKyAgICBSZXRhaW5QdHI8U1dTY2hlbWVzPiBoYW5k
bGVyID0gYWRvcHROUyhbW1NXU2NoZW1lcyBhbGxvY10gaW5pdF0pOworICAgIGhhbmRsZXItPnJl
c291cmNlcy5zZXQoInN3Oi8vaG9zdC9tYWluLmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQv
aHRtbCIsIG1haW5CeXRlc0ZvclNlc3Npb25JRFRlc3QgfSk7CisgICAgaGFuZGxlci0+cmVzb3Vy
Y2VzLnNldCgic3c6Ly9ob3N0L3N3LmpzIiwgUmVzb3VyY2VJbmZvIHsgQCJhcHBsaWNhdGlvbi9q
YXZhc2NyaXB0Iiwgc2NyaXB0Qnl0ZXNGb3JTZXNzaW9uSURUZXN0IH0pOworICAgIFtjb25maWd1
cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJT
VyJdOworCisgICAgZXhwZWN0ZWRNZXNzYWdlID0gIlBBU1M6IGFjdGl2YXRpb24gc3VjY2Vzc2Z1
bCI7CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcuZ2V0KCkuY29uZmln
dXJhdGlvbi5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vyc0Nhbkhh
bmRsZTpAInN3Il07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0
IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRt
bCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgd2ViVmll
dyA9IG51bGxwdHI7CisKKyAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1h
bmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6c2VydmljZVdvcmtlcnNQYXRoLnBhdGhdKTsKKworICAg
IFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgZmV0Y2hEYXRhUmVjb3Jkc09m
VHlwZXM6W05TU2V0IHNldFdpdGhPYmplY3Q6V0tXZWJzaXRlRGF0YVR5cGVTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uc10gY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFS
ZWNvcmQgKj4gKndlYnNpdGVEYXRhUmVjb3JkcykgeworICAgICAgICBFWFBFQ1RfRVEoMXUsIFt3
ZWJzaXRlRGF0YVJlY29yZHMgY291bnRdKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3dlYnNpdGVE
YXRhUmVjb3Jkc1swXS5kaXNwbGF5TmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJzdyBob3N0Il0pOwor
CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7Cit9CisKICNlbmRpZiAvLyBXS19IQVZF
X0NfU1BJCiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334579</attachid>
            <date>2018-02-25 08:27:35 -0800</date>
            <delta_ts>2018-02-25 10:13:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183105-20180225082735.patch</filename>
            <type>text/plain</type>
            <size>21391</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ3OTBmMDgzNmMyMzM1
MmQ1MTIxZDMyNTczMmI4ZmM3YTVjNDc4Yi4uMDE4OTQ5MWQ2ZTJiMjg5OTVjZWJmNmQ5ZjI1MjMx
OTYyYzJhNDQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSB3b3JrZXJzIGRv
IG5vdCB3b3JrIHdlbGwgaW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc4
NjQxNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkgd2FzIGhhcmRjb2RlZCBpbiB0aGUgU2Vydmlj
ZVdvcmtlclRocmVhZCBjb25zdHJ1Y3RvcgorICAgICAgICBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBz
ZXNzaW9uSUQgb2YgdGhlIFNXU2VydmVyIHRoYXQgY3JlYXRlZCB0aGUgc2VydmljZSB3b3JrZXIg
dGhyZWFkLgorICAgICAgICBBcyBhIHJlc3VsdCwgd2hlbiB0aGUgU2VydmljZSBXb3JrZXIgd291
bGQgZXN0YWJsaXNoIGEgU1dDbGllbnRDb25uZWN0aW9uIHRvIHRoZQorICAgICAgICBzZXJ2ZXIs
IGl0IHdvdWxkIHVzZSB0aGUgd3Jvbmcgc2Vzc2lvbklEIGFuZCB3b3VsZCBlbmQgdXAgdXNpbmcg
YSBkaWZmZXJlbnQgU1dTZXJ2ZXIKKyAgICAgICAgKFNpbmNlIHdlIGhhdmUgYSBkaWZmZXJlbnQg
U1dTZXJ2ZXIgaW5zdGFuY2UgcGVyIHNlc3Npb25JRCkuIEFzIGEgcmVzdWx0LAorICAgICAgICBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIC8gU2VydmljZVdvcmtlciBvYmplY3RzIGluc2lkZSB0
aGUgc2VydmljZSB3b3JrZXIgd291bGQgbm90CisgICAgICAgIGJlIGtlcHQgaW4gc3luYyB3aXRo
IHRoZSBzZXJ2ZXIgKHNpbmNlIHRoZXkgcmVnaXN0ZXJlZCB0aGVtc2VsdmVzIHdpdGggdGhlIHdy
b25nCisgICAgICAgIFNXU2VydmVyKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVz
dC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhOjppc29sYXRl
ZENvcHkgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNl
cnZpY2VXb3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYWdl
Rm9yU2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVn
aXN0cmF0aW9uU3RvcmU6OnNlcnZlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dXBkYXRlV29ya2Vy
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpjb250ZXh0RGF0YSBjb25zdCk6CisK
IDIwMTgtMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBD
cmFzaCB1bmRlciBTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKFdU
Rjo6U3RyaW5nIGNvbnN0JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggODQwMDdlN2NhMWNiYThlMjFlZmI4YjZiODJh
Njg3Mjk2MmQxZTE1MS4uYjhhZTdmMzNlMGFlNDYwYWQ3MmJjNzRmMzhmNWYxYjM0MThmZGYxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wMi0yNCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2Ugd29ya2VycyBkbyBub3Qgd29yayB3ZWxs
IGluc2lkZSBXZWIuYXBwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODMxMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM3ODY0MTQwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICBXZSB3ZXJlIGZhaWxlZCB0byBmb3J3YXJkIElQ
QyBtZXNzYWdlcyB0byB0aGUgQ2hpbGRQcm9jZXNzIGNsYXNzIGhlcmUuIEFzIGEgcmVzdWx0LAor
ICAgICAgICB0aGUgQ2hpbGRQcm9jZXNzOjpSZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJz
Q2FuSGFuZGxlIElQQyB3YXMgYmVpbmcgaWdub3JlZAorICAgICAgICBieSB0aGUgU3RvcmFnZVBy
b2Nlc3MuCisKIDIwMTgtMDItMjQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgV1BFIGJyZWFrYWdlIGZpeC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YS5jcHAKaW5kZXggNGM0YmYyMzY0Y2U0Y2YxMjUzODU4NjhiOTg1ZjhiN2ViMDE4ZDdlYi4uY2Qw
OWE5N2M5NDc5NzdmMzNmODdlN2Q5NmY5ODY1ZGJhNDBlYjAxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjppc29sYXRlZENvcHkoKSBj
b25zdAogewotICAgIHJldHVybiB7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNv
bGF0ZWRDb3B5KCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5
KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeS5pc29sYXRlZENvcHkoKSwgc2NyaXB0VVJMLmlzb2xh
dGVkQ29weSgpLCB3b3JrZXJUeXBlLCBsb2FkZWRGcm9tRGlzayB9OworICAgIHJldHVybiB7IGpv
YkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNvbGF0ZWRDb3B5KCksIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRTZWN1cml0eVBvbGlj
eS5pc29sYXRlZENvcHkoKSwgc2NyaXB0VVJMLmlzb2xhdGVkQ29weSgpLCB3b3JrZXJUeXBlLCBz
ZXNzaW9uSUQsIGxvYWRlZEZyb21EaXNrIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEuaAppbmRleCBmNWEzZTA5MTY5MmE1OTA4NTRlZWQ5MWJlNWU0MzUxYjBi
NzY0NTcwLi5iOTNkOTIyMTYyZTBhYzc5NGExZTc1MmJiOWFiZTRjMWFhMzFiOWQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBl
LmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQogCkBAIC00NCw2ICs0NSw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEg
ewogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyBjb250ZW50U2VjdXJp
dHlQb2xpY3k7CiAgICAgVVJMIHNjcmlwdFVSTDsKICAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7
CisgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIGJvb2wgbG9hZGVkRnJvbURpc2s7
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CkBAIC01NSw3ICs1Nyw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgewog
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGpvYkRhdGFJ
ZGVudGlmaWVyIDw8IHJlZ2lzdHJhdGlvbiA8PCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA8PCBz
Y3JpcHQgPDwgY29udGVudFNlY3VyaXR5UG9saWN5IDw8IHNjcmlwdFVSTCA8PCB3b3JrZXJUeXBl
IDw8IGxvYWRlZEZyb21EaXNrOworICAgIGVuY29kZXIgPDwgam9iRGF0YUlkZW50aWZpZXIgPDwg
cmVnaXN0cmF0aW9uIDw8IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIDw8IHNjcmlwdCA8PCBjb250
ZW50U2VjdXJpdHlQb2xpY3kgPDwgc2NyaXB0VVJMIDw8IHdvcmtlclR5cGUgPDwgc2Vzc2lvbklE
IDw8IGxvYWRlZEZyb21EaXNrOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtOTEs
MTEgKzkzLDE1IEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE6OmRlY29kZShEZWNvZGVyCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUVudW0od29ya2VyVHlwZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKKyAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzZXNz
aW9uSUQpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAgYm9vbCBsb2FkZWRG
cm9tRGlzazsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGxvYWRlZEZyb21EaXNrKSkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpqb2JEYXRh
SWRlbnRpZmllciksIFdURk1vdmUoKnJlZ2lzdHJhdGlvbiksIFdURk1vdmUoKnNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSwgV1RGTW92ZShzY3JpcHQpLCBXVEZNb3ZlKGNvbnRlbnRTZWN1cml0eVBv
bGljeSksIFdURk1vdmUoc2NyaXB0VVJMKSwgd29ya2VyVHlwZSwgbG9hZGVkRnJvbURpc2sgfX07
CisgICAgcmV0dXJuIHt7IFdURk1vdmUoKmpvYkRhdGFJZGVudGlmaWVyKSwgV1RGTW92ZSgqcmVn
aXN0cmF0aW9uKSwgV1RGTW92ZSgqc2VydmljZVdvcmtlcklkZW50aWZpZXIpLCBXVEZNb3ZlKHNj
cmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9saWN5KSwgV1RGTW92ZShzY3JpcHRVUkwp
LCB3b3JrZXJUeXBlLCBzZXNzaW9uSUQsIGxvYWRlZEZyb21EaXNrIH19OwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDY1NDNhMWY4
MDFhZjYxMjBmNTM3OGNmNjY3ZTQ2NDVhNTA2NzIxNzMuLmY5ODAzNGU0N2VlZTk3MTBkMGJjNzlk
MGIwY2NmYWRkZjUxNmRhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC03MSw3
ICs3MSw3IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxhZ3MKIAog
U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQs
IFdvcmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVi
dWdnZXJQcm94eSwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Q
cm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyKQotICAgIDogV29ya2VyVGhyZWFk
KGRhdGEuc2NyaXB0VVJMLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVy
c0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3b3Jr
U3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2FkZXJQ
cm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJl
ZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250ZW50U2VjdXJpdHlQ
b2xpY3ksIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQo
KSwgTW9ub3RvbmljVGltZTo6bm93KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlk
ZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCksIFNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpKQorICAgIDogV29ya2VyVGhyZWFkKGRhdGEuc2NyaXB0VVJMLCAic2Vy
dmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50
aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xl
dG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwg
RHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGU6Ok5vcm1hbCwgZGF0YS5jb250ZW50U2VjdXJpdHlQb2xpY3ksIGZhbHNlLCBTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93
KCksIGlkYkNvbm5lY3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdz
OjpjcmVhdGVBbGxFbmFibGVkKCksIGRhdGEuc2Vzc2lvbklEKQogICAgICwgbV9kYXRhKGRhdGEu
aXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KER1bW15U2VydmljZVdv
cmtlclRocmVhZFByb3h5OjpzaGFyZWQoKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuY3BwCmluZGV4IGY5ZTExMmYwNTU1NjAwZjcxNTFkYmZmOWJhNjZmMDY0ZDE4M2Q1Mjgu
LjI4NDE5MzBkODg0NDI5MDg0ZDIzOTRjNzc5NTVmYTJlMTU1YzMwOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtNDgsOSArNDgsMTEgQEAgVVJMIHN0YXRpYyBp
bmxpbmUgdG9wT3JpZ2luVVJMKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pCiAgICAgcmV0
dXJuIHVybDsKIH0KIAotc3RhdGljIGlubGluZSBVbmlxdWVSZWY8UGFnZT4gY3JlYXRlUGFnZUZv
clNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5KQorc3RhdGljIGlubGluZSBVbmlxdWVS
ZWY8UGFnZT4gY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoUGFnZUNvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJsb2NraW5nUG9saWN5LCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgYXV0byBwYWdlID0gbWFrZVVuaXF1ZVJl
ZjxQYWdlPihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICBwYWdlLT5zZXRTZXNzaW9uSUQo
c2Vzc2lvbklEKTsKKwogICAgIGF1dG8mIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwog
ICAgIG1haW5GcmFtZS5sb2FkZXIoKS5pbml0Rm9yU3ludGhlc2l6ZWREb2N1bWVudCh7IH0pOwog
ICAgIGF1dG8gZG9jdW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlTm9uUmVuZGVyZWRQbGFjZWhvbGRl
cigmbWFpbkZyYW1lLCBkYXRhLnNjcmlwdFVSTCk7CkBAIC04NCw3ICs4Niw3IEBAIHN0YXRpYyBI
YXNoU2V0PFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSo+JiBhbGxTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveGllcygpCiB9CiAKIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92
aWRlciwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tp
bmdQb2xpY3kpCi0gICAgOiBtX3BhZ2UoY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoV1RGTW92
ZShwYWdlQ29uZmlndXJhdGlvbiksIGRhdGEsIHN0b3JhZ2VCbG9ja2luZ1BvbGljeSkpCisgICAg
OiBtX3BhZ2UoY3JlYXRlUGFnZUZvclNlcnZpY2VXb3JrZXIoV1RGTW92ZShwYWdlQ29uZmlndXJh
dGlvbiksIGRhdGEsIHN0b3JhZ2VCbG9ja2luZ1BvbGljeSwgZGF0YS5zZXNzaW9uSUQpKQogICAg
ICwgbV9kb2N1bWVudCgqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQogICAgICwgbV9z
ZXJ2aWNlV29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShkYXRhLCBzZXNz
aW9uSUQsIFdURk1vdmUodXNlckFnZW50KSwgKnRoaXMsICp0aGlzLCBpZGJDb25uZWN0aW9uUHJv
eHkobV9kb2N1bWVudCksIG1fZG9jdW1lbnQtPnNvY2tldFByb3ZpZGVyKCkpKQogICAgICwgbV9j
YWNoZVN0b3JhZ2VQcm92aWRlcihjYWNoZVN0b3JhZ2VQcm92aWRlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25E
YXRhYmFzZS5jcHAKaW5kZXggNmVlZDliNWE0Y2FmNDNmOTU0ZWE2ZWY5NzI3ZDRhNWMyMDIyMTQ3
OS4uZWIxYWFmMjFlNmNkMjhiOTg0YTI3MzY5Njc5YTQ2NDZkYjA1ZmZhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3Ry
YXRpb25EYXRhYmFzZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJTUUxpdGVGaWxl
U3lzdGVtLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRl
VHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTV1NlcnZlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KQEAgLTM1NSw3ICszNTYsNyBAQCBTdHJpbmcgUmVnaXN0cmF0aW9u
RGF0YWJhc2U6OmltcG9ydFJlY29yZHMoKQogICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgPSBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXJUeXBlPigpOwogICAgICAgICBhdXRvIHNlcnZpY2VXb3JrZXJEYXRhID0gU2Vy
dmljZVdvcmtlckRhdGEgeyB3b3JrZXJJZGVudGlmaWVyLCBzY3JpcHRVUkwsIFNlcnZpY2VXb3Jr
ZXJTdGF0ZTo6QWN0aXZhdGVkLCAqd29ya2VyVHlwZSwgcmVnaXN0cmF0aW9uSWRlbnRpZmllciB9
OwogICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhIHsgV1RGTW92ZSgqa2V5KSwgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgVVJMKG9yaWdpblVS
TCwgc2NvcGVQYXRoKSwgKnVwZGF0ZVZpYUNhY2hlLCBsYXN0VXBkYXRlQ2hlY2tUaW1lLCBzdGQ6
Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShzZXJ2aWNlV29ya2VyRGF0YSkgfTsKLSAg
ICAgICAgYXV0byBjb250ZXh0RGF0YSA9IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7IHN0ZDo6
bnVsbG9wdCwgV1RGTW92ZShyZWdpc3RyYXRpb24pLCB3b3JrZXJJZGVudGlmaWVyLCBXVEZNb3Zl
KHNjcmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9saWN5KSwgV1RGTW92ZShzY3JpcHRV
UkwpLCAqd29ya2VyVHlwZSwgdHJ1ZSB9OworICAgICAgICBhdXRvIGNvbnRleHREYXRhID0gU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhIHsgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHJlZ2lzdHJhdGlv
biksIHdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUoc2NyaXB0KSwgV1RGTW92ZShjb250ZW50U2Vj
dXJpdHlQb2xpY3kpLCBXVEZNb3ZlKHNjcmlwdFVSTCksICp3b3JrZXJUeXBlLCBtX3N0b3JlLnNl
cnZlcigpLnNlc3Npb25JRCgpLCB0cnVlIH07CiAKICAgICAgICAgcG9zdFRhc2tSZXBseShjcmVh
dGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZSZWdpc3RyYXRpb25EYXRhYmFzZTo6YWRkUmVnaXN0
cmF0aW9uVG9TdG9yZSwgV1RGTW92ZShjb250ZXh0RGF0YSkpKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0
b3JlLmgKaW5kZXggMTMzNzlkOGFmNjliODIyMDEwMzQwN2M1ZTk4ZDcwYWZiMWY5ZGRkNS4uMjll
ODIxNGIzMDFjNjUzMjJhMzFiMTZlNWEwMzQ0NThlNDg1OWI5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUu
aApAQCAtNTksNiArNTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkYXRhYmFzZUZhaWxlZFRvT3Bl
bigpOwogICAgIHZvaWQgZGF0YWJhc2VPcGVuZWRBbmRSZWNvcmRzSW1wb3J0ZWQoKTsKIAorICAg
IFNXU2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsgfTsKKwogcHJpdmF0ZToKICAg
ICB2b2lkIHNjaGVkdWxlRGF0YWJhc2VQdXNoSWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIHB1c2hD
aGFuZ2VzVG9EYXRhYmFzZShXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmlu
ZGV4IDZjNjA1Nzg0ZTFkOGZlMGVjMDNjMDU2OTYzMjNlMTJkOGYwMGFjYmIuLjAwNzVmMDNkYTc4
MDVlNWYzMjI4NmU3NjY3Y2JmZjhiYWNjMzZlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC00OTIsNyArNDkyLDcgQEAg
dm9pZCBTV1NlcnZlcjo6cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBTZXIKIAogdm9pZCBTV1NlcnZlcjo6dXBkYXRlV29ya2VyKENv
bm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJ
ZGVudGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBXb3JrZXJUeXBlIHR5cGUpCiB7
Ci0gICAgdHJ5SW5zdGFsbENvbnRleHREYXRhKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJh
dGlvbi5kYXRhKCksIGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VySWRlbnRp
ZmllclR5cGU+KCksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB1cmwsIHR5cGUsIGZh
bHNlIH0pOworICAgIHRyeUluc3RhbGxDb250ZXh0RGF0YSh7IGpvYkRhdGFJZGVudGlmaWVyLCBy
ZWdpc3RyYXRpb24uZGF0YSgpLCBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtl
cklkZW50aWZpZXJUeXBlPigpLCBzY3JpcHQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgdXJsLCB0
eXBlLCBzZXNzaW9uSUQoKSwgZmFsc2UgfSk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnRyeUluc3Rh
bGxDb250ZXh0RGF0YShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBkYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmNwcAppbmRleCBlMWU2OTk3NGFmOWZhYzU1YThhNTAwNWU4MTk3MWU0ZGVjODU4YmUyLi45Njg4
MTFjOTBlMGFjODhiOWNlMzgzZjBiZjk4ODUwNTFiNDdhYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApA
QCAtNzMsNyArNzMsNyBAQCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgU1dTZXJ2ZXJXb3JrZXI6
OmNvbnRleHREYXRhKCkgY29uc3QKICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3NlcnZlci5n
ZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOwogICAgIEFTU0VSVChyZWdpc3RyYXRp
b24pOwogCi0gICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCByZWdpc3RyYXRpb24tPmRhdGEoKSwg
bV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9k
YXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUsIGZhbHNlIH07CisgICAgcmV0dXJuIHsgc3RkOjpu
dWxsb3B0LCByZWdpc3RyYXRpb24tPmRhdGEoKSwgbV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0
LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSwgbV9kYXRhLnNjcmlwdFVSTCwgbV9kYXRhLnR5cGUs
IG1fc2VydmVyLnNlc3Npb25JRCgpLCBmYWxzZSB9OwogfQogCiB2b2lkIFNXU2VydmVyV29ya2Vy
Ojp0ZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQ
cm9jZXNzLmNwcAppbmRleCA4MjFhMzE2MjQzNDA2Y2I2MDNiNWY2Zjc2ZTEyYTY3YTczNTkyYTQy
Li5lNTA3N2I0MmI2ZTBjMDNkY2JkOGU3Zjk4ZWNmYTgxNDYxMWRhZWMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzLmgiCiAK
KyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgpAQCAtMTM4LDYg
KzEzOSwxMSBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlcgogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpD
aGlsZFByb2Nlc3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICBDaGlsZFByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHN3
Q29ubmVjdGlvbiA9IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Z2xvYmFsU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggODA2M2UzZjliZGNhZDA3ZjQ0YzJkNmU3N2FkZWU3ZWVlYjkzYWI2
NS4uYmQ3MjYzYjU0ZDg0MmE4OTAxYjdlNTk0YTIzZDkzZDEzNTgyNjA5NCAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE4LTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2Vy
dmljZSB3b3JrZXJzIGRvIG5vdCB3b3JrIHdlbGwgaW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzc4NjQxNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisKIDIwMTgt
MDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
UmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBjdXJyZW50VGltZU1TKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KaW5kZXggMzQzZjk3OTdkNjcyMjcyNTljNzczNGI3Y2I2MzEzOTFlNzczYmQwNy4uNjBkMjUw
M2QyM2EzYTgyY2IwYWYxZTY3YWQ3Yzk2ODM1NDk5YzFiMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVS
ZWYuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tFeHBl
cmltZW50YWxGZWF0dXJlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9EZXF1ZS5oPgogI2ltcG9ydCA8d3RmL0hhc2hN
YXAuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTM0Miw2ICszNDMsNTUgQEAgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJy9zdy5qcycpLnRoZW4oZnVuY3Rpb24ocmVn
KSB7CiA8L3NjcmlwdD4KIClTV1JFU09VUkNFIjsKIAorc3RhdGljIGNvbnN0IGNoYXIqIG1haW5C
eXRlc0ZvclNlc3Npb25JRFRlc3QgPSBSIlNXUkVTT1VSQ0UoCis8c2NyaXB0PgorCitmdW5jdGlv
biBsb2cobXNnKQoreworICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnN3LnBvc3RN
ZXNzYWdlKG1zZyk7Cit9CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgeworICAgIGxvZyhldmVudC5kYXRhKTsKK30p
OworCit0cnkgeworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcignL3N3LmpzJyku
dGhlbihmdW5jdGlvbihyZWcpIHsKKyAgICB3b3JrZXIgPSByZWcuaW5zdGFsbGluZzsKKyAgICB3
b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgaWYgKHdvcmtlci5zdGF0ZSA9PSAnYWN0aXZhdGVkJykKKyAgICAgICAgICAgIHdvcmtlci5w
b3N0TWVzc2FnZSgiVEVTVCIpOworICAgIH0pOworfSkuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsK
KyAgICBsb2coIlJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aDogIiArIGVycm9yKTsKK30pOworfSBj
YXRjaChlKSB7CisgICAgbG9nKCJFeGNlcHRpb246ICIgKyBlKTsKK30KKworPC9zY3JpcHQ+Cisp
U1dSRVNPVVJDRSI7CisKK3N0YXRpYyBjb25zdCBjaGFyKiBzY3JpcHRCeXRlc0ZvclNlc3Npb25J
RFRlc3QgPSBSIlNXUkVTT1VSQ0UoCisKK3ZhciB3YXNBY3RpdmF0ZWQgPSBmYWxzZTsKKworc2Vs
Zi5hZGRFdmVudExpc3RlbmVyKCJhY3RpdmF0ZSIsIGV2ZW50ID0+IHsKKyAgICBldmVudC53YWl0
VW50aWwoY2xpZW50cy5jbGFpbSgpLnRoZW4oICgpID0+IHsKKyAgICAgICAgd2FzQWN0aXZhdGVk
ID0gdHJ1ZTsKKyAgICB9KSk7Cit9KTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgKGV2ZW50KSA9PiB7CisgICAgaWYgKHdhc0FjdGl2YXRlZCAmJiByZWdpc3RyYXRpb24uYWN0
aXZlKQorICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIlBBU1M6IGFjdGl2YXRpb24g
c3VjY2Vzc2Z1bCIpOworICAgIGVsc2UKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdl
KCJGQUlMOiBmYWlsZWQgdG8gYWN0aXZhdGUiKTsKK30pOworCispU1dSRVNPVVJDRSI7CisKIFRF
U1QoU2VydmljZVdvcmtlcnMsIEJhc2ljKQogewogICAgIEFTU0VSVChtYWluQnl0ZXMpOwpAQCAt
OTI4LDcgKzk3OCw1NyBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBIYXNTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uQml0KQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAg
ZG9uZSA9IGZhbHNlOwogfQotCiAjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQogCitURVNUKFNlcnZp
Y2VXb3JrZXJzLCBOb25EZWZhdWx0U2Vzc2lvbklEKQoreworICAgIFtXS1dlYnNpdGVEYXRhU3Rv
cmUgX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2luc107CisKKyAgICBOU1VSTCAq
c2VydmljZVdvcmtlcnNQYXRoID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+L0xpYnJhcnkv
V2ViS2l0L1Rlc3RXZWJLaXRBUEkvQ3VzdG9tV2Vic2l0ZURhdGEvU2VydmljZVdvcmtlcnMvIiBz
dHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIFtbTlNG
aWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOnNlcnZpY2VXb3JrZXJz
UGF0aCBlcnJvcjpuaWxdOworICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVs
dE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6c2VydmljZVdvcmtlcnNQYXRoLnBhdGhdKTsKKyAg
ICBOU1VSTCAqaWRiUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dl
YktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0luZGV4ZWREQi8iIHN0cmluZ0J5
RXhwYW5kaW5nVGlsZGVJblBhdGhdIGlzRGlyZWN0b3J5OllFU107CisgICAgW1tOU0ZpbGVNYW5h
Z2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1vdmVJdGVtQXRVUkw6aWRiUGF0aCBlcnJvcjpuaWxdOwor
ICAgIEVYUEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlz
dHNBdFBhdGg6aWRiUGF0aC5wYXRoXSk7CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmln
dXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPF9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uPiB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIHdlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uLmdldCgpLl9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5ID0gc2VydmljZVdvcmtlcnNQYXRoOworICAgIHdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmdldCgpLl9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSA9IGlkYlBhdGg7CisKKyAgICBj
b25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgPSBbW1tXS1dlYnNpdGVEYXRhU3Rv
cmUgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246d2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uZ2V0KCldIGF1dG9yZWxlYXNlXTsKKworICAgIFJldGFpblB0cjxTV01lc3NhZ2VIYW5k
bGVyV2l0aEV4cGVjdGVkTWVzc2FnZT4gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbU1dNZXNz
YWdlSGFuZGxlcldpdGhFeHBlY3RlZE1lc3NhZ2UgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpt
ZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKworICAgIFJldGFpblB0cjxTV1NjaGVt
ZXM+IGhhbmRsZXIgPSBhZG9wdE5TKFtbU1dTY2hlbWVzIGFsbG9jXSBpbml0XSk7CisgICAgaGFu
ZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L21haW4uaHRtbCIsIFJlc291cmNlSW5mbyB7
IEAidGV4dC9odG1sIiwgbWFpbkJ5dGVzRm9yU2Vzc2lvbklEVGVzdCB9KTsKKyAgICBoYW5kbGVy
LT5yZXNvdXJjZXMuc2V0KCJzdzovL2hvc3Qvc3cuanMiLCBSZXNvdXJjZUluZm8geyBAImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiLCBzY3JpcHRCeXRlc0ZvclNlc3Npb25JRFRlc3QgfSk7CisgICAg
W2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNj
aGVtZTpAIlNXIl07CisKKyAgICBleHBlY3RlZE1lc3NhZ2UgPSAiUEFTUzogYWN0aXZhdGlvbiBz
dWNjZXNzZnVsIjsKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQo
KS5jb25maWd1cmF0aW9uLnByb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3Jr
ZXJzQ2FuSGFuZGxlOkAic3ciXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3Qv
bWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAg
ICB3ZWJWaWV3ID0gbnVsbHB0cjsKKworICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBk
ZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpzZXJ2aWNlV29ya2Vyc1BhdGgucGF0aF0p
OworCisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBmZXRjaERhdGFS
ZWNvcmRzT2ZUeXBlczpbTlNTZXQgc2V0V2l0aE9iamVjdDpXS1dlYnNpdGVEYXRhVHlwZVNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25zXSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TQXJyYXk8V0tXZWJz
aXRlRGF0YVJlY29yZCAqPiAqd2Vic2l0ZURhdGFSZWNvcmRzKSB7CisgICAgICAgIEVYUEVDVF9F
USgxdSwgW3dlYnNpdGVEYXRhUmVjb3JkcyBjb3VudF0pOworICAgICAgICBFWFBFQ1RfVFJVRShb
d2Vic2l0ZURhdGFSZWNvcmRzWzBdLmRpc3BsYXlOYW1lIGlzRXF1YWxUb1N0cmluZzpAInN3IGhv
c3QiXSk7CisKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKK30KKwogI2VuZGlmIC8v
IFdLX0FQSV9FTkFCTEVECg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334581</attachid>
            <date>2018-02-25 10:13:18 -0800</date>
            <delta_ts>2018-02-25 11:02:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183105-20180225101317.patch</filename>
            <type>text/plain</type>
            <size>21389</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQ3OTBmMDgzNmMyMzM1
MmQ1MTIxZDMyNTczMmI4ZmM3YTVjNDc4Yi4uZDk3MmUyOTM4ZjJjZTAxYjQ3YzgzNGMzYmI4YmYz
MmFkMGQwZTMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSB3b3JrZXJzIGRv
IG5vdCB3b3JrIHdlbGwgaW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc4
NjQxNDA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSB3YXMgaGFyZGNvZGVkIGluIHRoZSBTZXJ2aWNl
V29ya2VyVGhyZWFkIGNvbnN0cnVjdG9yCisgICAgICAgIGluc3RlYWQgb2YgdXNpbmcgdGhlIHNl
c3Npb25JRCBvZiB0aGUgU1dTZXJ2ZXIgdGhhdCBjcmVhdGVkIHRoZSBzZXJ2aWNlIHdvcmtlciB0
aHJlYWQuCisgICAgICAgIEFzIGEgcmVzdWx0LCB3aGVuIHRoZSBTZXJ2aWNlIFdvcmtlciB3b3Vs
ZCBlc3RhYmxpc2ggYSBTV0NsaWVudENvbm5lY3Rpb24gdG8gdGhlCisgICAgICAgIHNlcnZlciwg
aXQgd291bGQgdXNlIHRoZSB3cm9uZyBzZXNzaW9uSUQgYW5kIHdvdWxkIGVuZCB1cCB1c2luZyBh
IGRpZmZlcmVudCBTV1NlcnZlcgorICAgICAgICAoU2luY2Ugd2UgaGF2ZSBhIGRpZmZlcmVudCBT
V1NlcnZlciBpbnN0YW5jZSBwZXIgc2Vzc2lvbklEKS4gQXMgYSByZXN1bHQsCisgICAgICAgIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gLyBTZXJ2aWNlV29ya2VyIG9iamVjdHMgaW5zaWRlIHRo
ZSBzZXJ2aWNlIHdvcmtlciB3b3VsZCBub3QKKyAgICAgICAgYmUga2VwdCBpbiBzeW5jIHdpdGgg
dGhlIHNlcnZlciAoc2luY2UgdGhleSByZWdpc3RlcmVkIHRoZW1zZWx2ZXMgd2l0aCB0aGUgd3Jv
bmcKKyAgICAgICAgU1dTZXJ2ZXIpLgorCisgICAgICAgIENvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0
LgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6Omlzb2xhdGVk
Q29weSBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpl
bmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRh
OjpkZWNvZGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2Vy
dmljZVdvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhZ2VG
b3JTZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
Z2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZWdp
c3RyYXRpb25TdG9yZTo6c2VydmVyKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp1cGRhdGVXb3JrZXIp
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OmNvbnRleHREYXRhIGNvbnN0KToKKwog
MjAxOC0wMi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIENy
YXNoIHVuZGVyIFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwoV1RG
OjpTdHJpbmcgY29uc3QmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4NDAwN2U3Y2ExY2JhOGUyMWVmYjhiNmI4MmE2
ODcyOTYyZDFlMTUxLi44MGFkMTNlMTczYTM1MmI1MDA0Y2M0YWI1MTA0ODZkYTg3YjVjY2ZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSB3b3JrZXJzIGRvIG5vdCB3b3JrIHdlbGwg
aW5zaWRlIFdlYi5hcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MzEwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzc4NjQxNDA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFN0b3JhZ2VQcm9jZXNz
L1N0b3JhZ2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgV2Ugd2VyZSBmYWlsaW5nIHRvIGZvcndhcmQgSVBD
IG1lc3NhZ2VzIHRvIHRoZSBDaGlsZFByb2Nlc3MgY2xhc3MgaGVyZS4gQXMgYSByZXN1bHQsCisg
ICAgICAgIHRoZSBDaGlsZFByb2Nlc3M6OlJlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnND
YW5IYW5kbGUgSVBDIHdhcyBiZWluZyBpZ25vcmVkCisgICAgICAgIGJ5IHRoZSBTdG9yYWdlUHJv
Y2Vzcy4KKwogMjAxOC0wMi0yNCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBXUEUgYnJlYWthZ2UgZml4LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRh
LmNwcAppbmRleCA0YzRiZjIzNjRjZTRjZjEyNTM4NTg2OGI5ODVmOGI3ZWIwMThkN2ViLi5jZDA5
YTk3Yzk0Nzk3N2YzM2Y4N2U3ZDk2Zjk4NjVkYmE0MGViMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRh
LmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6Omlzb2xhdGVkQ29weSgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi5pc29s
YXRlZENvcHkoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNjcmlwdC5pc29sYXRlZENvcHko
KSwgY29udGVudFNlY3VyaXR5UG9saWN5Lmlzb2xhdGVkQ29weSgpLCBzY3JpcHRVUkwuaXNvbGF0
ZWRDb3B5KCksIHdvcmtlclR5cGUsIGxvYWRlZEZyb21EaXNrIH07CisgICAgcmV0dXJuIHsgam9i
RGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi5pc29sYXRlZENvcHkoKSwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIHNjcmlwdC5pc29sYXRlZENvcHkoKSwgY29udGVudFNlY3VyaXR5UG9saWN5
Lmlzb2xhdGVkQ29weSgpLCBzY3JpcHRVUkwuaXNvbGF0ZWRDb3B5KCksIHdvcmtlclR5cGUsIHNl
c3Npb25JRCwgbG9hZGVkRnJvbURpc2sgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YS5oCmluZGV4IGY1YTNlMDkxNjkyYTU5MDg1NGVlZDkxYmU1ZTQzNTFiMGI3
NjQ1NzAuLmI5M2Q5MjIxNjJlMGFjNzk0YTFlNzUyYmI5YWJlNGMxYWEzMWI5ZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRleHREYXRhLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIldvcmtlclR5cGUu
aCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAKQEAgLTQ0LDYgKzQ1LDcgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7
CiAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIGNvbnRlbnRTZWN1cml0
eVBvbGljeTsKICAgICBVUkwgc2NyaXB0VVJMOwogICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsK
KyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgYm9vbCBsb2FkZWRGcm9tRGlzazsK
IAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKQEAgLTU1LDcgKzU3LDcgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7CiB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgam9iRGF0YUlk
ZW50aWZpZXIgPDwgcmVnaXN0cmF0aW9uIDw8IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIDw8IHNj
cmlwdCA8PCBjb250ZW50U2VjdXJpdHlQb2xpY3kgPDwgc2NyaXB0VVJMIDw8IHdvcmtlclR5cGUg
PDwgbG9hZGVkRnJvbURpc2s7CisgICAgZW5jb2RlciA8PCBqb2JEYXRhSWRlbnRpZmllciA8PCBy
ZWdpc3RyYXRpb24gPDwgc2VydmljZVdvcmtlcklkZW50aWZpZXIgPDwgc2NyaXB0IDw8IGNvbnRl
bnRTZWN1cml0eVBvbGljeSA8PCBzY3JpcHRVUkwgPDwgd29ya2VyVHlwZSA8PCBzZXNzaW9uSUQg
PDwgbG9hZGVkRnJvbURpc2s7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC05MSwx
MSArOTMsMTUgQEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE+IFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YTo6ZGVjb2RlKERlY29kZXIKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlRW51bSh3b3JrZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAorICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNlc3Np
b25JRCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBib29sIGxvYWRlZEZy
b21EaXNrOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUobG9hZGVkRnJvbURpc2spKQogICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIHt7IFdURk1vdmUoKmpvYkRhdGFJ
ZGVudGlmaWVyKSwgV1RGTW92ZSgqcmVnaXN0cmF0aW9uKSwgV1RGTW92ZSgqc2VydmljZVdvcmtl
cklkZW50aWZpZXIpLCBXVEZNb3ZlKHNjcmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9s
aWN5KSwgV1RGTW92ZShzY3JpcHRVUkwpLCB3b3JrZXJUeXBlLCBsb2FkZWRGcm9tRGlzayB9fTsK
KyAgICByZXR1cm4ge3sgV1RGTW92ZSgqam9iRGF0YUlkZW50aWZpZXIpLCBXVEZNb3ZlKCpyZWdp
c3RyYXRpb24pLCBXVEZNb3ZlKCpzZXJ2aWNlV29ya2VySWRlbnRpZmllciksIFdURk1vdmUoc2Ny
aXB0KSwgV1RGTW92ZShjb250ZW50U2VjdXJpdHlQb2xpY3kpLCBXVEZNb3ZlKHNjcmlwdFVSTCks
IHdvcmtlclR5cGUsIHNlc3Npb25JRCwgbG9hZGVkRnJvbURpc2sgfX07CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggNjU0M2ExZjgw
MWFmNjEyMGY1Mzc4Y2Y2NjdlNDY0NWE1MDY3MjE3My4uZjk4MDM0ZTQ3ZWVlOTcxMGQwYmM3OWQw
YjBjY2ZhZGRmNTE2ZGFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTcxLDcg
KzcxLDcgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBVc2UgdmFsaWQgcnVudGltZSBmbGFncwogCiBT
ZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwg
V29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1
Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblBy
b3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCi0gICAgOiBXb3JrZXJUaHJlYWQo
ZGF0YS5zY3JpcHRVUkwsICJzZXJ2aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJz
RmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIE5ldHdvcmtT
dGF0ZU5vdGlmaWVyOjpzaW5nbGV0b24oKS5vbkxpbmUoKSwgZGF0YS5zY3JpcHQsIGxvYWRlclBy
b3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVk
KCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBv
bGljeSwgZmFsc2UsIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0YS5zY3JpcHRVUkwpLmdldCgp
LCBNb25vdG9uaWNUaW1lOjpub3coKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRl
ciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSwgU2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCkpCisgICAgOiBXb3JrZXJUaHJlYWQoZGF0YS5zY3JpcHRVUkwsICJzZXJ2
aWNld29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRp
ZmllcigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIE5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpzaW5nbGV0
b24oKS5vbkxpbmUoKSwgZGF0YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBE
dW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0
TW9kZTo6Tm9ybWFsLCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZmFsc2UsIFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoZGF0YS5zY3JpcHRVUkwpLmdldCgpLCBNb25vdG9uaWNUaW1lOjpub3co
KSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6
OmNyZWF0ZUFsbEVuYWJsZWQoKSwgZGF0YS5zZXNzaW9uSUQpCiAgICAgLCBtX2RhdGEoZGF0YS5p
c29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkoRHVtbXlTZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5jcHAKaW5kZXggZjllMTEyZjA1NTU2MDBmNzE1MWRiZmY5YmE2NmYwNjRkMTgzZDUyOC4u
Mjg0MTkzMGQ4ODQ0MjkwODRkMjM5NGM3Nzk1NWZhMmUxNTVjMzA5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC00OCw5ICs0OCwxMSBAQCBVUkwgc3RhdGljIGlu
bGluZSB0b3BPcmlnaW5VUkwoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKICAgICByZXR1
cm4gdXJsOwogfQogCi1zdGF0aWMgaW5saW5lIFVuaXF1ZVJlZjxQYWdlPiBjcmVhdGVQYWdlRm9y
U2VydmljZVdvcmtlcihQYWdlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9j
a2luZ1BvbGljeSBzdG9yYWdlQmxvY2tpbmdQb2xpY3kpCitzdGF0aWMgaW5saW5lIFVuaXF1ZVJl
ZjxQYWdlPiBjcmVhdGVQYWdlRm9yU2VydmljZVdvcmtlcihQYWdlQ29uZmlndXJhdGlvbiYmIGNv
bmZpZ3VyYXRpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU2VjdXJp
dHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tpbmdQb2xpY3ksIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBhdXRvIHBhZ2UgPSBtYWtlVW5pcXVlUmVm
PFBhZ2U+KFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgIHBhZ2UtPnNldFNlc3Npb25JRChz
ZXNzaW9uSUQpOworCiAgICAgYXV0byYgbWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CiAg
ICAgbWFpbkZyYW1lLmxvYWRlcigpLmluaXRGb3JTeW50aGVzaXplZERvY3VtZW50KHsgfSk7CiAg
ICAgYXV0byBkb2N1bWVudCA9IERvY3VtZW50OjpjcmVhdGVOb25SZW5kZXJlZFBsYWNlaG9sZGVy
KCZtYWluRnJhbWUsIGRhdGEuc2NyaXB0VVJMKTsKQEAgLTg0LDcgKzg2LDcgQEAgc3RhdGljIEhh
c2hTZXQ8U2VydmljZVdvcmtlclRocmVhZFByb3h5Kj4mIGFsbFNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94aWVzKCkKIH0KIAogU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0
cmluZyYmIHVzZXJBZ2VudCwgQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3Zp
ZGVyLCBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2lu
Z1BvbGljeSkKLSAgICA6IG1fcGFnZShjcmVhdGVQYWdlRm9yU2VydmljZVdvcmtlcihXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uKSwgZGF0YSwgc3RvcmFnZUJsb2NraW5nUG9saWN5KSkKKyAgICA6
IG1fcGFnZShjcmVhdGVQYWdlRm9yU2VydmljZVdvcmtlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0
aW9uKSwgZGF0YSwgc3RvcmFnZUJsb2NraW5nUG9saWN5LCBkYXRhLnNlc3Npb25JRCkpCiAgICAg
LCBtX2RvY3VtZW50KCptX3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpCiAgICAgLCBtX3Nl
cnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtlclRocmVhZDo6Y3JlYXRlKGRhdGEsIHNlc3Np
b25JRCwgV1RGTW92ZSh1c2VyQWdlbnQpLCAqdGhpcywgKnRoaXMsIGlkYkNvbm5lY3Rpb25Qcm94
eShtX2RvY3VtZW50KSwgbV9kb2N1bWVudC0+c29ja2V0UHJvdmlkZXIoKSkpCiAgICAgLCBtX2Nh
Y2hlU3RvcmFnZVByb3ZpZGVyKGNhY2hlU3RvcmFnZVByb3ZpZGVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRh
dGFiYXNlLmNwcAppbmRleCA2ZWVkOWI1YTRjYWY0M2Y5NTRlYTZlZjk3MjdkNGE1YzIwMjIxNDc5
Li5lYjFhYWYyMWU2Y2QyOGI5ODRhMjczNjk2NzlhNDY0NmRiMDVmZmEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJh
dGlvbkRhdGFiYXNlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlNRTGl0ZUZpbGVT
eXN0ZW0uaCIKICNpbmNsdWRlICJTUUxpdGVTdGF0ZW1lbnQuaCIKICNpbmNsdWRlICJTUUxpdGVU
cmFuc2FjdGlvbi5oIgorI2luY2x1ZGUgIlNXU2VydmVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgpAQCAtMzU1LDcgKzM1Niw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25E
YXRhYmFzZTo6aW1wb3J0UmVjb3JkcygpCiAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uSWRlbnRp
ZmllciA9IGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllclR5cGU+KCk7CiAgICAgICAgIGF1dG8gc2VydmljZVdvcmtlckRhdGEgPSBTZXJ2
aWNlV29ya2VyRGF0YSB7IHdvcmtlcklkZW50aWZpZXIsIHNjcmlwdFVSTCwgU2VydmljZVdvcmtl
clN0YXRlOjpBY3RpdmF0ZWQsICp3b3JrZXJUeXBlLCByZWdpc3RyYXRpb25JZGVudGlmaWVyIH07
CiAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEgeyBXVEZNb3ZlKCprZXkpLCByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBVUkwob3JpZ2luVVJM
LCBzY29wZVBhdGgpLCAqdXBkYXRlVmlhQ2FjaGUsIGxhc3RVcGRhdGVDaGVja1RpbWUsIHN0ZDo6
bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHNlcnZpY2VXb3JrZXJEYXRhKSB9OwotICAg
ICAgICBhdXRvIGNvbnRleHREYXRhID0gU2VydmljZVdvcmtlckNvbnRleHREYXRhIHsgc3RkOjpu
dWxsb3B0LCBXVEZNb3ZlKHJlZ2lzdHJhdGlvbiksIHdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUo
c2NyaXB0KSwgV1RGTW92ZShjb250ZW50U2VjdXJpdHlQb2xpY3kpLCBXVEZNb3ZlKHNjcmlwdFVS
TCksICp3b3JrZXJUeXBlLCB0cnVlIH07CisgICAgICAgIGF1dG8gY29udGV4dERhdGEgPSBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEgeyBzdGQ6Om51bGxvcHQsIFdURk1vdmUocmVnaXN0cmF0aW9u
KSwgd29ya2VySWRlbnRpZmllciwgV1RGTW92ZShzY3JpcHQpLCBXVEZNb3ZlKGNvbnRlbnRTZWN1
cml0eVBvbGljeSksIFdURk1vdmUoc2NyaXB0VVJMKSwgKndvcmtlclR5cGUsIG1fc3RvcmUuc2Vy
dmVyKCkuc2Vzc2lvbklEKCksIHRydWUgfTsKIAogICAgICAgICBwb3N0VGFza1JlcGx5KGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjphZGRSZWdpc3Ry
YXRpb25Ub1N0b3JlLCBXVEZNb3ZlKGNvbnRleHREYXRhKSkpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3Rv
cmUuaAppbmRleCAxMzM3OWQ4YWY2OWI4MjIwMTAzNDA3YzVlOThkNzBhZmIxZjlkZGQ1Li4yOWU4
MjE0YjMwMWM2NTMyMmEzMWIxNmU1YTAzNDQ1OGU0ODU5YjlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5o
CkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRhdGFiYXNlRmFpbGVkVG9PcGVu
KCk7CiAgICAgdm9pZCBkYXRhYmFzZU9wZW5lZEFuZFJlY29yZHNJbXBvcnRlZCgpOwogCisgICAg
U1dTZXJ2ZXImIHNlcnZlcigpIHsgcmV0dXJuIG1fc2VydmVyOyB9OworCiBwcml2YXRlOgogICAg
IHZvaWQgc2NoZWR1bGVEYXRhYmFzZVB1c2hJZk5lY2Vzc2FyeSgpOwogICAgIHZvaWQgcHVzaENo
YW5nZXNUb0RhdGFiYXNlKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5k
ZXggNmM2MDU3ODRlMWQ4ZmUwZWMwM2MwNTY5NjMyM2UxMmQ4ZjAwYWNiYi4uMDA3NWYwM2RhNzgw
NWU1ZjMyMjg2ZTc2NjdjYmZmOGJhY2MzNmU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTQ5Miw3ICs0OTIsNyBAQCB2
b2lkIFNXU2VydmVyOjpyZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIFNlcgogCiB2b2lkIFNXU2VydmVyOjp1cGRhdGVXb3JrZXIoQ29u
bmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlk
ZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVz
cG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIFdvcmtlclR5cGUgdHlwZSkKIHsK
LSAgICB0cnlJbnN0YWxsQ29udGV4dERhdGEoeyBqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0
aW9uLmRhdGEoKSwgZ2VuZXJhdGVPYmplY3RJZGVudGlmaWVyPFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyVHlwZT4oKSwgc2NyaXB0LCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIHVybCwgdHlwZSwgZmFs
c2UgfSk7CisgICAgdHJ5SW5zdGFsbENvbnRleHREYXRhKHsgam9iRGF0YUlkZW50aWZpZXIsIHJl
Z2lzdHJhdGlvbi5kYXRhKCksIGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllclR5cGU+KCksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB1cmwsIHR5
cGUsIHNlc3Npb25JRCgpLCBmYWxzZSB9KTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6dHJ5SW5zdGFs
bENvbnRleHREYXRhKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmIGRhdGEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIu
Y3BwCmluZGV4IGUxZTY5OTc0YWY5ZmFjNTVhOGE1MDA1ZTgxOTcxZTRkZWM4NThiZTIuLjk2ODgx
MWM5MGUwYWM4OGI5Y2UzODNmMGJmOTg4NTA1MWI0N2FiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCkBA
IC03Myw3ICs3Myw3IEBAIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBTV1NlcnZlcldvcmtlcjo6
Y29udGV4dERhdGEoKSBjb25zdAogICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IG1fc2VydmVyLmdl
dFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSk7CiAgICAgQVNTRVJUKHJlZ2lzdHJhdGlv
bik7CiAKLSAgICByZXR1cm4geyBzdGQ6Om51bGxvcHQsIHJlZ2lzdHJhdGlvbi0+ZGF0YSgpLCBt
X2RhdGEuaWRlbnRpZmllciwgbV9zY3JpcHQsIG1fY29udGVudFNlY3VyaXR5UG9saWN5LCBtX2Rh
dGEuc2NyaXB0VVJMLCBtX2RhdGEudHlwZSwgZmFsc2UgfTsKKyAgICByZXR1cm4geyBzdGQ6Om51
bGxvcHQsIHJlZ2lzdHJhdGlvbi0+ZGF0YSgpLCBtX2RhdGEuaWRlbnRpZmllciwgbV9zY3JpcHQs
IG1fY29udGVudFNlY3VyaXR5UG9saWN5LCBtX2RhdGEuc2NyaXB0VVJMLCBtX2RhdGEudHlwZSwg
bV9zZXJ2ZXIuc2Vzc2lvbklEKCksIGZhbHNlIH07CiB9CiAKIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6
OnRlcm1pbmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVBy
b2Nlc3MuY3BwCmluZGV4IDgyMWEzMTYyNDM0MDZjYjYwM2I1ZjZmNzZlMTJhNjdhNzM1OTJhNDIu
LmU1MDc3YjQyYjZlMGMwM2RjYmQ4ZTdmOThlY2ZhODE0NjExZGFlYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwCkBAIC0yNiw2ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3MuaCIKIAor
I2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCkBAIC0xMzgsNiAr
MTM5LDExIEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkNo
aWxkUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIENoaWxkUHJvY2Vz
czo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBpZiAoYXV0byogc3dD
b25uZWN0aW9uID0gU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpnbG9iYWxTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uKCkpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA4MDYzZTNmOWJkY2FkMDdmNDRjMmQ2ZTc3YWRlZTdlZWViOTNhYjY1
Li4zNTdjZGEzMzdmNWM0ZWRjYTllYjY0MTM4MTY2MDBkY2I4MTE4YTgwIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTgtMDItMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTZXJ2
aWNlIHdvcmtlcnMgZG8gbm90IHdvcmsgd2VsbCBpbnNpZGUgV2ViLmFwcAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMTA1CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zNzg2NDE0MD4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0
LgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorCiAyMDE4LTAy
LTIyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFJl
bW92ZSBjdXJyZW50VGltZSgpIC8gY3VycmVudFRpbWVNUygpCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
CmluZGV4IDM0M2Y5Nzk3ZDY3MjI3MjU5Yzc3MzRiN2NiNjMxMzkxZTc3M2JkMDcuLjYwZDI1MDNk
MjNhM2E4MmNiMGFmMWU2N2FkN2M5NjgzNTQ5OWMxYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
CkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUmVm
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJp
bWVudGFsRmVhdHVyZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvRGVxdWUuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CkBAIC0zNDIsNiArMzQzLDU1IEBAIG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvc3cuanMnKS50aGVuKGZ1bmN0aW9uKHJlZykg
ewogPC9zY3JpcHQ+CiApU1dSRVNPVVJDRSI7CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBtYWluQnl0
ZXNGb3JTZXNzaW9uSURUZXN0ID0gUiJTV1JFU09VUkNFKAorPHNjcmlwdD4KKworZnVuY3Rpb24g
bG9nKG1zZykKK3sKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5zdy5wb3N0TWVz
c2FnZShtc2cpOworfQorCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBsb2coZXZlbnQuZGF0YSk7Cit9KTsK
KwordHJ5IHsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJy9zdy5qcycpLnRo
ZW4oZnVuY3Rpb24ocmVnKSB7CisgICAgd29ya2VyID0gcmVnLmluc3RhbGxpbmc7CisgICAgd29y
a2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgZnVuY3Rpb24oKSB7CisgICAgICAg
IGlmICh3b3JrZXIuc3RhdGUgPT0gJ2FjdGl2YXRlZCcpCisgICAgICAgICAgICB3b3JrZXIucG9z
dE1lc3NhZ2UoIlRFU1QiKTsKKyAgICB9KTsKK30pLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7Cisg
ICAgbG9nKCJSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGg6ICIgKyBlcnJvcik7Cit9KTsKK30gY2F0
Y2goZSkgeworICAgIGxvZygiRXhjZXB0aW9uOiAiICsgZSk7Cit9CisKKzwvc2NyaXB0PgorKVNX
UkVTT1VSQ0UiOworCitzdGF0aWMgY29uc3QgY2hhciogc2NyaXB0Qnl0ZXNGb3JTZXNzaW9uSURU
ZXN0ID0gUiJTV1JFU09VUkNFKAorCit2YXIgd2FzQWN0aXZhdGVkID0gZmFsc2U7CisKK3NlbGYu
YWRkRXZlbnRMaXN0ZW5lcigiYWN0aXZhdGUiLCBldmVudCA9PiB7CisgICAgZXZlbnQud2FpdFVu
dGlsKGNsaWVudHMuY2xhaW0oKS50aGVuKCAoKSA9PiB7CisgICAgICAgIHdhc0FjdGl2YXRlZCA9
IHRydWU7CisgICAgfSkpOworfSk7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IChldmVudCkgPT4geworICAgIGlmICh3YXNBY3RpdmF0ZWQgJiYgcmVnaXN0cmF0aW9uLmFjdGl2
ZSkKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJQQVNTOiBhY3RpdmF0aW9uIHN1
Y2Nlc3NmdWwiKTsKKyAgICBlbHNlCisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgi
RkFJTDogZmFpbGVkIHRvIGFjdGl2YXRlIik7Cit9KTsKKworKVNXUkVTT1VSQ0UiOworCiBURVNU
KFNlcnZpY2VXb3JrZXJzLCBCYXNpYykKIHsKICAgICBBU1NFUlQobWFpbkJ5dGVzKTsKQEAgLTky
OCw3ICs5NzgsNTcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkJpdCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRv
bmUgPSBmYWxzZTsKIH0KLQogI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkKIAorVEVTVChTZXJ2aWNl
V29ya2VycywgTm9uRGVmYXVsdFNlc3Npb25JRCkKK3sKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3Jl
IF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgTlNVUkwgKnNl
cnZpY2VXb3JrZXJzUGF0aCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dl
YktpdC9UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL1NlcnZpY2VXb3JrZXJzLyIgc3Ry
aW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBbW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIHJlbW92ZUl0ZW1BdFVSTDpzZXJ2aWNlV29ya2Vyc1Bh
dGggZXJyb3I6bmlsXTsKKyAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRN
YW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOnNlcnZpY2VXb3JrZXJzUGF0aC5wYXRoXSk7CisgICAg
TlNVUkwgKmlkYlBhdGggPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJL
aXQvVGVzdFdlYktpdEFQSS9DdXN0b21XZWJzaXRlRGF0YS9JbmRleGVkREIvIiBzdHJpbmdCeUV4
cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIFtbTlNGaWxlTWFuYWdl
ciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0VVJMOmlkYlBhdGggZXJyb3I6bmlsXTsKKyAg
ICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3Rz
QXRQYXRoOmlkYlBhdGgucGF0aF0pOworCisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbj4gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbX1dLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICB3ZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9y
eSA9IHNlcnZpY2VXb3JrZXJzUGF0aDsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5nZXQoKS5faW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkgPSBpZGJQYXRoOworCisgICAgY29u
ZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlID0gW1tbV0tXZWJzaXRlRGF0YVN0b3Jl
IGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmdldCgpXSBhdXRvcmVsZWFzZV07CisKKyAgICBSZXRhaW5QdHI8U1dNZXNzYWdlSGFuZGxl
cldpdGhFeHBlY3RlZE1lc3NhZ2U+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2Fn
ZUhhbmRsZXJXaXRoRXhwZWN0ZWRNZXNzYWdlIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1
cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVz
c2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInN3Il07CisKKyAgICBSZXRhaW5QdHI8U1dTY2hlbWVz
PiBoYW5kbGVyID0gYWRvcHROUyhbW1NXU2NoZW1lcyBhbGxvY10gaW5pdF0pOworICAgIGhhbmRs
ZXItPnJlc291cmNlcy5zZXQoInN3Oi8vaG9zdC9tYWluLmh0bWwiLCBSZXNvdXJjZUluZm8geyBA
InRleHQvaHRtbCIsIG1haW5CeXRlc0ZvclNlc3Npb25JRFRlc3QgfSk7CisgICAgaGFuZGxlci0+
cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L3N3LmpzIiwgUmVzb3VyY2VJbmZvIHsgQCJhcHBsaWNh
dGlvbi9qYXZhc2NyaXB0Iiwgc2NyaXB0Qnl0ZXNGb3JTZXNzaW9uSURUZXN0IH0pOworICAgIFtj
b25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hl
bWU6QCJTVyJdOworCisgICAgZXhwZWN0ZWRNZXNzYWdlID0gIlBBU1M6IGFjdGl2YXRpb24gc3Vj
Y2Vzc2Z1bCI7CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcuZ2V0KCku
Y29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vy
c0NhbkhhbmRsZTpAInN3Il07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21h
aW4uaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAg
d2ViVmlldyA9IG51bGxwdHI7CisKKyAgICBFWFBFQ1RfVFJVRShbW05TRmlsZU1hbmFnZXIgZGVm
YXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6c2VydmljZVdvcmtlcnNQYXRoLnBhdGhdKTsK
KworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgZmV0Y2hEYXRhUmVj
b3Jkc09mVHlwZXM6W05TU2V0IHNldFdpdGhPYmplY3Q6V0tXZWJzaXRlRGF0YVR5cGVTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uc10gY29tcGxldGlvbkhhbmRsZXI6XihOU0FycmF5PFdLV2Vic2l0
ZURhdGFSZWNvcmQgKj4gKndlYnNpdGVEYXRhUmVjb3JkcykgeworICAgICAgICBFWFBFQ1RfRVEo
MXUsIFt3ZWJzaXRlRGF0YVJlY29yZHMgY291bnRdKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoW3dl
YnNpdGVEYXRhUmVjb3Jkc1swXS5kaXNwbGF5TmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJzdyBob3N0
Il0pOworCisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7Cit9CisKICNlbmRpZiAvLyBX
S19BUElfRU5BQkxFRAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>