<?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>182543</bug_id>
          
          <creation_ts>2018-02-06 11:12:16 -0800</creation_ts>
          <short_desc>Add API test to validate setting of service worker and cache storage directories</short_desc>
          <delta_ts>2019-03-20 06:18:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=195997</see_also>
          <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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1396852</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-06 11:12:16 -0800</bug_when>
    <thetext>Add API test to validate setting of service worker and cache storage directories</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396856</commentid>
    <comment_count>1</comment_count>
      <attachid>333194</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-06 11:25:41 -0800</bug_when>
    <thetext>Created attachment 333194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396858</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-06 11:26:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/37281698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396862</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-06 11:28:27 -0800</bug_when>
    <thetext>Attachment 333194 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:842:  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:851:  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:853:  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:862:  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:947:  Consider using EXPECT_EQ instead of EXPECT_TRUE(a == b)  [readability/check] [2]
Total errors found: 5 in 22 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>1396968</commentid>
    <comment_count>4</comment_count>
      <attachid>333194</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-06 15:12:09 -0800</bug_when>
    <thetext>Comment on attachment 333194
Patch

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

&gt; Source/WebCore/testing/Internals.idl:575
&gt; +    [Conditional=SERVICE_WORKER] Promise&lt;DOMString&gt; serviceWorkerRegistrationDirectory();

Since this is only used in an API test, I don&apos;t think we need this internals API and all this piping through to the SW process. The API test can just check that the path on disk got created.
There are existing API tests doing this I believe, I&apos;ll point you to one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396970</commentid>
    <comment_count>5</comment_count>
      <attachid>333194</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-06 15:14:56 -0800</bug_when>
    <thetext>Comment on attachment 333194
Patch

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

&gt;&gt; Source/WebCore/testing/Internals.idl:575
&gt;&gt; +    [Conditional=SERVICE_WORKER] Promise&lt;DOMString&gt; serviceWorkerRegistrationDirectory();
&gt; 
&gt; Since this is only used in an API test, I don&apos;t think we need this internals API and all this piping through to the SW process. The API test can just check that the path on disk got created.
&gt; There are existing API tests doing this I believe, I&apos;ll point you to one.

LocalStorageClear is an example of such API test, although it is for the opposite. Also ResourceLoadStatistics.GrandfatherCallback which is closer to what you want I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402750</commentid>
    <comment_count>6</comment_count>
      <attachid>334778</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-28 15:40:32 -0800</bug_when>
    <thetext>Created attachment 334778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402751</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-28 15:42:58 -0800</bug_when>
    <thetext>Attachment 334778 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:1036:  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:1045:  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]
Total errors found: 2 in 11 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>1402778</commentid>
    <comment_count>8</comment_count>
      <attachid>334786</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-02-28 16:50:13 -0800</bug_when>
    <thetext>Created attachment 334786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1402780</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-28 16:52:25 -0800</bug_when>
    <thetext>Attachment 334786 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:983:  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:992:  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]
Total errors found: 2 in 11 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>1403066</commentid>
    <comment_count>10</comment_count>
      <attachid>334786</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-01 15:18:34 -0800</bug_when>
    <thetext>Comment on attachment 334786
Patch

Clearing flags on attachment: 334786

Committed r229150: &lt;https://trac.webkit.org/changeset/229150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1403067</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-01 15:18:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333194</attachid>
            <date>2018-02-06 11:25:41 -0800</date>
            <delta_ts>2018-02-28 15:40:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182543-20180206112540.patch</filename>
            <type>text/plain</type>
            <size>27606</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM3OTljZTc2MTdjMzlj
