<?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>160092</bug_id>
          
          <creation_ts>2016-07-22 12:19:23 -0700</creation_ts>
          <short_desc>Media controls should not be displayed for a video until it starts playing</short_desc>
          <delta_ts>2016-07-25 13:52:53 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jeremyj-wk</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1213685</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-07-22 12:19:23 -0700</bug_when>
    <thetext>Media controls should not be displayed on pages with multiple videos until a video starts playing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213686</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-07-22 12:20:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/26986673&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213687</commentid>
    <comment_count>2</comment_count>
      <attachid>284361</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-07-22 12:30:09 -0700</bug_when>
    <thetext>Created attachment 284361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213699</commentid>
    <comment_count>3</comment_count>
      <attachid>284364</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-07-22 13:02:10 -0700</bug_when>
    <thetext>Created attachment 284364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214222</commentid>
    <comment_count>4</comment_count>
      <attachid>284364</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-07-25 09:58:21 -0700</bug_when>
    <thetext>Comment on attachment 284364
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:7149
&gt; +    size_t numberOfSessionsLargeEnoughForMainContent = PlatformMediaSessionManager::sharedManager().sessionsMatching([] (const PlatformMediaSession&amp; session) {

I suggest auto here instead of size_t.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:7153
&gt; +    PlatformMediaSession* session = PlatformMediaSessionManager::sharedManager().currentSessionMatching([numberOfSessionsLargeEnoughForMainContent] (const PlatformMediaSession&amp; session) {

I suggest auto* here instead of a specific type.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:7154
&gt; +        MediaElementSession::ShowControlsManagerReason reasonForControlsManager = session.reasonForControllingControlsManager();

I think auto would make this line of code shorter without loss of readability.

&gt; Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp:292
&gt; +    Vector&lt;PlatformMediaSession *&gt; matchingSessions;

Extra space here before the &quot;*&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214225</commentid>
    <comment_count>5</comment_count>
      <attachid>284364</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-07-25 09:59:52 -0700</bug_when>
    <thetext>Comment on attachment 284364
Patch

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:7149
&gt;&gt; +    size_t numberOfSessionsLargeEnoughForMainContent = PlatformMediaSessionManager::sharedManager().sessionsMatching([] (const PlatformMediaSession&amp; session) {
&gt; 
&gt; I suggest auto here instead of size_t.

Got it! Changed to use auto.

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:7153
&gt;&gt; +    PlatformMediaSession* session = PlatformMediaSessionManager::sharedManager().currentSessionMatching([numberOfSessionsLargeEnoughForMainContent] (const PlatformMediaSession&amp; session) {
&gt; 
&gt; I suggest auto* here instead of a specific type.

Will do.

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:7154
&gt;&gt; +        MediaElementSession::ShowControlsManagerReason reasonForControlsManager = session.reasonForControllingControlsManager();
&gt; 
&gt; I think auto would make this line of code shorter without loss of readability.

Will use auto for this too.

&gt;&gt; Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp:292
&gt;&gt; +    Vector&lt;PlatformMediaSession *&gt; matchingSessions;
&gt; 
&gt; Extra space here before the &quot;*&quot;.

Good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214314</commentid>
    <comment_count>6</comment_count>
      <attachid>284517</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-07-25 13:06:53 -0700</bug_when>
    <thetext>Created attachment 284517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214315</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-07-25 13:08:25 -0700</bug_when>
    <thetext>After talking with Beth, I&apos;ve learned that we should not be showing media controls for large videos before they&apos;ve ever begun playing. This (much simpler) patch implements that behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214317</commentid>
    <comment_count>8</comment_count>
      <attachid>284517</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-07-25 13:13:32 -0700</bug_when>
    <thetext>Comment on attachment 284517
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:181
&gt; +    __block bool isDoneLoading = NO;

Should be BOOL since it&apos;s NO?

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:205
&gt; +    __block bool isDoneLoading = NO;

BOOL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214319</commentid>
    <comment_count>9</comment_count>
      <attachid>284517</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-07-25 13:16:28 -0700</bug_when>
    <thetext>Comment on attachment 284517
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:181
&gt;&gt; +    __block bool isDoneLoading = NO;
&gt; 
&gt; Should be BOOL since it&apos;s NO?

Oops, good catch! It should be false instead of NO, since TestWebKitAPI::Util::run() takes a bool*.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:205
&gt;&gt; +    __block bool isDoneLoading = NO;
&gt; 
&gt; BOOL?

Fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214321</commentid>
    <comment_count>10</comment_count>
      <attachid>284519</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-07-25 13:22:30 -0700</bug_when>
    <thetext>Created attachment 284519
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214332</commentid>
    <comment_count>11</comment_count>
      <attachid>284519</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-25 13:52:48 -0700</bug_when>
    <thetext>Comment on attachment 284519
Patch for landing

Clearing flags on attachment: 284519

Committed r203698: &lt;http://trac.webkit.org/changeset/203698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214333</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-25 13:52:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284361</attachid>
            <date>2016-07-22 12:30:09 -0700</date>
            <delta_ts>2016-07-22 13:02:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160092-20160722122907.patch</filename>
            <type>text/plain</type>
            <size>25210</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UwZmFkYTA0Y2I3Yjc1
ZmU2MTkwYmQ1ZTcyNGIyNTBkZTRiZGFkOC4uODRmODA2ZWUwN2NmMWU0NWRlZGNiMzc5ZDllYWRl
NzFiYWYwNzRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE2LTA3LTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIG9uIHBhZ2VzIHdpdGggbXVsdGlwbGUgdmlkZW9z
IHVudGlsIGEgdmlkZW8gc3RhcnRzIHBsYXlpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDA5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY5
ODY2NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugd2VyZSBzaG93aW5nIG1lZGlhIGNvbnRyb2xzIG9uIGEgcGFnZSB3aXRoIG11bHRpcGxlIHVu
cGxheWluZyB2aWRlb3MuIFRvIGZpeCB0aGlzLCB3ZQorICAgICAgICBpbnRyb2R1Y2UgdGhlIG5v
dGlvbiBvZiBhIFNob3dDb250cm9sc01hbmFnZXJSZWFzb24sIHdoaWNoIGluZGljYXRlcyB3aHkg
YSBwYXJ0aWN1bGFyCisgICAgICAgIG1lZGlhIHNlc3Npb24gc2hvdWxkIGJlIGNvbnNpZGVyZWQg
YXMgYSBjYW5kaWRhdGUgZm9yIHNob3dpbmcgbWVkaWEgY29udHJvbHMuIFdlIHRoZW4gbGltaXQK
KyAgICAgICAgc2hvd2luZyBtZWRpYSBjb250cm9scyBmb3IgYSB2aWRlbyB0aGF0IGlzIGxhcmdl
IGVub3VnaCB0byBiZSBtYWluIGNvbnRlbnQgYnV0IGlzIG5vdAorICAgICAgICBwbGF5aW5nIGlm
IHRoZXJlIGFyZSBhbHJlYWR5IG11bHRpcGxlIGxhcmdlIHZpZGVvcyBvbiB0aGUgcGFnZS4KKwor
ICAgICAgICAyIG5ldyBXZWJLaXQgQVBJIHRlc3RzLgorCisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0
ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNl
c3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVhc29u
Rm9yQ29udHJvbGxpbmdDb250cm9sc01hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFF
bGVtZW50U2Vzc2lvbjo6ZWxlbWVudElzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5Db250cm9sQ29udHJvbHNNYW5h
Z2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OnJlYXNvbkZvckNvbnRyb2xsaW5nQ29udHJv
bHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjplbGVt
ZW50SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpjYW5Db250cm9sQ29udHJvbHNNYW5hZ2VyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uc01h
dGNoaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaDoKKwogMjAxNi0wNy0yMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBQYXVzaW5nIGF1dG9wbGF5ZWQgbWVkaWEgc2hvdWxkIG5vdCByZW1v
dmUgYWxsIHJlc3RyaWN0aW9ucyBmb3IgdGhhdCBtZWRpYSBlbGVtZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2MDJkODZjZjA4YjMwMDAyYzZjNWZlYjU5
MjRiMWRiYzc3ZDkzMDY0Li4wZjRhNmUwYmJhZDcwZDA0MzVhMzAzMjZlZDBhODFhMzYwOGQ2YzNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTcxNDYsOCAr
NzE0NiwxNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXliYWNrQ29udHJvbHNN
YW5hZ2VyKCkKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uKiBzZXNzaW9uID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCkuY3VycmVudFNlc3Npb25NYXRjaGluZyhbXSAoY29uc3QgUGxhdGZvcm1NZWRp
YVNlc3Npb24mIHNlc3Npb24pIHsKLSAgICAgICAgcmV0dXJuIHNlc3Npb24uY2FuQ29udHJvbENv
bnRyb2xzTWFuYWdlcigpOworICAgIHNpemVfdCBudW1iZXJPZlNlc3Npb25zTGFyZ2VFbm91Z2hG
b3JNYWluQ29udGVudCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpLnNlc3Npb25zTWF0Y2hpbmcoW10gKGNvbnN0IFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNz
aW9uKSB7CisgICAgICAgIHJldHVybiBzZXNzaW9uLmVsZW1lbnRJc0xhcmdlRW5vdWdoRm9yTWFp
bkNvbnRlbnQoKTsKKyAgICB9KS5zaXplKCk7CisKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiog
c2Vzc2lvbiA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmN1
cnJlbnRTZXNzaW9uTWF0Y2hpbmcoW251bWJlck9mU2Vzc2lvbnNMYXJnZUVub3VnaEZvck1haW5D
b250ZW50XSAoY29uc3QgUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pIHsKKyAgICAgICAg
TWVkaWFFbGVtZW50U2Vzc2lvbjo6U2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbiByZWFzb25Gb3JD
b250cm9sc01hbmFnZXIgPSBzZXNzaW9uLnJlYXNvbkZvckNvbnRyb2xsaW5nQ29udHJvbHNNYW5h
Z2VyKCk7CisgICAgICAgIGlmIChyZWFzb25Gb3JDb250cm9sc01hbmFnZXIgPT0gTWVkaWFFbGVt
ZW50U2Vzc2lvbjo6U2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbjo6SXNMYXJnZVVucGxheWVkVmlk
ZW8pCisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZTZXNzaW9uc0xhcmdlRW5vdWdoRm9yTWFp
bkNvbnRlbnQgPT0gMTsKKworICAgICAgICByZXR1cm4gcmVhc29uRm9yQ29udHJvbHNNYW5hZ2Vy
ICE9IE1lZGlhRWxlbWVudFNlc3Npb246OlNob3dDb250cm9sc01hbmFnZXJSZWFzb246Ok5vbmU7
CiAgICAgfSk7CiAKICAgICBpZiAoIWlzPE1lZGlhRWxlbWVudFNlc3Npb24+KHNlc3Npb24pKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggODMyYWI2
ZDk5MDYwYTA4M2U2N2ZmMWRkOGM1MjUyZmRmODVjM2Q5YS4uODMzNDQ0M2JjNWRmZDk4YTBhNTUz
ZjU1OTc1YjI2ZjFmZTk3M2UxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVu
dFNlc3Npb24uY3BwCkBAIC0yMTEsNjIgKzIxMSw2NyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Np
b246OnBhZ2VBbGxvd3NQbGF5YmFja0FmdGVyUmVzdW1pbmcoY29uc3QgSFRNTE1lZGlhRWxlbWVu
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmNhbkNv
bnRyb2xDb250cm9sc01hbmFnZXIoKSBjb25zdAorTWVkaWFFbGVtZW50U2Vzc2lvbjo6U2hvd0Nv
bnRyb2xzTWFuYWdlclJlYXNvbiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZWFzb25Gb3JDb250cm9s
bGluZ0NvbnRyb2xzTWFuYWdlcigpIGNvbnN0CiB7CiAgICAgaWYgKG1fZWxlbWVudC5pc0Z1bGxz
Y3JlZW4oKSkgewotICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5D
b250cm9sQ29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5nIFRSVUU6IElzIGZ1bGxzY3JlZW4iKTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNl
c3Npb246OnJlYXNvbkZvckNvbnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gc2hvd2luZyBjb250
cm9sczogSXMgZnVsbHNjcmVlbiIpOworICAgICAgICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdl
clJlYXNvbjo6SXNGdWxsc2NyZWVuOwogICAgIH0KIAogICAgIGlmICghbV9lbGVtZW50Lmhhc0F1
ZGlvKCkpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuQ29u
dHJvbENvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBGQUxTRTogTm8gYXVkaW8iKTsKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9u
OjpyZWFzb25Gb3JDb250cm9sbGluZ0NvbnRyb2xzTWFuYWdlciAtIG5vdCBzaG93aW5nIGNvbnRy
b2xzOiBObyBhdWRpbyIpOworICAgICAgICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNv
bjo6Tm9uZTsKICAgICB9CiAKICAgICBpZiAobV9lbGVtZW50LmVuZGVkKCkpIHsKLSAgICAgICAg
TE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuQ29udHJvbENvbnRyb2xzTWFuYWdl
ciAtIHJldHVybmluZyBGQUxTRTogRW5kZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZWFzb25Gb3JDb250cm9sbGlu
Z0NvbnRyb2xzTWFuYWdlciAtIG5vdCBzaG93aW5nIGNvbnRyb2xzOiBFbmRlZCIpOworICAgICAg
ICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbjo6Tm9uZTsKICAgICB9CiAKICAgICBp
ZiAobV9lbGVtZW50LmRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpKSB7
Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmNhbkNvbnRyb2xDb250
cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IGFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5k
ZWQoKSIpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlh
RWxlbWVudFNlc3Npb246OnJlYXNvbkZvckNvbnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gbm90
IHNob3dpbmcgY29udHJvbHM6IGFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSIpOworICAg
ICAgICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbjo6Tm9uZTsKICAgICB9CiAKICAg
ICBpZiAoIXBsYXliYWNrUGVybWl0dGVkKG1fZWxlbWVudCkpIHsKLSAgICAgICAgTE9HKE1lZGlh
LCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuQ29udHJvbENvbnRyb2xzTWFuYWdlciAtIHJldHVy
bmluZyBGQUxTRTogUGxheWJhY2sgbm90IHBlcm1pdHRlZCIpOwotICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnJlYXNvbkZvckNv
bnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gbm90IHNob3dpbmcgY29udHJvbHM6IFBsYXliYWNr
IG5vdCBwZXJtaXR0ZWQiKTsKKyAgICAgICAgcmV0dXJuIFNob3dDb250cm9sc01hbmFnZXJSZWFz
b246Ok5vbmU7CiAgICAgfQogCiAgICAgaWYgKCFoYXNCZWhhdmlvclJlc3RyaWN0aW9uKFJlcXVp
cmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcikgfHwgU2NyaXB0Q29udHJvbGxl
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgewotICAgICAgICBMT0coTWVkaWEs
ICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5Db250cm9sQ29udHJvbHNNYW5hZ2VyIC0gcmV0dXJu
aW5nIFRSVUU6IE5vIHVzZXIgZ2VzdHVyZSByZXF1aXJlZCIpOwotICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVhc29uRm9yQ29u
dHJvbGxpbmdDb250cm9sc01hbmFnZXIgLSBzaG93aW5nIGNvbnRyb2xzOiBObyB1c2VyIGdlc3R1
cmUgcmVxdWlyZWQiKTsKKyAgICAgICAgcmV0dXJuIFNob3dDb250cm9sc01hbmFnZXJSZWFzb246
Okhhc1VzZXJHZXN0dXJlOwogICAgIH0KIAogICAgIGlmIChtX2VsZW1lbnQubXV0ZWQoKSkgewot
ICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5Db250cm9sQ29udHJv
bHNNYW5hZ2VyIC0gcmV0dXJuaW5nIEZBTFNFOiBNdXRlZCIpOwotICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnJlYXNvbkZvckNv
bnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gbm90IHNob3dpbmcgY29udHJvbHM6IE11dGVkIik7
CisgICAgICAgIHJldHVybiBTaG93Q29udHJvbHNNYW5hZ2VyUmVhc29uOjpOb25lOwogICAgIH0K
IAogICAgIGlmIChtX2VsZW1lbnQuaXNWaWRlbygpKSB7CiAgICAgICAgIGlmICghbV9lbGVtZW50
LnJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Np
b246OmNhbkNvbnRyb2xDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE5vIHJlbmRl
cmVyIik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBMT0coTWVkaWEs
ICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZWFzb25Gb3JDb250cm9sbGluZ0NvbnRyb2xzTWFuYWdl
ciAtIG5vdCBzaG93aW5nIGNvbnRyb2xzOiBObyByZW5kZXJlciIpOworICAgICAgICAgICAgcmV0
dXJuIFNob3dDb250cm9sc01hbmFnZXJSZWFzb246Ok5vbmU7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoIW1fZWxlbWVudC5oYXNWaWRlbygpKSB7Ci0gICAgICAgICAgICBMT0coTWVkaWEsICJN
ZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5Db250cm9sQ29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5n
IEZBTFNFOiBObyB2aWRlbyIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVhc29uRm9yQ29udHJvbGxpbmdD
b250cm9sc01hbmFnZXIgLSBub3Qgc2hvd2luZyBjb250cm9sczogTm8gdmlkZW8iKTsKKyAgICAg
ICAgICAgIHJldHVybiBTaG93Q29udHJvbHNNYW5hZ2VyUmVhc29uOjpOb25lOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKGlzRWxlbWVudExhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQobV9lbGVt
ZW50KSkgewotICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2Fu
Q29udHJvbENvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBUUlVFOiBJcyBtYWluIGNvbnRlbnQi
KTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZWxlbWVudElzTGFyZ2VF
bm91Z2hGb3JNYWluQ29udGVudCgpKSB7CisgICAgICAgICAgICBpZiAobV9lbGVtZW50LmlzUGxh
eWluZygpKSB7CisgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lv
bjo6cmVhc29uRm9yQ29udHJvbGxpbmdDb250cm9sc01hbmFnZXIgLSBzaG93aW5nIGNvbnRyb2xz
OiBJcyBtYWluIGNvbnRlbnQgKHBsYXlpbmcpIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNo
b3dDb250cm9sc01hbmFnZXJSZWFzb246OklzTGFyZ2VQbGF5aW5nVmlkZW87CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnJlYXNv
bkZvckNvbnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gc2hvd2luZyBjb250cm9sczogSXMgbWFp
biBjb250ZW50ICh1bnBsYXllZCkiKTsKKyAgICAgICAgICAgIHJldHVybiBTaG93Q29udHJvbHNN
YW5hZ2VyUmVhc29uOjpJc0xhcmdlVW5wbGF5ZWRWaWRlbzsKICAgICAgICAgfQogICAgIH0KIAot
ICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmNhbkNvbnRyb2xDb250cm9sc01h
bmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE5vIHVzZXIgZ2VzdHVyZSIpOwotICAgIHJldHVybiBm
YWxzZTsKKyAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZWFzb25Gb3JDb250
cm9sbGluZ0NvbnRyb2xzTWFuYWdlciAtIG5vdCBzaG93aW5nIGNvbnRyb2xzOiBObyB1c2VyIGdl
c3R1cmUiKTsKKyAgICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbjo6Tm9uZTsKIH0K
IAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC01OTAsNiArNTk1LDEx
IEBAIHN0YXRpYyBib29sIGlzTWFpbkNvbnRlbnQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxl
bWVudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpl
bGVtZW50SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aXNFbGVtZW50TGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudChtX2VsZW1lbnQpOworfQorCiBzdGF0
aWMgYm9vbCBpc0VsZW1lbnRMYXJnZUVub3VnaEZvck1haW5Db250ZW50KGNvbnN0IEhUTUxNZWRp
YUVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBlbGVtZW50TWFp
bkNvbnRlbnRBcmVhTWluaW11bSA9IDQwMCAqIDMwMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmgKaW5kZXggZjEwMWM5NmM0N2EyYzY1ZmM5N2Y2YWI1NjQyNmNiYTFm
ZjUxN2QwNi4uZGFjMTIxYTA3NmM5OGViOTdkYjMyYzM2M2NiMjRiMjhkMmYxZTU2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTU0LDcgKzU0LDggQEAg
cHVibGljOgogICAgIGJvb2wgcGFnZUFsbG93c0RhdGFMb2FkaW5nKGNvbnN0IEhUTUxNZWRpYUVs
ZW1lbnQmKSBjb25zdDsKICAgICBib29sIHBhZ2VBbGxvd3NQbGF5YmFja0FmdGVyUmVzdW1pbmco
Y29uc3QgSFRNTE1lZGlhRWxlbWVudCYpIGNvbnN0OwogCi0gICAgYm9vbCBjYW5Db250cm9sQ29u
dHJvbHNNYW5hZ2VyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU2hvd0NvbnRyb2xzTWFuYWdlclJl
YXNvbiByZWFzb25Gb3JDb250cm9sbGluZ0NvbnRyb2xzTWFuYWdlcigpIGNvbnN0IG92ZXJyaWRl
OworICAgIGJvb2wgZWxlbWVudElzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCgpIGNvbnN0IG92
ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lk
IHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBIVE1MTWVkaWFFbGVtZW50Jik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24u
aAppbmRleCAwNmRmZjJmZDJiOTYzYWM2ODU0NzMwNmUzZWJjOWRkZjJkNjZhNTQ4Li5mMWU5ZTQ3
MDE1YmM1MmUxM2JmNWY4YjAxNTI5MjExM2NiZTllYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTEzOSw3ICsx
MzksMTcgQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRPdmVycmlkZUJhY2tncm91bmRMb2Fk
aW5nUmVzdHJpY3Rpb24oKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5Db250cm9sQ29u
dHJvbHNNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAvLyBSZWFzb25zIGZv
ciBtZWRpYSBlbGVtZW50cyBhY3F1aXJpbmcgYSBjb250cm9scyBtYW5hZ2VyLgorICAgIGVudW0g
Y2xhc3MgU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbiB7CisgICAgICAgIE5vbmUsCisgICAgICAg
IElzRnVsbHNjcmVlbiwKKyAgICAgICAgSGFzVXNlckdlc3R1cmUsCisgICAgICAgIElzTGFyZ2VQ
bGF5aW5nVmlkZW8sCisgICAgICAgIElzTGFyZ2VVbnBsYXllZFZpZGVvCisgICAgfTsKKworICAg
IHZpcnR1YWwgU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbiByZWFzb25Gb3JDb250cm9sbGluZ0Nv
bnRyb2xzTWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIFNob3dDb250cm9sc01hbmFnZXJSZWFzb246
Ok5vbmU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZWxlbWVudElzTGFyZ2VFbm91Z2hGb3JNYWluQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGNhblBsYXlU
b1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCB7IHJl
dHVybiBtX2lzUGxheWluZ1RvV2lyZWxlc3NQbGF5YmFja1RhcmdldDsgfQogICAgIHZvaWQgaXNQ
bGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0Q2hhbmdlZChib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuY3BwCmluZGV4IDk3MjRiYzViN2I3N2JmMGE5YWJlOTc5NjY0MTE1MmJkYTUyNzEx
ODguLjM3ZGIyNTQ1ZWJmOWM3ODllOWQxYzdhNDgxNDU4ZjU1NjMzNGM1ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmNwcApAQCAtMjg2LDYgKzI4NiwxNiBAQCBQbGF0Zm9ybU1lZGlhU2Vzc2lv
biogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpjdXJyZW50U2Vzc2lvbk1hdGNoaW5nKHN0
ZDo6ZgogICAgIH0KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KKworVmVjdG9yPFBsYXRmb3JtTWVk
aWFTZXNzaW9uKj4gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uc01hdGNoaW5n
KHN0ZDo6ZnVuY3Rpb248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiAmKT4gZmlsdGVy
KQoreworICAgIFZlY3RvcjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbiAqPiBtYXRjaGluZ1Nlc3Npb25z
OworICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG1fc2Vzc2lvbnMpIHsKKyAgICAgICAgaWYgKGZp
bHRlcigqc2Vzc2lvbikpCisgICAgICAgICAgICBtYXRjaGluZ1Nlc3Npb25zLmFwcGVuZChzZXNz
aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIG1hdGNoaW5nU2Vzc2lvbnM7Cit9CiAgICAgCiBib29s
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbkNhbkxvYWRNZWRpYShjb25zdCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmgKaW5kZXggYTNiMDE2ZWM5Zjg5YmNiM2E2MThiMjIxYTNmZjNiMDIxMmI3MDg5ZC4uM2I0YTYy
MjEyOGI0MzExOWUxN2ZmMzcxYWUyYWM0ZWFjZTEwNzA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uKiBj
dXJyZW50U2Vzc2lvbigpOwogCiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb24qIGN1cnJlbnRTZXNz
aW9uTWF0Y2hpbmcoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IFBsYXRmb3JtTWVkaWFTZXNzaW9u
Jik+KTsKKyAgICBWZWN0b3I8UGxhdGZvcm1NZWRpYVNlc3Npb24qPiBzZXNzaW9uc01hdGNoaW5n
KHN0ZDo6ZnVuY3Rpb248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpPik7CiAKICAg
ICB2b2lkIHNlc3Npb25Jc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXRDaGFuZ2VkKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJik7CiAgICAgdm9pZCBzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hh
bmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM3MmMwOGQ1YjBjZTZkNDdkM2UwZTk2ZDMwYmU0MzVm
ZTE0MTNmMmYuLjkzMTljMTc1YzFjNGRiZGIwNjZiODZlNDU5ODY0NDhkNzhmNjQzNWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAxNi0wNy0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBNZWRpYSBjb250cm9scyBzaG91bGQgbm90IGJlIGRpc3BsYXllZCBvbiBwYWdl
cyB3aXRoIG11bHRpcGxlIHZpZGVvcyB1bnRpbCBhIHZpZGVvIHN0YXJ0cyBwbGF5aW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAwOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI2OTg2NjczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFZlcmlmeSB0aGF0IG11bHRpcGxlIHZpZGVvcyBkbyBvciBk
b24ndCBzaG93IHRoZSBtZWRpYSBjb250cm9sbGVyIGRlcGVuZGluZyBvbiB3aGV0aGVyIHZpZGVv
cworICAgICAgICBhcmUgcGxheWluZy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbDogQWRkZWQuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdp
dGgtYXVkaW8uaHRtbDogQWRkZWQuCisKIDIwMTYtMDctMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBpT1MgYnVpbGQgZml4Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMDNmMTNkYThiYzc0ZDc5NzdiODk1YzA1OTJkZGU5
NGIwZjBjNjdjLi41ZjUwMjllNjk2MTdhNWQwYjk5NGM3Zjk0ZDBhYmZlMjQ5ODQzY2UwIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTIsNiArNTIsMTAgQEAKIAkJMkRDNENGNzcxRDJEOURE
ODAwRUNDQzk0IC8qIERhdGFEZXRlY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyREM0Q0Y3NjFEMkQ5REQ4MDBFQ0NDOTQgLyogRGF0YURldGVj
dGlvbi5tbSAqLzsgfTsKIAkJMkREN0QzQUYxNzgyMjdCMzAwMjZFMUUzIC8qIGxvdHMtb2YtdGV4
dC12ZXJ0aWNhbC1sci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJERDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAvKiBsb3RzLW9mLXRleHQt
dmVydGljYWwtbHIuaHRtbCAqLzsgfTsKIAkJMkUxNEE1MjkxRDNGRTk2QjAwMTBGMzVCIC8qIGF1
dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTE0QTUyODFEM0ZFOEI4MDAxMEYzNUIgLyog
YXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovOyB9OworCQkyRTFCN0IwMDFENDFB
QkE3MDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFCN0FGRjFE
NDFBOTVGMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbCAqLzsg
fTsKKwkJMkUxQjdCMDIxRDQxQjFCOTAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRy
b2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxQjdCMDExRDQxQjFCMzAwNzU1OEI0IC8qIGxhcmdl
LXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgKi87IH07CisJCTJF
MURGREVEMUQ0MkE1MTEwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMURG
REVDMUQ0MkE0MUMwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sICovOyB9
OworCQkyRTFERkRFRjFENDJBNkYyMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8t
YXV0b3BsYXkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgt
YXVkaW8tYXV0b3BsYXkuaHRtbCAqLzsgfTsKIAkJMkU3NzY1Q0QxNkM0RDgwQTAwQkEyQkIxIC8q
IG1haW5JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRTc3NjVDQzE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSAqLzsgfTsKIAkJMkU3NzY1
Q0YxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDRTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1h
Yy5tbSAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVy
Q3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1
bmRsZS5jcHAgKi87IH07CkBAIC00OTIsNiArNDk2LDEwIEBACiAJCQlkc3RQYXRoID0gVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0g
KAorCQkJCTJFMURGREVGMUQ0MkE2RjIwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRp
by1hdXRvcGxheS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTJFMURGREVEMUQ0MkE1
MTEwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAorCQkJCTJFMUI3QjAyMUQ0MUIxQjkwMDc1NThCNCAvKiBsYXJnZS12aWRlby1oaWRl
cy1jb250cm9scy1hZnRlci1zZWVrLXRvLWVuZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAor
CQkJCTJFMUI3QjAwMUQ0MUFCQTcwMDc1NThCNCAvKiBsYXJnZS12aWRlby1zZWVrLWFmdGVyLWVu
ZGluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTVDOUU1OTQxMUQzRUI1QUMwMEUz
QzYyRSAvKiBBcHBsaWNhdGlvbkNhY2hlLmRiIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTVD
OUU1OTQyMUQzRUI1QUMwMEUzQzYyRSAvKiBBcHBsaWNhdGlvbkNhY2hlLmRiLXNobSBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQk1QzlFNTk0MzFEM0VCNUFDMDBFM0M2MkUgLyogQXBwbGljYXRp
b25DYWNoZS5kYi13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC02OTAsNiArNjk4LDEwIEBA
CiAJCTJERDdEM0E5MTc4MjA1RDAwMDI2RTFFMyAvKiBSZXNpemVSZXZlcnNlUGFnaW5hdGVkV2Vi
Vmlldy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNpemVSZXZl
cnNlUGFnaW5hdGVkV2ViVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
RDdEM0FFMTc4MjI3QUMwMDI2RTFFMyAvKiBsb3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJsb3RzLW9mLXRleHQtdmVydGljYWwtbHIuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJFMTRBNTI4MUQzRkU4QjgwMDEwRjM1QiAvKiBhdXRvcGxheWluZy12
aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXV0b3Bs
YXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkUxQjdBRkYxRDQxQTk1RjAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5k
aW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tc2Vlay1h
ZnRlci1lbmRpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMUI3QjAx
MUQ0MUIxQjMwMDc1NThCNCAvKiBsYXJnZS12aWRlby1oaWRlcy1jb250cm9scy1hZnRlci1zZWVr
LXRvLWVuZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLWhp
ZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRTFERkRFQzFENDJBNDFDMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgt
YXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlb3Mtd2l0
aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkUxREZERUUxRDQy
QTZFQjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3Bs
YXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNzc2NUNDMTZDNEQ4MEEw
MEJBMkJCMSAvKiBtYWluSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gbWFpbklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NzY1Q0Ux
NkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBtYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXZlbnRFbXB0eVVzZXJBZ2VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzE4LDYgKzEzMzAsOCBAQAogCQlB
MTZGNjZCODFDNDBFOUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyRTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyog
bGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCAqLywKKwkJCQkyRTFCN0IwMTFE
NDFCMUIzMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8taGlkZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10
by1lbmQuaHRtbCAqLywKIAkJCQk1QzlFNTkzRTFEM0VCMURFMDBFM0M2MkUgLyogQXBwbGljYXRp
b25DYWNoZS5kYiAqLywKIAkJCQk1QzlFNTkzRjFEM0VCMURFMDBFM0M2MkUgLyogQXBwbGljYXRp
b25DYWNoZS5kYi1zaG0gKi8sCiAJCQkJNUM5RTU5NDAxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxp
Y2F0aW9uQ2FjaGUuZGItd2FsICovLApAQCAtMTM1MCw2ICsxMzY0LDggQEAKIAkJCQk3Q0NCOTky
MjFEM0I0NEU3MDAzOTIyRjYgLyogb3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRtbCAqLywK
IAkJCQk1MTcxNEVCMjFDRjhDNzYxMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVw
LTEuaHRtbCAqLywKIAkJCQk1MTcxNEVCMzFDRjhDNzYxMDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tp
bGxJREJDbGVhbnVwLTIuaHRtbCAqLywKKwkJCQkyRTFCN0FGRjFENDFBOTVGMDA3NTU4QjQgLyog
bGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRtbCAqLywKKwkJCQkyRTFERkRFQzFENDJB
NDFDMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRtbCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gUmVzb3VyY2VzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNN
YW5hZ2VyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9D
b250cm9sc01hbmFnZXIubW0KaW5kZXggZmJlZmViYWVjMWZlYjE2OGFkNzI1YzAzMWFmYjI0YjQ2
MjllY2FkZi4uMTcyODk1ZTU1OTM3ZDM2YWRjZjQ3MjhlYzA1Y2M0ODJkOGUzZGM3YSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9s
c01hbmFnZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
VmlkZW9Db250cm9sc01hbmFnZXIubW0KQEAgLTE2OSw2ICsxNjksNTQgQEAgVEVTVChWaWRlb0Nv
bnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJTaW5nbGVTbWFsbFZpZGVvKQogICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKIH0KIAor
VEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZp
ZGVvc1dpdGhBdWRpbykKK3sKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5tZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFj
dGlvbkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZU5vbmU7CisgICAgUmV0YWlu
UHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CisKKyAgICBfX2Jsb2NrIEJPT0wgZGlkU2hvd01lZGlhQ29udHJvbHM7
CisgICAgX19ibG9jayBib29sIGlzRG9uZUxvYWRpbmcgPSBOTzsKKworICAgIFJldGFpblB0cjxO
U1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRl
bnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBi
YWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBbW3dpbmRvdyBj
b250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKKyAgICBSZXRhaW5QdHI8T25M
b2FkTWVzc2FnZUhhbmRsZXI+IG9ubG9hZEhhbmRsZXIgPSBhZG9wdE5TKFtbT25Mb2FkTWVzc2Fn
ZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoV0tXZWJWaWV3OndlYlZpZXcuZ2V0KCkgaGFuZGxlcjpe
KCkgeworICAgICAgICBkaWRTaG93TWVkaWFDb250cm9scyA9IFt3ZWJWaWV3IF9oYXNBY3RpdmVW
aWRlb0ZvckNvbnRyb2xzTWFuYWdlcl07CisgICAgICAgIGlzRG9uZUxvYWRpbmcgPSB0cnVlOwor
ICAgIH1dKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRT
Y3JpcHRNZXNzYWdlSGFuZGxlcjpvbmxvYWRIYW5kbGVyLmdldCgpIG5hbWU6QCJvbmxvYWRIYW5k
bGVyIl07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJsYXJnZS12
aWRlb3Mtd2l0aC1hdWRpbyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVMb2FkaW5nKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZGlkU2hvd01lZGlhQ29udHJvbHMpOworfQorCitURVNUKFZpZGVvQ29u
dHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlck11bHRpcGxlVmlkZW9zV2l0aEF1ZGlv
QW5kQXV0b3BsYXkpCit7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIGNvbmZpZ3VyYXRpb24uZ2V0KCkubWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rp
b25Gb3JQbGF5YmFjayA9IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVOb25lOworICAgIFJldGFpblB0
cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKV0pOworCisgICAgX19ibG9jayBCT09MIGRpZFNob3dNZWRpYUNvbnRyb2xzOwor
ICAgIF9fYmxvY2sgYm9vbCBpc0RvbmVMb2FkaW5nID0gTk87CisKKyAgICBSZXRhaW5QdHI8TlNX
aW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50
UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFj
a2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgW1t3aW5kb3cgY29u
dGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CisgICAgUmV0YWluUHRyPE9uTG9h
ZE1lc3NhZ2VIYW5kbGVyPiBvbmxvYWRIYW5kbGVyID0gYWRvcHROUyhbW09uTG9hZE1lc3NhZ2VI
YW5kbGVyIGFsbG9jXSBpbml0V2l0aFdLV2ViVmlldzp3ZWJWaWV3LmdldCgpIGhhbmRsZXI6Xigp
IHsKKyAgICAgICAgZGlkU2hvd01lZGlhQ29udHJvbHMgPSBbd2ViVmlldyBfaGFzQWN0aXZlVmlk
ZW9Gb3JDb250cm9sc01hbmFnZXJdOworICAgICAgICBpc0RvbmVMb2FkaW5nID0gdHJ1ZTsKKyAg
ICB9XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2Ny
aXB0TWVzc2FnZUhhbmRsZXI6b25sb2FkSGFuZGxlci5nZXQoKSBuYW1lOkAib25sb2FkSGFuZGxl
ciJdOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAibGFyZ2Utdmlk
ZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lTG9hZGlu
Zyk7CisgICAgRVhQRUNUX1RSVUUoZGlkU2hvd01lZGlhQ29udHJvbHMpOworfQorCiBURVNUKFZp
ZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlclNpbmdsZVNtYWxsQXV0b3Bs
YXlpbmdWaWRlbykKIHsKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9s
YXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41N2U4YjJkNDVmNDZjYjZhZmNlYWU5NmY2OThiN2Y0NGVjNTBiZTk5Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbApAQCAtMCwwICsxLDE4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBoYW5kbGVMb2Fk
ZWQoKSB7CisgICAgICAgIC8vIFRoZSBtZWRpYSBjb250cm9scyBzaG91bGQgYmUgdXBkYXRlZCBv
biB0aGUgbmV4dCBydW5sb29wLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy5vbmxvYWRIYW5kbGVyLnBvc3RNZXNzYWdlKCJsb2FkZWQiKTsKKyAgICAgICAgICAgIH0g
Y2F0Y2goZSkgeyB9CisgICAgICAgIH0sIDApOworICAgIH0KKzwvc2NyaXB0PgorPGJvZHkgb25s
b2FkPWhhbmRsZUxvYWRlZCgpPgorICAgIDx2aWRlbyBpZD0iZm9vIiBzdHlsZT0id2lkdGg6IDQ4
MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8u
bXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBhdXRvcGxheSBpZD0iYmFyIiBzdHlsZT0id2lkdGg6
IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVk
aW8ubXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0iYmF6IiBzdHlsZT0id2lkdGg6IDQ4MHB4
OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0
Ij48L3ZpZGVvPgorPC9ib2R5PgorPGh0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVk
aW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wZmRkZTJmMmFhNjQ4ZDQ0NTY5NjE4MjY0Yzc0M2Y2NDc4NjNj
Y2JlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBoYW5kbGVMb2FkZWQo
KSB7CisgICAgICAgIC8vIFRoZSBtZWRpYSBjb250cm9scyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0
aGUgbmV4dCBydW5sb29wLgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5vbmxvYWRIYW5kbGVyLnBvc3RNZXNzYWdlKCJsb2FkZWQiKTsKKyAgICAgICAgICAgIH0gY2F0
Y2goZSkgeyB9CisgICAgICAgIH0sIDApOworICAgIH0KKzwvc2NyaXB0PgorPGJvZHkgb25sb2Fk
PWhhbmRsZUxvYWRlZCgpPgorICAgIDx2aWRlbyBpZD0iZm9vIiBzdHlsZT0id2lkdGg6IDQ4MHB4
OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0
Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0iYmFyIiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWln
aHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3Zp
ZGVvPgorICAgIDx2aWRlbyBpZD0iYmF6IiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMy
MHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgor
PC9ib2R5PgorPGh0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284364</attachid>
            <date>2016-07-22 13:02:10 -0700</date>
            <delta_ts>2016-07-25 13:06:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160092-20160722130108.patch</filename>
            <type>text/plain</type>
            <size>23979</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2UwZmFkYTA0Y2I3Yjc1
ZmU2MTkwYmQ1ZTcyNGIyNTBkZTRiZGFkOC4uODRmODA2ZWUwN2NmMWU0NWRlZGNiMzc5ZDllYWRl
NzFiYWYwNzRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE2LTA3LTIyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIG9uIHBhZ2VzIHdpdGggbXVsdGlwbGUgdmlkZW9z
IHVudGlsIGEgdmlkZW8gc3RhcnRzIHBsYXlpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDA5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY5
ODY2NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugd2VyZSBzaG93aW5nIG1lZGlhIGNvbnRyb2xzIG9uIGEgcGFnZSB3aXRoIG11bHRpcGxlIHVu
cGxheWluZyB2aWRlb3MuIFRvIGZpeCB0aGlzLCB3ZQorICAgICAgICBpbnRyb2R1Y2UgdGhlIG5v
dGlvbiBvZiBhIFNob3dDb250cm9sc01hbmFnZXJSZWFzb24sIHdoaWNoIGluZGljYXRlcyB3aHkg
YSBwYXJ0aWN1bGFyCisgICAgICAgIG1lZGlhIHNlc3Npb24gc2hvdWxkIGJlIGNvbnNpZGVyZWQg
YXMgYSBjYW5kaWRhdGUgZm9yIHNob3dpbmcgbWVkaWEgY29udHJvbHMuIFdlIHRoZW4gbGltaXQK
KyAgICAgICAgc2hvd2luZyBtZWRpYSBjb250cm9scyBmb3IgYSB2aWRlbyB0aGF0IGlzIGxhcmdl
IGVub3VnaCB0byBiZSBtYWluIGNvbnRlbnQgYnV0IGlzIG5vdAorICAgICAgICBwbGF5aW5nIGlm
IHRoZXJlIGFyZSBhbHJlYWR5IG11bHRpcGxlIGxhcmdlIHZpZGVvcyBvbiB0aGUgcGFnZS4KKwor
ICAgICAgICAyIG5ldyBXZWJLaXQgQVBJIHRlc3RzLgorCisgICAgICAgICogaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0
ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNl
c3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVhc29u
Rm9yQ29udHJvbGxpbmdDb250cm9sc01hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFF
bGVtZW50U2Vzc2lvbjo6ZWxlbWVudElzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5Db250cm9sQ29udHJvbHNNYW5h
Z2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL01lZGlhRWxlbWVudFNlc3Npb24uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oOgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb246OnJlYXNvbkZvckNvbnRyb2xsaW5nQ29udHJv
bHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjplbGVt
ZW50SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpjYW5Db250cm9sQ29udHJvbHNNYW5hZ2VyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uc01h
dGNoaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaDoKKwogMjAxNi0wNy0yMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBQYXVzaW5nIGF1dG9wbGF5ZWQgbWVkaWEgc2hvdWxkIG5vdCByZW1v
dmUgYWxsIHJlc3RyaWN0aW9ucyBmb3IgdGhhdCBtZWRpYSBlbGVtZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2MDJkODZjZjA4YjMwMDAyYzZjNWZlYjU5
MjRiMWRiYzc3ZDkzMDY0Li4wZjRhNmUwYmJhZDcwZDA0MzVhMzAzMjZlZDBhODFhMzYwOGQ2YzNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTcxNDYsOCAr
NzE0NiwxNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXliYWNrQ29udHJvbHNN
YW5hZ2VyKCkKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uKiBzZXNzaW9uID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCkuY3VycmVudFNlc3Npb25NYXRjaGluZyhbXSAoY29uc3QgUGxhdGZvcm1NZWRp
YVNlc3Npb24mIHNlc3Npb24pIHsKLSAgICAgICAgcmV0dXJuIHNlc3Npb24uY2FuQ29udHJvbENv
bnRyb2xzTWFuYWdlcigpOworICAgIHNpemVfdCBudW1iZXJPZlNlc3Npb25zTGFyZ2VFbm91Z2hG
b3JNYWluQ29udGVudCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpLnNlc3Npb25zTWF0Y2hpbmcoW10gKGNvbnN0IFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNz
aW9uKSB7CisgICAgICAgIHJldHVybiBzZXNzaW9uLmVsZW1lbnRJc0xhcmdlRW5vdWdoRm9yTWFp
bkNvbnRlbnQoKTsKKyAgICB9KS5zaXplKCk7CisKKyAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiog
c2Vzc2lvbiA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmN1
cnJlbnRTZXNzaW9uTWF0Y2hpbmcoW251bWJlck9mU2Vzc2lvbnNMYXJnZUVub3VnaEZvck1haW5D
b250ZW50XSAoY29uc3QgUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pIHsKKyAgICAgICAg
TWVkaWFFbGVtZW50U2Vzc2lvbjo6U2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbiByZWFzb25Gb3JD
b250cm9sc01hbmFnZXIgPSBzZXNzaW9uLnJlYXNvbkZvckNvbnRyb2xsaW5nQ29udHJvbHNNYW5h
Z2VyKCk7CisgICAgICAgIGlmIChyZWFzb25Gb3JDb250cm9sc01hbmFnZXIgPT0gTWVkaWFFbGVt
ZW50U2Vzc2lvbjo6U2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbjo6SXNMYXJnZVVucGxheWVkVmlk
ZW8pCisgICAgICAgICAgICByZXR1cm4gbnVtYmVyT2ZTZXNzaW9uc0xhcmdlRW5vdWdoRm9yTWFp
bkNvbnRlbnQgPT0gMTsKKworICAgICAgICByZXR1cm4gcmVhc29uRm9yQ29udHJvbHNNYW5hZ2Vy
ICE9IE1lZGlhRWxlbWVudFNlc3Npb246OlNob3dDb250cm9sc01hbmFnZXJSZWFzb246Ok5vbmU7
CiAgICAgfSk7CiAKICAgICBpZiAoIWlzPE1lZGlhRWxlbWVudFNlc3Npb24+KHNlc3Npb24pKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5kZXggODMyYWI2
ZDk5MDYwYTA4M2U2N2ZmMWRkOGM1MjUyZmRmODVjM2Q5YS4uODMzNDQ0M2JjNWRmZDk4YTBhNTUz
ZjU1OTc1YjI2ZjFmZTk3M2UxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVu
dFNlc3Npb24uY3BwCkBAIC0yMTEsNjIgKzIxMSw2NyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Np
b246OnBhZ2VBbGxvd3NQbGF5YmFja0FmdGVyUmVzdW1pbmcoY29uc3QgSFRNTE1lZGlhRWxlbWVu
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmNhbkNv
bnRyb2xDb250cm9sc01hbmFnZXIoKSBjb25zdAorTWVkaWFFbGVtZW50U2Vzc2lvbjo6U2hvd0Nv
bnRyb2xzTWFuYWdlclJlYXNvbiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZWFzb25Gb3JDb250cm9s
bGluZ0NvbnRyb2xzTWFuYWdlcigpIGNvbnN0CiB7CiAgICAgaWYgKG1fZWxlbWVudC5pc0Z1bGxz
Y3JlZW4oKSkgewotICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5D
b250cm9sQ29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5nIFRSVUU6IElzIGZ1bGxzY3JlZW4iKTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNl
c3Npb246OnJlYXNvbkZvckNvbnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gc2hvd2luZyBjb250
cm9sczogSXMgZnVsbHNjcmVlbiIpOworICAgICAgICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdl
clJlYXNvbjo6SXNGdWxsc2NyZWVuOwogICAgIH0KIAogICAgIGlmICghbV9lbGVtZW50Lmhhc0F1
ZGlvKCkpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuQ29u
dHJvbENvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBGQUxTRTogTm8gYXVkaW8iKTsKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9u
OjpyZWFzb25Gb3JDb250cm9sbGluZ0NvbnRyb2xzTWFuYWdlciAtIG5vdCBzaG93aW5nIGNvbnRy
b2xzOiBObyBhdWRpbyIpOworICAgICAgICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNv
bjo6Tm9uZTsKICAgICB9CiAKICAgICBpZiAobV9lbGVtZW50LmVuZGVkKCkpIHsKLSAgICAgICAg
TE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuQ29udHJvbENvbnRyb2xzTWFuYWdl
ciAtIHJldHVybmluZyBGQUxTRTogRW5kZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZWFzb25Gb3JDb250cm9sbGlu
Z0NvbnRyb2xzTWFuYWdlciAtIG5vdCBzaG93aW5nIGNvbnRyb2xzOiBFbmRlZCIpOworICAgICAg
ICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbjo6Tm9uZTsKICAgICB9CiAKICAgICBp
ZiAobV9lbGVtZW50LmRvY3VtZW50KCkuYWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpKSB7
Ci0gICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmNhbkNvbnRyb2xDb250
cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IGFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5k
ZWQoKSIpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlh
RWxlbWVudFNlc3Npb246OnJlYXNvbkZvckNvbnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gbm90
IHNob3dpbmcgY29udHJvbHM6IGFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSIpOworICAg
ICAgICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbjo6Tm9uZTsKICAgICB9CiAKICAg
ICBpZiAoIXBsYXliYWNrUGVybWl0dGVkKG1fZWxlbWVudCkpIHsKLSAgICAgICAgTE9HKE1lZGlh
LCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuQ29udHJvbENvbnRyb2xzTWFuYWdlciAtIHJldHVy
bmluZyBGQUxTRTogUGxheWJhY2sgbm90IHBlcm1pdHRlZCIpOwotICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnJlYXNvbkZvckNv
bnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gbm90IHNob3dpbmcgY29udHJvbHM6IFBsYXliYWNr
IG5vdCBwZXJtaXR0ZWQiKTsKKyAgICAgICAgcmV0dXJuIFNob3dDb250cm9sc01hbmFnZXJSZWFz
b246Ok5vbmU7CiAgICAgfQogCiAgICAgaWYgKCFoYXNCZWhhdmlvclJlc3RyaWN0aW9uKFJlcXVp
cmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcikgfHwgU2NyaXB0Q29udHJvbGxl
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkgewotICAgICAgICBMT0coTWVkaWEs
ICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5Db250cm9sQ29udHJvbHNNYW5hZ2VyIC0gcmV0dXJu
aW5nIFRSVUU6IE5vIHVzZXIgZ2VzdHVyZSByZXF1aXJlZCIpOwotICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVhc29uRm9yQ29u
dHJvbGxpbmdDb250cm9sc01hbmFnZXIgLSBzaG93aW5nIGNvbnRyb2xzOiBObyB1c2VyIGdlc3R1
cmUgcmVxdWlyZWQiKTsKKyAgICAgICAgcmV0dXJuIFNob3dDb250cm9sc01hbmFnZXJSZWFzb246
Okhhc1VzZXJHZXN0dXJlOwogICAgIH0KIAogICAgIGlmIChtX2VsZW1lbnQubXV0ZWQoKSkgewot
ICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5Db250cm9sQ29udHJv
bHNNYW5hZ2VyIC0gcmV0dXJuaW5nIEZBTFNFOiBNdXRlZCIpOwotICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnJlYXNvbkZvckNv
bnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gbm90IHNob3dpbmcgY29udHJvbHM6IE11dGVkIik7
CisgICAgICAgIHJldHVybiBTaG93Q29udHJvbHNNYW5hZ2VyUmVhc29uOjpOb25lOwogICAgIH0K
IAogICAgIGlmIChtX2VsZW1lbnQuaXNWaWRlbygpKSB7CiAgICAgICAgIGlmICghbV9lbGVtZW50
LnJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Np
b246OmNhbkNvbnRyb2xDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE5vIHJlbmRl
cmVyIik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBMT0coTWVkaWEs
ICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZWFzb25Gb3JDb250cm9sbGluZ0NvbnRyb2xzTWFuYWdl
ciAtIG5vdCBzaG93aW5nIGNvbnRyb2xzOiBObyByZW5kZXJlciIpOworICAgICAgICAgICAgcmV0
dXJuIFNob3dDb250cm9sc01hbmFnZXJSZWFzb246Ok5vbmU7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoIW1fZWxlbWVudC5oYXNWaWRlbygpKSB7Ci0gICAgICAgICAgICBMT0coTWVkaWEsICJN
ZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5Db250cm9sQ29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5n
IEZBTFNFOiBObyB2aWRlbyIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVhc29uRm9yQ29udHJvbGxpbmdD
b250cm9sc01hbmFnZXIgLSBub3Qgc2hvd2luZyBjb250cm9sczogTm8gdmlkZW8iKTsKKyAgICAg
ICAgICAgIHJldHVybiBTaG93Q29udHJvbHNNYW5hZ2VyUmVhc29uOjpOb25lOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKGlzRWxlbWVudExhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQobV9lbGVt
ZW50KSkgewotICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2Fu
Q29udHJvbENvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBUUlVFOiBJcyBtYWluIGNvbnRlbnQi
KTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZWxlbWVudElzTGFyZ2VF
bm91Z2hGb3JNYWluQ29udGVudCgpKSB7CisgICAgICAgICAgICBpZiAobV9lbGVtZW50LmlzUGxh
eWluZygpKSB7CisgICAgICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lv
bjo6cmVhc29uRm9yQ29udHJvbGxpbmdDb250cm9sc01hbmFnZXIgLSBzaG93aW5nIGNvbnRyb2xz
OiBJcyBtYWluIGNvbnRlbnQgKHBsYXlpbmcpIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNo
b3dDb250cm9sc01hbmFnZXJSZWFzb246OklzTGFyZ2VQbGF5aW5nVmlkZW87CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OnJlYXNv
bkZvckNvbnRyb2xsaW5nQ29udHJvbHNNYW5hZ2VyIC0gc2hvd2luZyBjb250cm9sczogSXMgbWFp
biBjb250ZW50ICh1bnBsYXllZCkiKTsKKyAgICAgICAgICAgIHJldHVybiBTaG93Q29udHJvbHNN
YW5hZ2VyUmVhc29uOjpJc0xhcmdlVW5wbGF5ZWRWaWRlbzsKICAgICAgICAgfQogICAgIH0KIAot
ICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmNhbkNvbnRyb2xDb250cm9sc01h
bmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE5vIHVzZXIgZ2VzdHVyZSIpOwotICAgIHJldHVybiBm
YWxzZTsKKyAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpyZWFzb25Gb3JDb250
cm9sbGluZ0NvbnRyb2xzTWFuYWdlciAtIG5vdCBzaG93aW5nIGNvbnRyb2xzOiBObyB1c2VyIGdl
c3R1cmUiKTsKKyAgICByZXR1cm4gU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbjo6Tm9uZTsKIH0K
IAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC01OTAsNiArNTk1LDEx
IEBAIHN0YXRpYyBib29sIGlzTWFpbkNvbnRlbnQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxl
bWVudCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpl
bGVtZW50SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aXNFbGVtZW50TGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudChtX2VsZW1lbnQpOworfQorCiBzdGF0
aWMgYm9vbCBpc0VsZW1lbnRMYXJnZUVub3VnaEZvck1haW5Db250ZW50KGNvbnN0IEhUTUxNZWRp
YUVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBlbGVtZW50TWFp
bkNvbnRlbnRBcmVhTWluaW11bSA9IDQwMCAqIDMwMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmgKaW5kZXggZjEwMWM5NmM0N2EyYzY1ZmM5N2Y2YWI1NjQyNmNiYTFm
ZjUxN2QwNi4uZGFjMTIxYTA3NmM5OGViOTdkYjMyYzM2M2NiMjRiMjhkMmYxZTU2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTU0LDcgKzU0LDggQEAg
cHVibGljOgogICAgIGJvb2wgcGFnZUFsbG93c0RhdGFMb2FkaW5nKGNvbnN0IEhUTUxNZWRpYUVs
ZW1lbnQmKSBjb25zdDsKICAgICBib29sIHBhZ2VBbGxvd3NQbGF5YmFja0FmdGVyUmVzdW1pbmco
Y29uc3QgSFRNTE1lZGlhRWxlbWVudCYpIGNvbnN0OwogCi0gICAgYm9vbCBjYW5Db250cm9sQ29u
dHJvbHNNYW5hZ2VyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU2hvd0NvbnRyb2xzTWFuYWdlclJl
YXNvbiByZWFzb25Gb3JDb250cm9sbGluZ0NvbnRyb2xzTWFuYWdlcigpIGNvbnN0IG92ZXJyaWRl
OworICAgIGJvb2wgZWxlbWVudElzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCgpIGNvbnN0IG92
ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2b2lk
IHNob3dQbGF5YmFja1RhcmdldFBpY2tlcihjb25zdCBIVE1MTWVkaWFFbGVtZW50Jik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24u
aAppbmRleCAwNmRmZjJmZDJiOTYzYWM2ODU0NzMwNmUzZWJjOWRkZjJkNjZhNTQ4Li5mMWU5ZTQ3
MDE1YmM1MmUxM2JmNWY4YjAxNTI5MjExM2NiZTllYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTEzOSw3ICsx
MzksMTcgQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRPdmVycmlkZUJhY2tncm91bmRMb2Fk
aW5nUmVzdHJpY3Rpb24oKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5Db250cm9sQ29u
dHJvbHNNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAvLyBSZWFzb25zIGZv
ciBtZWRpYSBlbGVtZW50cyBhY3F1aXJpbmcgYSBjb250cm9scyBtYW5hZ2VyLgorICAgIGVudW0g
Y2xhc3MgU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbiB7CisgICAgICAgIE5vbmUsCisgICAgICAg
IElzRnVsbHNjcmVlbiwKKyAgICAgICAgSGFzVXNlckdlc3R1cmUsCisgICAgICAgIElzTGFyZ2VQ
bGF5aW5nVmlkZW8sCisgICAgICAgIElzTGFyZ2VVbnBsYXllZFZpZGVvCisgICAgfTsKKworICAg
IHZpcnR1YWwgU2hvd0NvbnRyb2xzTWFuYWdlclJlYXNvbiByZWFzb25Gb3JDb250cm9sbGluZ0Nv
bnRyb2xzTWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIFNob3dDb250cm9sc01hbmFnZXJSZWFzb246
Ok5vbmU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZWxlbWVudElzTGFyZ2VFbm91Z2hGb3JNYWluQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGNhblBsYXlU
b1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCB7IHJl
dHVybiBtX2lzUGxheWluZ1RvV2lyZWxlc3NQbGF5YmFja1RhcmdldDsgfQogICAgIHZvaWQgaXNQ
bGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0Q2hhbmdlZChib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuY3BwCmluZGV4IDk3MjRiYzViN2I3N2JmMGE5YWJlOTc5NjY0MTE1MmJkYTUyNzEx
ODguLjM3ZGIyNTQ1ZWJmOWM3ODllOWQxYzdhNDgxNDU4ZjU1NjMzNGM1ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmNwcApAQCAtMjg2LDYgKzI4NiwxNiBAQCBQbGF0Zm9ybU1lZGlhU2Vzc2lv
biogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpjdXJyZW50U2Vzc2lvbk1hdGNoaW5nKHN0
ZDo6ZgogICAgIH0KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KKworVmVjdG9yPFBsYXRmb3JtTWVk
aWFTZXNzaW9uKj4gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uc01hdGNoaW5n
KHN0ZDo6ZnVuY3Rpb248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiAmKT4gZmlsdGVy
KQoreworICAgIFZlY3RvcjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbiAqPiBtYXRjaGluZ1Nlc3Npb25z
OworICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG1fc2Vzc2lvbnMpIHsKKyAgICAgICAgaWYgKGZp
bHRlcigqc2Vzc2lvbikpCisgICAgICAgICAgICBtYXRjaGluZ1Nlc3Npb25zLmFwcGVuZChzZXNz
aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIG1hdGNoaW5nU2Vzc2lvbnM7Cit9CiAgICAgCiBib29s
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbkNhbkxvYWRNZWRpYShjb25zdCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmgKaW5kZXggYTNiMDE2ZWM5Zjg5YmNiM2E2MThiMjIxYTNmZjNiMDIxMmI3MDg5ZC4uM2I0YTYy
MjEyOGI0MzExOWUxN2ZmMzcxYWUyYWM0ZWFjZTEwNzA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uKiBj
dXJyZW50U2Vzc2lvbigpOwogCiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb24qIGN1cnJlbnRTZXNz
aW9uTWF0Y2hpbmcoc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IFBsYXRmb3JtTWVkaWFTZXNzaW9u
Jik+KTsKKyAgICBWZWN0b3I8UGxhdGZvcm1NZWRpYVNlc3Npb24qPiBzZXNzaW9uc01hdGNoaW5n
KHN0ZDo6ZnVuY3Rpb248Ym9vbChjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpPik7CiAKICAg
ICB2b2lkIHNlc3Npb25Jc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXRDaGFuZ2VkKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJik7CiAgICAgdm9pZCBzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hh
bmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDM3MmMwOGQ1YjBjZTZkNDdkM2UwZTk2ZDMwYmU0MzVm
ZTE0MTNmMmYuLjkzMTljMTc1YzFjNGRiZGIwNjZiODZlNDU5ODY0NDhkNzhmNjQzNWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAxNi0wNy0yMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBNZWRpYSBjb250cm9scyBzaG91bGQgbm90IGJlIGRpc3BsYXllZCBvbiBwYWdl
cyB3aXRoIG11bHRpcGxlIHZpZGVvcyB1bnRpbCBhIHZpZGVvIHN0YXJ0cyBwbGF5aW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAwOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzI2OTg2NjczPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFZlcmlmeSB0aGF0IG11bHRpcGxlIHZpZGVvcyBkbyBvciBk
b24ndCBzaG93IHRoZSBtZWRpYSBjb250cm9sbGVyIGRlcGVuZGluZyBvbiB3aGV0aGVyIHZpZGVv
cworICAgICAgICBhcmUgcGxheWluZy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbDogQWRkZWQuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdp
dGgtYXVkaW8uaHRtbDogQWRkZWQuCisKIDIwMTYtMDctMjAgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBpT1MgYnVpbGQgZml4Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlMDNmMTNkYThiYzc0ZDc5NzdiODk1YzA1OTJkZGU5
NGIwZjBjNjdjLi40MTgxM2M4YWNlYTNiOTMwNzJlZDk4NjgyNGRhNjIyZjZkZDRmZjhiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTIsNiArNTIsOCBAQAogCQkyREM0Q0Y3NzFEMkQ5REQ4
MDBFQ0NDOTQgLyogRGF0YURldGVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJEQzRDRjc2MUQyRDlERDgwMEVDQ0M5NCAvKiBEYXRhRGV0ZWN0
aW9uLm1tICovOyB9OwogCQkyREQ3RDNBRjE3ODIyN0IzMDAyNkUxRTMgLyogbG90cy1vZi10ZXh0
LXZlcnRpY2FsLWxyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkREN0QzQUUxNzgyMjdBQzAwMjZFMUUzIC8qIGxvdHMtb2YtdGV4dC12
ZXJ0aWNhbC1sci5odG1sICovOyB9OwogCQkyRTE0QTUyOTFEM0ZFOTZCMDAxMEYzNUIgLyogYXV0
b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMTRBNTI4MUQzRkU4QjgwMDEwRjM1QiAvKiBh
dXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi87IH07CisJCTJFMURGREVEMUQ0MkE1
MTEwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMURGREVDMUQ0MkE0MUMw
MDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sICovOyB9OworCQkyRTFERkRF
RjFENDJBNkYyMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3Bs
YXkuaHRtbCAqLzsgfTsKIAkJMkU3NzY1Q0QxNkM0RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDQzE2
QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSAqLzsgfTsKIAkJMkU3NzY1Q0YxNkM0RDgxMTAw
QkEyQkIxIC8qIG1haW5NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTc3NjVDRTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSAqLzsgfTsK
IAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkU1
QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi87
IH07CkBAIC00OTIsNiArNDk0LDggQEAKIAkJCWRzdFBhdGggPSBUZXN0V2ViS2l0QVBJLnJlc291
cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMgPSAoCisJCQkJMkUxREZE
RUYxRDQyQTZGMjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJMkUxREZERUQxRDQyQTUxMTAwNzE0QTAwIC8q
IGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
NUM5RTU5NDExRDNFQjVBQzAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUuZGIgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJNUM5RTU5NDIxRDNFQjVBQzAwRTNDNjJFIC8qIEFwcGxpY2F0aW9u
Q2FjaGUuZGItc2htIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTVDOUU1OTQzMUQzRUI1QUMw
MEUzQzYyRSAvKiBBcHBsaWNhdGlvbkNhY2hlLmRiLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
QEAgLTY5MCw2ICs2OTQsOCBAQAogCQkyREQ3RDNBOTE3ODIwNUQwMDAyNkUxRTMgLyogUmVzaXpl
UmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVzaXplUmV2ZXJzZVBhZ2luYXRlZFdlYlZpZXcuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyREQ3RDNBRTE3ODIyN0FDMDAyNkUxRTMgLyogbG90cy1vZi10ZXh0
LXZlcnRpY2FsLWxyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibG90cy1vZi10ZXh0LXZlcnRpY2FsLWxyLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTE0QTUyODFEM0ZFOEI4MDAxMEYz
NUIgLyogYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gImF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMURGREVDMUQ0MkE0MUMwMDcxNEEwMCAvKiBsYXJnZS12
aWRlb3Mtd2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdl
LXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3Bs
YXkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlb3Mtd2l0aC1h
dWRpby1hdXRvcGxheS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NzY1
Q0MxNkM0RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBtYWluSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyRTc3NjVDRTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IG1haW5NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNFMyAvKiBQcmV2ZW50RW1wdHlVc2VyQWdl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJldmVudEVtcHR5
VXNlckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMTgsNiArMTMy
NCw3IEBACiAJCUExNkY2NkI4MUM0MEU5RTEwMEJENEQyNCAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFMURGREVFMUQ0MkE2RUIw
MDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sICovLAogCQkJ
CTVDOUU1OTNFMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBsaWNhdGlvbkNhY2hlLmRiICovLAogCQkJ
CTVDOUU1OTNGMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBsaWNhdGlvbkNhY2hlLmRiLXNobSAqLywK
IAkJCQk1QzlFNTk0MDFEM0VCMURFMDBFM0M2MkUgLyogQXBwbGljYXRpb25DYWNoZS5kYi13YWwg
Ki8sCkBAIC0xMzUwLDYgKzEzNTcsNyBAQAogCQkJCTdDQ0I5OTIyMUQzQjQ0RTcwMDM5MjJGNiAv
KiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sICovLAogCQkJCTUxNzE0RUIyMUNGOEM3
NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMS5odG1sICovLAogCQkJCTUx
NzE0RUIzMUNGOEM3NjEwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAtMi5odG1s
ICovLAorCQkJCTJFMURGREVDMUQ0MkE0MUMwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1h
dWRpby5odG1sICovLAogCQkJKTsKIAkJCW5hbWUgPSBSZXNvdXJjZXM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQppbmRleCBmYmVmZWJhZWMx
ZmViMTY4YWQ3MjVjMDMxYWZiMjRiNDYyOWVjYWRmLi4xNzI4OTVlNTU5MzdkMzZhZGNmNDcyOGVj
MDVjYzQ4MmQ4ZTNkYzdhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQpAQCAtMTY5LDYg
KzE2OSw1NCBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdl
clNpbmdsZVNtYWxsVmlkZW8pCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOwogfQogCitURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0Nv
bnRyb2xzTWFuYWdlck11bHRpcGxlVmlkZW9zV2l0aEF1ZGlvKQoreworICAgIFJldGFpblB0cjxX
S1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLm1l
ZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBXS0F1ZGlvdmlzdWFsTWVk
aWFUeXBlTm9uZTsKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIF9fYmxvY2sgQk9P
TCBkaWRTaG93TWVkaWFDb250cm9sczsKKyAgICBfX2Jsb2NrIGJvb2wgaXNEb25lTG9hZGluZyA9
IE5POworCisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5k
b3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpO
U0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZl
cjpOT10pOworICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0
KCldOworICAgIFJldGFpblB0cjxPbkxvYWRNZXNzYWdlSGFuZGxlcj4gb25sb2FkSGFuZGxlciA9
IGFkb3B0TlMoW1tPbkxvYWRNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhXS1dlYlZpZXc6
d2ViVmlldy5nZXQoKSBoYW5kbGVyOl4oKSB7CisgICAgICAgIGRpZFNob3dNZWRpYUNvbnRyb2xz
ID0gW3dlYlZpZXcgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyXTsKKyAgICAgICAg
aXNEb25lTG9hZGluZyA9IHRydWU7CisgICAgfV0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2Vy
Q29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm9ubG9hZEhhbmRsZXIu
Z2V0KCkgbmFtZTpAIm9ubG9hZEhhbmRsZXIiXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAImxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dl
YlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmlzRG9uZUxvYWRpbmcpOworICAgIEVYUEVDVF9GQUxTRShkaWRTaG93TWVkaWFDb250cm9s
cyk7Cit9CisKK1RFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2Vy
TXVsdGlwbGVWaWRlb3NXaXRoQXVkaW9BbmRBdXRvcGxheSkKK3sKKyAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5tZWRp
YVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gV0tBdWRpb3Zpc3VhbE1lZGlh
VHlwZU5vbmU7CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBfX2Jsb2NrIEJPT0wg
ZGlkU2hvd01lZGlhQ29udHJvbHM7CisgICAgX19ibG9jayBib29sIGlzRG9uZUxvYWRpbmcgPSBO
TzsKKworICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dKTsKKyAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgp
XTsKKyAgICBSZXRhaW5QdHI8T25Mb2FkTWVzc2FnZUhhbmRsZXI+IG9ubG9hZEhhbmRsZXIgPSBh
ZG9wdE5TKFtbT25Mb2FkTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoV0tXZWJWaWV3Ondl
YlZpZXcuZ2V0KCkgaGFuZGxlcjpeKCkgeworICAgICAgICBkaWRTaG93TWVkaWFDb250cm9scyA9
IFt3ZWJWaWV3IF9oYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzTWFuYWdlcl07CisgICAgICAgIGlz
RG9uZUxvYWRpbmcgPSB0cnVlOworICAgIH1dKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNv
bnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpvbmxvYWRIYW5kbGVyLmdl
dCgpIG5hbWU6QCJvbmxvYWRIYW5kbGVyIl07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3Qg
PSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheSIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwor
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZpc0RvbmVMb2FkaW5nKTsKKyAgICBFWFBFQ1RfVFJVRShkaWRTaG93TWVkaWFD
b250cm9scyk7Cit9CisKIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNN
YW5hZ2VyU2luZ2xlU21hbGxBdXRvcGxheWluZ1ZpZGVvKQogewogICAgIFJldGFpblB0cjxXS1dl
YlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0
bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mt
d2l0aC1hdWRpby1hdXRvcGxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZThiMmQ0NWY0NmNiNmFmY2Vh
ZTk2ZjY5OGI3ZjQ0ZWM1MGJlOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5o
dG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0Pgor
ICAgIGZ1bmN0aW9uIGhhbmRsZUxvYWRlZCgpIHsKKyAgICAgICAgLy8gVGhlIG1lZGlhIGNvbnRy
b2xzIHNob3VsZCBiZSB1cGRhdGVkIG9uIHRoZSBuZXh0IHJ1bmxvb3AuCisgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHdp
bmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLm9ubG9hZEhhbmRsZXIucG9zdE1lc3NhZ2UoImxv
YWRlZCIpOworICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KKyAgICAgICAgfSwgMCk7CisgICAg
fQorPC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9aGFuZGxlTG9hZGVkKCk+CisgICAgPHZpZGVvIGlk
PSJmb28iIHN0eWxlPSJ3aWR0aDogNDgwcHg7IGhlaWdodDogMzIwcHg7Ij48c291cmNlIHNyYz0i
bGFyZ2UtdmlkZW8td2l0aC1hdWRpby5tcDQiPjwvdmlkZW8+CisgICAgPHZpZGVvIGF1dG9wbGF5
IGlkPSJiYXIiIHN0eWxlPSJ3aWR0aDogNDgwcHg7IGhlaWdodDogMzIwcHg7Ij48c291cmNlIHNy
Yz0ibGFyZ2UtdmlkZW8td2l0aC1hdWRpby5tcDQiPjwvdmlkZW8+CisgICAgPHZpZGVvIGlkPSJi
YXoiIHN0eWxlPSJ3aWR0aDogNDgwcHg7IGhlaWdodDogMzIwcHg7Ij48c291cmNlIHNyYz0ibGFy
Z2UtdmlkZW8td2l0aC1hdWRpby5tcDQiPjwvdmlkZW8+Cis8L2JvZHk+Cis8aHRtbD4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVv
cy13aXRoLWF1ZGlvLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmZGRlMmYyYWE2NDhk
NDQ1Njk2MTgyNjRjNzQzZjY0Nzg2M2NjYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8c2NyaXB0PgorICAg
IGZ1bmN0aW9uIGhhbmRsZUxvYWRlZCgpIHsKKyAgICAgICAgLy8gVGhlIG1lZGlhIGNvbnRyb2xz
IHNob3VsZCBiZSB1cGRhdGVkIG9uIHRoZSBuZXh0IHJ1bmxvb3AuCisgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLm9ubG9hZEhhbmRsZXIucG9zdE1lc3NhZ2UoImxvYWRl
ZCIpOworICAgICAgICAgICAgfSBjYXRjaChlKSB7IH0KKyAgICAgICAgfSwgMCk7CisgICAgfQor
PC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9aGFuZGxlTG9hZGVkKCk+CisgICAgPHZpZGVvIGlkPSJm
b28iIHN0eWxlPSJ3aWR0aDogNDgwcHg7IGhlaWdodDogMzIwcHg7Ij48c291cmNlIHNyYz0ibGFy
Z2UtdmlkZW8td2l0aC1hdWRpby5tcDQiPjwvdmlkZW8+CisgICAgPHZpZGVvIGlkPSJiYXIiIHN0
eWxlPSJ3aWR0aDogNDgwcHg7IGhlaWdodDogMzIwcHg7Ij48c291cmNlIHNyYz0ibGFyZ2Utdmlk
ZW8td2l0aC1hdWRpby5tcDQiPjwvdmlkZW8+CisgICAgPHZpZGVvIGlkPSJiYXoiIHN0eWxlPSJ3
aWR0aDogNDgwcHg7IGhlaWdodDogMzIwcHg7Ij48c291cmNlIHNyYz0ibGFyZ2UtdmlkZW8td2l0
aC1hdWRpby5tcDQiPjwvdmlkZW8+Cis8L2JvZHk+Cis8aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284517</attachid>
            <date>2016-07-25 13:06:53 -0700</date>
            <delta_ts>2016-07-25 13:22:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160092-20160725130546.patch</filename>
            <type>text/plain</type>
            <size>15487</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBhMDY2NzI4MTRkZGEx
MjI5ZTExMTI2ZDQ2MDVhOTE2MzAwOGVlMi4uZjdiZmJiZmEzMTRlOWU1OThmZWI5MjEyNGU2OWI2
ODZiNTYyODYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDE2LTA3LTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIG9uIHBhZ2VzIHdpdGggbXVsdGlwbGUgdmlkZW9z
IHVudGlsIGEgdmlkZW8gc3RhcnRzIHBsYXlpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDA5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY5
ODY2NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rm9yIHZpZGVvcyB0aGF0IGhhdmUgbmV2ZXIgcGxheWVkIGJhY2sgeWV0LCB3ZSBzaG91bGQgbm90
IHNob3cgbWVkaWEgY29udHJvbHMuIFRvIGVuc3VyZSB0aGlzCisgICAgICAgIGJlaGF2aW9yLCB3
ZSBlbnN1cmUgdGhhdCB0aGUgcGxheWJhY2sgYmVoYXZpb3IgcmVzdHJpY3Rpb24gaXMgc2V0IHVw
b24gY3JlYXRpbmcgdGhlIG1lZGlhCisgICAgICAgIGVsZW1lbnQuIFRoaXMgcmVzdHJpY3Rpb24g
aXMgdGhlbiByZW1vdmVkIHdoZW4gdGhlIG1lZGlhIGVsZW1lbnQgYmVnaW5zIHRvIHBsYXkuCisK
KyAgICAgICAgQWRkZWQgdHdvIG5ldyBXZWJLaXQgQVBJIHRlc3RzLgorCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorCisyMDE2LTA3LTI1ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCiAgICAgICAgIE1lZGlhIGNvbnRyb2xzIG9uIGFwcGxlLmNv
bSBkb24ndCBkaXNhcHBlYXIgd2hlbiBtb3ZpZSBmaW5pc2hlcyBwbGF5aW5nCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAwNjgKICAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI2NjY4NTI2PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKaW5kZXggODU4OWU5OTcxNTVmNzhhODAyYzBkZjA3NGZjN2FkZDBiYjdjMTNjOS4uOThl
Y2M5ZThlODRmODk2ZWI4M2YyNTExN2FkYTYwYWY5OWM5MjE5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00NDMsNiArNDQzLDcgQEAgSFRNTE1lZGlhRWxl
bWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW0KICAgICBtX21lZGlhU2Vzc2lvbi0+YWRkQmVoYXZpb3JSZXN0cmljdGlvbihN
ZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0F1dG9wbGF5VG9FeHRlcm5h
bERldmljZSk7CiAjZW5kaWYKICAgICBtX21lZGlhU2Vzc2lvbi0+YWRkQmVoYXZpb3JSZXN0cmlj
dGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250
cm9sc01hbmFnZXIpOworICAgIG1fbWVkaWFTZXNzaW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0aW9u
KE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVQbGF5YmFja1RvQ29udHJvbENvbnRyb2xzTWFu
YWdlcik7CiAKICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudC5zZXR0aW5ncygpOwog
I2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA2ZTRlZTg5ZWE5MjcyMjk0YWE0Nzc3ZWZiOTMzMDhmYjAzM2RmN2U1Li4w
MmU4ZWQ0YTQ2NWQxYTkyZTdlMmMyNTEyOTU3ODAwYzU5NGFkM2ZkIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAKIDIwMTYt
MDctMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKKyAgICAgICAg
TWVkaWEgY29udHJvbHMgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQgb24gcGFnZXMgd2l0aCBtdWx0
aXBsZSB2aWRlb3MgdW50aWwgYSB2aWRlbyBzdGFydHMgcGxheWluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMDkyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yNjk4NjY3Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBWZXJpZnkgdGhhdCBtdWx0aXBsZSB2aWRlb3MgZG8gb3IgZG9uJ3Qgc2hvdyB0
aGUgbWVkaWEgY29udHJvbGxlciBkZXBlbmRpbmcgb24gd2hldGhlciB2aWRlb3MKKyAgICAgICAg
YXJlIHBsYXlpbmcuIEFsc28gdHdlYWtzIGFuIGV4aXN0aW5nIEFQSSB0ZXN0IChWaWRlb0NvbnRy
b2xzTWFuYWdlclNpbmdsZUxhcmdlVmlkZW8pIHRoYXQgd2FzCisgICAgICAgIHBhc3NpbmcgYmVj
YXVzZSB3ZSB3ZXJlIGFsd2F5cyBzaG93aW5nIG1lZGlhIGNvbnRyb2xzIGZvciBsYXJnZSB2aWRl
b3Mgd2l0aCBhdWRpbywgZXZlbiBpZiB0aGV5CisgICAgICAgIGhhZCBub3QgcGxheWVkIGJhY2sg
eWV0LiBUaGlzIGNoYW5nZSBlbnN1cmVzIHRoYXQgbGFyZ2UgdmlkZW9zIHdpdGggYXVkaW8gc2hv
dyBtZWRpYSBjb250cm9scworICAgICAgICBvbmx5IGFmdGVyIHRoZXkgYmVnaW4gdG8gcGxheSBi
YWNrLCBhbmQgbm90IGJ5IHZpcnR1ZSBvZiBiZWluZyBsYXJnZSBlbm91Z2ggZm9yIG1haW4gY29u
dGVudC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Utdmlk
ZW8td2l0aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRo
LWF1ZGlvLmh0bWw6IEFkZGVkLgorCisyMDE2LTA3LTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCiAgICAgICAgIE1lZGlhIGNvbnRyb2xzIG9uIGFwcGxlLmNvbSBk
b24ndCBkaXNhcHBlYXIgd2hlbiBtb3ZpZSBmaW5pc2hlcyBwbGF5aW5nCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAwNjgKICAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzI2NjY4NTI2PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyN2FjZjA4M2Yw
ZTIxYjY1YTZmYmNiNDliZGQ4ODNhNGNkZDFmMmRlLi4yZTk3ODY0Mjc1N2JlNzZjNmIxZGVmZmUz
MDYyMjdiYWIyODkzYWZkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTYsNiArNTYsOCBA
QAogCQkyRTFCN0IwMDFENDFBQkE3MDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1l
bmRpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRTFCN0FGRjFENDFBOTVGMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRl
ci1lbmRpbmcuaHRtbCAqLzsgfTsKIAkJMkUxQjdCMDIxRDQxQjFCOTAwNzU1OEI0IC8qIGxhcmdl
LXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxQjdCMDExRDQxQjFC
MzAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5k
Lmh0bWwgKi87IH07CiAJCTJFMURGREYxMUQ0MkUxRTQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1z
ZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFERkRGMDFENDJFMTQ0
MDA3MTRBMDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXIt
ZW5kaW5nLmh0bWwgKi87IH07CisJCTJFMURGREVEMUQ0MkE1MTEwMDcxNEEwMCAvKiBsYXJnZS12
aWRlb3Mtd2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFMURGREVDMUQ0MkE0MUMwMDcxNEEwMCAvKiBsYXJnZS12aWRl
b3Mtd2l0aC1hdWRpby5odG1sICovOyB9OworCQkyRTFERkRFRjFENDJBNkYyMDA3MTRBMDAgLyog
bGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFERkRFRTFENDJBNkVCMDA3MTRB
MDAgLyogbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCAqLzsgfTsKIAkJMkU3
NzY1Q0QxNkM0RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDQzE2QzREODBBMDBCQTJCQjEgLyogbWFp
bklPUy5tbSAqLzsgfTsKIAkJMkU3NzY1Q0YxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDRTE2
QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAw
NzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAv
KiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi87IH07CkBAIC01MDQsNiArNTA2LDgg
QEAKIAkJCQkyRTFERkRGMTFENDJFMUU0MDA3MTRBMDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1i
ZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJMkUxQjdCMDIxRDQxQjFCOTAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRy
b2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkUx
QjdCMDAxRDQxQUJBNzAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJMkUxREZERUYxRDQyQTZGMjAwNzE0QTAwIC8q
IGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCisJCQkJMkUxREZERUQxRDQyQTUxMTAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1
ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNUM5RTU5NDExRDNFQjVBQzAwRTND
NjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUuZGIgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNUM5
RTU5NDIxRDNFQjVBQzAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUuZGItc2htIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTVDOUU1OTQzMUQzRUI1QUMwMEUzQzYyRSAvKiBBcHBsaWNhdGlv
bkNhY2hlLmRiLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTcwNyw2ICs3MTEsOCBAQAog
CQkyRTFCN0FGRjFENDFBOTVGMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRp
bmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1zZWVrLWFm
dGVyLWVuZGluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxQjdCMDEx
RDQxQjFCMzAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWst
dG8tZW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8taGlk
ZXMtY29udHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJFMURGREYwMUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRv
LWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1l
bmRpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMURGREVDMUQ0MkE0
MUMwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyogbGFyZ2Utdmlk
ZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkU3NzY1Q0MxNkM0RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBtYWluSU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRTc3NjVDRTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IG1haW5NYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNFMyAv
KiBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUHJldmVudEVtcHR5VXNlckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEzNDYsNiArMTM1Miw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkyRTFERkRG
MDFENDJFMTQ0MDA3MTRBMDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBs
YXktYWZ0ZXItZW5kaW5nLmh0bWwgKi8sCiAJCQkJMkUxQjdCMDExRDQxQjFCMzAwNzU1OEI0IC8q
IGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgKi8sCisJ
CQkJMkUxREZERUUxRDQyQTZFQjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1
dG9wbGF5Lmh0bWwgKi8sCiAJCQkJNUM5RTU5M0UxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0
aW9uQ2FjaGUuZGIgKi8sCiAJCQkJNUM5RTU5M0YxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0
aW9uQ2FjaGUuZGItc2htICovLAogCQkJCTVDOUU1OTQwMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBs
aWNhdGlvbkNhY2hlLmRiLXdhbCAqLywKQEAgLTEzODEsNiArMTM4OCw3IEBACiAJCQkJNTE3MTRF
QjIxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0xLmh0bWwgKi8s
CiAJCQkJNTE3MTRFQjMxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51
cC0yLmh0bWwgKi8sCiAJCQkJMkUxQjdBRkYxRDQxQTk1RjAwNzU1OEI0IC8qIGxhcmdlLXZpZGVv
LXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgKi8sCisJCQkJMkUxREZERUMxRDQyQTQxQzAwNzE0QTAw
IC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFJl
c291cmNlczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5h
Z2VyLm1tCmluZGV4IGU0Mzc5ODY2ZjMwYTkzYmRmZjVjN2YyYWUwODY3MTgxNWY1NjE5NjkuLjRj
ZmE4N2ZmM2YyMGI2YzdkOWY4ZWZmMjFiNTFhNjdmNzM5NjU2ZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJv
bHNNYW5hZ2VyLm1tCkBAIC0xNzEsNiArMTcxLDU0IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFn
ZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyU2luZ2xlU21hbGxWaWRlbykKICAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiB9CiAKK1RFU1QoVmlkZW9D
b250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NXaXRoQXVk
aW8pCit7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAg
IGNvbmZpZ3VyYXRpb24uZ2V0KCkubWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5
YmFjayA9IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVOb25lOworICAgIFJldGFpblB0cjxXS1dlYlZp
ZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOworCisgICAgX19ibG9jayBCT09MIGRpZFNob3dNZWRpYUNvbnRyb2xzOworICAgIF9fYmxv
Y2sgYm9vbCBpc0RvbmVMb2FkaW5nID0gTk87CisKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdp
bmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2Vi
VmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgW1t3aW5kb3cgY29udGVudFZpZXdd
IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CisgICAgUmV0YWluUHRyPE9uTG9hZE1lc3NhZ2VI
YW5kbGVyPiBvbmxvYWRIYW5kbGVyID0gYWRvcHROUyhbW09uTG9hZE1lc3NhZ2VIYW5kbGVyIGFs
bG9jXSBpbml0V2l0aFdLV2ViVmlldzp3ZWJWaWV3LmdldCgpIGhhbmRsZXI6XigpIHsKKyAgICAg
ICAgZGlkU2hvd01lZGlhQ29udHJvbHMgPSBbd2ViVmlldyBfaGFzQWN0aXZlVmlkZW9Gb3JDb250
cm9sc01hbmFnZXJdOworICAgICAgICBpc0RvbmVMb2FkaW5nID0gdHJ1ZTsKKyAgICB9XSk7Cisg
ICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI6b25sb2FkSGFuZGxlci5nZXQoKSBuYW1lOkAib25sb2FkSGFuZGxlciJdOworCisg
ICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAibGFyZ2UtdmlkZW9zLXdpdGgt
YXVkaW8iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lTG9hZGluZyk7CisgICAgRVhQRUNUX0ZB
TFNFKGRpZFNob3dNZWRpYUNvbnRyb2xzKTsKK30KKworVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdl
ciwgVmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1dpdGhBdWRpb0FuZEF1dG9wbGF5
KQoreworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBj
b25maWd1cmF0aW9uLmdldCgpLm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJh
Y2sgPSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlTm9uZTsKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3
PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCld
KTsKKworICAgIF9fYmxvY2sgQk9PTCBkaWRTaG93TWVkaWFDb250cm9sczsKKyAgICBfX2Jsb2Nr
IGJvb2wgaXNEb25lTG9hZGluZyA9IE5POworCisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5k
b3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZp
ZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNr
aW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBh
ZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOworICAgIFJldGFpblB0cjxPbkxvYWRNZXNzYWdlSGFu
ZGxlcj4gb25sb2FkSGFuZGxlciA9IGFkb3B0TlMoW1tPbkxvYWRNZXNzYWdlSGFuZGxlciBhbGxv
Y10gaW5pdFdpdGhXS1dlYlZpZXc6d2ViVmlldy5nZXQoKSBoYW5kbGVyOl4oKSB7CisgICAgICAg
IGRpZFNob3dNZWRpYUNvbnRyb2xzID0gW3dlYlZpZXcgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJv
bHNNYW5hZ2VyXTsKKyAgICAgICAgaXNEb25lTG9hZGluZyA9IHRydWU7CisgICAgfV0pOworICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOm9ubG9hZEhhbmRsZXIuZ2V0KCkgbmFtZTpAIm9ubG9hZEhhbmRsZXIiXTsKKworICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImxhcmdlLXZpZGVvcy13aXRoLWF1
ZGlvLWF1dG9wbGF5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZUxvYWRpbmcpOworICAgIEVY
UEVDVF9UUlVFKGRpZFNob3dNZWRpYUNvbnRyb2xzKTsKK30KKwogVEVTVChWaWRlb0NvbnRyb2xz
TWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJTaW5nbGVTbWFsbEF1dG9wbGF5aW5nVmlkZW8p
CiB7CiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8t
d2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4IDRmMTczNWJlYWFiY2ExNDAwNzRlMDg5
Njc3MDQ1ZDNiOTIyN2ZhOWMuLmQyMzM0NjNjZWI4ZmFhMzIyZTM2ZjBjMjJiYWMxOTFhMzMzZThh
ZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xh
cmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWwKQEAgLTEyLDExICsxMiwx
MyBAQAogCiAgICAgZnVuY3Rpb24gcGxheWluZygpIHsKICAgICAgICAgd2luZG93LmNsZWFyVGlt
ZW91dCh0aW1lb3V0KTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7Ci0g
ICAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxi
YWNrOnBsYXlpbmcnOwotICAgICAgICB9CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAg
ICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAnY2Fs
bGJhY2s6cGxheWluZyc7CisgICAgICAgICAgICB9CisgICAgICAgIH0sIDApOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9z
LXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2U4YjJkNDVmNDZjYjZhZmNl
YWU5NmY2OThiN2Y0NGVjNTBiZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXku
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdD4K
KyAgICBmdW5jdGlvbiBoYW5kbGVMb2FkZWQoKSB7CisgICAgICAgIC8vIFRoZSBtZWRpYSBjb250
cm9scyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5sb29wLgorICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5vbmxvYWRIYW5kbGVyLnBvc3RNZXNzYWdlKCJs
b2FkZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CisgICAgICAgIH0sIDApOworICAg
IH0KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPWhhbmRsZUxvYWRlZCgpPgorICAgIDx2aWRlbyBp
ZD0iZm9vIiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9
ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBhdXRvcGxh
eSBpZD0iYmFyIiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBz
cmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0i
YmF6IiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9Imxh
cmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorPC9ib2R5PgorPGh0bWw+CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
b3Mtd2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmRkZTJmMmFhNjQ4
ZDQ0NTY5NjE4MjY0Yzc0M2Y2NDc4NjNjY2JlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdD4KKyAg
ICBmdW5jdGlvbiBoYW5kbGVMb2FkZWQoKSB7CisgICAgICAgIC8vIFRoZSBtZWRpYSBjb250cm9s
cyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5sb29wLgorICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5vbmxvYWRIYW5kbGVyLnBvc3RNZXNzYWdlKCJsb2Fk
ZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CisgICAgICAgIH0sIDApOworICAgIH0K
Kzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPWhhbmRsZUxvYWRlZCgpPgorICAgIDx2aWRlbyBpZD0i
Zm9vIiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9Imxh
cmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0iYmFyIiBz
dHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZp
ZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0iYmF6IiBzdHlsZT0i
d2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZpZGVvLXdp
dGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorPC9ib2R5PgorPGh0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284519</attachid>
            <date>2016-07-25 13:22:30 -0700</date>
            <delta_ts>2016-07-25 13:52:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-160092-20160725132123.patch</filename>
            <type>text/plain</type>
            <size>15316</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDcxODNiODk2NjI2N2Fl
MWMxZjQ0ZWMyMmU3YTdkN2FhZjE4YTRmYy4uMjRlZDJmODEyZWMwYmY4MDI3ZDA0ZjM1N2QxNTUz
ZWFiYzViNDAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA3LTI1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIGZvciBhIHZpZGVvIHVudGlsIGl0IHN0YXJ0cyBw
bGF5aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjAwOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2OTg2NjczPgorCisgICAgICAgIFJldmll
d2VkIGJ5IEJldGggRGFraW4uCisKKyAgICAgICAgRm9yIHZpZGVvcyB0aGF0IGhhdmUgbmV2ZXIg
cGxheWVkIGJhY2sgeWV0LCB3ZSBzaG91bGQgbm90IHNob3cgbWVkaWEgY29udHJvbHMuIFRvIGVu
c3VyZSB0aGlzCisgICAgICAgIGJlaGF2aW9yLCB3ZSBlbnN1cmUgdGhhdCB0aGUgcGxheWJhY2sg
YmVoYXZpb3IgcmVzdHJpY3Rpb24gaXMgc2V0IHVwb24gY3JlYXRpbmcgdGhlIG1lZGlhCisgICAg
ICAgIGVsZW1lbnQuIFRoaXMgcmVzdHJpY3Rpb24gaXMgdGhlbiByZW1vdmVkIHdoZW4gdGhlIG1l
ZGlhIGVsZW1lbnQgYmVnaW5zIHRvIHBsYXkuCisKKyAgICAgICAgQWRkZWQgdHdvIG5ldyBXZWJL
aXQgQVBJIHRlc3RzLgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorCiAy
MDE2LTA3LTI1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
bGxvdyBMb2NhbFN0b3JhZ2UgYnkgZGVmYXVsdCBmb3IgZmlsZSBVUkxzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggODU4OWU5OTcxNTVmNzhhODAyYzBkZjA3
NGZjN2FkZDBiYjdjMTNjOS4uOThlY2M5ZThlODRmODk2ZWI4M2YyNTExN2FkYTYwYWY5OWM5MjE5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00NDMsNiAr
NDQzLDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICBtX21lZGlhU2Vzc2lvbi0+YWRk
QmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1
cmVUb0F1dG9wbGF5VG9FeHRlcm5hbERldmljZSk7CiAjZW5kaWYKICAgICBtX21lZGlhU2Vzc2lv
bi0+YWRkQmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNl
ckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpOworICAgIG1fbWVkaWFTZXNzaW9uLT5h
ZGRCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVQbGF5YmFj
a1RvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7CiAKICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBk
b2N1bWVudC5zZXR0aW5ncygpOwogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2ZTRlZTg5ZWE5MjcyMjk0YWE0Nzc3
ZWZiOTMzMDhmYjAzM2RmN2U1Li4yODM1MzljN2VhNWEyNzViZTBlYTVlMGJiZDFmYTRjMzViOWQx
MDlkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjYgQEAKIDIwMTYtMDctMjUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKKyAgICAgICAgTWVkaWEgY29udHJvbHMgc2hvdWxkIG5vdCBiZSBkaXNwbGF5
ZWQgZm9yIGEgdmlkZW8gdW50aWwgaXQgc3RhcnRzIHBsYXlpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDA5MgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjY5ODY2NzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4KKworICAg
ICAgICBWZXJpZnkgdGhhdCBtdWx0aXBsZSB2aWRlb3MgZG8gb3IgZG9uJ3Qgc2hvdyB0aGUgbWVk
aWEgY29udHJvbGxlciBkZXBlbmRpbmcgb24gd2hldGhlciB2aWRlb3MKKyAgICAgICAgYXJlIHBs
YXlpbmcuIEFsc28gdHdlYWtzIGFuIGV4aXN0aW5nIEFQSSB0ZXN0IChWaWRlb0NvbnRyb2xzTWFu
YWdlclNpbmdsZUxhcmdlVmlkZW8pIHRoYXQgd2FzCisgICAgICAgIHBhc3NpbmcgYmVjYXVzZSB3
ZSB3ZXJlIGFsd2F5cyBzaG93aW5nIG1lZGlhIGNvbnRyb2xzIGZvciBsYXJnZSB2aWRlb3Mgd2l0
aCBhdWRpbywgZXZlbiBpZiB0aGV5CisgICAgICAgIGhhZCBub3QgcGxheWVkIGJhY2sgeWV0LiBU
aGlzIGNoYW5nZSBlbnN1cmVzIHRoYXQgbGFyZ2UgdmlkZW9zIHdpdGggYXVkaW8gc2hvdyBtZWRp
YSBjb250cm9scworICAgICAgICBvbmx5IGFmdGVyIHRoZXkgYmVnaW4gdG8gcGxheSBiYWNrLCBh
bmQgbm90IGJ5IHZpcnR1ZSBvZiBiZWluZyBsYXJnZSBlbm91Z2ggZm9yIG1haW4gY29udGVudC4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Zp
ZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8td2l0
aC1hdWRpby5odG1sOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvcy13aXRoLWF1ZGlv
Lmh0bWw6IEFkZGVkLgorCisyMDE2LTA3LTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCiAgICAgICAgIE1lZGlhIGNvbnRyb2xzIG9uIGFwcGxlLmNvbSBkb24ndCBk
aXNhcHBlYXIgd2hlbiBtb3ZpZSBmaW5pc2hlcyBwbGF5aW5nCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAwNjgKICAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI2NjY4NTI2PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyN2FjZjA4M2YwZTIxYjY1
YTZmYmNiNDliZGQ4ODNhNGNkZDFmMmRlLi4yZTk3ODY0Mjc1N2JlNzZjNmIxZGVmZmUzMDYyMjdi
YWIyODkzYWZkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTYsNiArNTYsOCBAQAogCQky
RTFCN0IwMDFENDFBQkE3MDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRTFCN0FGRjFENDFBOTVGMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRp
bmcuaHRtbCAqLzsgfTsKIAkJMkUxQjdCMDIxRDQxQjFCOTAwNzU1OEI0IC8qIGxhcmdlLXZpZGVv
LWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUxQjdCMDExRDQxQjFCMzAwNzU1
OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwg
Ki87IH07CiAJCTJFMURGREYxMUQ0MkUxRTQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRv
LWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFERkRGMDFENDJFMTQ0MDA3MTRB
MDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0ZXItZW5kaW5n
Lmh0bWwgKi87IH07CisJCTJFMURGREVEMUQ0MkE1MTEwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mt
d2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFMURGREVDMUQ0MkE0MUMwMDcxNEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0
aC1hdWRpby5odG1sICovOyB9OworCQkyRTFERkRFRjFENDJBNkYyMDA3MTRBMDAgLyogbGFyZ2Ut
dmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyog
bGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbCAqLzsgfTsKIAkJMkU3NzY1Q0Qx
NkM0RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDQzE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5t
bSAqLzsgfTsKIAkJMkU3NzY1Q0YxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDRTE2QzREODEx
MDBCQTJCQjEgLyogbWFpbk1hYy5tbSAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEz
IC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3Vz
ZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi87IH07CkBAIC01MDQsNiArNTA2LDggQEAKIAkJ
CQkyRTFERkRGMTFENDJFMUU0MDA3MTRBMDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5p
bmctYW5kLXBsYXktYWZ0ZXItZW5kaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
MkUxQjdCMDIxRDQxQjFCOTAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFm
dGVyLXNlZWstdG8tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkUxQjdCMDAx
RDQxQUJBNzAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLXNlZWstYWZ0ZXItZW5kaW5nLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCisJCQkJMkUxREZERUYxRDQyQTZGMjAwNzE0QTAwIC8qIGxhcmdl
LXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJ
CQkJMkUxREZERUQxRDQyQTUxMTAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNUM5RTU5NDExRDNFQjVBQzAwRTNDNjJFIC8q
IEFwcGxpY2F0aW9uQ2FjaGUuZGIgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNUM5RTU5NDIx
RDNFQjVBQzAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2FjaGUuZGItc2htIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTVDOUU1OTQzMUQzRUI1QUMwMEUzQzYyRSAvKiBBcHBsaWNhdGlvbkNhY2hl
LmRiLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTcwNyw2ICs3MTEsOCBAQAogCQkyRTFC
N0FGRjFENDFBOTVGMDA3NTU4QjQgLyogbGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmcuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby1zZWVrLWFmdGVyLWVu
ZGluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUxQjdCMDExRDQxQjFC
MzAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5k
Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8taGlkZXMtY29u
dHJvbHMtYWZ0ZXItc2Vlay10by1lbmQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJFMURGREYwMUQ0MkUxNDQwMDcxNEEwMCAvKiBsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lu
bmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJsYXJnZS12aWRlby1zZWVrLXRvLWJlZ2lubmluZy1hbmQtcGxheS1hZnRlci1lbmRpbmcu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMURGREVDMUQ0MkE0MUMwMDcx
NEEwMCAvKiBsYXJnZS12aWRlb3Mtd2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1s
OyBwYXRoID0gImxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyRTFERkRFRTFENDJBNkVCMDA3MTRBMDAgLyogbGFyZ2UtdmlkZW9zLXdp
dGgtYXVkaW8tYXV0b3BsYXkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJn
ZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkU3NzY1Q0MxNkM0RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBtYWluSU9TLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyRTc3NjVDRTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IG1haW5NYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzM0I5Q0UxMTI3N0YyMzEwMEZFRkNFMyAvKiBQcmV2
ZW50RW1wdHlVc2VyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUHJldmVudEVtcHR5VXNlckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEzNDYsNiArMTM1Miw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkyRTFERkRGMDFENDJF
MTQ0MDA3MTRBMDAgLyogbGFyZ2UtdmlkZW8tc2Vlay10by1iZWdpbm5pbmctYW5kLXBsYXktYWZ0
ZXItZW5kaW5nLmh0bWwgKi8sCiAJCQkJMkUxQjdCMDExRDQxQjFCMzAwNzU1OEI0IC8qIGxhcmdl
LXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8tZW5kLmh0bWwgKi8sCisJCQkJMkUx
REZERUUxRDQyQTZFQjAwNzE0QTAwIC8qIGxhcmdlLXZpZGVvcy13aXRoLWF1ZGlvLWF1dG9wbGF5
Lmh0bWwgKi8sCiAJCQkJNUM5RTU5M0UxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2Fj
aGUuZGIgKi8sCiAJCQkJNUM5RTU5M0YxRDNFQjFERTAwRTNDNjJFIC8qIEFwcGxpY2F0aW9uQ2Fj
aGUuZGItc2htICovLAogCQkJCTVDOUU1OTQwMUQzRUIxREUwMEUzQzYyRSAvKiBBcHBsaWNhdGlv
bkNhY2hlLmRiLXdhbCAqLywKQEAgLTEzODEsNiArMTM4OCw3IEBACiAJCQkJNTE3MTRFQjIxQ0Y4
Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0xLmh0bWwgKi8sCiAJCQkJ
NTE3MTRFQjMxQ0Y4Qzc2MTAwNDcyM0M0IC8qIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC0yLmh0
bWwgKi8sCiAJCQkJMkUxQjdBRkYxRDQxQTk1RjAwNzU1OEI0IC8qIGxhcmdlLXZpZGVvLXNlZWst
YWZ0ZXItZW5kaW5nLmh0bWwgKi8sCisJCQkJMkUxREZERUMxRDQyQTQxQzAwNzE0QTAwIC8qIGxh
cmdlLXZpZGVvcy13aXRoLWF1ZGlvLmh0bWwgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFJlc291cmNl
czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1t
CmluZGV4IGU0Mzc5ODY2ZjMwYTkzYmRmZjVjN2YyYWUwODY3MTgxNWY1NjE5NjkuLjc0YWZjMjVj
ZGFiMjE5NWEwNjk0M2VjMTI0YTRkZWQ1YzU2NTdmZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5h
Z2VyLm1tCkBAIC0xNzEsNiArMTcxLDU0IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZp
ZGVvQ29udHJvbHNNYW5hZ2VyU2luZ2xlU21hbGxWaWRlbykKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiB9CiAKK1RFU1QoVmlkZW9Db250cm9s
c01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NXaXRoQXVkaW8pCit7
CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZp
Z3VyYXRpb24uZ2V0KCkubWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayA9
IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVOb25lOworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdl
YlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwor
CisgICAgX19ibG9jayBCT09MIGRpZFNob3dNZWRpYUNvbnRyb2xzOworICAgIF9fYmxvY2sgYm9v
bCBpc0RvbmVMb2FkaW5nID0gZmFsc2U7CisKKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRv
dyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmll
dyBmcmFtZV0gc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tp
bmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisgICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFk
ZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07CisgICAgUmV0YWluUHRyPE9uTG9hZE1lc3NhZ2VIYW5k
bGVyPiBvbmxvYWRIYW5kbGVyID0gYWRvcHROUyhbW09uTG9hZE1lc3NhZ2VIYW5kbGVyIGFsbG9j
XSBpbml0V2l0aFdLV2ViVmlldzp3ZWJWaWV3LmdldCgpIGhhbmRsZXI6XigpIHsKKyAgICAgICAg
ZGlkU2hvd01lZGlhQ29udHJvbHMgPSBbd2ViVmlldyBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9s
c01hbmFnZXJdOworICAgICAgICBpc0RvbmVMb2FkaW5nID0gdHJ1ZTsKKyAgICB9XSk7CisgICAg
W1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhh
bmRsZXI6b25sb2FkSGFuZGxlci5nZXQoKSBuYW1lOkAib25sb2FkSGFuZGxlciJdOworCisgICAg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAibGFyZ2UtdmlkZW9zLXdpdGgtYXVk
aW8iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lTG9hZGluZyk7CisgICAgRVhQRUNUX0ZBTFNF
KGRpZFNob3dNZWRpYUNvbnRyb2xzKTsKK30KKworVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwg
VmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1dpdGhBdWRpb0FuZEF1dG9wbGF5KQor
eworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25m
aWd1cmF0aW9uLmdldCgpLm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sg
PSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlTm9uZTsKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDEwMCwgMTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsK
KworICAgIF9fYmxvY2sgQk9PTCBkaWRTaG93TWVkaWFDb250cm9sczsKKyAgICBfX2Jsb2NrIGJv
b2wgaXNEb25lTG9hZGluZyA9IGZhbHNlOworCisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5k
b3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZp
ZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNr
aW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBh
ZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOworICAgIFJldGFpblB0cjxPbkxvYWRNZXNzYWdlSGFu
ZGxlcj4gb25sb2FkSGFuZGxlciA9IGFkb3B0TlMoW1tPbkxvYWRNZXNzYWdlSGFuZGxlciBhbGxv
Y10gaW5pdFdpdGhXS1dlYlZpZXc6d2ViVmlldy5nZXQoKSBoYW5kbGVyOl4oKSB7CisgICAgICAg
IGRpZFNob3dNZWRpYUNvbnRyb2xzID0gW3dlYlZpZXcgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJv
bHNNYW5hZ2VyXTsKKyAgICAgICAgaXNEb25lTG9hZGluZyA9IHRydWU7CisgICAgfV0pOworICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOm9ubG9hZEhhbmRsZXIuZ2V0KCkgbmFtZTpAIm9ubG9hZEhhbmRsZXIiXTsKKworICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImxhcmdlLXZpZGVvcy13aXRoLWF1
ZGlvLWF1dG9wbGF5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZUxvYWRpbmcpOworICAgIEVY
UEVDVF9UUlVFKGRpZFNob3dNZWRpYUNvbnRyb2xzKTsKK30KKwogVEVTVChWaWRlb0NvbnRyb2xz
TWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJTaW5nbGVTbWFsbEF1dG9wbGF5aW5nVmlkZW8p
CiB7CiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8t
d2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
bGFyZ2UtdmlkZW8td2l0aC1hdWRpby5odG1sCmluZGV4IDRmMTczNWJlYWFiY2ExNDAwNzRlMDg5
Njc3MDQ1ZDNiOTIyN2ZhOWMuLmQyMzM0NjNjZWI4ZmFhMzIyZTM2ZjBjMjJiYWMxOTFhMzMzZThh
ZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xh
cmdlLXZpZGVvLXdpdGgtYXVkaW8uaHRtbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby13aXRoLWF1ZGlvLmh0bWwKQEAgLTEyLDExICsxMiwx
MyBAQAogCiAgICAgZnVuY3Rpb24gcGxheWluZygpIHsKICAgICAgICAgd2luZG93LmNsZWFyVGlt
ZW91dCh0aW1lb3V0KTsKLSAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIHdpbmRvdy53ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7Ci0g
ICAgICAgIH0gY2F0Y2goZSkgewotICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gJ2NhbGxi
YWNrOnBsYXlpbmcnOwotICAgICAgICB9CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCdwbGF5aW5nJyk7CisgICAgICAg
ICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAnY2Fs
bGJhY2s6cGxheWluZyc7CisgICAgICAgICAgICB9CisgICAgICAgIH0sIDApOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIG5vdFBsYXlpbmcoKSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlb3Mtd2l0aC1hdWRpby1hdXRvcGxheS5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9z
LXdpdGgtYXVkaW8tYXV0b3BsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41N2U4YjJkNDVmNDZjYjZhZmNl
YWU5NmY2OThiN2Y0NGVjNTBiZTk5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8tYXV0b3BsYXku
aHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdD4K
KyAgICBmdW5jdGlvbiBoYW5kbGVMb2FkZWQoKSB7CisgICAgICAgIC8vIFRoZSBtZWRpYSBjb250
cm9scyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5sb29wLgorICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3
aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5vbmxvYWRIYW5kbGVyLnBvc3RNZXNzYWdlKCJs
b2FkZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CisgICAgICAgIH0sIDApOworICAg
IH0KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPWhhbmRsZUxvYWRlZCgpPgorICAgIDx2aWRlbyBp
ZD0iZm9vIiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9
ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBhdXRvcGxh
eSBpZD0iYmFyIiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBz
cmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0i
YmF6IiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9Imxh
cmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorPC9ib2R5PgorPGh0bWw+CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRl
b3Mtd2l0aC1hdWRpby5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZmRkZTJmMmFhNjQ4
ZDQ0NTY5NjE4MjY0Yzc0M2Y2NDc4NjNjY2JlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW9zLXdpdGgtYXVkaW8uaHRt
bApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlwdD4KKyAg
ICBmdW5jdGlvbiBoYW5kbGVMb2FkZWQoKSB7CisgICAgICAgIC8vIFRoZSBtZWRpYSBjb250cm9s
cyBzaG91bGQgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBydW5sb29wLgorICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB3aW5k
b3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5vbmxvYWRIYW5kbGVyLnBvc3RNZXNzYWdlKCJsb2Fk
ZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2goZSkgeyB9CisgICAgICAgIH0sIDApOworICAgIH0K
Kzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPWhhbmRsZUxvYWRlZCgpPgorICAgIDx2aWRlbyBpZD0i
Zm9vIiBzdHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9Imxh
cmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0iYmFyIiBz
dHlsZT0id2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZp
ZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorICAgIDx2aWRlbyBpZD0iYmF6IiBzdHlsZT0i
d2lkdGg6IDQ4MHB4OyBoZWlnaHQ6IDMyMHB4OyI+PHNvdXJjZSBzcmM9ImxhcmdlLXZpZGVvLXdp
dGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorPC9ib2R5PgorPGh0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>