OGE4MDU1NTA5YzA1Nzc1Y2YyMWMxMzk0MS4uNjIyN2Q1NzUyY2Q0MTQ4NDcxYmViYTcwYjQxZGYw
NjlhN2VkMWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTAyLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgQVBJIHRlc3QgdG8g
dmFsaWRhdGUgc2V0dGluZyBvZiBzZXJ2aWNlIHdvcmtlciBhbmQgY2FjaGUgc3RvcmFnZSBkaXJl
Y3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgyNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgQWRkIGdldHRlcnMgdG8gc2VydmljZSB3
b3JrZXIgcmVnaXN0cmF0aW9uIGRpcmVjdG9yeS4KKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NX
Q2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVn
aXN0cmF0aW9uRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFi
YXNlOjpzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZWdpc3RyYXRpb25TdG9yZTo6c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeSBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3RvcnkgY29uc3QpOgorCiAyMDE4LTAyLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzLzJkY29udGV4dC9pbWFnZWJpdG1hcC9jcmVhdGVJbWFnZUJpdG1hcC1vcmlnaW4uc3ViLmh0
bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNDMyNjc0YjkzY2FiZTBkOWVlMDk5OGJlOTdlMDJhMzgxNzAyNzJlYS4u
ZjI4NzEzMGE4MTNhNTQ0ZTc3NGI0YjUyZTYwYTNiNzU3YzIwNzExYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxOC0wMi0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IHRvIHZhbGlkYXRlIHNldHRpbmcgb2Ygc2VydmljZSB3
b3JrZXIgYW5kIGNhY2hlIHN0b3JhZ2UgZGlyZWN0b3JpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjU0MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjYWNoZSBlbmdpbmUgZGlyZWN0b3J5IHBh
dGggdG8gaXRzIHJlcHJlc2VudGF0aW9uIGR1bXAuCisgICAgICAgIFRoaXMgaXMgdXNlZCBpbiBB
UEkgdGVzdHMgdG8gY2hlY2sgdGhlIHBhdGggaXMgY29ycmVjdGx5IHNldC4KKworICAgICAgICBB
ZGQgYSB3YXkgZm9yIFdlYlByb2Nlc3MgdG8gZ2V0IHRoZSBzZXJ2aWNlIHdvcmtlciByZWdpc3Ry
YXRpb24gZGlyZWN0b3J5IHBhdGguCisgICAgICAgIFRoaXMgaXMgYWxzbyB1c2VkIGluIEFQSSB0
ZXN0cyB0byBjaGVjayB0aGUgcGF0aCBpcyBjb3JyZWN0bHkgc2V0LgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJlcHJlc2VudGF0aW9uKToKKyAgICAgICAgKiBTdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeSk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25u
ZWN0aW9uOjpkaWRHZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoK
KwogMjAxOC0wMi0wMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXByb3ZlIE5ldHdvcmtSZXNvdXJjZUxvYWRlciBsb2dnaW5nIHNvIGl0IGNhbiBiZSB1
c2VkIGZvciAnc2V0Q29va2llc0Zyb21ET00nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggZGQ2MThjYzJlNWU4MTIxOGU4OTcwZmQzNjM2MzhhMGZjM2NkNzIwZC4uYmYwY2U1
OTI2MGE1ODA3NGE0Nzc0ZTYwODNkM2FjYWUxZjI1MTgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtNDMxOCw2ICs0MzE4LDE2IEBAIHVpbnQ2NF90IEludGVybmFsczo6
cmVzcG9uc2VTaXplV2l0aFBhZGRpbmcoRmV0Y2hSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0CiB9
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCit2b2lkIEludGVybmFsczo6c2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeShTdHJpbmdQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAg
ICBpZiAoIWNvbnRleHREb2N1bWVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTZXJ2aWNl
V29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vz
c2lvbihjb250ZXh0RG9jdW1lbnQoKS0+c2Vzc2lvbklEKCkpLnNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EaXJlY3RvcnkoW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSAoYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShyZXN1bHQpOworICAgIH0pOwor
fQorCiB2b2lkIEludGVybmFsczo6aGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihjb25zdCBT
dHJpbmcmIGNsaWVudFVSTCwgSGFzUmVnaXN0cmF0aW9uUHJvbWlzZSYmIHByb21pc2UpCiB7CiAg
ICAgaWYgKCFjb250ZXh0RG9jdW1lbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmlu
ZGV4IDgwZmI3YWM5ZDgyMTY5OGRkZTczZjZhNGJkY2EyODk4NThhNGRhNWYuLmRkZTUxOTQwNTkx
ZmZhYzg3ZTc2OWU2ZWY1NDU0OTU2YTc5ODA5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaApAQCAtNjMxLDYgKzYzMSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGhhc1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiBjbGllbnRVUkwsIEhhc1JlZ2lzdHJhdGlvblBy
b21pc2UmJik7CiAgICAgdm9pZCB0ZXJtaW5hdGVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXIm
KTsKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7CisKKyAgICB1c2luZyBT
dHJpbmdQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETERPTVN0cmluZz47CisgICAgdm9p
ZCBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KFN0cmluZ1Byb21pc2UmJik7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKaW5kZXggYjMwNzAzNjE5NGQyNTA0ODA2YjFiYmExODEzMDU0MDJkMGM3Y2UyNi4uZjlk
ODQxM2NiM2NjMTdmMGY0ZTEyOTM5NGQ4OTk2MzE0ZmFiN2UwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbApAQCAtNTcyLDYgKzU3Miw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5n
QmVoYXZpb3IgewogCiAgICAgW0NvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSXSBQcm9taXNlPGJv
b2xlYW4+IGhhc1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oRE9NU3RyaW5nIHNjb3BlVVJMKTsK
ICAgICBbQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVJdIHZvaWQgdGVybWluYXRlU2VydmljZVdv
cmtlcihTZXJ2aWNlV29ya2VyIHdvcmtlcik7CisgICAgW0NvbmRpdGlvbmFsPVNFUlZJQ0VfV09S
S0VSXSBQcm9taXNlPERPTVN0cmluZz4gc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9y
eSgpOwogICAgIFtDb25kaXRpb25hbD1TRVJWSUNFX1dPUktFUl0gYm9vbGVhbiBoYXNTZXJ2aWNl
V29ya2VyQ29ubmVjdGlvbigpOwogCiAgICAgdm9pZCB0ZXN0SW5jb21pbmdTeW5jSVBDTWVzc2Fn
ZVdoaWxlV2FpdGluZ0ZvclN5bmNSZXBseSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDcwZmVjZmI1MzE0N2IwYTVm
NzZlODdlM2IzNmU4OWIwYWM5N2JiNGMuLmY1NTI1NzIxZWM5ZTBiOGQ0MjU5N2NkYTU0YzBjMDNj
ZTY3MWY0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0Ns
aWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTg1LDYgKzg1LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckZl
dGNoUmVzdWx0JikgPSAwOwogCisgICAgLy8gVGVzdGluZyBwdXJwb3NlcyBvbmx5LgorICAgIHZp
cnR1YWwgdm9pZCBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KEZ1bmN0aW9uPHZv
aWQoY29uc3QgU3RyaW5nJik+JiYpID0gMDsKKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQ
T1JUIFNXQ2xpZW50Q29ubmVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmgKaW5kZXgg
ZjcyOTM1NDU3MDRiNzEzNmNjNTJlYzUxMmJjNGQ5ZDljZDg3NGFlMS4uMmQxMTlkMmJmMjE3NzVk
NjU4Zjg2OTE3YTMyYjcxMDZiM2YwM2QwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuaApAQCAt
NTAsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXNoQ2hhbmdlcyhWZWN0b3I8U2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhPiYmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBjbGVhckFsbChXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAK
KyAgICBjb25zdCBTdHJpbmcmIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSBj
b25zdCB7IHJldHVybiBtX2RhdGFiYXNlRGlyZWN0b3J5OyB9CisKIHByaXZhdGU6CiAgICAgLy8g
TWV0aG9kcyB0byBiZSBydW4gb24gdGhlIHRhc2sgdGhyZWFkCiAgICAgdm9pZCBvcGVuU1FMaXRl
RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBmdWxsRmlsZW5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCmlu
ZGV4IDEzMzc5ZDhhZjY5YjgyMjAxMDM0MDdjNWU5OGQ3MGFmYjFmOWRkZDUuLmFhYzI5ZDg5ZTUy
YTFhNjk2MjQwZDVhZThiMDcyZjY3NzhkZGMzZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmgKQEAgLTU5
LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZvaWQgZGF0YWJhc2VGYWlsZWRUb09wZW4oKTsKICAg
ICB2b2lkIGRhdGFiYXNlT3BlbmVkQW5kUmVjb3Jkc0ltcG9ydGVkKCk7CiAKKyAgICBjb25zdCBT
dHJpbmcmIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSBjb25zdCB7IHJldHVy
biBtX2RhdGFiYXNlLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKTsgfQorCiBw
cml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVEYXRhYmFzZVB1c2hJZk5lY2Vzc2FyeSgpOwogICAg
IHZvaWQgcHVzaENoYW5nZXNUb0RhdGFiYXNlKFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuaAppbmRleCA5ZWYyZWRkMGViNzMwNjdhYzA5MGFlZjFjM2NlNGJiOWUyMDc0M2VlLi45NWYz
ZDFlZjIyY2U3MDI0YWI3ZTA4OTk1N2I1YzJiMjM2ZGQ3ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0xNzgsNiArMTc4LDgg
QEAgcHVibGljOgogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1
cm4gbV9zZXNzaW9uSUQ7IH0KIAorICAgIGNvbnN0IFN0cmluZyYgc2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmF0aW9uU3RvcmUuc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpOyB9CisKIHByaXZhdGU6CiAgICAgdm9p
ZCByZWdpc3RlckNvbm5lY3Rpb24oQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgdW5yZWdpc3RlckNv
bm5lY3Rpb24oQ29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDliYzhmYTgzMzUw
YjFjZjc5ZjE1YWJlZjExMThkOGJmODdkNzA5ZGMuLjkxMDRjMzk0MDVlMjk5ODEyNjVlZjc1YTRl
ZDZmOGZmOTZhZDY1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTQ3MCw3ICs0NzAsOSBAQCBT
dHJpbmcgRW5naW5lOjpyZXByZXNlbnRhdGlvbigpCiB7CiAgICAgYm9vbCBpc0ZpcnN0ID0gdHJ1
ZTsKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgYnVpbGRlci5hcHBlbmQoIlsiKTsK
KyAgICBidWlsZGVyLmFwcGVuZCgieyBcInBhdGhcIjogXCIiKTsKKyAgICBidWlsZGVyLmFwcGVu
ZChtX3Jvb3RQYXRoKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiXCIsIFwib3JpZ2luc1wiOiBbIik7
CiAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IG1fY2FjaGVzKSB7CiAgICAgICAgIGlmICghaXNG
aXJzdCkKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsIik7CkBAIC00ODQsNyArNDg2LDcg
QEAgU3RyaW5nIEVuZ2luZTo6cmVwcmVzZW50YXRpb24oKQogICAgICAgICBrZXlWYWx1ZS52YWx1
ZS0+YXBwZW5kUmVwcmVzZW50YXRpb24oYnVpbGRlcik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KCJ9Iik7CiAgICAgfQotICAgIGJ1aWxkZXIuYXBwZW5kKCJcbl0iKTsKKyAgICBidWlsZGVyLmFw
cGVuZCgiXX0iKTsKICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDc0MDVhZTUzMjY2YjZjMDhjZTIx
Mjc1OWRjNDhiYjhiZGFmMGU0ZWIuLjRmNWRhNWUxYWUwODFkYWY0MWU1MThlMWQ4YTZlZDUyZmNi
Y2Q4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0yOTMs
NiArMjkzLDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2Vydmlj
ZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpCiAgICAgbV9jbGllbnRPcmlnaW5z
LnJlbW92ZShpdGVyYXRvcik7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVy
KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6RGlkR2V0U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSB7IHJlcXVlc3RJZGVudGlmaWVyLCBzZXJ2
ZXIoKS5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCkgfSk7Cit9CisKIHRlbXBs
YXRlPHR5cGVuYW1lIFU+IHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzZW5kVG9Db250ZXh0
UHJvY2VzcyhVJiYgbWVzc2FnZSkKIHsKICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFN0b3Jh
Z2VQcm9jZXNzOjpzaW5nbGV0b24oKS5nbG9iYWxTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggYmVjZDkwZmY0MTEwNWRl
MzlmMmFiMzFkNGU0MjI4NzBlOTMxMWM3Ny4uMzExZTEyZWY2NjMxMDU2ZWFhYzgxMzMxYTI0Yzlm
MmM0MzE4ZjAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtOTYs
NiArOTYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllcj4mKTsKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJik7CiAKKyAg
ICB2b2lkIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkodWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIpOworCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpIGZpbmFsIHsgcmV0dXJuIG1fY29udGVudENvbm5lY3Rpb24ucHRyKCk7IH0KICAgICB1
aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGZpbmFsIHsgcmV0dXJuIGlkZW50
aWZpZXIoKS50b1VJbnQ2NCgpOyB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA0NGZiYTU4YjAzYjI3MTNlMTE4ZWZmZmI4
MTU0ZWU3ZDFhMWE2NzdjLi5mNmM0MjY3MzI0Yzg5Y2M3YmJmZDRlNzMzMjI3MTBiMmJlZmU3MWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KQEAgLTQyLDYgKzQyLDggQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIHsK
ICAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKIAogICAgIFN5bmNUZXJtaW5hdGVX
b3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRlbnRpZmllcikg
LT4gKCkKKworICAgIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkodWludDY0X3Qg
cmVxdWVzdElkZW50aWZpZXIpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYTJmMzA1YTM3OWUyZGMwYjBjM2I5MWU0ZDlmYjRl
NTAyZDBmODEzYi4uZWU2MDlhZmJjOGIyMTMxMDllNTEwMWVjODVmZDVhMDBmMzRhYTgzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwCkBAIC0yMTMsNiArMjEzLDEwIEBAIHZvaWQgV2ViU1dDbGllbnRD
b25uZWN0aW9uOjpjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCkKICAgICBmb3IgKGF1dG8mIGNhbGxi
YWNrIDogZ2V0UmVnaXN0cmF0aW9uVGFza3MudmFsdWVzKCkpCiAgICAgICAgIGNhbGxiYWNrKHsg
fSk7CiAKKyAgICBhdXRvIG9uZ29pbmdEaXJlY3RvcnlUYXNrcyA9IFdURk1vdmUobV9vbmdvaW5n
RGlyZWN0b3J5VGFza3MpOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBvbmdvaW5nRGlyZWN0
b3J5VGFza3MudmFsdWVzKCkpCisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisKICAgICBjbGVhclBl
bmRpbmdKb2JzKCk7CiB9CiAKQEAgLTIyMSw2ICsyMjUsMTkgQEAgdm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OnN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmkKICAgICBzZW5kU3luYyhNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpTeW5j
VGVybWluYXRlV29ya2VyKGlkZW50aWZpZXIpLCBNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpSZXBseSgpKTsKIH0KIAordm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoRnVuY3Rpb248
dm9pZChjb25zdCBTdHJpbmcmKT4mJiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCBjYWxsYmFj
a0lEID0gKyttX3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyOworICAgIG1fb25nb2luZ0RpcmVj
dG9yeVRhc2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGlyZWN0b3J5IHsgY2FsbGJhY2tJRCB9KTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rp
b246OmRpZEdldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkodWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5KQoreworICAgIGlmIChhdXRv
IGNhbGxiYWNrID0gbV9vbmdvaW5nRGlyZWN0b3J5VGFza3MudGFrZShyZXF1ZXN0SWRlbnRpZmll
cikpCisgICAgICAgIGNhbGxiYWNrKGRpcmVjdG9yeSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApp
bmRleCBhN2IyYmRmOGYyZWQ4M2IyMTI0MjFiYmI4OWFiMGI0YmQwMjM1ZjQzLi42ZTA1NWNlYTBj
ZDIyYmM1YmU1Y2JmNTkwYzdiZWNiMzRiM2ZmM2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtODQs
NiArODQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgd2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYg
Y2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2
b2lkIHJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IGNhbGxiYWNrSUQsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpOwogCisgICAgdm9pZCBzZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGlyZWN0b3J5KEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpIGZpbmFs
OworICAgIHZvaWQgZGlkR2V0U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSh1aW50
NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIGdldFJl
Z2lzdHJhdGlvbnMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29u
c3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayYmKSBm
aW5hbDsKIAogICAgIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpIGZpbmFsOwpAQCAtMTA5LDcgKzEx
Miw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgR2V0UmVnaXN0cmF0aW9uc0Nh
bGxiYWNrPiBtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3M7CiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgV2hlblJlZ2lzdHJhdGlvblJlYWR5Q2FsbGJhY2s+IG1fb25nb2luZ1JlZ2lzdHJhdGlv
blJlYWR5VGFza3M7CiAgICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBtX3Rhc2tzUGVu
ZGluZ09yaWdpbkltcG9ydDsKLQorICAgIEhhc2hNYXA8dWludDY0X3QsIEZ1bmN0aW9uPHZvaWQo
Y29uc3QgU3RyaW5nJik+PiBtX29uZ29pbmdEaXJlY3RvcnlUYXNrczsKIH07IC8vIGNsYXNzIFdl
YlNXU2VydmVyQ29ubmVjdGlvbgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBlZTRiMGE4MjJjN2Y2NDdkOTM4ZmFiNTM2Yjg4
NzYyYzNjMjNmZmJiLi42YmNjYmMzN2YwMTA0ZDZhMjA4ODk5NGZkMWM3MThkMWQzMDQ5YTUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC00Miw2ICs0Miw4IEBAIG1l
c3NhZ2VzIC0+IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiB7CiAgICAgRGlkTWF0Y2hSZWdpc3RyYXRp
b24odWludDY0X3QgbWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gZGF0YSkKICAgICBEaWRHZXRSZWdpc3Ry
YXRpb25zKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gcmVnaXN0cmF0aW9ucykKICAgICBSZWdpc3Ry
YXRpb25SZWFkeSh1aW50NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgZGF0YSkKKworICAg
IERpZEdldFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkodWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIFN0cmluZyBkaXJlY3RvcnkpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggNjc0ZGE1NmE4Y2ZlYWVjYzUzYmY4NGIxNTNlY2JjYjI3ODE4MzhhMC4uNmVkY2Iz
YzU1ZjBlMTk2NDRjNzJhNjU2OWY3MzI5YzA3NWM1ODQ5MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE4LTAyLTA2
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgQVBJIHRl
c3QgdG8gdmFsaWRhdGUgc2V0dGluZyBvZiBzZXJ2aWNlIHdvcmtlciBhbmQgY2FjaGUgc3RvcmFn
ZSBkaXJlY3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgyNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbToKKwogMjAxOC0wMi0wNSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdG9yYWdlIEFjY2VzcyBBUEk6IEFkZCB0ZXN0UnVubmVyLmdldEFsbFN0b3Jh
Z2VBY2Nlc3NFbnRyaWVzKCkgdG8gbWFrZSB0ZXN0aW5nIGVhc2llciBhbmQgbW9yZSBleHBsaWNp
dApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2
aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCAyOGU5ZTk5MmZiMWM1MGQyYWM4OGU5YmExZTk3
OGU3MTE4MDFlMmQ5Li4yMDUwOTFlMzI2NDBhNzA5NTU4ZjFkZDRhZDE5N2JjNDk3Mjg3NzE2IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VX
b3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtNTIsNiArNTIsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VJ
bmZvIHsKIHN0YXRpYyBib29sIGRvbmU7CiAKIHN0YXRpYyBTdHJpbmcgZXhwZWN0ZWRNZXNzYWdl
Oworc3RhdGljIFN0cmluZyByZXRyaWV2ZWRTdHJpbmc7CiAKIEBpbnRlcmZhY2UgU1dNZXNzYWdl
SGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgogQGVuZApAQCAtODM4
LDYgKzgzOSwxMjggQEAgVEVTVChTZXJ2aWNlV29ya2VycywgU2VydmljZVdvcmtlclByb2Nlc3ND
cmVhdGlvbikKICAgICBkb25lID0gZmFsc2U7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyKiByZWd1
bGFyUGFnZUdyYWJiaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA9IFIiU1dS
RVNPVVJDRSgKKzxzY3JpcHQ+Cithc3luYyBmdW5jdGlvbiBnZXRSZXN1bHQoKQoreworICAgIHZh
ciByZXN1bHQgPSBhd2FpdCB3aW5kb3cuaW50ZXJuYWxzLnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EaXJlY3RvcnkoKTsKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5yZWd1bGFy
UGFnZS5wb3N0TWVzc2FnZShyZXN1bHQpOworfQorZ2V0UmVzdWx0KCk7Cis8L3NjcmlwdD4KKylT
V1JFU09VUkNFIjsKKworc3RhdGljIGNvbnN0IGNoYXIqIHJlZ3VsYXJQYWdlR3JhYmJpbmdDYWNo
ZVN0b3JhZ2VEaXJlY3RvcnkgPSBSIlNXUkVTT1VSQ0UoCis8c2NyaXB0PgorYXN5bmMgZnVuY3Rp
b24gZ2V0UmVzdWx0KCkKK3sKKyAgICB2YXIgcmVzdWx0ID0gYXdhaXQgd2luZG93LmludGVybmFs
cy5jYWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlvbigpOworICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnJlZ3VsYXJQYWdlLnBvc3RNZXNzYWdlKHJlc3VsdCk7Cit9CitnZXRS
ZXN1bHQoKTsKKzwvc2NyaXB0PgorKVNXUkVTT1VSQ0UiOworCitAaW50ZXJmYWNlIERpcmVjdG9y
eVBhZ2VNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gRGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5kbGVyCistICh2
b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2Vy
Q29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2Fn
ZSAqKW1lc3NhZ2UKK3sKKyAgICByZXRyaWV2ZWRTdHJpbmcgPSBbbWVzc2FnZSBib2R5XTsKKyAg
ICBkb25lID0gdHJ1ZTsKK30KK0BlbmQKKworVEVTVChTZXJ2aWNlV29ya2VycywgU2VydmljZVdv
cmtlckFuZENhY2hlU3RvcmFnZURlZmF1bHREaXJlY3RvcmllcykKK3sKKyAgICBBU1NFUlQobWFp
bkJ5dGVzKTsKKyAgICBBU1NFUlQoc2NyaXB0Qnl0ZXMpOworCisgICAgW1dLV2Vic2l0ZURhdGFT
dG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zXTsKKworICAgIFJldGFp
blB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKworICAgIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIHNl
dENvbmZpZ3VyYXRpb25JbmplY3RlZEJ1bmRsZVBhdGgoY29uZmlndXJhdGlvbi5nZXQoKSk7CisK
KyAgICBSZXRhaW5QdHI8RGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5kbGVyPiBkaXJlY3RvcnlQYWdl
TWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbRGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5kbGVyIGFs
bG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0g
YWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6ZGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5kbGVyLmdldCgp
IG5hbWU6QCJyZWd1bGFyUGFnZSJdOworCisgICAgUmV0YWluUHRyPFNXU2NoZW1lcz4gaGFuZGxl
ciA9IGFkb3B0TlMoW1tTV1NjaGVtZXMgYWxsb2NdIGluaXRdKTsKKyAgICBoYW5kbGVyLT5yZXNv
dXJjZXMuc2V0KCJzdzovL2hvc3QvcmVndWxhclBhZ2VHcmFiYmluZ1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EaXJlY3RvcnkuaHRtbCIsIFJlc291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwgcmVn
dWxhclBhZ2VHcmFiYmluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgfSk7Cisg
ICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L3JlZ3VsYXJQYWdlR3JhYmJpbmdD
YWNoZVN0b3JhZ2VEaXJlY3RvcnkuaHRtbCIsIFJlc291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwg
cmVndWxhclBhZ2VHcmFiYmluZ0NhY2hlU3RvcmFnZURpcmVjdG9yeSB9KTsKKyAgICBbY29uZmln
dXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAi
U1ciXTsKKworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJzdzovL2hvc3QvcmVndWxhclBhZ2VHcmFiYmluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3RvcnkuaHRtbCJdXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOwor
ICAgIEVYUEVDVF9UUlVFKHJldHJpZXZlZFN0cmluZy5jb250YWlucygiL0NhY2hlcy9UZXN0V2Vi
S2l0QVBJL1dlYktpdC9TZXJ2aWNlV29ya2VycyIpKTsKKworICAgIHdlYlZpZXcgPSBhZG9wdE5T
KFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIHJlcXVlc3QgPSBb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9o
b3N0L3JlZ3VsYXJQYWdlR3JhYmJpbmdDYWNoZVN0b3JhZ2VEaXJlY3RvcnkuaHRtbCJdXTsKKwor
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIEVYUEVDVF9UUlVFKHJldHJp
ZXZlZFN0cmluZy5jb250YWlucygiL0NhY2hlcy9UZXN0V2ViS2l0QVBJL1dlYktpdC9DYWNoZVN0
b3JhZ2UiKSk7CisKKyAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3Zl
RGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2Rp
ZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7Cisg
ICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQorCitURVNUKFNlcnZpY2VXb3JrZXJzLCBT
ZXJ2aWNlV29ya2VyQW5kQ2FjaGVTdG9yYWdlU3BlY2lmaWNEaXJlY3RvcmllcykKK3sKKyAgICBB
U1NFUlQobWFpbkJ5dGVzKTsKKyAgICBBU1NFUlQoc2NyaXB0Qnl0ZXMpOworCisgICAgW1dLV2Vi
c2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zXTsKKwor
ICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKworICAgIGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIHNldENvbmZpZ3VyYXRpb25JbmplY3RlZEJ1bmRsZVBhdGgoY29uZmlndXJhdGlvbi5n
ZXQoKSk7CisgICAgYXV0byB3ZWJzaXRlRGF0YVN0b3JlID0gW2NvbmZpZ3VyYXRpb24gd2Vic2l0
ZURhdGFTdG9yZV07CisgICAgW3dlYnNpdGVEYXRhU3RvcmUgX3NldENhY2hlU3RvcmFnZURpcmVj
dG9yeTpAIi92YXIvdG1wIl07CisgICAgW3dlYnNpdGVEYXRhU3RvcmUgX3NldFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6QCIvdmFyL3RtcCJdOworCisgICAgUmV0YWluUHRyPERp
cmVjdG9yeVBhZ2VNZXNzYWdlSGFuZGxlcj4gZGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5kbGVyID0g
YWRvcHROUyhbW0RpcmVjdG9yeVBhZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOmRpcmVjdG9yeVBhZ2VNZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAicmVndWxhclBh
Z2UiXTsKKworICAgIFJldGFpblB0cjxTV1NjaGVtZXM+IGhhbmRsZXIgPSBhZG9wdE5TKFtbU1dT
Y2hlbWVzIGFsbG9jXSBpbml0XSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9o
b3N0L3JlZ3VsYXJQYWdlR3JhYmJpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5
Lmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRtbCIsIHJlZ3VsYXJQYWdlR3JhYmJpbmdT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IH0pOworICAgIGhhbmRsZXItPnJlc291
cmNlcy5zZXQoInN3Oi8vaG9zdC9yZWd1bGFyUGFnZUdyYWJiaW5nQ2FjaGVTdG9yYWdlRGlyZWN0
b3J5Lmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRtbCIsIHJlZ3VsYXJQYWdlR3JhYmJp
bmdDYWNoZVN0b3JhZ2VEaXJlY3RvcnkgfSk7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2No
ZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlNXIl07CisKKyAgICBSZXRh
aW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb24uZ2V0KCldKTsKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L3JlZ3Vs
YXJQYWdlR3JhYmJpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5Lmh0bWwiXV07
CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBFWFBFQ1RfVFJVRShy
ZXRyaWV2ZWRTdHJpbmcgPT0gIi92YXIvdG1wIik7CisKKyAgICB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICByZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9z
dC9yZWd1bGFyUGFnZUdyYWJiaW5nQ2FjaGVTdG9yYWdlRGlyZWN0b3J5Lmh0bWwiXV07CisKKyAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBFWFBFQ1RfVFJVRShyZXRyaWV2
ZWRTdHJpbmcuY29udGFpbnMoIlwicGF0aFwiOiBcIi92YXIvdG1wXCIiKSk7CisKKyAgICBbW2Nv
bmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0
ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlz
dGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgICAgIGRvbmUgPSB0cnVlOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9
IGZhbHNlOworfQorCiAjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQogCiAjZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBiYTE3NDU3MGE5MmNlYzA2OWRmMGE0NTcyZTg1NmQxYmYwOTJlYTFl
Li5kOTQ5YmMwNTg5MTFiOWU4OTY2ZTg0ZDIzZTgxZmNhYTAwMzZjY2Y4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTgtMDItMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBBUEkgdGVzdCB0byB2YWxpZGF0ZSBzZXR0aW5nIG9mIHNlcnZpY2Ugd29y
a2VyIGFuZCBjYWNoZSBzdG9yYWdlIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRlc3RzIGFjY29yZGluZyBuZXcgZW5n
aW5lIHJlcHJlc2VudGF0aW9uLgorCisgICAgICAgICogaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdl
L2NhY2hlLWNsZWFyaW5nLW9yaWdpbi5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
Y2FjaGUtc3RvcmFnZS9jYWNoZS1vcmlnaW5zLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLXJlcHJlc2VudGF0aW9uLmh0dHBzLmh0bWw6CisKIDIw
MTgtMDItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENy
YXNoIGluIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvMmRjb250ZXh0L2ltYWdlYml0
bWFwL2NyZWF0ZUltYWdlQml0bWFwLW9yaWdpbi5zdWIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLWNsZWFyaW5nLW9yaWdpbi5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLWNsZWFy
aW5nLW9yaWdpbi5odHRwcy5odG1sCmluZGV4IDAxZjAzMjEwMmRlMWY5NWNlMTYxM2I5MmIyNjAx
MWIzMGUyOTMwNzguLjkyY2U4ZDQ0ZGE0MDJkZmI0YTU5YmNmMjJlMGM1NzgxOTU5MWZjYzYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9jYWNoZS1jbGVh
cmluZy1vcmlnaW4uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hl
LXN0b3JhZ2UvY2FjaGUtY2xlYXJpbmctb3JpZ2luLmh0dHBzLmh0bWwKQEAgLTIzLDcgKzIzLDcg
QEAgcHJvbWlzZV90ZXN0KCgpID0+IHsKICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4gewogICAgICAgICB2YXIgY291bnRlciA9IDA7CiAgICAgICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgYXN5bmMgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAg
ICB2YXIgcmVwcmVzZW50YXRpb24gPSBKU09OLnBhcnNlKGF3YWl0IGludGVybmFscy5jYWNoZVN0
b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlvbigpKTsKKyAgICAgICAgICAgIHZhciByZXByZXNlbnRh
dGlvbiA9IEpTT04ucGFyc2UoYXdhaXQgaW50ZXJuYWxzLmNhY2hlU3RvcmFnZUVuZ2luZVJlcHJl
c2VudGF0aW9uKCkpLm9yaWdpbnM7CiAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKICAgICAgICAg
ICAgICAgICByZXByZXNlbnRhdGlvbi5zb3J0KGNvbXBhcmVDbGllbnRPcmlnaW5zKTsKICAgICAg
ICAgICAgICAgICB2YXIgY2FjaGUgPSByZXByZXNlbnRhdGlvblswXS5vcmlnaW4uY2xpZW50T3Jp
Z2luID09PSAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MyIKQEAgLTM0LDcgKzM0LDcgQEAgcHJvbWlz
ZV90ZXN0KCgpID0+IHsKIAogICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckRPTUNhY2hlKCdo
dHRwczovL2xvY2FsaG9zdDo4NDQzJyk7CiAKLSAgICAgICAgICAgIHJlcHJlc2VudGF0aW9uID0g
SlNPTi5wYXJzZShhd2FpdCBpbnRlcm5hbHMuY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50YXRp
b24oKSk7CisgICAgICAgICAgICByZXByZXNlbnRhdGlvbiA9IEpTT04ucGFyc2UoYXdhaXQgaW50
ZXJuYWxzLmNhY2hlU3RvcmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKCkpLm9yaWdpbnM7CiAgICAg
ICAgICAgICB0ZXN0KCgpID0+IHsKICAgICAgICAgICAgICAgICByZXByZXNlbnRhdGlvbi5zb3J0
KGNvbXBhcmVDbGllbnRPcmlnaW5zKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
cHJlc2VudGF0aW9uWzBdLm9yaWdpbi50b3BPcmlnaW4sICJodHRwczovLzEyNy4wLjAuMTo4NDQz
IiwgInRvcCBvcmlnaW4gb2YgY2FjaGUgMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLW9yaWdpbnMuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9jYWNoZS1vcmlnaW5zLmh0dHBzLmh0bWwKaW5k
ZXggNzczMWYxYzRhMWYzMDEwODhkOGVhZmMzNDM4NjZhNzk1ZjgzZmNlMS4uMjFmOGVjMzViZThh
MjE1YWNmMWVhMzFiZTE5ODY2OWJmMTEwMmVlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLW9yaWdpbnMuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlLXN0b3JhZ2UvY2FjaGUtb3JpZ2lucy5odHRwcy5odG1s
CkBAIC0xOSw3ICsxOSw3IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBjaGVja0NhY2hlc0FmdGVy
Q2xlYXJpbmdPcmlnaW5zKCkgewogICAgICAgICB0ZXN0UnVubmVyLmNsZWFyRE9NQ2FjaGUoJ2h0
dHBzOi8vMTI3LjAuMC4xOjg0NDMnKTsKLSAgICAgICAgdmFyIHJlcHJlc2VudGF0aW9uID0gSlNP
Ti5wYXJzZShhd2FpdCBpbnRlcm5hbHMuY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50YXRpb24o
KSk7CisgICAgICAgIHZhciByZXByZXNlbnRhdGlvbiA9IEpTT04ucGFyc2UoYXdhaXQgaW50ZXJu
YWxzLmNhY2hlU3RvcmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKCkpLm9yaWdpbnM7CiAgICAgICAg
IHRlc3QoKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXByZXNlbnRhdGlvblsw
XS5vcmlnaW4udG9wT3JpZ2luLCAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0MyIsICJ0b3Agb3JpZ2lu
IG9mIGNhY2hlIDEiKTsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVwcmVzZW50YXRpb25b
MV0ub3JpZ2luLnRvcE9yaWdpbiwgImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMiLCAidG9wIG9yaWdp
biBvZiBjYWNoZSAyIik7CkBAIC0zMSw3ICszMSw3IEBACiAgICAgfQogCiAgICAgYXN5bmMgZnVu
Y3Rpb24gY2hlY2tDYWNoZVJlcHJlc2VudGF0aW9uKCkgewotICAgICAgICB2YXIgcmVwcmVzZW50
YXRpb24gPSBKU09OLnBhcnNlKGF3YWl0IGludGVybmFscy5jYWNoZVN0b3JhZ2VFbmdpbmVSZXBy
ZXNlbnRhdGlvbigpKTsKKyAgICAgICAgdmFyIHJlcHJlc2VudGF0aW9uID0gSlNPTi5wYXJzZShh
d2FpdCBpbnRlcm5hbHMuY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50YXRpb24oKSkub3JpZ2lu
czsKICAgICAgICAgdGVzdCgoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlcHJl
c2VudGF0aW9uWzBdLm9yaWdpbi50b3BPcmlnaW4sICJodHRwczovLzEyNy4wLjAuMTo4NDQzIiwg
InRvcCBvcmlnaW4gb2YgY2FjaGUgMSIpOwogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXBy
ZXNlbnRhdGlvblsxXS5vcmlnaW4udG9wT3JpZ2luLCAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0MyIs
ICJ0b3Agb3JpZ2luIG9mIGNhY2hlIDIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY2FjaGUtc3RvcmFnZS9jYWNoZS1yZXByZXNlbnRhdGlvbi5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLXJlcHJlc2VudGF0aW9uLmh0
dHBzLmh0bWwKaW5kZXggMmY5MzAyODBiNDg4NTU0ZGI4NzU2ZjliNTI0YjUyZWNkM2I3MTE2NS4u
NjFjMGY4ZDI2Mjc5ZjhjODk5OWUxOWEzNTFiZmJkNGZiZjM5YjM3MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLXJlcHJlc2VudGF0aW9uLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hl
LXJlcHJlc2VudGF0aW9uLmh0dHBzLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKIAogICAgIGZ1bmN0
aW9uIGNoZWNrQ2FjaGVzKGhhc1BlcnNpc3RlbnQsIGhhc1JlbW92ZWQsIG5hbWUsIHZhbHVlKSB7
CiAgICAgICAgIHRlc3QoKCkgPT4gewotICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBKU09OLnBh
cnNlKHZhbHVlKTsKKyAgICAgICAgICAgIHZhciByZXN1bHRzID0gSlNPTi5wYXJzZSh2YWx1ZSku
b3JpZ2luczsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0cy5sZW5ndGgsIDEpOwog
ICAgICAgICAgICAgdmFyIGNhY2hlcyA9IHJlc3VsdHNbMF0uY2FjaGVzOwogICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyghIWNhY2hlc1sicGVyc2lzdGVudCJdLmxlbmd0aCwgaGFzUGVyc2lzdGVu
dCwgInBlcnNpc3RlbnQiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334778</attachid>
            <date>2018-02-28 15:40:32 -0800</date>
            <delta_ts>2018-02-28 16:50:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182543-20180228154031.patch</filename>
            <type>text/plain</type>
            <size>17124</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE2YjM3NmMyMmEwNTIw
N2FkYjYyNzYzMTFjOTMxOWMwZDc2MjcyYi4uY2VjN2QzMDJkYmJkZmU1MmI2YTI2ZjMyMWNmMzg0
ZGFkNzVmZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTAyLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgQVBJIHRlc3QgdG8g
dmFsaWRhdGUgc2V0dGluZyBvZiBzZXJ2aWNlIHdvcmtlciBhbmQgY2FjaGUgc3RvcmFnZSBkaXJl
Y3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgyNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgQWRkIGdldHRlcnMgdG8gc2VydmljZSB3
b3JrZXIgcmVnaXN0cmF0aW9uIGRpcmVjdG9yeS4KKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NX
Q2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVn
aXN0cmF0aW9uRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFi
YXNlOjpzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZWdpc3RyYXRpb25TdG9yZTo6c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeSBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3RvcnkgY29uc3QpOgorCiAyMDE4LTAyLTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBMb2FkcyBmb3IgYSBEb2N1bWVudCBjb250cm9sbGVkIGJ5IGEg
U2VydmljZSBXb3JrZXIgc2hvdWxkIG5vdCB1c2UgQXBwQ2FjaGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWY4YWE3
M2M1ZGYyYThkZTc1ZDNjZjlmNWY5YmQ5ZmE5ZjlmOWE1Yy4uZDBmOTlmN2Q2ZGM1MTlmZTY2YzEw
OTYzMjg2YjU5MTQzNDRjYTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0wMi0y
OCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0
ZXN0IHRvIHZhbGlkYXRlIHNldHRpbmcgb2Ygc2VydmljZSB3b3JrZXIgYW5kIGNhY2hlIHN0b3Jh
Z2UgZGlyZWN0b3JpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MjU0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBjYWNoZSBlbmdpbmUgZGlyZWN0b3J5IHBhdGggdG8gaXRzIHJlcHJlc2VudGF0
aW9uIGR1bXAuCisgICAgICAgIFRoaXMgaXMgdXNlZCBpbiBBUEkgdGVzdHMgdG8gY2hlY2sgdGhh
dCB0aGUgcGF0aCBpcyBjb3JyZWN0bHkgc2V0LgorCisgICAgICAgIEFkZCBhIHdheSBmb3IgdG8g
a25vdyB3aGV0aGVyIGEgc2VydmljZSB3b3JrZXIgd2FzIHJlZ2lzdGVyZWQgZnJvbSBhIFdLV2Vi
c2l0ZURhdGFTdG9yZS4KKyAgICAgICAgVGhpcyBpcyB1c2VkIGluIEFQSSB0ZXN0cyB0byBjaGVj
ayB0aGF0IHRoZSBwYXRoIGlzIGNvcnJlY3RseSBzZXQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNo
ZVN0b3JhZ2U6OkVuZ2luZTo6cmVwcmVzZW50YXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRh
U3RvcmUgX2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2VyXSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisKIDIwMTgtMDItMjYgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENhY2hlczo6bV9zdG9y
YWdlIHNob3VsZCBiZSBzZXQgdG8gbnVsbCBpbiBjYXNlIG9mIGVycm9yIGF0IGluaXRpYWxpemF0
aW9uIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCAxYTkxOTY2NDljNmQ4MTg0OWY2OGIxY2Uz
MDEzN2U2NjhjNGMyNzU2Li4yYzEwNWM0NGNjOWE1OTU2MTIyNjkwYmYyMGRmY2M1YmIwNGRlMTIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmUuY3BwCkBAIC00NzUsNyArNDc1LDkgQEAgU3RyaW5nIEVuZ2luZTo6
cmVwcmVzZW50YXRpb24oKQogewogICAgIGJvb2wgaXNGaXJzdCA9IHRydWU7CiAgICAgU3RyaW5n
QnVpbGRlciBidWlsZGVyOwotICAgIGJ1aWxkZXIuYXBwZW5kKCJbIik7CisgICAgYnVpbGRlci5h
cHBlbmQoInsgXCJwYXRoXCI6IFwiIik7CisgICAgYnVpbGRlci5hcHBlbmQobV9yb290UGF0aCk7
CisgICAgYnVpbGRlci5hcHBlbmQoIlwiLCBcIm9yaWdpbnNcIjogWyIpOwogICAgIGZvciAoYXV0
byYga2V5VmFsdWUgOiBtX2NhY2hlcykgewogICAgICAgICBpZiAoIWlzRmlyc3QpCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiLCIpOwpAQCAtNDg5LDcgKzQ5MSw3IEBAIFN0cmluZyBFbmdp
bmU6OnJlcHJlc2VudGF0aW9uKCkKICAgICAgICAga2V5VmFsdWUudmFsdWUtPmFwcGVuZFJlcHJl
c2VudGF0aW9uKGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgifSIpOwogICAgIH0K
LSAgICBidWlsZGVyLmFwcGVuZCgiXG5dIik7CisgICAgYnVpbGRlci5hcHBlbmQoIl19Iik7CiAg
ICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggOGMz
NWI5NTMyZTNmN2Q1Y2EwMjgwODliZjlkMmYyNjIyMjQwNzVlMC4uZGY5NjMwMjdiMjQ4YzE5ZGZi
MTJlMDdlMzU0YThmOWU0M2Y0MDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW1wb3J0ICJXZWJzaXRlRGF0YUZldGNoT3B0aW9uLmgiCiAjaW1wb3J0ICJfV0tXZWJzaXRl
RGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCA8V2ViQ29yZS9VUkwuaD4KKyNpbXBv
cnQgPFdlYktpdC9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Lmg+CiAjaW1wb3J0IDx3dGYvQmxv
Y2tQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0zNDEsNiArMzQyLDExIEBA
IHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJl
Y29yZHMoTlNBcnJheSAqZGF0YVJlY29yCiAgICAgfSk7CiB9CiAKKy0gKGJvb2wpX2hhc1JlZ2lz
dGVyZWRTZXJ2aWNlV29ya2VyCit7CisgICAgcmV0dXJuIFdlYktpdDo6U2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eTo6aGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJzKF93ZWJzaXRlRGF0YVN0b3Jl
LT53ZWJzaXRlRGF0YVN0b3JlKCkuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgp
KTsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
UHJpdmF0ZS5oCmluZGV4IDIwZDcwNWU1M2ZiNDk2YjI5NjAzMmJmMjMxNzMzY2MxZjhmMzZiN2Eu
LjkzNjY2MDJjZGVlZDVhZjljMDFlNTY2YTVmMjZjNzU5N2NjNzUwNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZVByaXZhdGUuaApAQCAtNTcsNiArNTcsOCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAodm9pZClfc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjazoobnVsbGFibGUgdm9pZCAoXikoV0tX
ZWJzaXRlRGF0YVN0b3JlICosIE5TU3RyaW5nICopKWNhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX2dldEFsbFN0b3JhZ2VBY2Nlc3NF
bnRyaWVzOih2b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICpkb21haW5zKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKICsgKHZvaWQpX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2lucyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKGJv
b2wpX2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxM
X0VORApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDRhZGNkZTQ3OTE0MTMxZjU2YzlkYmJjM2ZhYjk4ZjFkNTlkNmE2MmYuLjBlZGM1NzI2Yzc1MGZk
OGQ4YmI5OTlhMTRmYTA0YWNkOTM0YTMwNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOC0wMi0yOCAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IHRvIHZh
bGlkYXRlIHNldHRpbmcgb2Ygc2VydmljZSB3b3JrZXIgYW5kIGNhY2hlIHN0b3JhZ2UgZGlyZWN0
b3JpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MjU0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisK
IDIwMTgtMDItMjYgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAg
ICAgICBGaXggV2ViQ29yZSBpbmNsdWRlcyB3aXRoaW4gV2ViS2l0TGVnYWN5CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tCmluZGV4IDYwZDI1MDNkMjNhM2E4MmNiMGFmMWU2N2FkN2M5NjgzNTQ5OWMxYjMu
LmI5YjJkNmY4ZTc0MDc4MWE2NjVkN2Y2ZjdiNDY5YzFmZDdmZWMyOGEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tCkBAIC01NCw2ICs1NCw3IEBAIHN0cnVjdCBSZXNvdXJjZUluZm8gewogc3RhdGlj
IGJvb2wgZG9uZTsKIAogc3RhdGljIFN0cmluZyBleHBlY3RlZE1lc3NhZ2U7CitzdGF0aWMgU3Ry
aW5nIHJldHJpZXZlZFN0cmluZzsKIAogQGludGVyZmFjZSBTV01lc3NhZ2VIYW5kbGVyIDogTlNP
YmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CiBAZW5kCkBAIC05NzgsNiArOTc5LDcgQEAg
VEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkJpdCkKICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0K
KwogI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkKIAogVEVTVChTZXJ2aWNlV29ya2VycywgTm9uRGVm
YXVsdFNlc3Npb25JRCkKQEAgLTEwMzEsNCArMTAzMywxMTkgQEAgVEVTVChTZXJ2aWNlV29ya2Vy
cywgTm9uRGVmYXVsdFNlc3Npb25JRCkKICAgICBkb25lID0gZmFsc2U7CiB9CiAKK3N0YXRpYyBj
b25zdCBjaGFyKiByZWd1bGFyUGFnZUdyYWJiaW5nQ2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gUiJT
V1JFU09VUkNFKAorPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIGdldFJlc3VsdCgpCit7CisgICAg
dmFyIHJlc3VsdCA9IGF3YWl0IHdpbmRvdy5pbnRlcm5hbHMuY2FjaGVTdG9yYWdlRW5naW5lUmVw
cmVzZW50YXRpb24oKTsKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5zdy5wb3N0
TWVzc2FnZShyZXN1bHQpOworfQorZ2V0UmVzdWx0KCk7Cis8L3NjcmlwdD4KKylTV1JFU09VUkNF
IjsKKworQGludGVyZmFjZSBEaXJlY3RvcnlQYWdlTWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8
V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIERpcmVjdG9y
eVBhZ2VNZXNzYWdlSGFuZGxlcgorLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNl
ckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3Jp
cHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7CisgICAgcmV0cmlldmVkU3Ry
aW5nID0gW21lc3NhZ2UgYm9keV07CisgICAgZG9uZSA9IHRydWU7Cit9CitAZW5kCisKK1RFU1Qo
U2VydmljZVdvcmtlcnMsIFNlcnZpY2VXb3JrZXJBbmRDYWNoZVN0b3JhZ2VEZWZhdWx0RGlyZWN0
b3JpZXMpCit7CisgICAgQVNTRVJUKG1haW5CeXRlcyk7CisgICAgQVNTRVJUKHNjcmlwdEJ5dGVz
KTsKKworICAgIFtXS1dlYnNpdGVEYXRhU3RvcmUgX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9y
QWxsT3JpZ2luc107CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CisKKyAgICBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKKyAgICBzZXRDb25maWd1cmF0aW9uSW5qZWN0ZWRCdW5kbGVQYXRo
KGNvbmZpZ3VyYXRpb24uZ2V0KCkpOworCisgICAgUmV0YWluUHRyPERpcmVjdG9yeVBhZ2VNZXNz
YWdlSGFuZGxlcj4gZGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW0RpcmVj
dG9yeVBhZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlv
biB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmRpcmVjdG9y
eVBhZ2VNZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKworICAgIFJldGFpblB0cjxT
V1NjaGVtZXM+IGhhbmRsZXIgPSBhZG9wdE5TKFtbU1dTY2hlbWVzIGFsbG9jXSBpbml0XSk7Cisg
ICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L21haW4uaHRtbCIsIFJlc291cmNl
SW5mbyB7IEAidGV4dC9odG1sIiwgbWFpbkJ5dGVzIH0pOworICAgIGhhbmRsZXItPnJlc291cmNl
cy5zZXQoInN3Oi8vaG9zdC9yZWd1bGFyUGFnZUdyYWJiaW5nQ2FjaGVTdG9yYWdlRGlyZWN0b3J5
Lmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRtbCIsIHJlZ3VsYXJQYWdlR3JhYmJpbmdD
YWNoZVN0b3JhZ2VEaXJlY3RvcnkgfSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6
Ly9ob3N0L3N3LmpzIiwgUmVzb3VyY2VJbmZvIHsgQCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Iiwg
c2NyaXB0Qnl0ZXMgfSk7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpo
YW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlNXIl07CisKKyAgICBSZXRhaW5QdHI8V0tXZWJW
aWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKKwor
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIEVYUEVDVF9UUlVFKFtbY29u
ZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSBfaGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJd
KTsKKworICAgIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bi5nZXQoKV0pOworICAgIFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wg
X3JlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6QCJzdyJdOworCisgICAg
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJzdzovL2hvc3QvcmVndWxhclBhZ2VHcmFiYmluZ0NhY2hlU3RvcmFnZURpcmVjdG9yeS5o
dG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIEVYUEVDVF9U
UlVFKHJldHJpZXZlZFN0cmluZy5jb250YWlucygiL0NhY2hlcy9UZXN0V2ViS2l0QVBJL1dlYktp
dC9DYWNoZVN0b3JhZ2UiKSk7CisKKyAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9y
ZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5
cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVy
Ol4oKSB7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQorCitURVNUKFNlcnZpY2VX
b3JrZXJzLCBTZXJ2aWNlV29ya2VyQW5kQ2FjaGVTdG9yYWdlU3BlY2lmaWNEaXJlY3RvcmllcykK
K3sKKyAgICBBU1NFUlQobWFpbkJ5dGVzKTsKKyAgICBBU1NFUlQoc2NyaXB0Qnl0ZXMpOworCisg
ICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmln
aW5zXTsKKworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKwor
ICAgIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIHNldENvbmZpZ3VyYXRpb25JbmplY3RlZEJ1bmRsZVBhdGgoY29uZmln
dXJhdGlvbi5nZXQoKSk7CisgICAgYXV0byB3ZWJzaXRlRGF0YVN0b3JlID0gW2NvbmZpZ3VyYXRp
b24gd2Vic2l0ZURhdGFTdG9yZV07CisgICAgW3dlYnNpdGVEYXRhU3RvcmUgX3NldENhY2hlU3Rv
cmFnZURpcmVjdG9yeTpAIi92YXIvdG1wIl07CisgICAgW3dlYnNpdGVEYXRhU3RvcmUgX3NldFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk6QCIvdmFyL3RtcCJdOworCisgICAgUmV0
YWluUHRyPERpcmVjdG9yeVBhZ2VNZXNzYWdlSGFuZGxlcj4gZGlyZWN0b3J5UGFnZU1lc3NhZ2VI
YW5kbGVyID0gYWRvcHROUyhbW0RpcmVjdG9yeVBhZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5p
dF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlw
dE1lc3NhZ2VIYW5kbGVyOmRpcmVjdG9yeVBhZ2VNZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAi
c3ciXTsKKworICAgIFJldGFpblB0cjxTV1NjaGVtZXM+IGhhbmRsZXIgPSBhZG9wdE5TKFtbU1dT
Y2hlbWVzIGFsbG9jXSBpbml0XSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9o
b3N0L21haW4uaHRtbCIsIFJlc291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwgbWFpbkJ5dGVzIH0p
OworICAgIGhhbmRsZXItPnJlc291cmNlcy5zZXQoInN3Oi8vaG9zdC9yZWd1bGFyUGFnZUdyYWJi
aW5nQ2FjaGVTdG9yYWdlRGlyZWN0b3J5Lmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRt
bCIsIHJlZ3VsYXJQYWdlR3JhYmJpbmdDYWNoZVN0b3JhZ2VEaXJlY3RvcnkgfSk7CisgICAgaGFu
ZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L3N3LmpzIiwgUmVzb3VyY2VJbmZvIHsgQCJh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0Iiwgc2NyaXB0Qnl0ZXMgfSk7CisgICAgW2NvbmZpZ3VyYXRp
b24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlNXIl07
CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQoKS5jb25maWd1
cmF0aW9uLnByb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFu
ZGxlOkAic3ciXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1s
Il1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIEVYUEVDVF9UUlVF
KFt3ZWJzaXRlRGF0YVN0b3JlIF9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcl0pOworCisgICAg
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7
CisgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJzdzovL2hvc3QvcmVndWxhclBhZ2VHcmFiYmluZ0NhY2hlU3RvcmFnZURpcmVj
dG9yeS5odG1sIl1dOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAg
RVhQRUNUX1RSVUUocmV0cmlldmVkU3RyaW5nLmNvbnRhaW5zKCJcInBhdGhcIjogXCIvdmFyL3Rt
cFwiIikpOworCisgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIHJlbW92ZURh
dGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZp
ZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgeworICAg
ICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKK30KKwogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVE
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMGU5MjYyZDNhMzAxYTFhMWE0ZGY3MDU3YWIxYjQ4OTBkMTgwODM2Ny4uMmZjMWQx
NGQ5ZmJlODU1MmUwNWUwOGJkZjA1OWVkMjAzYjgwODZiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE4LTAyLTI4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgQVBJIHRlc3QgdG8gdmFsaWRhdGUgc2V0dGluZyBvZiBzZXJ2aWNlIHdvcmtlciBhbmQg
Y2FjaGUgc3RvcmFnZSBkaXJlY3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0cyBhY2NvcmRpbmcgbmV3IGVuZ2luZSByZXBy
ZXNlbnRhdGlvbi4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9jYWNoZS1j
bGVhcmluZy1vcmlnaW4uaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2NhY2hlLXN0
b3JhZ2UvY2FjaGUtb3JpZ2lucy5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvY2Fj
aGUtc3RvcmFnZS9jYWNoZS1yZXByZXNlbnRhdGlvbi5odHRwcy5odG1sOgorCiAyMDE4LTAyLTI3
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgdHJp
Z2dlciBhIHNlcnZpY2Ugd29ya2VyIG1hdGNoIGluIGNhc2Ugb2YgZG9jdW1lbnQgcmVkaXJlY3Rp
b24gaWYgaXQgd2lsbCBiZSBhbHJlYWR5IHNlcnZlZCBieSBBcHBDYWNoZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLWNsZWFyaW5nLW9yaWdp
bi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hl
LWNsZWFyaW5nLW9yaWdpbi5odHRwcy5odG1sCmluZGV4IDAxZjAzMjEwMmRlMWY5NWNlMTYxM2I5
MmIyNjAxMWIzMGUyOTMwNzguLjkyY2U4ZDQ0ZGE0MDJkZmI0YTU5YmNmMjJlMGM1NzgxOTU5MWZj
YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9jYWNo
ZS1jbGVhcmluZy1vcmlnaW4uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2NhY2hlLXN0b3JhZ2UvY2FjaGUtY2xlYXJpbmctb3JpZ2luLmh0dHBzLmh0bWwKQEAgLTIzLDcg
KzIzLDcgQEAgcHJvbWlzZV90ZXN0KCgpID0+IHsKICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl
c29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICB2YXIgY291bnRlciA9IDA7CiAgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgYXN5bmMgKGV2ZW50KSA9PiB7Ci0gICAg
ICAgICAgICB2YXIgcmVwcmVzZW50YXRpb24gPSBKU09OLnBhcnNlKGF3YWl0IGludGVybmFscy5j
YWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlvbigpKTsKKyAgICAgICAgICAgIHZhciByZXBy
ZXNlbnRhdGlvbiA9IEpTT04ucGFyc2UoYXdhaXQgaW50ZXJuYWxzLmNhY2hlU3RvcmFnZUVuZ2lu
ZVJlcHJlc2VudGF0aW9uKCkpLm9yaWdpbnM7CiAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKICAg
ICAgICAgICAgICAgICByZXByZXNlbnRhdGlvbi5zb3J0KGNvbXBhcmVDbGllbnRPcmlnaW5zKTsK
ICAgICAgICAgICAgICAgICB2YXIgY2FjaGUgPSByZXByZXNlbnRhdGlvblswXS5vcmlnaW4uY2xp
ZW50T3JpZ2luID09PSAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MyIKQEAgLTM0LDcgKzM0LDcgQEAg
cHJvbWlzZV90ZXN0KCgpID0+IHsKIAogICAgICAgICAgICAgdGVzdFJ1bm5lci5jbGVhckRPTUNh
Y2hlKCdodHRwczovL2xvY2FsaG9zdDo4NDQzJyk7CiAKLSAgICAgICAgICAgIHJlcHJlc2VudGF0
aW9uID0gSlNPTi5wYXJzZShhd2FpdCBpbnRlcm5hbHMuY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVz
ZW50YXRpb24oKSk7CisgICAgICAgICAgICByZXByZXNlbnRhdGlvbiA9IEpTT04ucGFyc2UoYXdh
aXQgaW50ZXJuYWxzLmNhY2hlU3RvcmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKCkpLm9yaWdpbnM7
CiAgICAgICAgICAgICB0ZXN0KCgpID0+IHsKICAgICAgICAgICAgICAgICByZXByZXNlbnRhdGlv
bi5zb3J0KGNvbXBhcmVDbGllbnRPcmlnaW5zKTsKICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlcHJlc2VudGF0aW9uWzBdLm9yaWdpbi50b3BPcmlnaW4sICJodHRwczovLzEyNy4wLjAu
MTo4NDQzIiwgInRvcCBvcmlnaW4gb2YgY2FjaGUgMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLW9yaWdpbnMuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9jYWNoZS1vcmlnaW5zLmh0dHBzLmh0
bWwKaW5kZXggNzczMWYxYzRhMWYzMDEwODhkOGVhZmMzNDM4NjZhNzk1ZjgzZmNlMS4uMjFmOGVj
MzViZThhMjE1YWNmMWVhMzFiZTE5ODY2OWJmMTEwMmVlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLW9yaWdpbnMuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlLXN0b3JhZ2UvY2FjaGUtb3JpZ2lucy5odHRw
cy5odG1sCkBAIC0xOSw3ICsxOSw3IEBACiAKICAgICBhc3luYyBmdW5jdGlvbiBjaGVja0NhY2hl
c0FmdGVyQ2xlYXJpbmdPcmlnaW5zKCkgewogICAgICAgICB0ZXN0UnVubmVyLmNsZWFyRE9NQ2Fj
aGUoJ2h0dHBzOi8vMTI3LjAuMC4xOjg0NDMnKTsKLSAgICAgICAgdmFyIHJlcHJlc2VudGF0aW9u
ID0gSlNPTi5wYXJzZShhd2FpdCBpbnRlcm5hbHMuY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50
YXRpb24oKSk7CisgICAgICAgIHZhciByZXByZXNlbnRhdGlvbiA9IEpTT04ucGFyc2UoYXdhaXQg
aW50ZXJuYWxzLmNhY2hlU3RvcmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKCkpLm9yaWdpbnM7CiAg
ICAgICAgIHRlc3QoKCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXByZXNlbnRh
dGlvblswXS5vcmlnaW4udG9wT3JpZ2luLCAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0MyIsICJ0b3Ag
b3JpZ2luIG9mIGNhY2hlIDEiKTsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVwcmVzZW50
YXRpb25bMV0ub3JpZ2luLnRvcE9yaWdpbiwgImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMiLCAidG9w
IG9yaWdpbiBvZiBjYWNoZSAyIik7CkBAIC0zMSw3ICszMSw3IEBACiAgICAgfQogCiAgICAgYXN5
bmMgZnVuY3Rpb24gY2hlY2tDYWNoZVJlcHJlc2VudGF0aW9uKCkgewotICAgICAgICB2YXIgcmVw
cmVzZW50YXRpb24gPSBKU09OLnBhcnNlKGF3YWl0IGludGVybmFscy5jYWNoZVN0b3JhZ2VFbmdp
bmVSZXByZXNlbnRhdGlvbigpKTsKKyAgICAgICAgdmFyIHJlcHJlc2VudGF0aW9uID0gSlNPTi5w
YXJzZShhd2FpdCBpbnRlcm5hbHMuY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50YXRpb24oKSku
b3JpZ2luczsKICAgICAgICAgdGVzdCgoKSA9PiB7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlcHJlc2VudGF0aW9uWzBdLm9yaWdpbi50b3BPcmlnaW4sICJodHRwczovLzEyNy4wLjAuMTo4
NDQzIiwgInRvcCBvcmlnaW4gb2YgY2FjaGUgMSIpOwogICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZXByZXNlbnRhdGlvblsxXS5vcmlnaW4udG9wT3JpZ2luLCAiaHR0cHM6Ly8xMjcuMC4wLjE6
ODQ0MyIsICJ0b3Agb3JpZ2luIG9mIGNhY2hlIDIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9jYWNoZS1yZXByZXNlbnRhdGlvbi5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLXJlcHJlc2VudGF0
aW9uLmh0dHBzLmh0bWwKaW5kZXggMmY5MzAyODBiNDg4NTU0ZGI4NzU2ZjliNTI0YjUyZWNkM2I3
MTE2NS4uNjFjMGY4ZDI2Mjc5ZjhjODk5OWUxOWEzNTFiZmJkNGZiZjM5YjM3MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLXJlcHJlc2VudGF0
aW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdl
L2NhY2hlLXJlcHJlc2VudGF0aW9uLmh0dHBzLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKIAogICAg
IGZ1bmN0aW9uIGNoZWNrQ2FjaGVzKGhhc1BlcnNpc3RlbnQsIGhhc1JlbW92ZWQsIG5hbWUsIHZh
bHVlKSB7CiAgICAgICAgIHRlc3QoKCkgPT4gewotICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBK
U09OLnBhcnNlKHZhbHVlKTsKKyAgICAgICAgICAgIHZhciByZXN1bHRzID0gSlNPTi5wYXJzZSh2
YWx1ZSkub3JpZ2luczsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0cy5sZW5ndGgs
IDEpOwogICAgICAgICAgICAgdmFyIGNhY2hlcyA9IHJlc3VsdHNbMF0uY2FjaGVzOwogICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyghIWNhY2hlc1sicGVyc2lzdGVudCJdLmxlbmd0aCwgaGFzUGVy
c2lzdGVudCwgInBlcnNpc3RlbnQiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334786</attachid>
            <date>2018-02-28 16:50:13 -0800</date>
            <delta_ts>2018-03-01 15:18:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182543-20180228165013.patch</filename>
            <type>text/plain</type>
            <size>17038</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk0MWYxMTcyYTc1NDlh
OGExNTVmY2QxNTNhNmJhZTFiNmFmM2E3ZS4uYWNiOTZkN2E5OTE5ZTk0YWZiNTVmZTQyNjU4ZDM3
YzcyYmMzODNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTAyLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgQVBJIHRlc3QgdG8g
dmFsaWRhdGUgc2V0dGluZyBvZiBzZXJ2aWNlIHdvcmtlciBhbmQgY2FjaGUgc3RvcmFnZSBkaXJl
Y3RvcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgyNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q292ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgQWRkIGdldHRlcnMgdG8gc2VydmljZSB3
b3JrZXIgcmVnaXN0cmF0aW9uIGRpcmVjdG9yeS4KKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NX
Q2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVn
aXN0cmF0aW9uRGF0YWJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRhdGFi
YXNlOjpzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZWdpc3RyYXRpb25TdG9yZTo6c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVj
dG9yeSBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
aXJlY3RvcnkgY29uc3QpOgorCiAyMDE4LTAyLTI4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBDbGllbnRzIHNob3VsZCByZWdpc3RlciB0byBTdG9yYWdlUHJv
Y2VzcyB3aXRoIHRoZWlyIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbiBpZGVudGlmaWVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDY3NGY3ODRhYzMwMGY3NmIyMGNkMmE2YWE5ODc5NzA1ZjFhNmY2ZDQuLjA3NjI4
ZDI5YzJjOGRkNzExMjEyNjRlYWMwNGVlZjVkNDI0MWYxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjIgQEAKKzIwMTgtMDItMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFkZCBBUEkgdGVzdCB0byB2YWxpZGF0ZSBzZXR0aW5nIG9mIHNlcnZpY2Ugd29ya2Vy
IGFuZCBjYWNoZSBzdG9yYWdlIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgY2FjaGUgZW5naW5lIGRpcmVjdG9yeSBwYXRoIHRv
IGl0cyByZXByZXNlbnRhdGlvbiBkdW1wLgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gQVBJIHRl
c3RzIHRvIGNoZWNrIHRoYXQgdGhlIHBhdGggaXMgY29ycmVjdGx5IHNldC4KKworICAgICAgICBB
ZGQgYSB3YXkgZm9yIHRvIGtub3cgd2hldGhlciBhIHNlcnZpY2Ugd29ya2VyIHdhcyByZWdpc3Rl
cmVkIGZyb20gYSBXS1dlYnNpdGVEYXRhU3RvcmUuCisgICAgICAgIFRoaXMgaXMgdXNlZCBpbiBB
UEkgdGVzdHMgdG8gY2hlY2sgdGhhdCB0aGUgcGF0aCBpcyBjb3JyZWN0bHkgc2V0LgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJlcHJlc2VudGF0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAg
KC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgor
CiAyMDE4LTAyLTI4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDbGllbnRzIHNob3VsZCByZWdpc3RlciB0byBTdG9yYWdlUHJvY2VzcyB3aXRoIHRoZWlyIHNl
cnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbiBpZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKaW5k
ZXggMWE5MTk2NjQ5YzZkODE4NDlmNjhiMWNlMzAxMzdlNjY4YzRjMjc1Ni4uMmMxMDVjNDRjYzlh
NTk1NjEyMjY5MGJmMjBkZmNjNWJiMDRkZTEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcApAQCAtNDc1
LDcgKzQ3NSw5IEBAIFN0cmluZyBFbmdpbmU6OnJlcHJlc2VudGF0aW9uKCkKIHsKICAgICBib29s
IGlzRmlyc3QgPSB0cnVlOwogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBidWlsZGVy
LmFwcGVuZCgiWyIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCJ7IFwicGF0aFwiOiBcIiIpOworICAg
IGJ1aWxkZXIuYXBwZW5kKG1fcm9vdFBhdGgpOworICAgIGJ1aWxkZXIuYXBwZW5kKCJcIiwgXCJv
cmlnaW5zXCI6IFsiKTsKICAgICBmb3IgKGF1dG8mIGtleVZhbHVlIDogbV9jYWNoZXMpIHsKICAg
ICAgICAgaWYgKCFpc0ZpcnN0KQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwiKTsKQEAg
LTQ4OSw3ICs0OTEsNyBAQCBTdHJpbmcgRW5naW5lOjpyZXByZXNlbnRhdGlvbigpCiAgICAgICAg
IGtleVZhbHVlLnZhbHVlLT5hcHBlbmRSZXByZXNlbnRhdGlvbihidWlsZGVyKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmQoIn0iKTsKICAgICB9Ci0gICAgYnVpbGRlci5hcHBlbmQoIlxuXSIpOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKCJdfSIpOwogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IDhjMzViOTUzMmUzZjdkNWNhMDI4MDg5YmY5ZDJmMjYy
MjI0MDc1ZTAuLmRmOTYzMDI3YjI0OGMxOWRmYjEyZTA3ZTM1NGE4ZjllNDNmNDA0YmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZS5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiV2Vic2l0ZURhdGFGZXRjaE9w
dGlvbi5oIgogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaCIKICNp
bXBvcnQgPFdlYkNvcmUvVVJMLmg+CisjaW1wb3J0IDxXZWJLaXQvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpAQCAtMzQxLDYgKzM0MiwxMSBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0
ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAg
IH0pOwogfQogCistIChib29sKV9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcgoreworICAgIHJl
dHVybiBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6Omhhc1JlZ2lzdGVyZWRTZXJ2
aWNlV29ya2Vycyhfd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkoKSk7Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFdL
X0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCAyMGQ3MDVlNTNmYjQ5
NmIyOTYwMzJiZjIzMTczM2NjMWY4ZjM2YjdhLi45MzY2NjAyY2RlZWQ1YWY5YzAxZTU2NmE1ZjI2
Yzc1OTdjYzc1MDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTU3LDYgKzU3LDgg
QEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRj
aE9wdGlvbnMpIHsKIC0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0aW5nQ2Fs
bGJhY2s6KG51bGxhYmxlIHZvaWQgKF4pKFdLV2Vic2l0ZURhdGFTdG9yZSAqLCBOU1N0cmluZyAq
KSljYWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAt
ICh2b2lkKV9nZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllczoodm9pZCAoXikoTlNBcnJheTxOU1N0
cmluZyAqPiAqZG9tYWlucykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiArICh2b2lkKV9hbGxvd1dlYnNpdGVE
YXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistIChib29sKV9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
KwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YWRjZGU0NzkxNDEzMWY1NmM5ZGJiYzNmYWI5
OGYxZDU5ZDZhNjJmLi4wZWRjNTcyNmM3NTBmZDhkOGJiOTk5YTE0ZmEwNGFjZDkzNGEzMDQ1IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTgtMDItMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBBUEkgdGVzdCB0byB2YWxpZGF0ZSBzZXR0aW5nIG9mIHNlcnZpY2Ugd29y
a2VyIGFuZCBjYWNoZSBzdG9yYWdlIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorCiAyMDE4LTAyLTI2ICBEb24gT2xtc3RlYWQgIDxk
b24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgRml4IFdlYkNvcmUgaW5jbHVkZXMgd2l0
aGluIFdlYktpdExlZ2FjeQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCA2MGQyNTAzZDIzYTNh
ODJjYjBhZjFlNjdhZDdjOTY4MzU0OTljMWIzLi40MmY0NDI2MjVhOGRlMDI3MDI3MmFlYmNiZGI0
ODViNGViYWRmMDE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtNTQsNiArNTQsNyBAQCBz
dHJ1Y3QgUmVzb3VyY2VJbmZvIHsKIHN0YXRpYyBib29sIGRvbmU7CiAKIHN0YXRpYyBTdHJpbmcg
ZXhwZWN0ZWRNZXNzYWdlOworc3RhdGljIFN0cmluZyByZXRyaWV2ZWRTdHJpbmc7CiAKIEBpbnRl
cmZhY2UgU1dNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVy
PgogQGVuZApAQCAtOTc4LDYgKzk3OSwxMjIgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgSGFzU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkJpdCkKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIH0KKworc3RhdGljIGNvbnN0IGNoYXIqIHJlZ3Vs
YXJQYWdlR3JhYmJpbmdDYWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSBSIlNXUkVTT1VSQ0UoCis8c2Ny
aXB0PgorYXN5bmMgZnVuY3Rpb24gZ2V0UmVzdWx0KCkKK3sKKyAgICB2YXIgcmVzdWx0ID0gYXdh
aXQgd2luZG93LmludGVybmFscy5jYWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlvbigpOwor
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnN3LnBvc3RNZXNzYWdlKHJlc3VsdCk7
Cit9CitnZXRSZXN1bHQoKTsKKzwvc2NyaXB0PgorKVNXUkVTT1VSQ0UiOworCitAaW50ZXJmYWNl
IERpcmVjdG9yeVBhZ2VNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VI
YW5kbGVyPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gRGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5k
bGVyCistICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2Ny
aXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICByZXRyaWV2ZWRTdHJpbmcgPSBbbWVzc2FnZSBi
b2R5XTsKKyAgICBkb25lID0gdHJ1ZTsKK30KK0BlbmQKKworVEVTVChTZXJ2aWNlV29ya2Vycywg
U2VydmljZVdvcmtlckFuZENhY2hlU3RvcmFnZURlZmF1bHREaXJlY3RvcmllcykKK3sKKyAgICBB
U1NFUlQobWFpbkJ5dGVzKTsKKyAgICBBU1NFUlQoc2NyaXB0Qnl0ZXMpOworCisgICAgW1dLV2Vi
c2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmlnaW5zXTsKKwor
ICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKworICAgIGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIHNldENvbmZpZ3VyYXRpb25JbmplY3RlZEJ1bmRsZVBhdGgoY29uZmlndXJhdGlvbi5n
ZXQoKSk7CisKKyAgICBSZXRhaW5QdHI8RGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5kbGVyPiBkaXJl
Y3RvcnlQYWdlTWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbRGlyZWN0b3J5UGFnZU1lc3NhZ2VI
YW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29u
dHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6ZGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5k
bGVyLmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgUmV0YWluUHRyPFNXU2NoZW1lcz4gaGFuZGxl
ciA9IGFkb3B0TlMoW1tTV1NjaGVtZXMgYWxsb2NdIGluaXRdKTsKKyAgICBoYW5kbGVyLT5yZXNv
dXJjZXMuc2V0KCJzdzovL2hvc3QvbWFpbi5odG1sIiwgUmVzb3VyY2VJbmZvIHsgQCJ0ZXh0L2h0
bWwiLCBtYWluQnl0ZXMgfSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0
L3JlZ3VsYXJQYWdlR3JhYmJpbmdDYWNoZVN0b3JhZ2VEaXJlY3RvcnkuaHRtbCIsIFJlc291cmNl
SW5mbyB7IEAidGV4dC9odG1sIiwgcmVndWxhclBhZ2VHcmFiYmluZ0NhY2hlU3RvcmFnZURpcmVj
dG9yeSB9KTsKKyAgICBoYW5kbGVyLT5yZXNvdXJjZXMuc2V0KCJzdzovL2hvc3Qvc3cuanMiLCBS
ZXNvdXJjZUluZm8geyBAImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiLCBzY3JpcHRCeXRlcyB9KTsK
KyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9y
VVJMU2NoZW1lOkAiU1ciXTsKKworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIE5TVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOworCisgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KyAgICBkb25lID0gZmFsc2U7CisgICAgRVhQRUNUX1RSVUUoW1tjb25maWd1cmF0aW9uIHdlYnNp
dGVEYXRhU3RvcmVdIF9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcl0pOworCisgICAgd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAg
W3dlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hl
bWVTZXJ2aWNlV29ya2Vyc0NhbkhhbmRsZTpAInN3Il07CisKKyAgICByZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9y
ZWd1bGFyUGFnZUdyYWJiaW5nQ2FjaGVTdG9yYWdlRGlyZWN0b3J5Lmh0bWwiXV07CisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgRVhQRUNUX1RSVUUocmV0cmlldmVkU3Ry
aW5nLmNvbnRhaW5zKCIvQ2FjaGVzL1Rlc3RXZWJLaXRBUEkvV2ViS2l0L0NhY2hlU3RvcmFnZSIp
KTsKKworICAgIFtbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZU
eXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2lu
Y2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAg
ZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBkb25lID0gZmFsc2U7Cit9CisKK1RFU1QoU2VydmljZVdvcmtlcnMsIFNlcnZpY2VX
b3JrZXJBbmRDYWNoZVN0b3JhZ2VTcGVjaWZpY0RpcmVjdG9yaWVzKQoreworICAgIEFTU0VSVCht
YWluQnl0ZXMpOworICAgIEFTU0VSVChzY3JpcHRCeXRlcyk7CisKKyAgICBbV0tXZWJzaXRlRGF0
YVN0b3JlIF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgUmV0
YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworCisgICAgY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAg
c2V0Q29uZmlndXJhdGlvbkluamVjdGVkQnVuZGxlUGF0aChjb25maWd1cmF0aW9uLmdldCgpKTsK
KyAgICBhdXRvIHdlYnNpdGVEYXRhU3RvcmUgPSBbY29uZmlndXJhdGlvbiB3ZWJzaXRlRGF0YVN0
b3JlXTsKKyAgICBbd2Vic2l0ZURhdGFTdG9yZSBfc2V0Q2FjaGVTdG9yYWdlRGlyZWN0b3J5OkAi
L3Zhci90bXAiXTsKKyAgICBbd2Vic2l0ZURhdGFTdG9yZSBfc2V0U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeTpAIi92YXIvdG1wIl07CisKKyAgICBSZXRhaW5QdHI8RGlyZWN0b3J5
UGFnZU1lc3NhZ2VIYW5kbGVyPiBkaXJlY3RvcnlQYWdlTWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5T
KFtbRGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25m
aWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6
ZGlyZWN0b3J5UGFnZU1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgUmV0
YWluUHRyPFNXU2NoZW1lcz4gaGFuZGxlciA9IGFkb3B0TlMoW1tTV1NjaGVtZXMgYWxsb2NdIGlu
aXRdKTsKKyAgICBoYW5kbGVyLT5yZXNvdXJjZXMuc2V0KCJzdzovL2hvc3QvbWFpbi5odG1sIiwg
UmVzb3VyY2VJbmZvIHsgQCJ0ZXh0L2h0bWwiLCBtYWluQnl0ZXMgfSk7CisgICAgaGFuZGxlci0+
cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L3JlZ3VsYXJQYWdlR3JhYmJpbmdDYWNoZVN0b3JhZ2VE
aXJlY3RvcnkuaHRtbCIsIFJlc291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwgcmVndWxhclBhZ2VH
cmFiYmluZ0NhY2hlU3RvcmFnZURpcmVjdG9yeSB9KTsKKyAgICBoYW5kbGVyLT5yZXNvdXJjZXMu
c2V0KCJzdzovL2hvc3Qvc3cuanMiLCBSZXNvdXJjZUluZm8geyBAImFwcGxpY2F0aW9uL2phdmFz
Y3JpcHQiLCBzY3JpcHRCeXRlcyB9KTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiU1ciXTsKKworICAgIFJldGFpblB0
cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bv
b2wgX3JlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6QCJzdyJdOworCisg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CisgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgRVhQRUNUX1RSVUUoW3dlYnNpdGVEYXRhU3Rv
cmUgX2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2VyXSk7CisKKyAgICB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICByZXF1ZXN0ID0g
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8v
aG9zdC9yZWd1bGFyUGFnZUdyYWJiaW5nQ2FjaGVTdG9yYWdlRGlyZWN0b3J5Lmh0bWwiXV07CisK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBFWFBFQ1RfVFJVRShyZXRy
aWV2ZWRTdHJpbmcuY29udGFpbnMoIlwicGF0aFwiOiBcIi92YXIvdG1wXCIiKSk7CisKKyAgICBb
W2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vi
c2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltOU0RhdGUg
ZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgICAgIGRvbmUgPSB0cnVl
OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9u
ZSA9IGZhbHNlOworfQorCiAjZW5kaWYgLy8gV0tfSEFWRV9DX1NQSQogCiBURVNUKFNlcnZpY2VX
b3JrZXJzLCBOb25EZWZhdWx0U2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBlOTI2MmQzYTMwMWExYTFhNGRm
NzA1N2FiMWI0ODkwZDE4MDgzNjcuLjJmYzFkMTRkOWZiZTg1NTJlMDVlMDhiZGYwNTllZDIwM2I4
MDg2YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wMi0yOCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IHRvIHZhbGlkYXRlIHNl
dHRpbmcgb2Ygc2VydmljZSB3b3JrZXIgYW5kIGNhY2hlIHN0b3JhZ2UgZGlyZWN0b3JpZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjU0MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgdGVz
dHMgYWNjb3JkaW5nIG5ldyBlbmdpbmUgcmVwcmVzZW50YXRpb24uCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2NhY2hlLXN0b3JhZ2UvY2FjaGUtY2xlYXJpbmctb3JpZ2luLmh0dHBzLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLW9yaWdpbnMuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2NhY2hlLXN0b3JhZ2UvY2FjaGUtcmVwcmVzZW50YXRp
b24uaHR0cHMuaHRtbDoKKwogMjAxOC0wMi0yNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRG8gbm90IHRyaWdnZXIgYSBzZXJ2aWNlIHdvcmtlciBtYXRjaCBp
biBjYXNlIG9mIGRvY3VtZW50IHJlZGlyZWN0aW9uIGlmIGl0IHdpbGwgYmUgYWxyZWFkeSBzZXJ2
ZWQgYnkgQXBwQ2FjaGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUt
c3RvcmFnZS9jYWNoZS1jbGVhcmluZy1vcmlnaW4uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9jYWNoZS1jbGVhcmluZy1vcmlnaW4uaHR0cHMuaHRtbApp
bmRleCAwMWYwMzIxMDJkZTFmOTVjZTE2MTNiOTJiMjYwMTFiMzBlMjkzMDc4Li45MmNlOGQ0NGRh
NDAyZGZiNGE1OWJjZjIyZTBjNTc4MTk1OTFmY2M2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2NhY2hlLXN0b3JhZ2UvY2FjaGUtY2xlYXJpbmctb3JpZ2luLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS1zdG9yYWdlL2NhY2hlLWNsZWFyaW5n
LW9yaWdpbi5odHRwcy5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIHByb21pc2VfdGVzdCgoKSA9PiB7
CiAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgICAg
dmFyIGNvdW50ZXIgPSAwOwogICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIGFzeW5jIChldmVudCkgPT4gewotICAgICAgICAgICAgdmFyIHJlcHJlc2VudGF0aW9uID0g
SlNPTi5wYXJzZShhd2FpdCBpbnRlcm5hbHMuY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50YXRp
b24oKSk7CisgICAgICAgICAgICB2YXIgcmVwcmVzZW50YXRpb24gPSBKU09OLnBhcnNlKGF3YWl0
IGludGVybmFscy5jYWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlvbigpKS5vcmlnaW5zOwog
ICAgICAgICAgICAgdGVzdCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpb24u
c29ydChjb21wYXJlQ2xpZW50T3JpZ2lucyk7CiAgICAgICAgICAgICAgICAgdmFyIGNhY2hlID0g
cmVwcmVzZW50YXRpb25bMF0ub3JpZ2luLmNsaWVudE9yaWdpbiA9PT0gImh0dHBzOi8vbG9jYWxo
b3N0Ojg0NDMiCkBAIC0zNCw3ICszNCw3IEBAIHByb21pc2VfdGVzdCgoKSA9PiB7CiAKICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuY2xlYXJET01DYWNoZSgnaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0Mycp
OwogCi0gICAgICAgICAgICByZXByZXNlbnRhdGlvbiA9IEpTT04ucGFyc2UoYXdhaXQgaW50ZXJu
YWxzLmNhY2hlU3RvcmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKCkpOworICAgICAgICAgICAgcmVw
cmVzZW50YXRpb24gPSBKU09OLnBhcnNlKGF3YWl0IGludGVybmFscy5jYWNoZVN0b3JhZ2VFbmdp
bmVSZXByZXNlbnRhdGlvbigpKS5vcmlnaW5zOwogICAgICAgICAgICAgdGVzdCgoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgcmVwcmVzZW50YXRpb24uc29ydChjb21wYXJlQ2xpZW50T3JpZ2lucyk7
CiAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXByZXNlbnRhdGlvblswXS5vcmlnaW4u
dG9wT3JpZ2luLCAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0MyIsICJ0b3Agb3JpZ2luIG9mIGNhY2hl
IDEiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9j
YWNoZS1vcmlnaW5zLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlLXN0
b3JhZ2UvY2FjaGUtb3JpZ2lucy5odHRwcy5odG1sCmluZGV4IDc3MzFmMWM0YTFmMzAxMDg4ZDhl
YWZjMzQzODY2YTc5NWY4M2ZjZTEuLjIxZjhlYzM1YmU4YTIxNWFjZjFlYTMxYmUxOTg2NjliZjEx
MDJlZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9j
YWNoZS1vcmlnaW5zLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNo
ZS1zdG9yYWdlL2NhY2hlLW9yaWdpbnMuaHR0cHMuaHRtbApAQCAtMTksNyArMTksNyBAQAogCiAg
ICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tDYWNoZXNBZnRlckNsZWFyaW5nT3JpZ2lucygpIHsKICAg
ICAgICAgdGVzdFJ1bm5lci5jbGVhckRPTUNhY2hlKCdodHRwczovLzEyNy4wLjAuMTo4NDQzJyk7
Ci0gICAgICAgIHZhciByZXByZXNlbnRhdGlvbiA9IEpTT04ucGFyc2UoYXdhaXQgaW50ZXJuYWxz
LmNhY2hlU3RvcmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKCkpOworICAgICAgICB2YXIgcmVwcmVz
ZW50YXRpb24gPSBKU09OLnBhcnNlKGF3YWl0IGludGVybmFscy5jYWNoZVN0b3JhZ2VFbmdpbmVS
ZXByZXNlbnRhdGlvbigpKS5vcmlnaW5zOwogICAgICAgICB0ZXN0KCgpID0+IHsKICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVwcmVzZW50YXRpb25bMF0ub3JpZ2luLnRvcE9yaWdpbiwgImh0
dHBzOi8vMTI3LjAuMC4xOjg0NDMiLCAidG9wIG9yaWdpbiBvZiBjYWNoZSAxIik7CiAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlcHJlc2VudGF0aW9uWzFdLm9yaWdpbi50b3BPcmlnaW4sICJo
dHRwczovLzEyNy4wLjAuMTo4NDQzIiwgInRvcCBvcmlnaW4gb2YgY2FjaGUgMiIpOwpAQCAtMzEs
NyArMzEsNyBAQAogICAgIH0KIAogICAgIGFzeW5jIGZ1bmN0aW9uIGNoZWNrQ2FjaGVSZXByZXNl
bnRhdGlvbigpIHsKLSAgICAgICAgdmFyIHJlcHJlc2VudGF0aW9uID0gSlNPTi5wYXJzZShhd2Fp
dCBpbnRlcm5hbHMuY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50YXRpb24oKSk7CisgICAgICAg
IHZhciByZXByZXNlbnRhdGlvbiA9IEpTT04ucGFyc2UoYXdhaXQgaW50ZXJuYWxzLmNhY2hlU3Rv
cmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKCkpLm9yaWdpbnM7CiAgICAgICAgIHRlc3QoKCkgPT4g
ewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXByZXNlbnRhdGlvblswXS5vcmlnaW4udG9w
T3JpZ2luLCAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0MyIsICJ0b3Agb3JpZ2luIG9mIGNhY2hlIDEi
KTsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVwcmVzZW50YXRpb25bMV0ub3JpZ2luLnRv
cE9yaWdpbiwgImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMiLCAidG9wIG9yaWdpbiBvZiBjYWNoZSAy
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlLXN0b3JhZ2UvY2Fj
aGUtcmVwcmVzZW50YXRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2Fj
aGUtc3RvcmFnZS9jYWNoZS1yZXByZXNlbnRhdGlvbi5odHRwcy5odG1sCmluZGV4IDJmOTMwMjgw
YjQ4ODU1NGRiODc1NmY5YjUyNGI1MmVjZDNiNzExNjUuLjYxYzBmOGQyNjI3OWY4Yzg5OTllMTlh
MzUxYmZiZDRmYmYzOWIzNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2Fj
aGUtc3RvcmFnZS9jYWNoZS1yZXByZXNlbnRhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvY2FjaGUtc3RvcmFnZS9jYWNoZS1yZXByZXNlbnRhdGlvbi5odHRwcy5o
dG1sCkBAIC0xNCw3ICsxNCw3IEBACiAKICAgICBmdW5jdGlvbiBjaGVja0NhY2hlcyhoYXNQZXJz
aXN0ZW50LCBoYXNSZW1vdmVkLCBuYW1lLCB2YWx1ZSkgewogICAgICAgICB0ZXN0KCgpID0+IHsK
LSAgICAgICAgICAgIHZhciByZXN1bHRzID0gSlNPTi5wYXJzZSh2YWx1ZSk7CisgICAgICAgICAg
ICB2YXIgcmVzdWx0cyA9IEpTT04ucGFyc2UodmFsdWUpLm9yaWdpbnM7CiAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlc3VsdHMubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIHZhciBjYWNoZXMg
PSByZXN1bHRzWzBdLmNhY2hlczsKICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoISFjYWNoZXNb
InBlcnNpc3RlbnQiXS5sZW5ndGgsIGhhc1BlcnNpc3RlbnQsICJwZXJzaXN0ZW50Iik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>