<?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>162112</bug_id>
          
          <creation_ts>2016-09-16 21:05:23 -0700</creation_ts>
          <short_desc>Add a unit test covering &lt;https://trac.webkit.org/changeset/205983&gt;</short_desc>
          <delta_ts>2016-09-22 09:14:10 -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>Tools / Tests</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></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>lforschler</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1230755</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-16 21:05:23 -0700</bug_when>
    <thetext>Add a unit test covering https://bugs.webkit.org/show_bug.cgi?id=162008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230756</commentid>
    <comment_count>1</comment_count>
      <attachid>289158</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-16 21:09:32 -0700</bug_when>
    <thetext>Created attachment 289158
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230778</commentid>
    <comment_count>2</comment_count>
      <attachid>289158</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-17 01:21:10 -0700</bug_when>
    <thetext>Comment on attachment 289158
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewCandidateTests.mm:33
&gt; +#import &lt;AppKit/NSTouchDevice_Private.h&gt;

I don&apos;t think you can do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230861</commentid>
    <comment_count>3</comment_count>
      <attachid>289158</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-17 11:21:26 -0700</bug_when>
    <thetext>Comment on attachment 289158
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewCandidateTests.mm:33
&gt;&gt; +#import &lt;AppKit/NSTouchDevice_Private.h&gt;
&gt; 
&gt; I don&apos;t think you can do that.

Indeed -- it seems I forgot to remove this after debugging. I&apos;ll upload a v2 (there are some other issues I addressed, such as +[CandidateTestWebView setUpWithFrame:] not actually using its params).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230863</commentid>
    <comment_count>4</comment_count>
      <attachid>289174</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-17 11:23:34 -0700</bug_when>
    <thetext>Created attachment 289174
Refactored TestWKWebView to be hosted in a key window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230866</commentid>
    <comment_count>5</comment_count>
      <attachid>289176</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-17 11:45:23 -0700</bug_when>
    <thetext>Created attachment 289176
s/NSWindowStyleMaskBorderless/NSBorderlessWindowMask</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230983</commentid>
    <comment_count>6</comment_count>
      <attachid>289210</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-18 12:27:12 -0700</bug_when>
    <thetext>Created attachment 289210
Rewrote 2 disabled CandidateTests as WK2 tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231442</commentid>
    <comment_count>7</comment_count>
      <attachid>289210</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-09-19 17:06:38 -0700</bug_when>
    <thetext>Comment on attachment 289210
Rewrote 2 disabled CandidateTests as WK2 tests

Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231472</commentid>
    <comment_count>8</comment_count>
      <attachid>289210</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-19 18:04:53 -0700</bug_when>
    <thetext>Comment on attachment 289210
Rewrote 2 disabled CandidateTests as WK2 tests

Clearing flags on attachment: 289210

Committed r206135: &lt;http://trac.webkit.org/changeset/206135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231473</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-19 18:04:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1231620</commentid>
    <comment_count>10</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-20 08:10:13 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1232456</commentid>
    <comment_count>11</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-22 09:14:10 -0700</bug_when>
    <thetext>I must have accidentally reopened this. Closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289158</attachid>
            <date>2016-09-16 21:09:32 -0700</date>
            <delta_ts>2016-09-17 11:23:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162112-20160916210652.patch</filename>
            <type>text/plain</type>
            <size>16035</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDQxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmEzODMyOTNlOWRjYjdkODhlMGZhZjhhMWQyM2ZkY2Ji
MjhlOThjZi4uZDNkYjhjMzEzMjg2ZTdiOGQxYmNiYzM0NzhiOGEwMTQ2MjQzOGM5ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2
IEBACiAyMDE2LTA5LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCBmb3IgPGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8yMDU5ODM+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjIxMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIGEgbmV3IHVuaXQgdGVzdCBjb3ZlcmluZyB0aGUgY2hhbmdlcyBpbiByMjA1
OTgzIGFsb25nIHdpdGggdGhlIGluZnJhc3RydWN0dXJlIG5lZWRlZCB0byBzdXBwb3J0IGl0Lgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tX
ZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW06CisgICAgICAgICgtW0NhbmRpZGF0ZVRlc3RXZWJWaWV3
IHRlc3RXaW5kb3ddKToKKyAgICAgICAgKCtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgc2V0VXBXaXRo
RnJhbWU6dGVzdFBhZ2U6XSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5o
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW06CisgICAg
ICAgICgtW1Rlc3RXaW5kb3cgaW5pdFdpdGhDb250ZW50UmVjdDpdKToKKyAgICAgICAgKF9fc2lt
dWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayk6CisgICAgICAgICgtW1Rlc3RX
aW5kb3cgbW91c2VEb3duV2l0aFByZXNzdXJlQXRQb2ludDpdKToKKworMjAxNi0wOS0xNiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXF1aXJlc1Vz
ZXJBY3Rpb25Gb3JQbGF5YmFjayBUZXN0V2ViS2l0QVBJIHRlc3RzIGFyZSBicm9rZW4gYWZ0ZXIg
cjIwNjAzMy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MjA4MAogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNlOWU0ZDVlZTIwNjAxMDhhOTNm
MGRlNTljMjY1Mjk5MDU0NjU4OWMuLmI2YmI1MTllMmUxYWZlYjY1YzQwY2QzYjRmNDcxMzFlNDVj
MjAxNzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NzMsNiArNDczLDcgQEAKIAkJQ0VC
QUJENDkxQjcxNjg3QzAwNTEyMTBBIC8qIHNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RUJBQkQ0ODFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1lcy5o
dG1sICovOyB9OwogCQlFMTIyMERDQTE1NUIyOEFBMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNh
YmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTIyMERDOTE1NUIyODdEMDAxM0UyRkMg
LyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLzsg
fTsKIAkJRTE5NEUxQkQxNzdFNTNDNzAwOUM0RDRFIC8qIFN0b3BMb2FkaW5nRnJvbURpZFJlY2Vp
dmVSZXNwb25zZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxOTRFMUJDMTc3RTUzNEEwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21E
aWRSZWNlaXZlUmVzcG9uc2UuaHRtbCAqLzsgfTsKKwkJRjQyREE1MTYxRDhDRUZFNDAwMzM2RjQw
IC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MkRBNTE1MUQ4Q0VGREIwMDMz
NkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLzsgfTsKIAkJRjRG
NDA1QkMxRDRDMEQxQzAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRo
LWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRGNDA1QkExRDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWlu
Zy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi87IH07CiAJCUY0RjQwNUJEMUQ0QzBEMUMwMDdBOTcw
NyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RjQwNUJCMUQ0QzBD
RjgwMDdBOTcwNyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICov
OyB9OwogCQlGNjYwQUExMTE1QTVGNjMxMDAzQTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0
aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2NjBBQTBGMTVBNUY2MjQwMDNBMTI0MyAvKiBH
ZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3Bw
ICovOyB9OwpAQCAtNTQ0LDYgKzU0NSw3IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCUY0
MkRBNTE2MUQ4Q0VGRTQwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRUZGMDZDRDFEOEE0MjlBMDAwNEJCMzAg
LyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTJFRkYwNkM3MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291
cmNlLW9uLWVuZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFRkYwNkM1MUQ4ODY3
NzYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCkBAIC0xMTc4LDYgKzExODAsNyBAQAogCQlFNEE3NTdEMzE3OEFFQTVCMDBC
NUQ3QTQgLyogRGVxdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVxdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNEM5QUJDNzFCM0RCMTcxMDA0MEE5ODcgLyogUnVuTG9v
cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjNGQzNFRTIxMzY3OEI3MzAwMTI2QTY1IC8q
IGxpYmd0ZXN0LmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBhcmNoaXZlLmFyOyBwYXRoID0gbGliZ3Rlc3QuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJRjQyREE1MTUxRDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0
LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBuYW1lID0gImxh
cmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIjsgcGF0aCA9ICJUZXN0cy9XZWJLaXQy
Q29jb2EvbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwiOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07CiAJCUY0RjQwNUJBMUQ0QzBDRjgwMDdBOTcwNyAvKiBmdWxsLXNpemUt
YXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gImZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEY0MDVCQjFENEMwQ0Y4MDA3QTk3MDcgLyogc2tp
bm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjY2MEFBMEMxNUE1RjA2MTAwM0ExMjQzIC8qIEdl
dEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6
YXRpb25Vc2VyRGF0YUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5MTcsNiArMTkyMCw3IEBACiAJCUMwN0U2Q0IwMTNGRDczN0MwMDM4QjIyQiAvKiBSZXNvdXJj
ZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY0MkRB
NTE1MUQ4Q0VGREIwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRt
bCAqLywKIAkJCQkzNzkwMjhCODE0RkFCRTQ5MDA3RTZCNDMgLyogYWNjZXB0c0ZpcnN0TW91c2Uu
aHRtbCAqLywKIAkJCQlCNTVGMTFCOTE1MTkxNkU2MDA5MTU5MTYgLyogQWhlbS50dGYgKi8sCiAJ
CQkJQjU1RjExQjAxNTE3QTJDNDAwOTE1OTE2IC8qIGF0dHJpYnV0ZWRTdHJpbmdDdXN0b21Gb250
Lmh0bWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tCmluZGV4IDFkYjk0Nzlh
NGJkN2JiOWE5MmU2NzE4NjlmMDk3ODRmYmRlMTk3MDcuLmMzOThkYzZjMTNlNTA0ZTM0ZjI2NTNh
ODUxMTJlYWY1NzgyYzJiNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tCkBA
IC0zMCw3ICszMCwxMCBAQAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQg
IlRlc3RXS1dlYlZpZXdNYWMuaCIKIAorI2ltcG9ydCA8QXBwS2l0L05TVG91Y2hEZXZpY2VfUHJp
dmF0ZS5oPgorI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktp
dFByaXZhdGUuaD4KKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogCiBzdGF0aWMgTlNTdHJpbmcg
KkdldElucHV0VmFsdWVKU0V4cHJlc3Npb24gPSBAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lu
cHV0JykudmFsdWUiOwogc3RhdGljIE5TU3RyaW5nICpHZXREb2N1bWVudFNjcm9sbFRvcEpTRXhw
cmVzc2lvbiA9IEAiZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AiOwpAQCAtMTEyLDE5ICsxMTUsMzEg
QEAgLSAodm9pZClfZGlkVXBkYXRlQ2FuZGlkYXRlTGlzdFZpc2liaWxpdHk6KEJPT0wpdmlzaWJs
ZQogICAgICAgICBfY2FuZGlkYXRlTGlzdFZpc2liaWxpdHlDaGFuZ2VDb3VudCsrOwogfQogCi1A
ZW5kCistIChUZXN0V2luZG93ICopdGVzdFdpbmRvdworeworICAgIHJldHVybiAoVGVzdFdpbmRv
dyAqKXNlbGYud2luZG93OworfQogCi1URVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBTb2Z0
U3BhY2VSZXBsYWNlbWVudEFmdGVyQ2FuZGlkYXRlSW5zZXJ0aW9uV2l0aG91dFJlcGxhY2VtZW50
KQorKyAoaW5zdGFuY2V0eXBlKXNldFVwV2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGVzdFBhZ2U6
KE5TU3RyaW5nICopdGVzdFBhZ2VOYW1lCiB7CisgICAgVGVzdFdpbmRvdyAqd2luZG93ID0gW1tU
ZXN0V2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJlY3QoMCwgMCwgODAw
LCA2MDApXTsKICAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW1tDYW5kaWRh
dGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV07CisgICAgW3dpbmRvdy5jb250ZW50VmlldyBhZGRTdWJ2aWV3OndrV2ViVmlld107CiAK
LSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBb
d2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVu
dFVSTF1dOwotCisgICAgW3drV2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLWlucHV0
LWZpZWxkLWZvY3VzLW9ubG9hZCJdOwogICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJm
b2N1c2VkIl07CiAgICAgW3drV2ViVmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107Ci0gICAg
W3drV2ViVmlldyBpbnNlcnRDYW5kaWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOkAiYXBwbGUgIiBy
YW5nZTpOU01ha2VSYW5nZSgwLCAwKV07CiAKKyAgICByZXR1cm4gd2tXZWJWaWV3OworfQorCitA
ZW5kCisKK1RFU1QoV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMsIFNvZnRTcGFjZVJlcGxhY2VtZW50
QWZ0ZXJDYW5kaWRhdGVJbnNlcnRpb25XaXRob3V0UmVwbGFjZW1lbnQpCit7CisgICAgQ2FuZGlk
YXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtDYW5kaWRhdGVUZXN0V2ViVmlldyBzZXRVcFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSB0ZXN0UGFnZTpAImlucHV0LWZpZWxk
LWluLXNjcm9sbGFibGUtZG9jdW1lbnQiXTsKKworICAgIFt3a1dlYlZpZXcgaW5zZXJ0Q2FuZGlk
YXRlc0FuZFdhaXRGb3JSZXNwb25zZTpAImFwcGxlICIgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMCld
OwogICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6R2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiYXBwbGUgIl0p
OwogCiAgICAgW3drV2ViVmlldyBleHBlY3RDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eVVwZGF0ZXM6
MCB3aGVuUGVyZm9ybWluZ0FjdGlvbnM6XigpCkBAIC0xMzIsNDYgKzE0NywzMSBAQCBURVNUKFdL
V2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBTb2Z0U3BhY2VSZXBsYWNlbWVudEFmdGVyQ2FuZGlkYXRl
SW5zZXJ0aW9uV2l0aG91dAogICAgICAgICBbd2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6JyAnXTsK
ICAgICAgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CiAgICAgfV07Ci0K
ICAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImFwcGxlICJdKTsK
ICAgICBFWFBFQ1RfRVEoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpH
ZXREb2N1bWVudFNjcm9sbFRvcEpTRXhwcmVzc2lvbl0gZG91YmxlVmFsdWVdLCAwKTsKIH0KIAog
VEVTVChXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cywgSW5zZXJ0Q2hhcmFjdGVyc0FmdGVyQ2FuZGlk
YXRlSW5zZXJ0aW9uV2l0aFNvZnRTcGFjZSkKIHsKLSAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAq
d2tXZWJWaWV3ID0gW1tDYW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV07Ci0KLSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3Jv
bGxhYmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOworICAgIENhbmRpZGF0ZVRlc3RX
ZWJWaWV3ICp3a1dlYlZpZXcgPSBbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgc2V0VXBXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgdGVzdFBhZ2U6QCJpbnB1dC1maWVsZC1pbi1zY3Jv
bGxhYmxlLWRvY3VtZW50Il07CiAKLSAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiZm9j
dXNlZCJdOwotICAgIFt3a1dlYlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdOwogICAgIFt3
a1dlYlZpZXcgaW5zZXJ0Q2FuZGlkYXRlc0FuZFdhaXRGb3JSZXNwb25zZTpAImZvbyAiIHJhbmdl
Ok5TTWFrZVJhbmdlKDAsIDApXTsKLQogICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbl0gaXNFcXVh
bFRvU3RyaW5nOkAiZm9vICJdKTsKIAogICAgIFt3a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjonYSdd
OwogICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOwotCiAgICAgRVhQRUNU
X1RSVUUoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpHZXRJbnB1dFZh
bHVlSlNFeHByZXNzaW9uXSBpc0VxdWFsVG9TdHJpbmc6QCJmb28gYSJdKTsKIH0KIAogVEVTVChX
S1dlYlZpZXdDYW5kaWRhdGVUZXN0cywgSW5zZXJ0Q2FuZGlkYXRlRnJvbVBhcnRpYWxseVR5cGVk
UGhyYXNlV2l0aFNvZnRTcGFjZSkKIHsKLSAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tXZWJW
aWV3ID0gW1tDYW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKV07Ci0KLSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxl
LWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKLSAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOwotCi0gICAgW3drV2ViVmlldyB3YWl0Rm9y
TWVzc2FnZTpAImZvY3VzZWQiXTsKLSAgICBbd2tXZWJWaWV3IF9mb3JjZVJlcXVlc3RDYW5kaWRh
dGVzXTsKKyAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW0NhbmRpZGF0ZVRl
c3RXZWJWaWV3IHNldFVwV2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIHRlc3RQ
YWdlOkAiaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudCJdOwogCiAgICAgTlNTdHJp
bmcgKmluaXRpYWxWYWx1ZSA9IEAiaGVsIjsKICAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwg
aW5pdGlhbFZhbHVlLmxlbmd0aDsgKytpKSB7CiAgICAgICAgIFt3a1dlYlZpZXcgdHlwZUNoYXJh
Y3RlcjpbaW5pdGlhbFZhbHVlIGNoYXJhY3RlckF0SW5kZXg6aV1dOwogICAgICAgICBbd2tXZWJW
aWV3IHdhaXRGb3JNZXNzYWdlOkAiaW5wdXQiXTsKICAgICB9Ci0KICAgICBbd2tXZWJWaWV3IGlu
c2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6QCJoZWxsbyAiIHJhbmdlOk5TTWFrZVJh
bmdlKDAsIDMpXTsKICAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpA
ImhlbGxvICJdKTsKIApAQCAtMTg5LDQgKzE4OSwyMSBAQCBURVNUKFdLV2ViVmlld0NhbmRpZGF0
ZVRlc3RzLCBJbnNlcnRDYW5kaWRhdGVGcm9tUGFydGlhbGx5VHlwZWRQaHJhc2VXaXRoU29mdFNw
YQogICAgIH1dOwogfQogCitURVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBDbGlja2luZ0lu
VGV4dEZpZWxkRG9lc05vdFRocmFzaENhbmRpZGF0ZVZpc2liaWxpdHkpCit7CisgICAgQ2FuZGlk
YXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtDYW5kaWRhdGVUZXN0V2ViVmlldyBzZXRVcFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSB0ZXN0UGFnZTpAImxhcmdlLWlucHV0
LWZpZWxkLWZvY3VzLW9ubG9hZCJdOworCisgICAgTlNTdHJpbmcgKmluaXRpYWxWYWx1ZSA9IEAi
dGVzdCI7CisgICAgZm9yICh1aW50NjRfdCBpID0gMDsgaSA8IGluaXRpYWxWYWx1ZS5sZW5ndGg7
ICsraSkgeworICAgICAgICBbd2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6W2luaXRpYWxWYWx1ZSBj
aGFyYWN0ZXJBdEluZGV4OmldXTsKKyAgICAgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpA
ImlucHV0Il07CisgICAgfQorICAgIFt3a1dlYlZpZXcgZXhwZWN0Q2FuZGlkYXRlTGlzdFZpc2li
aWxpdHlVcGRhdGVzOjAgd2hlblBlcmZvcm1pbmdBY3Rpb25zOl4oKQorICAgIHsKKyAgICAgICAg
W3drV2ViVmlldy50ZXN0V2luZG93IG1vdXNlRG93bldpdGhQcmVzc3VyZUF0UG9pbnQ6TlNNYWtl
UG9pbnQoMTAwLCAzMDApXTsKKyAgICAgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAIm1v
dXNlZG93biJdOworICAgIH1dOworICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbl0gaXNFcXVhbFRv
U3RyaW5nOkAidGVzdCJdKTsKK30KKwogI2VuZGlmIC8qIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAgKi8K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdl
LWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDY3MWExMmY1ZmZkYmM2MjlkYzVjOTljYThlOTUxMzgxYzJhZWZkYQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLWlu
cHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzxodG1sPgorCis8
aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAw
OworICAgICAgICB9CisKKyAgICAgICAgaW5wdXQgeworICAgICAgICAgICAgd2lkdGg6IDEwMHZ3
OworICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogNTB2
aDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorICAgICAgICBmdW5jdGlvbiBsb2FkZWQoKSB7CisgICAgICAgICAgICBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpLmZvY3VzKCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBmb2N1c2VkKCkgeworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgiZm9jdXNlZCIp
LCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGlucHV0KCkgeworICAgICAgICAg
ICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgiaW5wdXQiKSwgMCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBtb3VzZWRvd24oKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJtb3VzZWRvd24i
KSwgMCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2Fk
PWxvYWRlZCgpPgorICAgIDxpbnB1dCBvbmZvY3VzPWZvY3VzZWQoKSBvbmlucHV0PWlucHV0KCkg
b25tb3VzZWRvd249bW91c2Vkb3duKCk+PC9pbnB1dD4KKzwvYm9keT4KKworPC9odG1sPgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oCmluZGV4IGU3MTczYWRlNGQx
NDE3MWEwMWM2MTUzMWI0OWVjN2E4ZDI2NzAxMjIuLmIyMDBkYzc5MWU1YmM5OTgzYzFlMDU2N2Fm
YzUzNTllY2NjMzVlYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RX
S1dlYlZpZXdNYWMuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3
TWFjLmgKQEAgLTM0LDYgKzM0LDE1IEBAIEBpbnRlcmZhY2UgVGVzdE1lc3NhZ2VIYW5kbGVyIDog
TlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgaGFuZGxlcjooZGlzcGF0Y2hfYmxvY2tfdClo
YW5kbGVyOwogQGVuZAogCitAaW50ZXJmYWNlIFRlc3RXaW5kb3cgOiBOU1dpbmRvdworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoQ29udGVudFJlY3Q6KE5TUmVjdClyZWN0OworCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKKy0gKHZvaWQpbW91c2VEb3duV2l0
aFByZXNzdXJlQXRQb2ludDooTlNQb2ludClwb2ludDsKKyNlbmRpZgorCitAZW5kCisKIEBpbnRl
cmZhY2UgVGVzdFdLV2ViVmlldyA6IFdLV2ViVmlldwogLSAodm9pZCltb3VzZURvd25BdFBvaW50
OihOU1BvaW50KXBvaW50OwogLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOihO
U1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbjsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCmluZGV4IDNjOTM3YjRkOWZi
MTY5NTExMWMxNjk5NjgwYzVjMDAwOTYxOTBlMmEuLmExMzYwOGEzMTA1YjYxMDFjYjk2MWViODU5
YWNkNjM2N2UyYjkwZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RX
S1dlYlZpZXdNYWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmll
d01hYy5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgogI2lt
cG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZhdGUuaD4K
KyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBA
aW1wbGVtZW50YXRpb24gVGVzdE1lc3NhZ2VIYW5kbGVyIHsKQEAgLTU5LDYgKzYwLDQ0IEBAIC0g
KHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVz
ZXJDb250ZW50Q29udHJvbGxlciBkCiAKIEBlbmQKIAorQGltcGxlbWVudGF0aW9uIFRlc3RXaW5k
b3cKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29udGVudFJlY3Q6KE5TUmVjdClyZWN0Cit7
CisgICAgaWYgKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpyZWN0IHN0eWxlTWFz
azpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBk
ZWZlcjpOT10pIHsKKyAgICAgICAgc2VsZi5pc1Zpc2libGUgPSBZRVM7CisgICAgICAgIFtzZWxm
IG1ha2VLZXlXaW5kb3ddOworICAgIH0KKyAgICByZXR1cm4gc2VsZjsKK30KKworI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAzCitOU0V2ZW50TWFzayBfX3NpbXVs
YXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2soaWQgc2VsZiwgU0VMIF9jbWQpCit7
CisgICAgcmV0dXJuIE5TRXZlbnRNYXNrUHJlc3N1cmUgfCBOU0V2ZW50TWFza0xlZnRNb3VzZURv
d24gfCBOU0V2ZW50TWFza0xlZnRNb3VzZVVwIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEcmFnZ2Vk
OworfQorCistICh2b2lkKW1vdXNlRG93bldpdGhQcmVzc3VyZUF0UG9pbnQ6KE5TUG9pbnQpcG9p
bnQKK3sKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAg
IE5TRXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOwor
I2Vsc2UKKyAgICBOU0V2ZW50VHlwZSBtb3VzZUV2ZW50VHlwZSA9IE5TTGVmdE1vdXNlRG93bjsK
KyNlbmRpZgorICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBl
Om1vdXNlRXZlbnRUeXBlIGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6TlNFdmVudE1hc2tQ
cmVzc3VyZSB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjpzZWxm
LndpbmRvd051bWJlciBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0g
ZXZlbnROdW1iZXI6MSBjbGlja0NvdW50OjEgcHJlc3N1cmU6MV07CisgICAgSU1QIHNpbXVsYXRl
ZEFzc29jaWF0ZWRFdmVudHNNYXNrSW1wbCA9IChJTVApX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fz
c29jaWF0ZWRFdmVudHNNYXNrOworICAgIE1ldGhvZCBhc3NvY2lhdGVkRXZlbnRzTWFza01ldGhv
ZCA9IGNsYXNzX2dldEluc3RhbmNlTWV0aG9kKFtOU0V2ZW50IGNsYXNzXSwgQHNlbGVjdG9yKGFz
c29jaWF0ZWRFdmVudHNNYXNrKSk7CisgICAgSU1QIG9yaWdpbmFsQXNzb2NpYXRlZEV2ZW50c01h
c2tJbXBsID0gbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKGFzc29jaWF0ZWRFdmVudHNNYXNrTWV0
aG9kLCBzaW11bGF0ZWRBc3NvY2lhdGVkRXZlbnRzTWFza0ltcGwpOworICAgIEB0cnkgeworICAg
ICAgICBbc2VsZiBzZW5kRXZlbnQ6ZXZlbnRdOworICAgIH0gQGZpbmFsbHkgeworICAgICAgICBt
ZXRob2Rfc2V0SW1wbGVtZW50YXRpb24oYXNzb2NpYXRlZEV2ZW50c01hc2tNZXRob2QsIG9yaWdp
bmFsQXNzb2NpYXRlZEV2ZW50c01hc2tJbXBsKTsKKyAgICB9Cit9CisjZW5kaWYKKworQGVuZAor
CiBAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldwogCiAtICh2b2lkKW1vdXNlRG93bkF0UG9p
bnQ6KE5TUG9pbnQpcG9pbnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289174</attachid>
            <date>2016-09-17 11:23:34 -0700</date>
            <delta_ts>2016-09-17 11:45:19 -0700</delta_ts>
            <desc>Refactored TestWKWebView to be hosted in a key window.</desc>
            <filename>bug-162112-20160917112053.patch</filename>
            <type>text/plain</type>
            <size>23016</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDQxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmEzODMyOTNlOWRjYjdkODhlMGZhZjhhMWQyM2ZkY2Ji
MjhlOThjZi4uYmIzODMwNmZiYTAyNmRiMGQyNzZlMjhiNTAyMGU1NTM2YmM5NTZiOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDE2LTA5LTE3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCBmb3IgPGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8yMDU5ODM+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjIxMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIGEgbmV3IHVuaXQgdGVzdCBjb3ZlcmluZyB0aGUgY2hhbmdlcyBpbiByMjA1
OTgzIGFsb25nIHdpdGggdGhlIGluZnJhc3RydWN0dXJlIG5lZWRlZCB0byBzdXBwb3J0IGl0LiBB
bHNvCisgICAgICAgIGZ1cnRoZXIgcmVmYWN0b3JzIHRoZSBUZXN0V0tXZWJWaWV3IHVzZWQgYnkg
VmlkZW9Db250cm9sc01hbmFnZXIgYW5kIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzIHNvIHRoYXQg
aW4gYm90aAorICAgICAgICBjYXNlcywgd2UgYWRkIHRoZSBXS1dlYlZpZXcgdG8gYSB2aXNpYmxl
IGtleSB3aW5kb3csIGFuZCB3aGVuIHNlbmRpbmcgYSBtb3VzZSBkb3duIGV2ZW50LCB3ZSBwcm9w
YWdhdGUgdGhlIGV2ZW50CisgICAgICAgIGF0IHRoZSB3aW5kb3cgbGV2ZWwgcmF0aGVyIHRoYW4g
dGhlIHZpZXcgbGV2ZWwsIGFsbG93aW5nIGdyZWF0ZXIgZmxleGliaWxpdHkgdG8gc2ltdWxhdGUg
YmVoYXZpb3JzIHN1Y2ggYXMKKyAgICAgICAgcHJlc3N1cmUtc2Vuc2l0aXZlIGV2ZW50cyB0aGF0
IGFyZSBuZWVkZWQgZm9yIHRoZSBuZXcgdGVzdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6c2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1ZpZGVvQ29udHJvbHNN
YW5hZ2VyKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tOgor
ICAgICAgICAoK1tDYW5kaWRhdGVUZXN0V2ViVmlldyBzZXRVcFdpdGhGcmFtZTp0ZXN0UGFnZTpd
KToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3Jl
ZW4uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmg6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbToKKyAgICAg
ICAgKF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayk6CisgICAgICAg
ICgtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IF9tb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJl
c3N1cmU6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpdKToKKyAg
ICAgICAgKC1bVGVzdFdLV2ViVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246XSk6Cisg
ICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgX3NldFVwVGVzdFdpbmRvdzpdKToKKyAgICAgICAgKC1b
VGVzdFdLV2ViVmlldyBtb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6XSk6CisgICAg
ICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpdKTogRGVsZXRlZC4KKwogMjAx
Ni0wOS0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFjayBUZXN0V2ViS2l0QVBJIHRlc3RzIGFyZSBi
cm9rZW4gYWZ0ZXIgcjIwNjAzMy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2U5ZTRkNWVl
MjA2MDEwOGE5M2YwZGU1OWMyNjUyOTkwNTQ2NTg5Yy4uYjZiYjUxOWUyZTFhZmViNjVjNDBjZDNi
NGY0NzEzMWU0NWMyMDE3NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3Myw2ICs0NzMs
NyBAQAogCQlDRUJBQkQ0OTFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
c2NoZW1lcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFQkFCRDQ4MUI3MTY4N0MwMDUxMjEwQSAvKiBzaG91bGQtb3Blbi1leHRlcm5h
bC1zY2hlbWVzLmh0bWwgKi87IH07CiAJCUUxMjIwRENBMTU1QjI4QUEwMDEzRTJGQyAvKiBNZW1v
cnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjIwREM5MTU1QjI4
N0QwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5odG1sICovOyB9OwogCQlFMTk0RTFCRDE3N0U1M0M3MDA5QzRENEUgLyogU3RvcExvYWRpbmdG
cm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NEUxQkMxNzdFNTM0QTAwOUM0RDRFIC8qIFN0b3BM
b2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5odG1sICovOyB9OworCQlGNDJEQTUxNjFEOENF
RkU0MDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyREE1MTUx
RDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sICov
OyB9OwogCQlGNEY0MDVCQzFENEMwRDFDMDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5n
LXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNEY0MDVCQTFENEMwQ0Y4MDA3QTk3MDcgLyogZnVsbC1zaXpl
LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKIAkJRjRGNDA1QkQxRDRD
MEQxQzAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRG
NDA1QkIxRDRDMENGODAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1
ZGlvLmh0bWwgKi87IH07CiAJCUY2NjBBQTExMTVBNUY2MzEwMDNBMTI0MyAvKiBHZXRJbmplY3Rl
ZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY2MEFBMEYxNUE1RjYyNDAw
M0ExMjQzIC8qIEdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNr
X0J1bmRsZS5jcHAgKi87IH07CkBAIC01NDQsNiArNTQ1LDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0
V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMg
PSAoCisJCQkJRjQyREE1MTYxRDhDRUZFNDAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZv
Y3VzLW9ubG9hZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFRkYwNkNEMUQ4QTQy
OUEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5n
ZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVG
RjA2QzUxRDg4Njc3NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTExNzgsNiArMTE4MCw3IEBACiAJCUU0QTc1N0Qz
MTc4QUVBNUIwMEI1RDdBNCAvKiBEZXF1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXF1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QzlBQkM3MUIzREIxNzEwMDQwQTk4
NyAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1
bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGM0ZDM0VFMjEzNjc4Qjcz
MDAxMjZBNjUgLyogbGliZ3Rlc3QuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGFyY2hpdmUuYXI7IHBhdGggPSBsaWJndGVzdC5hOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyog
bGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IG5hbWUgPSAibGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwiOyBwYXRoID0gIlRl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRGNDA1QkExRDRDMENGODAwN0E5NzA3IC8q
IGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAiZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8u
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RjQwNUJCMUQ0QzBDRjgwMDdB
OTcwNyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gInNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlv
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjYwQUEwQzE1QTVGMDYxMDAz
QTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2su
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2V0SW5qZWN0ZWRCdW5k
bGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTkxNyw2ICsxOTIwLDcgQEAKIAkJQzA3RTZDQjAxM0ZENzM3QzAwMzhCMjJC
IC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJRjQyREE1MTUxRDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3Vz
LW9ubG9hZC5odG1sICovLAogCQkJCTM3OTAyOEI4MTRGQUJFNDkwMDdFNkI0MyAvKiBhY2NlcHRz
Rmlyc3RNb3VzZS5odG1sICovLAogCQkJCUI1NUYxMUI5MTUxOTE2RTYwMDkxNTkxNiAvKiBBaGVt
LnR0ZiAqLywKIAkJCQlCNTVGMTFCMDE1MTdBMkM0MDA5MTU5MTYgLyogYXR0cmlidXRlZFN0cmlu
Z0N1c3RvbUZvbnQuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KaW5kZXggNjc0
NWNjNzI2ZTk1ZmFjOWNjODYzZGI1NDljMjlmYjIyZDY2MGNjZS4uYWQyMDBlMTc3ODkyYTdiZDk4
MDdhYjJjZTU3YTlkYTU2NDYzZTI1NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KQEAg
LTEyMiw4ICsxMjIsNiBAQCBSZXRhaW5QdHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmll
dyo+IHNldFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xzTQogICAgIFJldGFpblB0cjxX
S1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBjb25maWd1cmF0aW9uLmdldCgpLm1l
ZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBXS0F1ZGlvdmlzdWFsTWVk
aWFUeXBlTm9uZTsKICAgICBSZXRhaW5QdHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmll
dz4gd2ViVmlldyA9IGFkb3B0TlMoW1tWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOwotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dKTsKLSAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgp
XTsKIAogICAgIHJldHVybiB3ZWJWaWV3OwogfQpAQCAtMjEwLDcgKzIwOCw3IEBAIFRFU1QoVmlk
ZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NTaG93
Q29udHJvbHNGb3JMYXN0CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12
aWRlb3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1c2UiXTsKICAgICBbd2ViVmlldyB3YWl0Rm9y
UGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoyXTsKIAotICAgIFt3ZWJWaWV3IG1vdXNl
RG93bkF0UG9pbnQ6Y2xpY2tQb2ludF07CisgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpj
bGlja1BvaW50IHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKIAogICAgIF9fYmxvY2sgYm9vbCBmaXJz
dFZpZGVvUGF1c2VkID0gZmFsc2U7CiAgICAgX19ibG9jayBib29sIHNlY29uZFZpZGVvUGF1c2Vk
ID0gZmFsc2U7CkBAIC0yMjEsNyArMjE5LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwg
VmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1Nob3dDb250cm9sc0Zvckxhc3QKICAg
ICAgICAgICAgIHNlY29uZFZpZGVvUGF1c2VkID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIEVYUEVDVF9UUlVFKFtjb250cm9sbGVkRWxlbWVudElEIGlzRXF1YWxUb1N0cmlu
ZzpAImZpcnN0Il0pOwotICAgICAgICAgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpjbGlj
a1BvaW50XTsKKyAgICAgICAgICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6Y2xpY2tQb2lu
dCBzaW11bGF0ZVByZXNzdXJlOllFU107CiAgICAgICAgIH0KICAgICAgICAgZmlyc3RWaWRlb1Bh
dXNlZCA9IHRydWU7CiAgICAgfV07CkBAIC0yNTksNyArMjU3LDcgQEAgVEVTVChWaWRlb0NvbnRy
b2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJTaW5nbGVTbWFsbEF1dG9wbGF5aW5nVmlk
ZW8pCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJhdXRvcGxheWluZy12aWRlby13
aXRoLWF1ZGlvIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlp
bmdWaWRlb3M6MV07CiAKLSAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Ok5TTWFrZVBvaW50
KDUwLCA1MCldOworICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6TlNNYWtlUG9pbnQoNTAs
IDUwKSBzaW11bGF0ZVByZXNzdXJlOllFU107CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJvbHNN
YW5hZ2VyOllFUyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwYXVzZWQiXTsKIH0KIApAQCAtMjkx
LDcgKzI4OSw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5h
Z2VyTGFyZ2VBdXRvcGxheWluZ1ZpZGVvQWZ0ZXJTZWVraW5nCiAKICAgICBbd2ViVmlldyBsb2Fk
VGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8t
ZW5kIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRl
b3M6MV07Ci0gICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpOU01ha2VQb2ludCg1MCwgNTAp
XTsKKyAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Ok5TTWFrZVBvaW50KDUwLCA1MCkgc2lt
dWxhdGVQcmVzc3VyZTpZRVNdOwogCiAgICAgLy8gV2UgZXhwZWN0IHRoZXJlIHRvIGJlIG1lZGlh
IGNvbnRyb2xzLCBzaW5jZSB0aGlzIGlzIGEgdXNlciBnZXN0dXJlZCBzZWVrIHRvIHRoZSBlbmQu
CiAgICAgLy8gVGhpcyBpcyBha2luIHRvIHNlZWtpbmcgdG8gdGhlIGVuZCBieSBzY3J1YmJpbmcg
aW4gdGhlIGNvbnRyb2xzLgpAQCAtMzQyLDcgKzM0MCw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01h
bmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyRG9lc05vdFNob3dNZWRpYUNvbnRyb2xzRm9yT2Zm
c2NyCiAgICAgUmV0YWluUHRyPFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcqPiB3ZWJW
aWV3ID0gc2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1ZpZGVvQ29udHJvbHNNYW5hZ2VyKE5TTWFrZVJl
Y3QoMCwgMCwgMTAyNCwgNzY4KSk7CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpA
ImxhcmdlLXZpZGVvLW9mZnNjcmVlbiJdOwotICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFu
YWdlcjpOTyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJtb3ZlZCJdOworICAgIFt3ZWJWaWV3IHdh
aXRGb3JNZWRpYUNvbnRyb2xzVG9IaWRlXTsKIH0KIAogVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdl
ciwgVmlkZW9Db250cm9sc01hbmFnZXJLZWVwc0NvbnRyb2xzU3RhYmxlRHVyaW5nU3JjQ2hhbmdl
T25DbGljaykKQEAgLTM1MSw3ICszNDksNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBW
aWRlb0NvbnRyb2xzTWFuYWdlcktlZXBzQ29udHJvbHNTdGFibGVEdXJpbmdTcmNDaGFuZwogCiAg
ICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNs
aWNrIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRl
b3M6MV07Ci0gICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpOU01ha2VQb2ludCg0MDAsIDMw
MCldOworICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6TlNNYWtlUG9pbnQoNDAwLCAzMDAp
IHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKIAogICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFu
YWdlcjpZRVMgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAiY2hhbmdlZCJdOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlk
YXRlVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dl
YlZpZXdDYW5kaWRhdGVUZXN0cy5tbQppbmRleCAxZGI5NDc5YTRiZDdiYjlhOTJlNjcxODY5ZjA5
Nzg0ZmJkZTE5NzA3Li5kOGI3MmE2ZjE0OTgwYWZkZGFjODNjY2UyMjBiMmE3YWVlYTY4MDgyIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZp
ZXdDYW5kaWRhdGVUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIK
IAorI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZh
dGUuaD4KIAogc3RhdGljIE5TU3RyaW5nICpHZXRJbnB1dFZhbHVlSlNFeHByZXNzaW9uID0gQCJk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlIjsKQEAgLTExMiwxOSArMTEzLDI0
IEBAIC0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5OihCT09MKXZpc2li
bGUKICAgICAgICAgX2NhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5Q2hhbmdlQ291bnQrKzsKIH0KIAor
KyAoaW5zdGFuY2V0eXBlKXNldFVwV2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGVzdFBhZ2U6KE5T
U3RyaW5nICopdGVzdFBhZ2VOYW1lCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2Vi
VmlldyA9IFtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6ZnJhbWVd
OworCisgICAgW3drV2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDp0ZXN0UGFnZU5hbWVdOworICAg
IFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1c2VkIl07CisgICAgW3drV2ViVmlldyBf
Zm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107CisKKyAgICByZXR1cm4gd2tXZWJWaWV3OworfQorCiBA
ZW5kCiAKIFRFU1QoV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMsIFNvZnRTcGFjZVJlcGxhY2VtZW50
QWZ0ZXJDYW5kaWRhdGVJbnNlcnRpb25XaXRob3V0UmVwbGFjZW1lbnQpCiB7Ci0gICAgQ2FuZGlk
YXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldOworICAgIENhbmRpZGF0
ZVRlc3RXZWJWaWV3ICp3a1dlYlZpZXcgPSBbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgc2V0VXBXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgdGVzdFBhZ2U6QCJpbnB1dC1maWVsZC1p
bi1zY3JvbGxhYmxlLWRvY3VtZW50Il07CiAKLSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxh
YmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOwotCi0gICAgW3drV2ViVmlldyB3YWl0
Rm9yTWVzc2FnZTpAImZvY3VzZWQiXTsKLSAgICBbd2tXZWJWaWV3IF9mb3JjZVJlcXVlc3RDYW5k
aWRhdGVzXTsKICAgICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9u
c2U6QCJhcHBsZSAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXTsKLQogICAgIEVYUEVDVF9UUlVF
KFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0SW5wdXRWYWx1ZUpT
RXhwcmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiYXBwbGUgIl0pOwogCiAgICAgW3drV2ViVmll
dyBleHBlY3RDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eVVwZGF0ZXM6MCB3aGVuUGVyZm9ybWluZ0Fj
dGlvbnM6XigpCkBAIC0xMzIsNDYgKzEzOCwzMSBAQCBURVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRl
c3RzLCBTb2Z0U3BhY2VSZXBsYWNlbWVudEFmdGVyQ2FuZGlkYXRlSW5zZXJ0aW9uV2l0aG91dAog
ICAgICAgICBbd2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6JyAnXTsKICAgICAgICAgW3drV2ViVmll
dyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CiAgICAgfV07Ci0KICAgICBFWFBFQ1RfVFJVRShb
W3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4
cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImFwcGxlICJdKTsKICAgICBFWFBFQ1RfRVEoW1t3
a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpHZXREb2N1bWVudFNjcm9sbFRv
cEpTRXhwcmVzc2lvbl0gZG91YmxlVmFsdWVdLCAwKTsKIH0KIAogVEVTVChXS1dlYlZpZXdDYW5k
aWRhdGVUZXN0cywgSW5zZXJ0Q2hhcmFjdGVyc0FmdGVyQ2FuZGlkYXRlSW5zZXJ0aW9uV2l0aFNv
ZnRTcGFjZSkKIHsKLSAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW1tDYW5k
aWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKV07Ci0KLSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50IiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXTsKLSAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6Y29udGVudFVSTF1dOworICAgIENhbmRpZGF0ZVRlc3RXZWJWaWV3ICp3a1dlYlZpZXcg
PSBbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgc2V0VXBXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgdGVzdFBhZ2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Il07
CiAKLSAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiZm9jdXNlZCJdOwotICAgIFt3a1dl
YlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdOwogICAgIFt3a1dlYlZpZXcgaW5zZXJ0Q2Fu
ZGlkYXRlc0FuZFdhaXRGb3JSZXNwb25zZTpAImZvbyAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDAp
XTsKLQogICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6R2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiZm9vICJd
KTsKIAogICAgIFt3a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjonYSddOwogICAgIFt3a1dlYlZpZXcg
d2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOwotCiAgICAgRVhQRUNUX1RSVUUoW1t3a1dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpHZXRJbnB1dFZhbHVlSlNFeHByZXNzaW9uXSBp
c0VxdWFsVG9TdHJpbmc6QCJmb28gYSJdKTsKIH0KIAogVEVTVChXS1dlYlZpZXdDYW5kaWRhdGVU
ZXN0cywgSW5zZXJ0Q2FuZGlkYXRlRnJvbVBhcnRpYWxseVR5cGVkUGhyYXNlV2l0aFNvZnRTcGFj
ZSkKIHsKLSAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW1tDYW5kaWRhdGVU
ZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KV07Ci0KLSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50IiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
LSAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
Y29udGVudFVSTF1dOwotCi0gICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImZvY3VzZWQi
XTsKLSAgICBbd2tXZWJWaWV3IF9mb3JjZVJlcXVlc3RDYW5kaWRhdGVzXTsKKyAgICBDYW5kaWRh
dGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IHNldFVwV2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIHRlc3RQYWdlOkAiaW5wdXQtZmllbGQt
aW4tc2Nyb2xsYWJsZS1kb2N1bWVudCJdOwogCiAgICAgTlNTdHJpbmcgKmluaXRpYWxWYWx1ZSA9
IEAiaGVsIjsKICAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgaW5pdGlhbFZhbHVlLmxlbmd0
aDsgKytpKSB7CiAgICAgICAgIFt3a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjpbaW5pdGlhbFZhbHVl
IGNoYXJhY3RlckF0SW5kZXg6aV1dOwogICAgICAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdl
OkAiaW5wdXQiXTsKICAgICB9Ci0KICAgICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRX
YWl0Rm9yUmVzcG9uc2U6QCJoZWxsbyAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDMpXTsKICAgICBF
WFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElu
cHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImhlbGxvICJdKTsKIApAQCAt
MTg5LDQgKzE4MCwyMSBAQCBURVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBJbnNlcnRDYW5k
aWRhdGVGcm9tUGFydGlhbGx5VHlwZWRQaHJhc2VXaXRoU29mdFNwYQogICAgIH1dOwogfQogCitU
RVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBDbGlja2luZ0luVGV4dEZpZWxkRG9lc05vdFRo
cmFzaENhbmRpZGF0ZVZpc2liaWxpdHkpCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndr
V2ViVmlldyA9IFtDYW5kaWRhdGVUZXN0V2ViVmlldyBzZXRVcFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSB0ZXN0UGFnZTpAImxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9h
ZCJdOworCisgICAgTlNTdHJpbmcgKmluaXRpYWxWYWx1ZSA9IEAidGVzdCI7CisgICAgZm9yICh1
aW50NjRfdCBpID0gMDsgaSA8IGluaXRpYWxWYWx1ZS5sZW5ndGg7ICsraSkgeworICAgICAgICBb
d2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6W2luaXRpYWxWYWx1ZSBjaGFyYWN0ZXJBdEluZGV4Omld
XTsKKyAgICAgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisgICAgfQor
ICAgIFt3a1dlYlZpZXcgZXhwZWN0Q2FuZGlkYXRlTGlzdFZpc2liaWxpdHlVcGRhdGVzOjAgd2hl
blBlcmZvcm1pbmdBY3Rpb25zOl4oKQorICAgIHsKKyAgICAgICAgW3drV2ViVmlldyBtb3VzZURv
d25BdFBvaW50Ok5TTWFrZVBvaW50KDEwMCwgMzAwKSBzaW11bGF0ZVByZXNzdXJlOllFU107Cisg
ICAgICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJtb3VzZWRvd24iXTsKKyAgICB9XTsK
KyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAInRlc3QiXSk7Cit9
CisKICNlbmRpZiAvKiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwICovCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1v
bmxvYWQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdl
LWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2NzFhMTJmNWZmZGJj
NjI5ZGM1Yzk5Y2E4ZTk1MTM4MWMyYWVmZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxv
YWQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8aHRtbD4KKworPGhlYWQ+CisgICAgPHN0eWxlPgor
ICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAg
ICAgIGlucHV0IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgIGhlaWdo
dDogMTAwdmg7CisgICAgICAgICAgICBmb250LXNpemU6IDUwdmg7CisgICAgICAgIH0KKyAgICA8
L3N0eWxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVu
Y3Rpb24gbG9hZGVkKCkgeworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5w
dXQiKS5mb2N1cygpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNlZCgpIHsK
KyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImZvY3VzZWQiKSwgMCk7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBpbnB1dCgpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4g
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImlu
cHV0IiksIDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbW91c2Vkb3duKCkgewor
ICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgibW91c2Vkb3duIiksIDApOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD1sb2FkZWQoKT4KKyAgICA8aW5w
dXQgb25mb2N1cz1mb2N1c2VkKCkgb25pbnB1dD1pbnB1dCgpIG9ubW91c2Vkb3duPW1vdXNlZG93
bigpPjwvaW5wdXQ+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tb2Zmc2Ny
ZWVuLmh0bWwKaW5kZXggMzljZjQ3NmFiMzUwYjE0YWM0MjMxYTY4YzU0N2E5ODU2OGJmM2ZhOS4u
ODVmMGI4OTk3NWVlYTk3ZWU4NmE3MGE2MDZlN2RlNTlkMGVkYzgzNSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tb2Zmc2NyZWVu
Lmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW8tb2Zmc2NyZWVuLmh0bWwKQEAgLTE0LDEyICsxNCw2IEBACiAgICAgPHNjcmlwdD4KICAg
ICAgICAgZnVuY3Rpb24gbW92ZVZpZGVvT2Zmc2NyZWVuKCkgewogICAgICAgICAgICAgZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigidmlkZW8iKS5jbGFzc0xpc3QuYWRkKCJvZmZzY3JlZW4iKTsKLSAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoIm1vdmVkIik7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwgMCk7CiAgICAgICAgIH0KICAgICA8
L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rl
c3RXS1dlYlZpZXdNYWMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdN
YWMuaAppbmRleCBlNzE3M2FkZTRkMTQxNzFhMDFjNjE1MzFiNDllYzdhOGQyNjcwMTIyLi5mNDYx
NTNkMGUxM2IxZmU1MmJlYjBkOTAxODY0MDFlNzk0ZjcxMDNhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmgKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oCkBAIC0zNSw3ICszNSwxMSBAQCBAaW50ZXJmYWNl
IFRlc3RNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgog
QGVuZAogCiBAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXcgOiBXS1dlYlZpZXcKLS0gKHZvaWQpbW91
c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludDsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZy
YW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24gTlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIgTlNfVU5BVkFJTEFCTEU7CisKKy8vIFNp
bXVsYXRlcyBjbGlja2luZyB3aXRoIGEgcHJlc3N1cmUtc2Vuc2l0aXZlIGRldmljZSwgaWYgcG9z
c2libGUuCistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2ltdWxhdGVQ
cmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlOwogLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNl
aXZpbmdNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190
KWFjdGlvbjsKIC0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7
CiAtICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0KaW5kZXggM2M5MzdiNGQ5ZmIxNjk1MTExYzE2
OTk2ODBjNWMwMDA5NjE5MGUyYS4uNGNiODZlOTc4ZGM1M2VmOWI4ZGVkNmEwYmMwZGJlYTBiNjI4
Y2UzMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01h
Yy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCkBA
IC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CiAjaW1wb3J0IDxDYXJi
b24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJpdmF0ZS5oPgorI2ltcG9ydCA8
b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBpbXBsZW1lbnRh
dGlvbiBUZXN0TWVzc2FnZUhhbmRsZXIgewpAQCAtNTksMTYgKzYwLDg3IEBAIC0gKHZvaWQpdXNl
ckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50
Q29udHJvbGxlciBkCiAKIEBlbmQKIAotQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcKK0Bp
bnRlcmZhY2UgVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgOiBOU1dpbmRvdworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cKKworc3RhdGljIGludCBnRXZlbnRO
dW1iZXIgPSAxOworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDMKK05TRXZlbnRNYXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFz
ayhpZCBzZWxmLCBTRUwgX2NtZCkKK3sKKyAgICByZXR1cm4gTlNFdmVudE1hc2tQcmVzc3VyZSB8
IE5TRXZlbnRNYXNrTGVmdE1vdXNlRG93biB8IE5TRXZlbnRNYXNrTGVmdE1vdXNlVXAgfCBOU0V2
ZW50TWFza0xlZnRNb3VzZURyYWdnZWQ7Cit9CisjZW5kaWYKIAotLSAodm9pZCltb3VzZURvd25B
dFBvaW50OihOU1BvaW50KXBvaW50CistICh2b2lkKV9tb3VzZURvd25BdFBvaW50OihOU1BvaW50
KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQcmVzc3VyZQogewogI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCiAgICAgTlNFdmVudFR5cGUg
bW91c2VFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAjZWxzZQogICAgIE5T
RXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEb3duOwogI2VuZGlmCi0gICAg
W3NlbGYgbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTptb3VzZUV2ZW50VHlw
ZSBsb2NhdGlvbjpOU01ha2VQb2ludChwb2ludC54LCBwb2ludC55KSBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjAgcHJlc3N1cmU6MF1dOworCisgICAgTlNFdmVudE1hc2sgbW9kaWZpZXJGbGFncyA9IDA7Cisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKKyAgICBpZiAoc2lt
dWxhdGVQcmVzc3VyZSkKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TWFza1ByZXNz
dXJlOworI2Vsc2UKKyAgICBzaW11bGF0ZVByZXNzdXJlID0gTk87CisjZW5kaWYKKworICAgIE5T
RXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOm1vdXNlRXZlbnRUeXBl
IGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6R2V0
Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjpzZWxmLndpbmRvd051bWJlciBjb250ZXh0
OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6KytnRXZlbnRO
dW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOnNpbXVsYXRlUHJlc3N1cmVdOworICAgIGlmICgh
c2ltdWxhdGVQcmVzc3VyZSkgeworICAgICAgICBbc2VsZiBzZW5kRXZlbnQ6ZXZlbnRdOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEwMDMKKyAgICBJTVAgc2ltdWxhdGVkQXNzb2NpYXRlZEV2ZW50c01hc2tJbXBsID0g
KElNUClfX3NpbXVsYXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2s7CisgICAgTWV0
aG9kIGFzc29jaWF0ZWRFdmVudHNNYXNrTWV0aG9kID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qo
W05TRXZlbnQgY2xhc3NdLCBAc2VsZWN0b3IoYXNzb2NpYXRlZEV2ZW50c01hc2spKTsKKyAgICBJ
TVAgb3JpZ2luYWxBc3NvY2lhdGVkRXZlbnRzTWFza0ltcGwgPSBtZXRob2Rfc2V0SW1wbGVtZW50
YXRpb24oYXNzb2NpYXRlZEV2ZW50c01hc2tNZXRob2QsIHNpbXVsYXRlZEFzc29jaWF0ZWRFdmVu
dHNNYXNrSW1wbCk7CisgICAgQHRyeSB7CisgICAgICAgIFtzZWxmIHNlbmRFdmVudDpldmVudF07
CisgICAgfSBAZmluYWxseSB7CisgICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIGV2ZW50IHNl
bmRpbmcgcmFpc2VzIGFuIGV4Y2VwdGlvbiwgd2Ugc3RpbGwgd2FudCB0byByZXN0b3JlIHRoZSBv
cmlnaW5hbCBpbXBsZW1lbnRhdGlvbgorICAgICAgICAvLyB0byBwcmV2ZW50IHN1YnNlcXVlbnQg
ZXZlbnQgc2VuZGluZyB0ZXN0cyBmcm9tIGJlaW5nIGFmZmVjdGVkLgorICAgICAgICBtZXRob2Rf
c2V0SW1wbGVtZW50YXRpb24oYXNzb2NpYXRlZEV2ZW50c01hc2tNZXRob2QsIG9yaWdpbmFsQXNz
b2NpYXRlZEV2ZW50c01hc2tJbXBsKTsKKyAgICB9CisjZW5kaWYKK30KKworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyB7CisgICAgVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cg
Kl9ob3N0V2luZG93OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0
KWZyYW1lCit7CisgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqZGVmYXVsdENvbmZpZ3VyYXRp
b24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdOworICAgIHJldHVybiBb
c2VsZiBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb246ZGVmYXVsdENvbmZpZ3VyYXRp
b25dOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNv
bmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCit7Cisg
ICAgaWYgKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKQorICAgICAgICBbc2VsZiBfc2V0VXBUZXN0V2luZG93OmZyYW1lXTsKKwor
ICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKV9zZXRVcFRlc3RXaW5kb3c6KE5TUmVjdClm
cmFtZQoreworICAgIF9ob3N0V2luZG93ID0gW1tUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNXaW5kb3dTdHlsZU1hc2tC
b3JkZXJsZXNzIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107CisgICAg
W1tfaG9zdFdpbmRvdyBjb250ZW50Vmlld10gYWRkU3VidmlldzpzZWxmXTsKKyAgICBfaG9zdFdp
bmRvdy5pc1Zpc2libGUgPSBZRVM7CisgICAgW19ob3N0V2luZG93IG1ha2VLZXlBbmRPcmRlckZy
b250OnNlbGZdOworfQorCistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQg
c2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlCit7CisgICAgW19ob3N0V2lu
ZG93IF9tb3VzZURvd25BdFBvaW50OnBvaW50IHNpbXVsYXRlUHJlc3N1cmU6c2ltdWxhdGVQcmVz
c3VyZV07CiB9CiAKIC0gKHZvaWQpcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTooTlNTdHJp
bmcgKiltZXNzYWdlIGFjdGlvbjooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb24K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289176</attachid>
            <date>2016-09-17 11:45:23 -0700</date>
            <delta_ts>2016-09-18 12:27:09 -0700</delta_ts>
            <desc>s/NSWindowStyleMaskBorderless/NSBorderlessWindowMask</desc>
            <filename>bug-162112-20160917114241.patch</filename>
            <type>text/plain</type>
            <size>23011</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDQxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmEzODMyOTNlOWRjYjdkODhlMGZhZjhhMWQyM2ZkY2Ji
MjhlOThjZi4uYmIzODMwNmZiYTAyNmRiMGQyNzZlMjhiNTAyMGU1NTM2YmM5NTZiOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDE2LTA5LTE3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCBmb3IgPGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8yMDU5ODM+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjIxMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRzIGEgbmV3IHVuaXQgdGVzdCBjb3ZlcmluZyB0aGUgY2hhbmdlcyBpbiByMjA1
OTgzIGFsb25nIHdpdGggdGhlIGluZnJhc3RydWN0dXJlIG5lZWRlZCB0byBzdXBwb3J0IGl0LiBB
bHNvCisgICAgICAgIGZ1cnRoZXIgcmVmYWN0b3JzIHRoZSBUZXN0V0tXZWJWaWV3IHVzZWQgYnkg
VmlkZW9Db250cm9sc01hbmFnZXIgYW5kIFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzIHNvIHRoYXQg
aW4gYm90aAorICAgICAgICBjYXNlcywgd2UgYWRkIHRoZSBXS1dlYlZpZXcgdG8gYSB2aXNpYmxl
IGtleSB3aW5kb3csIGFuZCB3aGVuIHNlbmRpbmcgYSBtb3VzZSBkb3duIGV2ZW50LCB3ZSBwcm9w
YWdhdGUgdGhlIGV2ZW50CisgICAgICAgIGF0IHRoZSB3aW5kb3cgbGV2ZWwgcmF0aGVyIHRoYW4g
dGhlIHZpZXcgbGV2ZWwsIGFsbG93aW5nIGdyZWF0ZXIgZmxleGliaWxpdHkgdG8gc2ltdWxhdGUg
YmVoYXZpb3JzIHN1Y2ggYXMKKyAgICAgICAgcHJlc3N1cmUtc2Vuc2l0aXZlIGV2ZW50cyB0aGF0
IGFyZSBuZWVkZWQgZm9yIHRoZSBuZXcgdGVzdC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6c2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1ZpZGVvQ29udHJvbHNN
YW5hZ2VyKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tOgor
ICAgICAgICAoK1tDYW5kaWRhdGVUZXN0V2ViVmlldyBzZXRVcFdpdGhGcmFtZTp0ZXN0UGFnZTpd
KToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3Jl
ZW4uaHRtbDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmg6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbToKKyAgICAg
ICAgKF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzayk6CisgICAgICAg
ICgtW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IF9tb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJl
c3N1cmU6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpdKToKKyAg
ICAgICAgKC1bVGVzdFdLV2ViVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246XSk6Cisg
ICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgX3NldFVwVGVzdFdpbmRvdzpdKToKKyAgICAgICAgKC1b
VGVzdFdLV2ViVmlldyBtb3VzZURvd25BdFBvaW50OnNpbXVsYXRlUHJlc3N1cmU6XSk6CisgICAg
ICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpdKTogRGVsZXRlZC4KKwogMjAx
Ni0wOS0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFjayBUZXN0V2ViS2l0QVBJIHRlc3RzIGFyZSBi
cm9rZW4gYWZ0ZXIgcjIwNjAzMy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2U5ZTRkNWVl
MjA2MDEwOGE5M2YwZGU1OWMyNjUyOTkwNTQ2NTg5Yy4uYjZiYjUxOWUyZTFhZmViNjVjNDBjZDNi
NGY0NzEzMWU0NWMyMDE3NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3Myw2ICs0NzMs
NyBAQAogCQlDRUJBQkQ0OTFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
c2NoZW1lcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFQkFCRDQ4MUI3MTY4N0MwMDUxMjEwQSAvKiBzaG91bGQtb3Blbi1leHRlcm5h
bC1zY2hlbWVzLmh0bWwgKi87IH07CiAJCUUxMjIwRENBMTU1QjI4QUEwMDEzRTJGQyAvKiBNZW1v
cnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjIwREM5MTU1QjI4
N0QwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5odG1sICovOyB9OwogCQlFMTk0RTFCRDE3N0U1M0M3MDA5QzRENEUgLyogU3RvcExvYWRpbmdG
cm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NEUxQkMxNzdFNTM0QTAwOUM0RDRFIC8qIFN0b3BM
b2FkaW5nRnJvbURpZFJlY2VpdmVSZXNwb25zZS5odG1sICovOyB9OworCQlGNDJEQTUxNjFEOENF
RkU0MDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyREE1MTUx
RDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sICov
OyB9OwogCQlGNEY0MDVCQzFENEMwRDFDMDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5n
LXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNEY0MDVCQTFENEMwQ0Y4MDA3QTk3MDcgLyogZnVsbC1zaXpl
LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKIAkJRjRGNDA1QkQxRDRD
MEQxQzAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRG
NDA1QkIxRDRDMENGODAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1
ZGlvLmh0bWwgKi87IH07CiAJCUY2NjBBQTExMTVBNUY2MzEwMDNBMTI0MyAvKiBHZXRJbmplY3Rl
ZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY2MEFBMEYxNUE1RjYyNDAw
M0ExMjQzIC8qIEdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNr
X0J1bmRsZS5jcHAgKi87IH07CkBAIC01NDQsNiArNTQ1LDcgQEAKIAkJCWRzdFBhdGggPSBUZXN0
V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3OwogCQkJZmlsZXMg
PSAoCisJCQkJRjQyREE1MTYxRDhDRUZFNDAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZv
Y3VzLW9ubG9hZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFRkYwNkNEMUQ4QTQy
OUEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNoYW5n
ZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVG
RjA2QzUxRDg4Njc3NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTExNzgsNiArMTE4MCw3IEBACiAJCUU0QTc1N0Qz
MTc4QUVBNUIwMEI1RDdBNCAvKiBEZXF1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXF1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0QzlBQkM3MUIzREIxNzEwMDQwQTk4
NyAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1
bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGM0ZDM0VFMjEzNjc4Qjcz
MDAxMjZBNjUgLyogbGliZ3Rlc3QuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGFyY2hpdmUuYXI7IHBhdGggPSBsaWJndGVzdC5hOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyog
bGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IG5hbWUgPSAibGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwiOyBwYXRoID0gIlRl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRGNDA1QkExRDRDMENGODAwN0E5NzA3IC8q
IGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSAiZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8u
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RjQwNUJCMUQ0QzBDRjgwMDdB
OTcwNyAvKiBza2lubnktYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gInNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlv
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjYwQUEwQzE1QTVGMDYxMDAz
QTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2su
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR2V0SW5qZWN0ZWRCdW5k
bGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTkxNyw2ICsxOTIwLDcgQEAKIAkJQzA3RTZDQjAxM0ZENzM3QzAwMzhCMjJC
IC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJRjQyREE1MTUxRDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3Vz
LW9ubG9hZC5odG1sICovLAogCQkJCTM3OTAyOEI4MTRGQUJFNDkwMDdFNkI0MyAvKiBhY2NlcHRz
Rmlyc3RNb3VzZS5odG1sICovLAogCQkJCUI1NUYxMUI5MTUxOTE2RTYwMDkxNTkxNiAvKiBBaGVt
LnR0ZiAqLywKIAkJCQlCNTVGMTFCMDE1MTdBMkM0MDA5MTU5MTYgLyogYXR0cmlidXRlZFN0cmlu
Z0N1c3RvbUZvbnQuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KaW5kZXggNjc0
NWNjNzI2ZTk1ZmFjOWNjODYzZGI1NDljMjlmYjIyZDY2MGNjZS4uYWQyMDBlMTc3ODkyYTdiZDk4
MDdhYjJjZTU3YTlkYTU2NDYzZTI1NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KQEAg
LTEyMiw4ICsxMjIsNiBAQCBSZXRhaW5QdHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmll
dyo+IHNldFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xzTQogICAgIFJldGFpblB0cjxX
S1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBjb25maWd1cmF0aW9uLmdldCgpLm1l
ZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgPSBXS0F1ZGlvdmlzdWFsTWVk
aWFUeXBlTm9uZTsKICAgICBSZXRhaW5QdHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmll
dz4gd2ViVmlldyA9IGFkb3B0TlMoW1tWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOwotICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNC
b3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6
Tk9dKTsKLSAgICBbW3dpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgp
XTsKIAogICAgIHJldHVybiB3ZWJWaWV3OwogfQpAQCAtMjEwLDcgKzIwOCw3IEBAIFRFU1QoVmlk
ZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NTaG93
Q29udHJvbHNGb3JMYXN0CiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12
aWRlb3MtYXV0b3BsYXlpbmctY2xpY2stdG8tcGF1c2UiXTsKICAgICBbd2ViVmlldyB3YWl0Rm9y
UGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoyXTsKIAotICAgIFt3ZWJWaWV3IG1vdXNl
RG93bkF0UG9pbnQ6Y2xpY2tQb2ludF07CisgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpj
bGlja1BvaW50IHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKIAogICAgIF9fYmxvY2sgYm9vbCBmaXJz
dFZpZGVvUGF1c2VkID0gZmFsc2U7CiAgICAgX19ibG9jayBib29sIHNlY29uZFZpZGVvUGF1c2Vk
ID0gZmFsc2U7CkBAIC0yMjEsNyArMjE5LDcgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwg
VmlkZW9Db250cm9sc01hbmFnZXJNdWx0aXBsZVZpZGVvc1Nob3dDb250cm9sc0Zvckxhc3QKICAg
ICAgICAgICAgIHNlY29uZFZpZGVvUGF1c2VkID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIEVYUEVDVF9UUlVFKFtjb250cm9sbGVkRWxlbWVudElEIGlzRXF1YWxUb1N0cmlu
ZzpAImZpcnN0Il0pOwotICAgICAgICAgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpjbGlj
a1BvaW50XTsKKyAgICAgICAgICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6Y2xpY2tQb2lu
dCBzaW11bGF0ZVByZXNzdXJlOllFU107CiAgICAgICAgIH0KICAgICAgICAgZmlyc3RWaWRlb1Bh
dXNlZCA9IHRydWU7CiAgICAgfV07CkBAIC0yNTksNyArMjU3LDcgQEAgVEVTVChWaWRlb0NvbnRy
b2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJTaW5nbGVTbWFsbEF1dG9wbGF5aW5nVmlk
ZW8pCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJhdXRvcGxheWluZy12aWRlby13
aXRoLWF1ZGlvIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlp
bmdWaWRlb3M6MV07CiAKLSAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Ok5TTWFrZVBvaW50
KDUwLCA1MCldOworICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6TlNNYWtlUG9pbnQoNTAs
IDUwKSBzaW11bGF0ZVByZXNzdXJlOllFU107CiAgICAgW3dlYlZpZXcgZXhwZWN0Q29udHJvbHNN
YW5hZ2VyOllFUyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJwYXVzZWQiXTsKIH0KIApAQCAtMjkx
LDcgKzI4OSw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5h
Z2VyTGFyZ2VBdXRvcGxheWluZ1ZpZGVvQWZ0ZXJTZWVraW5nCiAKICAgICBbd2ViVmlldyBsb2Fk
VGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvLWhpZGVzLWNvbnRyb2xzLWFmdGVyLXNlZWstdG8t
ZW5kIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRl
b3M6MV07Ci0gICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpOU01ha2VQb2ludCg1MCwgNTAp
XTsKKyAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Ok5TTWFrZVBvaW50KDUwLCA1MCkgc2lt
dWxhdGVQcmVzc3VyZTpZRVNdOwogCiAgICAgLy8gV2UgZXhwZWN0IHRoZXJlIHRvIGJlIG1lZGlh
IGNvbnRyb2xzLCBzaW5jZSB0aGlzIGlzIGEgdXNlciBnZXN0dXJlZCBzZWVrIHRvIHRoZSBlbmQu
CiAgICAgLy8gVGhpcyBpcyBha2luIHRvIHNlZWtpbmcgdG8gdGhlIGVuZCBieSBzY3J1YmJpbmcg
aW4gdGhlIGNvbnRyb2xzLgpAQCAtMzQyLDcgKzM0MCw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01h
bmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyRG9lc05vdFNob3dNZWRpYUNvbnRyb2xzRm9yT2Zm
c2NyCiAgICAgUmV0YWluUHRyPFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcqPiB3ZWJW
aWV3ID0gc2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1ZpZGVvQ29udHJvbHNNYW5hZ2VyKE5TTWFrZVJl
Y3QoMCwgMCwgMTAyNCwgNzY4KSk7CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpA
ImxhcmdlLXZpZGVvLW9mZnNjcmVlbiJdOwotICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFu
YWdlcjpOTyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJtb3ZlZCJdOworICAgIFt3ZWJWaWV3IHdh
aXRGb3JNZWRpYUNvbnRyb2xzVG9IaWRlXTsKIH0KIAogVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdl
ciwgVmlkZW9Db250cm9sc01hbmFnZXJLZWVwc0NvbnRyb2xzU3RhYmxlRHVyaW5nU3JjQ2hhbmdl
T25DbGljaykKQEAgLTM1MSw3ICszNDksNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBW
aWRlb0NvbnRyb2xzTWFuYWdlcktlZXBzQ29udHJvbHNTdGFibGVEdXJpbmdTcmNDaGFuZwogCiAg
ICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNs
aWNrIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRl
b3M6MV07Ci0gICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpOU01ha2VQb2ludCg0MDAsIDMw
MCldOworICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6TlNNYWtlUG9pbnQoNDAwLCAzMDAp
IHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKIAogICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFu
YWdlcjpZRVMgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAiY2hhbmdlZCJdOwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlk
YXRlVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dl
YlZpZXdDYW5kaWRhdGVUZXN0cy5tbQppbmRleCAxZGI5NDc5YTRiZDdiYjlhOTJlNjcxODY5ZjA5
Nzg0ZmJkZTE5NzA3Li5kOGI3MmE2ZjE0OTgwYWZkZGFjODNjY2UyMjBiMmE3YWVlYTY4MDgyIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XS1dlYlZp
ZXdDYW5kaWRhdGVUZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3RXS1dlYlZpZXdNYWMuaCIK
IAorI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdFByaXZh
dGUuaD4KIAogc3RhdGljIE5TU3RyaW5nICpHZXRJbnB1dFZhbHVlSlNFeHByZXNzaW9uID0gQCJk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLnZhbHVlIjsKQEAgLTExMiwxOSArMTEzLDI0
IEBAIC0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5OihCT09MKXZpc2li
bGUKICAgICAgICAgX2NhbmRpZGF0ZUxpc3RWaXNpYmlsaXR5Q2hhbmdlQ291bnQrKzsKIH0KIAor
KyAoaW5zdGFuY2V0eXBlKXNldFVwV2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGVzdFBhZ2U6KE5T
U3RyaW5nICopdGVzdFBhZ2VOYW1lCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2Vi
VmlldyA9IFtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6ZnJhbWVd
OworCisgICAgW3drV2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDp0ZXN0UGFnZU5hbWVdOworICAg
IFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1c2VkIl07CisgICAgW3drV2ViVmlldyBf
Zm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107CisKKyAgICByZXR1cm4gd2tXZWJWaWV3OworfQorCiBA
ZW5kCiAKIFRFU1QoV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMsIFNvZnRTcGFjZVJlcGxhY2VtZW50
QWZ0ZXJDYW5kaWRhdGVJbnNlcnRpb25XaXRob3V0UmVwbGFjZW1lbnQpCiB7Ci0gICAgQ2FuZGlk
YXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldOworICAgIENhbmRpZGF0
ZVRlc3RXZWJWaWV3ICp3a1dlYlZpZXcgPSBbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgc2V0VXBXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgdGVzdFBhZ2U6QCJpbnB1dC1maWVsZC1p
bi1zY3JvbGxhYmxlLWRvY3VtZW50Il07CiAKLSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxh
YmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJl
cXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOwotCi0gICAgW3drV2ViVmlldyB3YWl0
Rm9yTWVzc2FnZTpAImZvY3VzZWQiXTsKLSAgICBbd2tXZWJWaWV3IF9mb3JjZVJlcXVlc3RDYW5k
aWRhdGVzXTsKICAgICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9u
c2U6QCJhcHBsZSAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDApXTsKLQogICAgIEVYUEVDVF9UUlVF
KFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0SW5wdXRWYWx1ZUpT
RXhwcmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiYXBwbGUgIl0pOwogCiAgICAgW3drV2ViVmll
dyBleHBlY3RDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eVVwZGF0ZXM6MCB3aGVuUGVyZm9ybWluZ0Fj
dGlvbnM6XigpCkBAIC0xMzIsNDYgKzEzOCwzMSBAQCBURVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRl
c3RzLCBTb2Z0U3BhY2VSZXBsYWNlbWVudEFmdGVyQ2FuZGlkYXRlSW5zZXJ0aW9uV2l0aG91dAog
ICAgICAgICBbd2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6JyAnXTsKICAgICAgICAgW3drV2ViVmll
dyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CiAgICAgfV07Ci0KICAgICBFWFBFQ1RfVFJVRShb
W3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4
cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImFwcGxlICJdKTsKICAgICBFWFBFQ1RfRVEoW1t3
a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpHZXREb2N1bWVudFNjcm9sbFRv
cEpTRXhwcmVzc2lvbl0gZG91YmxlVmFsdWVdLCAwKTsKIH0KIAogVEVTVChXS1dlYlZpZXdDYW5k
aWRhdGVUZXN0cywgSW5zZXJ0Q2hhcmFjdGVyc0FmdGVyQ2FuZGlkYXRlSW5zZXJ0aW9uV2l0aFNv
ZnRTcGFjZSkKIHsKLSAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW1tDYW5k
aWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKV07Ci0KLSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50IiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXTsKLSAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6Y29udGVudFVSTF1dOworICAgIENhbmRpZGF0ZVRlc3RXZWJWaWV3ICp3a1dlYlZpZXcg
PSBbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgc2V0VXBXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCkgdGVzdFBhZ2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Il07
CiAKLSAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiZm9jdXNlZCJdOwotICAgIFt3a1dl
YlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdOwogICAgIFt3a1dlYlZpZXcgaW5zZXJ0Q2Fu
ZGlkYXRlc0FuZFdhaXRGb3JSZXNwb25zZTpAImZvbyAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDAp
XTsKLQogICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6R2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiZm9vICJd
KTsKIAogICAgIFt3a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjonYSddOwogICAgIFt3a1dlYlZpZXcg
d2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOwotCiAgICAgRVhQRUNUX1RSVUUoW1t3a1dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpHZXRJbnB1dFZhbHVlSlNFeHByZXNzaW9uXSBp
c0VxdWFsVG9TdHJpbmc6QCJmb28gYSJdKTsKIH0KIAogVEVTVChXS1dlYlZpZXdDYW5kaWRhdGVU
ZXN0cywgSW5zZXJ0Q2FuZGlkYXRlRnJvbVBhcnRpYWxseVR5cGVkUGhyYXNlV2l0aFNvZnRTcGFj
ZSkKIHsKLSAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW1tDYW5kaWRhdGVU
ZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KV07Ci0KLSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50IiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
LSAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
Y29udGVudFVSTF1dOwotCi0gICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImZvY3VzZWQi
XTsKLSAgICBbd2tXZWJWaWV3IF9mb3JjZVJlcXVlc3RDYW5kaWRhdGVzXTsKKyAgICBDYW5kaWRh
dGVUZXN0V2ViVmlldyAqd2tXZWJWaWV3ID0gW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IHNldFVwV2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIHRlc3RQYWdlOkAiaW5wdXQtZmllbGQt
aW4tc2Nyb2xsYWJsZS1kb2N1bWVudCJdOwogCiAgICAgTlNTdHJpbmcgKmluaXRpYWxWYWx1ZSA9
IEAiaGVsIjsKICAgICBmb3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgaW5pdGlhbFZhbHVlLmxlbmd0
aDsgKytpKSB7CiAgICAgICAgIFt3a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjpbaW5pdGlhbFZhbHVl
IGNoYXJhY3RlckF0SW5kZXg6aV1dOwogICAgICAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdl
OkAiaW5wdXQiXTsKICAgICB9Ci0KICAgICBbd2tXZWJWaWV3IGluc2VydENhbmRpZGF0ZXNBbmRX
YWl0Rm9yUmVzcG9uc2U6QCJoZWxsbyAiIHJhbmdlOk5TTWFrZVJhbmdlKDAsIDMpXTsKICAgICBF
WFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElu
cHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImhlbGxvICJdKTsKIApAQCAt
MTg5LDQgKzE4MCwyMSBAQCBURVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBJbnNlcnRDYW5k
aWRhdGVGcm9tUGFydGlhbGx5VHlwZWRQaHJhc2VXaXRoU29mdFNwYQogICAgIH1dOwogfQogCitU
RVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBDbGlja2luZ0luVGV4dEZpZWxkRG9lc05vdFRo
cmFzaENhbmRpZGF0ZVZpc2liaWxpdHkpCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndr
V2ViVmlldyA9IFtDYW5kaWRhdGVUZXN0V2ViVmlldyBzZXRVcFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSB0ZXN0UGFnZTpAImxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9h
ZCJdOworCisgICAgTlNTdHJpbmcgKmluaXRpYWxWYWx1ZSA9IEAidGVzdCI7CisgICAgZm9yICh1
aW50NjRfdCBpID0gMDsgaSA8IGluaXRpYWxWYWx1ZS5sZW5ndGg7ICsraSkgeworICAgICAgICBb
d2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6W2luaXRpYWxWYWx1ZSBjaGFyYWN0ZXJBdEluZGV4Omld
XTsKKyAgICAgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisgICAgfQor
ICAgIFt3a1dlYlZpZXcgZXhwZWN0Q2FuZGlkYXRlTGlzdFZpc2liaWxpdHlVcGRhdGVzOjAgd2hl
blBlcmZvcm1pbmdBY3Rpb25zOl4oKQorICAgIHsKKyAgICAgICAgW3drV2ViVmlldyBtb3VzZURv
d25BdFBvaW50Ok5TTWFrZVBvaW50KDEwMCwgMzAwKSBzaW11bGF0ZVByZXNzdXJlOllFU107Cisg
ICAgICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJtb3VzZWRvd24iXTsKKyAgICB9XTsK
KyAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAInRlc3QiXSk7Cit9
CisKICNlbmRpZiAvKiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwICovCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1v
bmxvYWQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdl
LWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2NzFhMTJmNWZmZGJj
NjI5ZGM1Yzk5Y2E4ZTk1MTM4MWMyYWVmZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxv
YWQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8aHRtbD4KKworPGhlYWQ+CisgICAgPHN0eWxlPgor
ICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgfQorCisgICAg
ICAgIGlucHV0IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgIGhlaWdo
dDogMTAwdmg7CisgICAgICAgICAgICBmb250LXNpemU6IDUwdmg7CisgICAgICAgIH0KKyAgICA8
L3N0eWxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVu
Y3Rpb24gbG9hZGVkKCkgeworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5w
dXQiKS5mb2N1cygpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZm9jdXNlZCgpIHsK
KyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImZvY3VzZWQiKSwgMCk7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBpbnB1dCgpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4g
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoImlu
cHV0IiksIDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbW91c2Vkb3duKCkgewor
ICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgibW91c2Vkb3duIiksIDApOworICAgICAgICB9Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD1sb2FkZWQoKT4KKyAgICA8aW5w
dXQgb25mb2N1cz1mb2N1c2VkKCkgb25pbnB1dD1pbnB1dCgpIG9ubW91c2Vkb3duPW1vdXNlZG93
bigpPjwvaW5wdXQ+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tb2Zmc2Ny
ZWVuLmh0bWwKaW5kZXggMzljZjQ3NmFiMzUwYjE0YWM0MjMxYTY4YzU0N2E5ODU2OGJmM2ZhOS4u
ODVmMGI4OTk3NWVlYTk3ZWU4NmE3MGE2MDZlN2RlNTlkMGVkYzgzNSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tb2Zmc2NyZWVu
Lmh0bWwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2Ut
dmlkZW8tb2Zmc2NyZWVuLmh0bWwKQEAgLTE0LDEyICsxNCw2IEBACiAgICAgPHNjcmlwdD4KICAg
ICAgICAgZnVuY3Rpb24gbW92ZVZpZGVvT2Zmc2NyZWVuKCkgewogICAgICAgICAgICAgZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigidmlkZW8iKS5jbGFzc0xpc3QuYWRkKCJvZmZzY3JlZW4iKTsKLSAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgdHJ5IHsK
LSAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhh
bmRsZXIucG9zdE1lc3NhZ2UoIm1vdmVkIik7Ci0gICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwgMCk7CiAgICAgICAgIH0KICAgICA8
L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rl
c3RXS1dlYlZpZXdNYWMuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdN
YWMuaAppbmRleCBlNzE3M2FkZTRkMTQxNzFhMDFjNjE1MzFiNDllYzdhOGQyNjcwMTIyLi5mNDYx
NTNkMGUxM2IxZmU1MmJlYjBkOTAxODY0MDFlNzk0ZjcxMDNhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmgKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oCkBAIC0zNSw3ICszNSwxMSBAQCBAaW50ZXJmYWNl
IFRlc3RNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgog
QGVuZAogCiBAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXcgOiBXS1dlYlZpZXcKLS0gKHZvaWQpbW91
c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludDsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZy
YW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAq
KWNvbmZpZ3VyYXRpb24gTlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIgTlNfVU5BVkFJTEFCTEU7CisKKy8vIFNp
bXVsYXRlcyBjbGlja2luZyB3aXRoIGEgcHJlc3N1cmUtc2Vuc2l0aXZlIGRldmljZSwgaWYgcG9z
c2libGUuCistICh2b2lkKW1vdXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQgc2ltdWxhdGVQ
cmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlOwogLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNl
aXZpbmdNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190
KWFjdGlvbjsKIC0gKHZvaWQpbG9hZFRlc3RQYWdlTmFtZWQ6KE5TU3RyaW5nICopcGFnZU5hbWU7
CiAtICh2b2lkKXR5cGVDaGFyYWN0ZXI6KGNoYXIpY2hhcmFjdGVyOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW0KaW5kZXggM2M5MzdiNGQ5ZmIxNjk1MTExYzE2
OTk2ODBjNWMwMDA5NjE5MGUyYS4uMzc4YWFmMzAxYzFjNzc4NjNhMDMxYTlhNGE1MjFmNzM5NzUw
OGQxOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01h
Yy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tCkBA
IC0zMyw2ICszMyw3IEBACiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+CiAjaW1wb3J0IDxDYXJi
b24vQ2FyYm9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0UHJpdmF0ZS5oPgorI2ltcG9ydCA8
b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBpbXBsZW1lbnRh
dGlvbiBUZXN0TWVzc2FnZUhhbmRsZXIgewpAQCAtNTksMTYgKzYwLDg3IEBAIC0gKHZvaWQpdXNl
ckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50
Q29udHJvbGxlciBkCiAKIEBlbmQKIAotQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcKK0Bp
bnRlcmZhY2UgVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgOiBOU1dpbmRvdworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cKKworc3RhdGljIGludCBnRXZlbnRO
dW1iZXIgPSAxOworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDMKK05TRXZlbnRNYXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFz
ayhpZCBzZWxmLCBTRUwgX2NtZCkKK3sKKyAgICByZXR1cm4gTlNFdmVudE1hc2tQcmVzc3VyZSB8
IE5TRXZlbnRNYXNrTGVmdE1vdXNlRG93biB8IE5TRXZlbnRNYXNrTGVmdE1vdXNlVXAgfCBOU0V2
ZW50TWFza0xlZnRNb3VzZURyYWdnZWQ7Cit9CisjZW5kaWYKIAotLSAodm9pZCltb3VzZURvd25B
dFBvaW50OihOU1BvaW50KXBvaW50CistICh2b2lkKV9tb3VzZURvd25BdFBvaW50OihOU1BvaW50
KXBvaW50IHNpbXVsYXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQcmVzc3VyZQogewogI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwCiAgICAgTlNFdmVudFR5cGUg
bW91c2VFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd247CiAjZWxzZQogICAgIE5T
RXZlbnRUeXBlIG1vdXNlRXZlbnRUeXBlID0gTlNMZWZ0TW91c2VEb3duOwogI2VuZGlmCi0gICAg
W3NlbGYgbW91c2VEb3duOltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTptb3VzZUV2ZW50VHlw
ZSBsb2NhdGlvbjpOU01ha2VQb2ludChwb2ludC54LCBwb2ludC55KSBtb2RpZmllckZsYWdzOjAg
dGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6MCBjb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjAgcHJlc3N1cmU6MF1dOworCisgICAgTlNFdmVudE1hc2sgbW9kaWZpZXJGbGFncyA9IDA7Cisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDMKKyAgICBpZiAoc2lt
dWxhdGVQcmVzc3VyZSkKKyAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBOU0V2ZW50TWFza1ByZXNz
dXJlOworI2Vsc2UKKyAgICBzaW11bGF0ZVByZXNzdXJlID0gTk87CisjZW5kaWYKKworICAgIE5T
RXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOm1vdXNlRXZlbnRUeXBl
IGxvY2F0aW9uOnBvaW50IG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6R2V0
Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjpzZWxmLndpbmRvd051bWJlciBjb250ZXh0
OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0gZXZlbnROdW1iZXI6KytnRXZlbnRO
dW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOnNpbXVsYXRlUHJlc3N1cmVdOworICAgIGlmICgh
c2ltdWxhdGVQcmVzc3VyZSkgeworICAgICAgICBbc2VsZiBzZW5kRXZlbnQ6ZXZlbnRdOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEwMDMKKyAgICBJTVAgc2ltdWxhdGVkQXNzb2NpYXRlZEV2ZW50c01hc2tJbXBsID0g
KElNUClfX3NpbXVsYXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2s7CisgICAgTWV0
aG9kIGFzc29jaWF0ZWRFdmVudHNNYXNrTWV0aG9kID0gY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2Qo
W05TRXZlbnQgY2xhc3NdLCBAc2VsZWN0b3IoYXNzb2NpYXRlZEV2ZW50c01hc2spKTsKKyAgICBJ
TVAgb3JpZ2luYWxBc3NvY2lhdGVkRXZlbnRzTWFza0ltcGwgPSBtZXRob2Rfc2V0SW1wbGVtZW50
YXRpb24oYXNzb2NpYXRlZEV2ZW50c01hc2tNZXRob2QsIHNpbXVsYXRlZEFzc29jaWF0ZWRFdmVu
dHNNYXNrSW1wbCk7CisgICAgQHRyeSB7CisgICAgICAgIFtzZWxmIHNlbmRFdmVudDpldmVudF07
CisgICAgfSBAZmluYWxseSB7CisgICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIGV2ZW50IHNl
bmRpbmcgcmFpc2VzIGFuIGV4Y2VwdGlvbiwgd2Ugc3RpbGwgd2FudCB0byByZXN0b3JlIHRoZSBv
cmlnaW5hbCBpbXBsZW1lbnRhdGlvbgorICAgICAgICAvLyB0byBwcmV2ZW50IHN1YnNlcXVlbnQg
ZXZlbnQgc2VuZGluZyB0ZXN0cyBmcm9tIGJlaW5nIGFmZmVjdGVkLgorICAgICAgICBtZXRob2Rf
c2V0SW1wbGVtZW50YXRpb24oYXNzb2NpYXRlZEV2ZW50c01hc2tNZXRob2QsIG9yaWdpbmFsQXNz
b2NpYXRlZEV2ZW50c01hc2tJbXBsKTsKKyAgICB9CisjZW5kaWYKK30KKworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyB7CisgICAgVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cg
Kl9ob3N0V2luZG93OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0
KWZyYW1lCit7CisgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqZGVmYXVsdENvbmZpZ3VyYXRp
b24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdOworICAgIHJldHVybiBb
c2VsZiBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb246ZGVmYXVsdENvbmZpZ3VyYXRp
b25dOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNv
bmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCit7Cisg
ICAgaWYgKHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKQorICAgICAgICBbc2VsZiBfc2V0VXBUZXN0V2luZG93OmZyYW1lXTsKKwor
ICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKV9zZXRVcFRlc3RXaW5kb3c6KE5TUmVjdClm
cmFtZQoreworICAgIF9ob3N0V2luZG93ID0gW1tUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpmcmFtZSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93
TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOworICAgIFtbX2hv
c3RXaW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6c2VsZl07CisgICAgX2hvc3RXaW5kb3cu
aXNWaXNpYmxlID0gWUVTOworICAgIFtfaG9zdFdpbmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpz
ZWxmXTsKK30KKworLSAodm9pZCltb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50IHNpbXVs
YXRlUHJlc3N1cmU6KEJPT0wpc2ltdWxhdGVQcmVzc3VyZQoreworICAgIFtfaG9zdFdpbmRvdyBf
bW91c2VEb3duQXRQb2ludDpwb2ludCBzaW11bGF0ZVByZXNzdXJlOnNpbXVsYXRlUHJlc3N1cmVd
OwogfQogCiAtICh2b2lkKXBlcmZvcm1BZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICop
bWVzc2FnZSBhY3Rpb246KGRpc3BhdGNoX2Jsb2NrX3QpYWN0aW9uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289210</attachid>
            <date>2016-09-18 12:27:12 -0700</date>
            <delta_ts>2016-09-20 08:10:09 -0700</delta_ts>
            <desc>Rewrote 2 disabled CandidateTests as WK2 tests</desc>
            <filename>bug-162112-20160918122429.patch</filename>
            <type>text/plain</type>
            <size>34096</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2MDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNWY4YzNmZjE3YWVlZmVh
MDdkMWQ4NDg2ODRmNzlmMGEzMmFjYWE5OS4uYmMxNDcyNGQ0ZmQxOTM1YjhkZDgyOGU4NmQ5MjY0
OTgwYTczNTYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA5LTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHVuaXQg
dGVzdCBjb3ZlcmluZyA8aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIwNTk4Mz4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjExMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgc29t
ZSBhIHRlc3Qgc3VwcG9ydCBtZXRob2QgYXMgU1BJIG9uIFdLV2ViVmlldyB0byBkZXRlcm1pbmUg
d2hldGhlciB0byByZXF1ZXN0IGNhbmRpZGF0ZXMuIFNlZQorICAgICAgICBUb29scy9DaGFuZ2VM
b2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nob3VsZFJlcXVlc3RDYW5kaWRhdGVz
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc10pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
CiAyMDE2LTA5LTE2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQVNTRVJUIGFjY2lkZW50YWxseSBjb21tZW50ZWQgb3V0IGluIHIyMDQ5MTYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggOGY1OTcz
YmMyYTIxNzdkYTIxYWVmNjcyNzc2NGY1ZDUxNmNlYjlkMS4uOTViYTRhZDhiYTgyZjNmODZmZjA3
YjhiY2U4YTllYmZlMmQxZDBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTQ1ODYsNiArNDU4NiwxMSBAQCAtICh2b2lkKV9mb3Jj
ZVJlcXVlc3RDYW5kaWRhdGVzCiB7CiAgICAgX2ltcGwtPmZvcmNlUmVxdWVzdENhbmRpZGF0ZXNG
b3JUZXN0aW5nKCk7CiB9CisKKy0gKEJPT0wpX3Nob3VsZFJlcXVlc3RDYW5kaWRhdGVzCit7Cisg
ICAgcmV0dXJuIF9pbXBsLT5zaG91bGRSZXF1ZXN0Q2FuZGlkYXRlcygpOworfQogI2VuZGlmIC8v
IFBMQVRGT1JNKE1BQykKIAogLy8gRXhlY3V0ZSB0aGUgc3VwcGxpZWQgYmxvY2sgYWZ0ZXIgdGhl
IG5leHQgdHJhbnNhY3Rpb24gZnJvbSB0aGUgV2ViUHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggOGVj
YTAyMDc0ZTU1ODk0N2Y2ZmI4NGZmZDQxZmYxNWFlMjgzY2I2ZS4uODM3OGJjMDRmYjJkNjU4ZjU2
NzUyNTM0NGQwZjg3OGIwMTUwNGU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTI3Nyw2ICsyNzcsNyBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAtICh2
b2lkKV9kaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSk7CiAtICh2b2lkKV9mb3JjZVJlcXVlc3RDYW5kaWRhdGVzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIC0gKHZvaWQpX2RpZFVwZGF0ZUNhbmRpZGF0ZUxp
c3RWaXNpYmlsaXR5OihCT09MKXZpc2libGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRSZXF1
ZXN0Q2FuZGlkYXRlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAjZW5k
aWYKIAogLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZv
aWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjAp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBm
YTM4MzI5M2U5ZGNiN2Q4OGUwZmFmOGExZDIzZmRjYmIyOGU5OGNmLi40OGFmZTVlOTY2YTQ3MmVi
ZTkwYTE5YjdkNTFmMjQ4NzdhOGNlMGM1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTYtMDktMTggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgdW5pdCB0ZXN0
IGNvdmVyaW5nIDxodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjA1OTgzPgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyMTEyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG5ldyB1
bml0IHRlc3QgY292ZXJpbmcgdGhlIGNoYW5nZXMgaW4gcjIwNTk4MyBhbG9uZyB3aXRoIHRoZSBp
bmZyYXN0cnVjdHVyZSBuZWVkZWQgdG8gc3VwcG9ydCBpdC4gQWxzbworICAgICAgICBmdXJ0aGVy
IHJlZmFjdG9ycyB0aGUgVGVzdFdLV2ViVmlldyB1c2VkIGJ5IFZpZGVvQ29udHJvbHNNYW5hZ2Vy
IGFuZCBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cyBzbyB0aGF0IGluIGJvdGgKKyAgICAgICAgY2Fz
ZXMsIHdlIGFkZCB0aGUgV0tXZWJWaWV3IHRvIGEgdmlzaWJsZSBrZXkgd2luZG93LCBhbmQgd2hl
biBzZW5kaW5nIGEgbW91c2UgZG93biBldmVudCwgd2UgcHJvcGFnYXRlIHRoZSBldmVudAorICAg
ICAgICBhdCB0aGUgd2luZG93IGxldmVsIHJhdGhlciB0aGFuIHRoZSB2aWV3IGxldmVsLCBhbGxv
d2luZyBncmVhdGVyIGZsZXhpYmlsaXR5IHRvIHNpbXVsYXRlIGJlaGF2aW9ycyBzdWNoIGFzCisg
ICAgICAgIHByZXNzdXJlLXNlbnNpdGl2ZSBldmVudHMgdGhhdCBhcmUgbmVlZGVkIGZvciB0aGUg
bmV3IHRlc3QuCisKKyAgICAgICAgQWxzbyByZXdyaXRlcyBjdXJyZW50bHkgZGlzYWJsZWQgdW5p
dCB0ZXN0cyBpbiBDYW5kaWRhdGVUZXN0cyBhcyBXZWJLaXQyIHVuaXQgdGVzdHMgaW4gV0tXZWJW
aWV3Q2FuZGlkYXRlVGVzdHMsCisgICAgICAgIGNoZWNraW5nIHdoZXRoZXIgb3Igbm90IHRvIHNo
b3VsZCBiZSByZXF1ZXN0aW5nIGNhbmRpZGF0ZXMgaW4gcGFzc3dvcmQgYW5kIG5vbi1wYXNzd29y
ZCBmaWVsZHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnNldFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xzTWFuYWdlcik6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9XS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbToKKyAgICAgICAgKC1bQ2FuZGlkYXRl
VGVzdFdlYlZpZXcgdHlwZVN0cmluZzppbnB1dE1lc3NhZ2U6XSk6CisgICAgICAgICgrW0NhbmRp
ZGF0ZVRlc3RXZWJWaWV3IHNldFVwV2l0aEZyYW1lOnRlc3RQYWdlOl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9u
bG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS90ZXh0LWFuZC1wYXNzd29yZC1pbnB1dHMuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMubW06CisgICAgICAgIChfX3NpbXVsYXRlZF9mb3JjZUNs
aWNrQXNzb2NpYXRlZEV2ZW50c01hc2spOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3SG9zdFdp
bmRvdyBfbW91c2VEb3duQXRQb2ludDpzaW11bGF0ZVByZXNzdXJlOl0pOgorICAgICAgICAoLVtU
ZXN0V0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcg
aW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3
IF9zZXRVcFRlc3RXaW5kb3c6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VEb3du
QXRQb2ludDpzaW11bGF0ZVByZXNzdXJlOl0pOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHR5
cGVDaGFyYWN0ZXI6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgbW91c2VEb3duQXRQb2lu
dDpdKTogRGVsZXRlZC4KKwogMjAxNi0wOS0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFjayBUZXN0
V2ViS2l0QVBJIHRlc3RzIGFyZSBicm9rZW4gYWZ0ZXIgcjIwNjAzMy4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggM2U5ZTRkNWVlMjA2MDEwOGE5M2YwZGU1OWMyNjUyOTkwNTQ2NTg5Yy4uYTdi
YzYzZDVhNDhmOThmNWM0MmI1ZTA2ODkzMjkwNTY1MzZmMmVkNiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTc1LDYgKzc1LDcgQEAKIAkJMkU2OTFBRjMxRDc5RTc1RTAwMTI5NDA3IC8qIGxh
cmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTY5MUFGMjFENzlFNzU0MDAxMjk0MDcg
LyogbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1sICovOyB9OwogCQkyRTc3NjVD
RDE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzc2NUNDMTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9T
Lm1tICovOyB9OwogCQkyRTc3NjVDRjE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNzc2NUNFMTZDNEQ4
MTEwMEJBMkJCMSAvKiBtYWluTWFjLm1tICovOyB9OworCQkyRTk4OTYxNTFEOEYwOTM4MDA3Mzk4
OTIgLyogdGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5ODk2MTQxRDhGMDkyQjAwNzM5ODky
IC8qIHRleHQtYW5kLXBhc3N3b3JkLWlucHV0cy5odG1sICovOyB9OwogCQkyRUZGMDZDMzFEODg2
MjFFMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVGRjA2QzIxRDg4NjIxMjAw
MDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sICovOyB9OwogCQkyRUZGMDZDNTFE
ODg2Nzc2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkM0
MUQ4ODY3NzAwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgKi87
IH07CiAJCTJFRkYwNkM3MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9u
LWVuZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9u
LWVuZC5odG1sICovOyB9OwpAQCAtNDczLDYgKzQ3NCw3IEBACiAJCUNFQkFCRDQ5MUI3MTY4N0Mw
MDUxMjEwQSAvKiBzaG91bGQtb3Blbi1leHRlcm5hbC1zY2hlbWVzLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0VCQUJENDgxQjcxNjg3
QzAwNTEyMTBBIC8qIHNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRtbCAqLzsgfTsKIAkJ
RTEyMjBEQ0ExNTVCMjhBQTAwMTNFMkZDIC8qIE1lbW9yeUNhY2hlRGlzYWJsZVdpdGhpblJlc291
cmNlTG9hZERlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEyMjBEQzkxNTVCMjg3RDAwMTNFMkZDIC8qIE1lbW9yeUNhY2hl
RGlzYWJsZVdpdGhpblJlc291cmNlTG9hZERlbGVnYXRlLmh0bWwgKi87IH07CiAJCUUxOTRFMUJE
MTc3RTUzQzcwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTk0RTFCQzE3N0U1MzRBMDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3Bv
bnNlLmh0bWwgKi87IH07CisJCUY0MkRBNTE2MUQ4Q0VGRTQwMDMzNkY0MCAvKiBsYXJnZS1pbnB1
dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFyZ2Ut
aW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi87IH07CiAJCUY0RjQwNUJDMUQ0QzBEMUMw
MDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RjQw
NUJBMUQ0QzBDRjgwMDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1h
dWRpby5odG1sICovOyB9OwogCQlGNEY0MDVCRDFENEMwRDFDMDA3QTk3MDcgLyogc2tpbm55LWF1
dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEY0MDVCQjFENEMwQ0Y4MDA3QTk3MDcgLyog
c2tpbm55LWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKIAkJRjY2MEFB
MTExNUE1RjYzMTAwM0ExMjQzIC8qIEdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YUNhbGxiYWNrX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNjYwQUEwRjE1QTVGNjI0MDAzQTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5k
bGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTU0
NCw2ICs1NDYsOCBAQAogCQkJZHN0UGF0aCA9IFRlc3RXZWJLaXRBUEkucmVzb3VyY2VzOwogCQkJ
ZHN0U3ViZm9sZGVyU3BlYyA9IDc7CiAJCQlmaWxlcyA9ICgKKwkJCQkyRTk4OTYxNTFEOEYwOTM4
MDA3Mzk4OTIgLyogdGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJRjQyREE1MTYxRDhDRUZFNDAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxk
LWZvY3VzLW9ubG9hZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFRkYwNkNEMUQ4
QTQyOUEwMDA0QkIzMCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkVGRjA2QzcxRDg4NkE1ODAwMDRCQjMwIC8qIGNo
YW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
MkVGRjA2QzUxRDg4Njc3NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2su
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTc5MCw2ICs3OTQsNyBAQAogCQkyRTY5MUFG
MjFENzlFNzU0MDAxMjk0MDcgLyogbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xs
LWF3YXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNzc2NUNDMTZDNEQ4
MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gbWFpbklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NzY1
Q0UxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBtYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyRTk4OTYxNDFEOEYwOTJCMDA3Mzk4OTIgLyogdGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAidGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRz
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUZGMDZDMjFEODg2MjEyMDAw
NEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAibGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRUZGMDZDNDFEODg2NzcwMDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJj
ZS1vbi1jbGljay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNoYW5nZS12aWRl
by1zb3VyY2Utb24tY2xpY2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJF
RkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5k
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE3OCw2ICsxMTgzLDcgQEAK
IAkJRTRBNzU3RDMxNzhBRUE1QjAwQjVEN0E0IC8qIERlcXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERlcXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRDOUFCQzcxQjNE
QjE3MTAwNDBBOTg3IC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzRkMz
RUUyMTM2NzhCNzMwMDEyNkE2NSAvKiBsaWJndGVzdC5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgcGF0aCA9IGxpYmd0ZXN0LmE7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUY0MkRBNTE1MUQ4Q0VGREIw
MDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQuaHRtbDsgbmFtZSA9ICJsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7
IHBhdGggPSAiVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9h
ZC5odG1sIjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlGNEY0MDVCQTFENEMwQ0Y4
MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8t
d2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGNDA1QkIx
RDRDMENGODAwN0E5NzA3IC8qIHNraW5ueS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2tpbm55LWF1dG9wbGF5aW5nLXZpZGVv
LXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2NjBBQTBD
MTVBNUYwNjEwMDNBMTI0MyAvKiBHZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRh
dGFDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZXRJ
bmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFjay5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDczLDYgKzE0NzksNyBAQAogCQlBMTZGNjZCODFDNDBF
OUUxMDBCRDREMjQgLyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQkyRTk4OTYxNDFEOEYwOTJCMDA3Mzk4OTIgLyogdGV4dC1hbmQtcGFz
c3dvcmQtaW5wdXRzLmh0bWwgKi8sCiAJCQkJMkVGRjA2Q0MxRDhBNDI5MTAwMDRCQjMwIC8qIGlu
cHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCAqLywKIAkJCQkyRUZGMDZDNjFE
ODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLywKIAkJ
CQkyRUZGMDZDNDFEODg2NzcwMDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGlj
ay5odG1sICovLApAQCAtMTkxNyw2ICsxOTI0LDcgQEAKIAkJQzA3RTZDQjAxM0ZENzM3QzAwMzhC
MjJCIC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJRjQyREE1MTUxRDhDRUZEQjAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZv
Y3VzLW9ubG9hZC5odG1sICovLAogCQkJCTM3OTAyOEI4MTRGQUJFNDkwMDdFNkI0MyAvKiBhY2Nl
cHRzRmlyc3RNb3VzZS5odG1sICovLAogCQkJCUI1NUYxMUI5MTUxOTE2RTYwMDkxNTkxNiAvKiBB
aGVtLnR0ZiAqLywKIAkJCQlCNTVGMTFCMDE1MTdBMkM0MDA5MTU5MTYgLyogYXR0cmlidXRlZFN0
cmluZ0N1c3RvbUZvbnQuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KaW5kZXgg
Njc0NWNjNzI2ZTk1ZmFjOWNjODYzZGI1NDljMjlmYjIyZDY2MGNjZS4uZTU5NzEyODFhZTAyMTVj
MTI5ZmY4MmI1ZjM3MDdlZTkzNDNkMDI3MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0K
QEAgLTEyMSwxMSArMTIxLDcgQEAgUmV0YWluUHRyPFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdl
YlZpZXcqPiBzZXRVcFdlYlZpZXdGb3JUZXN0aW5nVmlkZW9Db250cm9sc00KIHsKICAgICBSZXRh
aW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJhdGlvbi5n
ZXQoKS5tZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrID0gV0tBdWRpb3Zp
c3VhbE1lZGlhVHlwZU5vbmU7Ci0gICAgUmV0YWluUHRyPFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVz
dFdlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpmcmFtZSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCldKTsKLSAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IHdpbmRvdyA9IGFkb3B0TlMoW1tO
U1dpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVN
YXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVk
IGRlZmVyOk5PXSk7Ci0gICAgW1t3aW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmll
dy5nZXQoKV07Ci0KLSAgICByZXR1cm4gd2ViVmlldzsKKyAgICByZXR1cm4gYWRvcHROUyhbW1Zp
ZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6ZnJhbWUg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiB9CiAKIFRFU1QoVmlkZW9Db250
cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyU2luZ2xlTGFyZ2VWaWRlbykKQEAgLTIx
MCw3ICsyMDYsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFu
YWdlck11bHRpcGxlVmlkZW9zU2hvd0NvbnRyb2xzRm9yTGFzdAogICAgIFt3ZWJWaWV3IGxvYWRU
ZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW9zLWF1dG9wbGF5aW5nLWNsaWNrLXRvLXBhdXNlIl07
CiAgICAgW3dlYlZpZXcgd2FpdEZvclBhZ2VUb0xvYWRXaXRoQXV0b3BsYXlpbmdWaWRlb3M6Ml07
CiAKLSAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50OmNsaWNrUG9pbnRdOworICAgIFt3ZWJW
aWV3IG1vdXNlRG93bkF0UG9pbnQ6Y2xpY2tQb2ludCBzaW11bGF0ZVByZXNzdXJlOllFU107CiAK
ICAgICBfX2Jsb2NrIGJvb2wgZmlyc3RWaWRlb1BhdXNlZCA9IGZhbHNlOwogICAgIF9fYmxvY2sg
Ym9vbCBzZWNvbmRWaWRlb1BhdXNlZCA9IGZhbHNlOwpAQCAtMjIxLDcgKzIxNyw3IEBAIFRFU1Qo
VmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyTXVsdGlwbGVWaWRlb3NT
aG93Q29udHJvbHNGb3JMYXN0CiAgICAgICAgICAgICBzZWNvbmRWaWRlb1BhdXNlZCA9IHRydWU7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBFWFBFQ1RfVFJVRShbY29udHJvbGxlZEVs
ZW1lbnRJRCBpc0VxdWFsVG9TdHJpbmc6QCJmaXJzdCJdKTsKLSAgICAgICAgICAgIFt3ZWJWaWV3
IG1vdXNlRG93bkF0UG9pbnQ6Y2xpY2tQb2ludF07CisgICAgICAgICAgICBbd2ViVmlldyBtb3Vz
ZURvd25BdFBvaW50OmNsaWNrUG9pbnQgc2ltdWxhdGVQcmVzc3VyZTpZRVNdOwogICAgICAgICB9
CiAgICAgICAgIGZpcnN0VmlkZW9QYXVzZWQgPSB0cnVlOwogICAgIH1dOwpAQCAtMjU5LDcgKzI1
NSw3IEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyU2lu
Z2xlU21hbGxBdXRvcGxheWluZ1ZpZGVvKQogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVk
OkAiYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpbyJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JQ
YWdlVG9Mb2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwogCi0gICAgW3dlYlZpZXcgbW91c2VE
b3duQXRQb2ludDpOU01ha2VQb2ludCg1MCwgNTApXTsKKyAgICBbd2ViVmlldyBtb3VzZURvd25B
dFBvaW50Ok5TTWFrZVBvaW50KDUwLCA1MCkgc2ltdWxhdGVQcmVzc3VyZTpZRVNdOwogICAgIFt3
ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpZRVMgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAi
cGF1c2VkIl07CiB9CiAKQEAgLTI5MSw3ICsyODcsNyBAQCBURVNUKFZpZGVvQ29udHJvbHNNYW5h
Z2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlckxhcmdlQXV0b3BsYXlpbmdWaWRlb0FmdGVyU2Vla2lu
ZwogCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlby1oaWRlcy1j
b250cm9scy1hZnRlci1zZWVrLXRvLWVuZCJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JQYWdlVG9M
b2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwotICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9p
bnQ6TlNNYWtlUG9pbnQoNTAsIDUwKV07CisgICAgW3dlYlZpZXcgbW91c2VEb3duQXRQb2ludDpO
U01ha2VQb2ludCg1MCwgNTApIHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKIAogICAgIC8vIFdlIGV4
cGVjdCB0aGVyZSB0byBiZSBtZWRpYSBjb250cm9scywgc2luY2UgdGhpcyBpcyBhIHVzZXIgZ2Vz
dHVyZWQgc2VlayB0byB0aGUgZW5kLgogICAgIC8vIFRoaXMgaXMgYWtpbiB0byBzZWVraW5nIHRv
IHRoZSBlbmQgYnkgc2NydWJiaW5nIGluIHRoZSBjb250cm9scy4KQEAgLTM0Miw3ICszMzgsNyBA
QCBURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlckRvZXNOb3RT
aG93TWVkaWFDb250cm9sc0Zvck9mZnNjcgogICAgIFJldGFpblB0cjxWaWRlb0NvbnRyb2xzTWFu
YWdlclRlc3RXZWJWaWV3Kj4gd2ViVmlldyA9IHNldFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0Nv
bnRyb2xzTWFuYWdlcihOU01ha2VSZWN0KDAsIDAsIDEwMjQsIDc2OCkpOwogCiAgICAgW3dlYlZp
ZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJsYXJnZS12aWRlby1vZmZzY3JlZW4iXTsKLSAgICBbd2Vi
VmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6Tk8gYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAibW92
ZWQiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTWVkaWFDb250cm9sc1RvSGlkZV07CiB9CiAKIFRF
U1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyS2VlcHNDb250cm9s
c1N0YWJsZUR1cmluZ1NyY0NoYW5nZU9uQ2xpY2spCkBAIC0zNTEsNyArMzQ3LDcgQEAgVEVTVChW
aWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJLZWVwc0NvbnRyb2xzU3Rh
YmxlRHVyaW5nU3JjQ2hhbmcKIAogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiY2hh
bmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljayJdOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JQYWdlVG9M
b2FkV2l0aEF1dG9wbGF5aW5nVmlkZW9zOjFdOwotICAgIFt3ZWJWaWV3IG1vdXNlRG93bkF0UG9p
bnQ6TlNNYWtlUG9pbnQoNDAwLCAzMDApXTsKKyAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50
Ok5TTWFrZVBvaW50KDQwMCwgMzAwKSBzaW11bGF0ZVByZXNzdXJlOllFU107CiAKICAgICBbd2Vi
VmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAImNo
YW5nZWQiXTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL1dLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0KaW5kZXggMWRiOTQ3
OWE0YmQ3YmI5YTkyZTY3MTg2OWYwOTc4NGZiZGUxOTcwNy4uMDQwMDY4MGYxODhlOWY0MmUxN2Nj
NTRmNTc5ZGY1ZmQ0MDU0M2NkMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0KKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMubW0K
QEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0
ICJUZXN0V0tXZWJWaWV3TWFjLmgiCiAKKyNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBv
cnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+CiAKIHN0YXRpYyBOU1N0cmluZyAqR2V0SW5wdXRW
YWx1ZUpTRXhwcmVzc2lvbiA9IEAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS52YWx1
ZSI7CkBAIC0xMTIsODEgKzExMywxMzQgQEAgLSAodm9pZClfZGlkVXBkYXRlQ2FuZGlkYXRlTGlz
dFZpc2liaWxpdHk6KEJPT0wpdmlzaWJsZQogICAgICAgICBfY2FuZGlkYXRlTGlzdFZpc2liaWxp
dHlDaGFuZ2VDb3VudCsrOwogfQogCi1AZW5kCi0KLVRFU1QoV0tXZWJWaWV3Q2FuZGlkYXRlVGVz
dHMsIFNvZnRTcGFjZVJlcGxhY2VtZW50QWZ0ZXJDYW5kaWRhdGVJbnNlcnRpb25XaXRob3V0UmVw
bGFjZW1lbnQpCistICh2b2lkKXR5cGVTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGlucHV0TWVz
c2FnZTooTlNTdHJpbmcgKilpbnB1dE1lc3NhZ2UKIHsKLSAgICBDYW5kaWRhdGVUZXN0V2ViVmll
dyAqd2tXZWJWaWV3ID0gW1tDYW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV07CisgICAgZm9yICh1aW50NjRfdCBpID0gMDsg
aSA8IHN0cmluZy5sZW5ndGg7ICsraSkgeworICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpLCBeKCkKKyAgICAgICAgeworICAgICAgICAgICAgW3NlbGYgdHlw
ZUNoYXJhY3Rlcjpbc3RyaW5nIGNoYXJhY3RlckF0SW5kZXg6aV1dOworICAgICAgICB9KTsKKyAg
ICAgICAgW3NlbGYgd2FpdEZvck1lc3NhZ2U6aW5wdXRNZXNzYWdlXTsKKyAgICB9Cit9CiAKLSAg
ICBOU1VSTCAqY29udGVudFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBbd2tX
ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVS
TF1dOworKyAoaW5zdGFuY2V0eXBlKXNldFVwV2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGVzdFBh
Z2U6KE5TU3RyaW5nICopdGVzdFBhZ2VOYW1lCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcg
KndrV2ViVmlldyA9IFtbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
ZnJhbWVdOwogCisgICAgW3drV2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDp0ZXN0UGFnZU5hbWVd
OwogICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJmb2N1c2VkIl07CiAgICAgW3drV2Vi
VmlldyBfZm9yY2VSZXF1ZXN0Q2FuZGlkYXRlc107Ci0gICAgW3drV2ViVmlldyBpbnNlcnRDYW5k
aWRhdGVzQW5kV2FpdEZvclJlc3BvbnNlOkAiYXBwbGUgIiByYW5nZTpOU01ha2VSYW5nZSgwLCAw
KV07CiAKKyAgICByZXR1cm4gd2tXZWJWaWV3OworfQorCitAZW5kCisKK1RFU1QoV0tXZWJWaWV3
Q2FuZGlkYXRlVGVzdHMsIFNvZnRTcGFjZVJlcGxhY2VtZW50QWZ0ZXJDYW5kaWRhdGVJbnNlcnRp
b25XaXRob3V0UmVwbGFjZW1lbnQpCit7CisgICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2Vi
VmlldyA9IFtDYW5kaWRhdGVUZXN0V2ViVmlldyBzZXRVcFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSB0ZXN0UGFnZTpAImlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1l
bnQiXTsKKworICAgIFt3a1dlYlZpZXcgaW5zZXJ0Q2FuZGlkYXRlc0FuZFdhaXRGb3JSZXNwb25z
ZTpAImFwcGxlICIgcmFuZ2U6TlNNYWtlUmFuZ2UoMCwgMCldOwogICAgIEVYUEVDVF9UUlVFKFtb
d2tXZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0SW5wdXRWYWx1ZUpTRXhw
cmVzc2lvbl0gaXNFcXVhbFRvU3RyaW5nOkAiYXBwbGUgIl0pOwogCiAgICAgW3drV2ViVmlldyBl
eHBlY3RDYW5kaWRhdGVMaXN0VmlzaWJpbGl0eVVwZGF0ZXM6MCB3aGVuUGVyZm9ybWluZ0FjdGlv
bnM6XigpCiAgICAgewotICAgICAgICBbd2tXZWJWaWV3IHR5cGVDaGFyYWN0ZXI6JyAnXTsKLSAg
ICAgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImlucHV0Il07CisgICAgICAgIFt3a1dl
YlZpZXcgdHlwZVN0cmluZzpAIiAiIGlucHV0TWVzc2FnZTpAImlucHV0Il07CiAgICAgfV07Ci0K
ICAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImFwcGxlICJdKTsK
ICAgICBFWFBFQ1RfRVEoW1t3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpH
ZXREb2N1bWVudFNjcm9sbFRvcEpTRXhwcmVzc2lvbl0gZG91YmxlVmFsdWVdLCAwKTsKIH0KIAog
VEVTVChXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cywgSW5zZXJ0Q2hhcmFjdGVyc0FmdGVyQ2FuZGlk
YXRlSW5zZXJ0aW9uV2l0aFNvZnRTcGFjZSkKIHsKLSAgICBDYW5kaWRhdGVUZXN0V2ViVmlldyAq
d2tXZWJWaWV3ID0gW1tDYW5kaWRhdGVUZXN0V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV07Ci0KLSAgICBOU1VSTCAqY29udGVudFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbnB1dC1maWVsZC1pbi1zY3Jv
bGxhYmxlLWRvY3VtZW50IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLSAgICBbd2tXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6Y29udGVudFVSTF1dOworICAgIENhbmRpZGF0ZVRlc3RX
ZWJWaWV3ICp3a1dlYlZpZXcgPSBbQ2FuZGlkYXRlVGVzdFdlYlZpZXcgc2V0VXBXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgdGVzdFBhZ2U6QCJpbnB1dC1maWVsZC1pbi1zY3Jv
bGxhYmxlLWRvY3VtZW50Il07CiAKLSAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiZm9j
dXNlZCJdOwotICAgIFt3a1dlYlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdOwogICAgIFt3
a1dlYlZpZXcgaW5zZXJ0Q2FuZGlkYXRlc0FuZFdhaXRGb3JSZXNwb25zZTpAImZvbyAiIHJhbmdl
Ok5TTWFrZVJhbmdlKDAsIDApXTsKLQogICAgIEVYUEVDVF9UUlVFKFtbd2tXZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0SW5wdXRWYWx1ZUpTRXhwcmVzc2lvbl0gaXNFcXVh
bFRvU3RyaW5nOkAiZm9vICJdKTsKIAotICAgIFt3a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjonYSdd
OwotICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOwotCisgICAgW3drV2Vi
VmlldyB0eXBlU3RyaW5nOkAiYSIgaW5wdXRNZXNzYWdlOkAiaW5wdXQiXTsKICAgICBFWFBFQ1Rf
VFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFs
dWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImZvbyBhIl0pOwogfQogCiBURVNUKFdL
V2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBJbnNlcnRDYW5kaWRhdGVGcm9tUGFydGlhbGx5VHlwZWRQ
aHJhc2VXaXRoU29mdFNwYWNlKQogewotICAgIENhbmRpZGF0ZVRlc3RXZWJWaWV3ICp3a1dlYlZp
ZXcgPSBbW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApXTsKLQotICAgIE5TVVJMICpjb250ZW50VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAImlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUt
ZG9jdW1lbnQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwotICAgIFt3a1dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpjb250ZW50VVJMXV07Ci0KLSAgICBbd2tXZWJWaWV3IHdhaXRGb3JN
ZXNzYWdlOkAiZm9jdXNlZCJdOwotICAgIFt3a1dlYlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0
ZXNdOwotCi0gICAgTlNTdHJpbmcgKmluaXRpYWxWYWx1ZSA9IEAiaGVsIjsKLSAgICBmb3IgKHVp
bnQ2NF90IGkgPSAwOyBpIDwgaW5pdGlhbFZhbHVlLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIFt3
a1dlYlZpZXcgdHlwZUNoYXJhY3RlcjpbaW5pdGlhbFZhbHVlIGNoYXJhY3RlckF0SW5kZXg6aV1d
OwotICAgICAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAiaW5wdXQiXTsKLSAgICB9Cisg
ICAgQ2FuZGlkYXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtDYW5kaWRhdGVUZXN0V2ViVmll
dyBzZXRVcFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSB0ZXN0UGFnZTpAImlu
cHV0LWZpZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQiXTsKIAorICAgIFt3a1dlYlZpZXcgdHlw
ZVN0cmluZzpAImhlbCIgaW5wdXRNZXNzYWdlOkAiaW5wdXQiXTsKICAgICBbd2tXZWJWaWV3IGlu
c2VydENhbmRpZGF0ZXNBbmRXYWl0Rm9yUmVzcG9uc2U6QCJoZWxsbyAiIHJhbmdlOk5TTWFrZVJh
bmdlKDAsIDMpXTsKICAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpA
ImhlbGxvICJdKTsKIAogICAgIFt3a1dlYlZpZXcgZXhwZWN0Q2FuZGlkYXRlTGlzdFZpc2liaWxp
dHlVcGRhdGVzOjAgd2hlblBlcmZvcm1pbmdBY3Rpb25zOl4oKQogICAgIHsKLSAgICAgICAgW3dr
V2ViVmlldyB0eXBlQ2hhcmFjdGVyOicgJ107Ci0gICAgICAgIFt3a1dlYlZpZXcgd2FpdEZvck1l
c3NhZ2U6QCJpbnB1dCJdOworICAgICAgICBbd2tXZWJWaWV3IHR5cGVTdHJpbmc6QCIgIiBpbnB1
dE1lc3NhZ2U6QCJpbnB1dCJdOwogICAgICAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1
YWxUb1N0cmluZzpAImhlbGxvICJdKTsKICAgICAgICAgRVhQRUNUX0VRKFtbd2tXZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6R2V0RG9jdW1lbnRTY3JvbGxUb3BKU0V4cHJlc3Np
b25dIGRvdWJsZVZhbHVlXSwgMCk7CiAKLSAgICAgICAgW3drV2ViVmlldyB0eXBlQ2hhcmFjdGVy
OicgJ107Ci0gICAgICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJpbnB1dCJdOworICAg
ICAgICBbd2tXZWJWaWV3IHR5cGVTdHJpbmc6QCIgIiBpbnB1dE1lc3NhZ2U6QCJpbnB1dCJdOwog
ICAgICAgICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkdldElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAImhlbGxvICAi
XSk7CiAgICAgICAgIEVYUEVDVF9FUShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkdldERvY3VtZW50U2Nyb2xsVG9wSlNFeHByZXNzaW9uXSBkb3VibGVWYWx1ZV0sIDAp
OwogICAgIH1dOwogfQogCitURVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLCBDbGlja2luZ0lu
VGV4dEZpZWxkRG9lc05vdFRocmFzaENhbmRpZGF0ZVZpc2liaWxpdHkpCit7CisgICAgQ2FuZGlk
YXRlVGVzdFdlYlZpZXcgKndrV2ViVmlldyA9IFtDYW5kaWRhdGVUZXN0V2ViVmlldyBzZXRVcFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSB0ZXN0UGFnZTpAImxhcmdlLWlucHV0
LWZpZWxkLWZvY3VzLW9ubG9hZCJdOworCisgICAgW3drV2ViVmlldyB0eXBlU3RyaW5nOkAidGVz
dCIgaW5wdXRNZXNzYWdlOkAiaW5wdXQiXTsKKyAgICBbd2tXZWJWaWV3IGV4cGVjdENhbmRpZGF0
ZUxpc3RWaXNpYmlsaXR5VXBkYXRlczowIHdoZW5QZXJmb3JtaW5nQWN0aW9uczpeKCkKKyAgICB7
CisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF4oKQor
ICAgICAgICB7CisgICAgICAgICAgICBbd2tXZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6TlNNYWtl
UG9pbnQoMTAwLCAzMDApIHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKKyAgICAgICAgfSk7CisgICAg
ICAgIFt3a1dlYlZpZXcgd2FpdEZvck1lc3NhZ2U6QCJtb3VzZWRvd24iXTsKKyAgICB9XTsKKyAg
ICBFWFBFQ1RfVFJVRShbW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0Okdl
dElucHV0VmFsdWVKU0V4cHJlc3Npb25dIGlzRXF1YWxUb1N0cmluZzpAInRlc3QiXSk7Cit9CisK
K1RFU1QoV0tXZWJWaWV3Q2FuZGlkYXRlVGVzdHMsIFNob3VsZE5vdFJlcXVlc3RDYW5kaWRhdGVz
SW5QYXNzd29yZEZpZWxkKQoreworICAgIENhbmRpZGF0ZVRlc3RXZWJWaWV3ICp3a1dlYlZpZXcg
PSBbW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApXTsKKyAgICBbd2tXZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAidGV4
dC1hbmQtcGFzc3dvcmQtaW5wdXRzIl07CisgICAgW3drV2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpA
ImxvYWRlZCJdOworICAgIFt3a1dlYlZpZXcgX2ZvcmNlUmVxdWVzdENhbmRpZGF0ZXNdOworCisg
ICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXigpCisgICAgewor
ICAgICAgICBbd2tXZWJWaWV3IG1vdXNlRG93bkF0UG9pbnQ6TlNNYWtlUG9pbnQoNDAwLCAxNTAp
IHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKKyAgICB9KTsKKyAgICBbd2tXZWJWaWV3IHdhaXRGb3JN
ZXNzYWdlOkAicGFzc3dvcmQtZm9jdXNlZCJdOworCisgICAgW3drV2ViVmlldyB0eXBlU3RyaW5n
OkAiZm9vIiBpbnB1dE1lc3NhZ2U6QCJwYXNzd29yZC1pbnB1dCJdOworICAgIEVYUEVDVF9GQUxT
RShbd2tXZWJWaWV3IF9zaG91bGRSZXF1ZXN0Q2FuZGlkYXRlc10pOworCisgICAgTlNTdHJpbmcg
KnBhc3N3b3JkRmllbGRWYWx1ZSA9IFt3a1dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYXNzd29yZCcpLnZhbHVlIl07CisgICAg
RVhQRUNUX1NUUkVRKHBhc3N3b3JkRmllbGRWYWx1ZS5VVEY4U3RyaW5nLCAiZm9vIik7Cit9CisK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCitURVNUKFdLV2ViVmlld0NhbmRpZGF0ZVRl
c3RzLCBTaG91bGRSZXF1ZXN0Q2FuZGlkYXRlc0luVGV4dEZpZWxkKQoreworICAgIENhbmRpZGF0
ZVRlc3RXZWJWaWV3ICp3a1dlYlZpZXcgPSBbW0NhbmRpZGF0ZVRlc3RXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXTsKKyAgICBbd2tXZWJWaWV3
IGxvYWRUZXN0UGFnZU5hbWVkOkAidGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzIl07CisgICAgW3dr
V2ViVmlldyB3YWl0Rm9yTWVzc2FnZTpAImxvYWRlZCJdOworICAgIFt3a1dlYlZpZXcgX2ZvcmNl
UmVxdWVzdENhbmRpZGF0ZXNdOworCisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSwgXigpCisgICAgeworICAgICAgICBbd2tXZWJWaWV3IG1vdXNlRG93bkF0UG9p
bnQ6TlNNYWtlUG9pbnQoNDAwLCA0NTApIHNpbXVsYXRlUHJlc3N1cmU6WUVTXTsKKyAgICB9KTsK
KyAgICBbd2tXZWJWaWV3IHdhaXRGb3JNZXNzYWdlOkAidGV4dC1mb2N1c2VkIl07CisKKyAgICBb
d2tXZWJWaWV3IHR5cGVTdHJpbmc6QCJiYXIiIGlucHV0TWVzc2FnZTpAInRleHQtaW5wdXQiXTsK
KyAgICBFWFBFQ1RfVFJVRShbd2tXZWJWaWV3IF9zaG91bGRSZXF1ZXN0Q2FuZGlkYXRlc10pOwor
CisgICAgTlNTdHJpbmcgKnRleHRGaWVsZFZhbHVlID0gW3drV2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3RleHQnKS52YWx1ZSJd
OworICAgIEVYUEVDVF9TVFJFUSh0ZXh0RmllbGRWYWx1ZS5VVEY4U3RyaW5nLCAiYmFyIik7Cit9
CisKKyNlbmRpZgorCiAjZW5kaWYgLyogV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMCAqLwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtaW5wdXQtZmll
bGQtZm9jdXMtb25sb2FkLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjcx
YTEyZjVmZmRiYzYyOWRjNWM5OWNhOGU5NTEzODFjMmFlZmRhCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtaW5wdXQtZmllbGQt
Zm9jdXMtb25sb2FkLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+CisKKzxoZWFkPgorICAg
IDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAg
IH0KKworICAgICAgICBpbnB1dCB7CisgICAgICAgICAgICB3aWR0aDogMTAwdnc7CisgICAgICAg
ICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgZm9udC1zaXplOiA1MHZoOworICAgICAg
ICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cisg
ICAgICAgIGZ1bmN0aW9uIGxvYWRlZCgpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImlucHV0IikuZm9jdXMoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGZv
Y3VzZWQoKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJmb2N1c2VkIiksIDApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaW5wdXQoKSB7CisgICAgICAgICAgICBzZXRUaW1l
b3V0KCgpID0+IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCJpbnB1dCIpLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG1vdXNl
ZG93bigpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93LndlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoIm1vdXNlZG93biIpLCAwKTsKKyAg
ICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9bG9hZGVkKCk+
CisgICAgPGlucHV0IG9uZm9jdXM9Zm9jdXNlZCgpIG9uaW5wdXQ9aW5wdXQoKSBvbm1vdXNlZG93
bj1tb3VzZWRvd24oKT48L2lucHV0PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS90ZXh0LWFuZC1wYXNzd29yZC1p
bnB1dHMuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL3RleHQt
YW5kLXBhc3N3b3JkLWlucHV0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3ZTExZGIyNDhjZjY3ODhiNTBm
NjM1ZjBhYjQzMWM5NzhjMWJkMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS90ZXh0LWFuZC1wYXNzd29yZC1pbnB1dHMuaHRtbApAQCAt
MCwwICsxLDM5IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24g
bG9hZGVkKCkgeworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJsb2FkZWQiKSwgMCk7CisgICAgfQor
CisgICAgZnVuY3Rpb24gdGV4dEZvY3VzZWQoKSB7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4g
d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInRl
eHQtZm9jdXNlZCIpLCAwKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXh0SW5wdXQoKSB7Cisg
ICAgICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoInRleHQtaW5wdXQiKSwgMCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcGFzc3dvcmRGb2N1c2VkKCkgeworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRv
dy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCJwYXNzd29y
ZC1mb2N1c2VkIiksIDApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHBhc3N3b3JkSW5wdXQoKSB7
CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoInBhc3N3b3JkLWlucHV0IiksIDApOworICAgIH0KKyAg
ICA8L3NjcmlwdD4KKworICAgIDxzdHlsZT4KKyAgICBpbnB1dCB7CisgICAgICAgIHdpZHRoOiAx
MDAlOworICAgICAgICBoZWlnaHQ6IDUwJTsKKyAgICAgICAgZm9udC1zaXplOiAxMDBweDsKKyAg
ICB9CisgICAgYm9keSB7IG1hcmdpbjogMDsgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+CisKKzxi
b2R5IG9ubG9hZD1sb2FkZWQoKSBvbm1vdXNlZG93bj1tb3VzZWRvd24oZXZlbnQpPgorICAgIDxp
bnB1dCBpZD0idGV4dCIgdHlwZT0idGV4dCIgb25mb2N1cz10ZXh0Rm9jdXNlZCgpIG9uaW5wdXQ9
dGV4dElucHV0KCk+PC9pbnB1dD4KKyAgICA8aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNz
d29yZCIgb25mb2N1cz1wYXNzd29yZEZvY3VzZWQoKSBvbmlucHV0PXBhc3N3b3JkSW5wdXQoKT48
L2lucHV0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9tYWMvVGVzdFdLV2ViVmlld01hYy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdFdL
V2ViVmlld01hYy5oCmluZGV4IGU3MTczYWRlNGQxNDE3MWEwMWM2MTUzMWI0OWVjN2E4ZDI2NzAx
MjIuLmY0NjE1M2QwZTEzYjFmZTUyYmViMGQ5MDE4NjQwMWU3OTRmNzEwM2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdNYWMuaAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLmgKQEAgLTM1LDcgKzM1LDExIEBAIEBp
bnRlcmZhY2UgVGVzdE1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhh
bmRsZXI+CiBAZW5kCiAKIEBpbnRlcmZhY2UgVGVzdFdLV2ViVmlldyA6IFdLV2ViVmlldwotLSAo
dm9pZCltb3VzZURvd25BdFBvaW50OihOU1BvaW50KXBvaW50OworLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1
cmF0aW9uICopY29uZmlndXJhdGlvbiBOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSOworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlciBOU19VTkFWQUlMQUJMRTsK
KworLy8gU2ltdWxhdGVzIGNsaWNraW5nIHdpdGggYSBwcmVzc3VyZS1zZW5zaXRpdmUgZGV2aWNl
LCBpZiBwb3NzaWJsZS4KKy0gKHZvaWQpbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2ludCBz
aW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmU7CiAtICh2b2lkKXBlcmZvcm1B
ZnRlclJlY2VpdmluZ01lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBhY3Rpb246KGRpc3BhdGNo
X2Jsb2NrX3QpYWN0aW9uOwogLSAodm9pZClsb2FkVGVzdFBhZ2VOYW1lZDooTlNTdHJpbmcgKilw
YWdlTmFtZTsKIC0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXI7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tXZWJWaWV3TWFjLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9tYWMvVGVzdFdLV2ViVmlld01hYy5tbQppbmRleCAzYzkzN2I0ZDlmYjE2
OTUxMTFjMTY5OTY4MGM1YzAwMDk2MTkwZTJhLi40OTQ3ZmYxZWM3MjM5YWMyMzMxNTIyYjRmZGFj
YjY2ZjUzNTY5Mjg0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0V0tX
ZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvbWFjL1Rlc3RXS1dlYlZpZXdN
YWMubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KICNpbXBv
cnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+Cisj
aW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogQGlt
cGxlbWVudGF0aW9uIFRlc3RNZXNzYWdlSGFuZGxlciB7CkBAIC01OSwxNiArNjAsODggQEAgLSAo
dm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNl
ckNvbnRlbnRDb250cm9sbGVyIGQKIAogQGVuZAogCi1AaW1wbGVtZW50YXRpb24gVGVzdFdLV2Vi
VmlldworQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyA6IE5TV2luZG93CitAZW5k
CisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdworCitzdGF0aWMgaW50
IGdFdmVudE51bWJlciA9IDE7CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTAwMworTlNFdmVudE1hc2sgX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRF
dmVudHNNYXNrKGlkIHNlbGYsIFNFTCBfY21kKQoreworICAgIHJldHVybiBOU0V2ZW50TWFza1By
ZXNzdXJlIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VEb3duIHwgTlNFdmVudE1hc2tMZWZ0TW91c2VV
cCB8IE5TRXZlbnRNYXNrTGVmdE1vdXNlRHJhZ2dlZDsKK30KKyNlbmRpZgogCi0tICh2b2lkKW1v
dXNlRG93bkF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKKy0gKHZvaWQpX21vdXNlRG93bkF0UG9pbnQ6
KE5TUG9pbnQpcG9pbnQgc2ltdWxhdGVQcmVzc3VyZTooQk9PTClzaW11bGF0ZVByZXNzdXJlCiB7
CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICBOU0V2
ZW50VHlwZSBtb3VzZUV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKICNlbHNl
CiAgICAgTlNFdmVudFR5cGUgbW91c2VFdmVudFR5cGUgPSBOU0xlZnRNb3VzZURvd247CiAjZW5k
aWYKLSAgICBbc2VsZiBtb3VzZURvd246W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOm1vdXNl
RXZlbnRUeXBlIGxvY2F0aW9uOk5TTWFrZVBvaW50KHBvaW50LngsIHBvaW50LnkpIG1vZGlmaWVy
RmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjowIGNv
bnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBldmVudE51bWJlcjowIGNs
aWNrQ291bnQ6MCBwcmVzc3VyZTowXV07CisKKyAgICBOU0V2ZW50TWFzayBtb2RpZmllckZsYWdz
ID0gMDsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMworICAg
IGlmIChzaW11bGF0ZVByZXNzdXJlKQorICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TRXZlbnRN
YXNrUHJlc3N1cmU7CisjZWxzZQorICAgIHNpbXVsYXRlUHJlc3N1cmUgPSBOTzsKKyNlbmRpZgor
CisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6bW91c2VF
dmVudFR5cGUgbG9jYXRpb246cG9pbnQgbW9kaWZpZXJGbGFnczptb2RpZmllckZsYWdzIHRpbWVz
dGFtcDpHZXRDdXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOnNlbGYud2luZG93TnVtYmVy
IGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSBldmVudE51bWJlcjor
K2dFdmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6c2ltdWxhdGVQcmVzc3VyZV07Cisg
ICAgaWYgKCFzaW11bGF0ZVByZXNzdXJlKSB7CisgICAgICAgIFtzZWxmIHNlbmRFdmVudDpldmVu
dF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTAwMworICAgIElNUCBzaW11bGF0ZWRBc3NvY2lhdGVkRXZlbnRzTWFz
a0ltcGwgPSAoSU1QKV9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVkRXZlbnRzTWFzazsK
KyAgICBNZXRob2QgYXNzb2NpYXRlZEV2ZW50c01hc2tNZXRob2QgPSBjbGFzc19nZXRJbnN0YW5j
ZU1ldGhvZChbTlNFdmVudCBjbGFzc10sIEBzZWxlY3Rvcihhc3NvY2lhdGVkRXZlbnRzTWFzaykp
OworICAgIElNUCBvcmlnaW5hbEFzc29jaWF0ZWRFdmVudHNNYXNrSW1wbCA9IG1ldGhvZF9zZXRJ
bXBsZW1lbnRhdGlvbihhc3NvY2lhdGVkRXZlbnRzTWFza01ldGhvZCwgc2ltdWxhdGVkQXNzb2Np
YXRlZEV2ZW50c01hc2tJbXBsKTsKKyAgICBAdHJ5IHsKKyAgICAgICAgW3NlbGYgc2VuZEV2ZW50
OmV2ZW50XTsKKyAgICB9IEBmaW5hbGx5IHsKKyAgICAgICAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUg
ZXZlbnQgc2VuZGluZyByYWlzZXMgYW4gZXhjZXB0aW9uLCB3ZSBzdGlsbCB3YW50IHRvIHJlc3Rv
cmUgdGhlIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uCisgICAgICAgIC8vIHRvIHByZXZlbnQgc3Vi
c2VxdWVudCBldmVudCBzZW5kaW5nIHRlc3RzIGZyb20gYmVpbmcgYWZmZWN0ZWQuCisgICAgICAg
IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihhc3NvY2lhdGVkRXZlbnRzTWFza01ldGhvZCwgb3Jp
Z2luYWxBc3NvY2lhdGVkRXZlbnRzTWFza0ltcGwpOworICAgIH0KKyNlbmRpZgorfQorCitAZW5k
CisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJWaWV3IHsKKyAgICBUZXN0V0tXZWJWaWV3SG9z
dFdpbmRvdyAqX2hvc3RXaW5kb3c7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1l
OihDR1JlY3QpZnJhbWUKK3sKKyAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpkZWZhdWx0Q29u
ZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF07CisgICAg
cmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29uZmlndXJhdGlvbjpkZWZhdWx0Q29u
ZmlndXJhdGlvbl07Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3Qp
ZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRp
b24KK3sKKyAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pCisgICAgICAgIFtzZWxmIF9zZXRVcFRlc3RXaW5kb3c6ZnJh
bWVdOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpX3NldFVwVGVzdFdpbmRvdzoo
TlNSZWN0KWZyYW1lCit7CisgICAgX2hvc3RXaW5kb3cgPSBbW1Rlc3RXS1dlYlZpZXdIb3N0V2lu
ZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU0JvcmRlcmxl
c3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT107Cisg
ICAgW19ob3N0V2luZG93IHNldEZyYW1lT3JpZ2luOk5TTWFrZVBvaW50KDAsIDApXTsKKyAgICBb
W19ob3N0V2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OnNlbGZdOworICAgIFtfaG9zdFdp
bmRvdyBzZXRJc1Zpc2libGU6WUVTXTsKKyAgICBbX2hvc3RXaW5kb3cgbWFrZUtleUFuZE9yZGVy
RnJvbnQ6c2VsZl07Cit9CisKKy0gKHZvaWQpbW91c2VEb3duQXRQb2ludDooTlNQb2ludClwb2lu
dCBzaW11bGF0ZVByZXNzdXJlOihCT09MKXNpbXVsYXRlUHJlc3N1cmUKK3sKKyAgICBbX2hvc3RX
aW5kb3cgX21vdXNlRG93bkF0UG9pbnQ6cG9pbnQgc2ltdWxhdGVQcmVzc3VyZTpzaW11bGF0ZVBy
ZXNzdXJlXTsKIH0KIAogLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOihOU1N0
cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbgpAQCAtOTQsOCAr
MTY3LDggQEAgLSAodm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciB7CiAgICAgTlNF
dmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TS2V5RG93bjsKICAgICBOU0V2ZW50VHlwZSBr
ZXlVcEV2ZW50VHlwZSA9IE5TS2V5VXA7CiAjZW5kaWYKLSAgICBbc2VsZiBrZXlEb3duOltOU0V2
ZW50IGtleUV2ZW50V2l0aFR5cGU6a2V5RG93bkV2ZW50VHlwZSBsb2NhdGlvbjpOU1plcm9Qb2lu
dCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRFdmVudFRpbWUoKSB3aW5kb3dO
dW1iZXI6MCBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3Rl
cnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29k
ZTpjaGFyYWN0ZXJdXTsKLSAgICBbc2VsZiBrZXlVcDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBl
OmtleVVwRXZlbnRUeXBlIGxvY2F0aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1l
c3RhbXA6R2V0Q3VycmVudEV2ZW50VGltZSgpIHdpbmRvd051bWJlcjowIGNvbnRleHQ6bmlsIGNo
YXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNo
YXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rlcl1dOworICAgIFtz
ZWxmIGtleURvd246W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTprZXlEb3duRXZlbnRUeXBlIGxv
Y2F0aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2
ZW50VGltZSgpIHdpbmRvd051bWJlcjpfaG9zdFdpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpu
aWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmll
cnM6Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVyXV07Cisg
ICAgW3NlbGYga2V5VXA6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTprZXlVcEV2ZW50VHlwZSBs
b2NhdGlvbjpOU1plcm9Qb2ludCBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOkdldEN1cnJlbnRF
dmVudFRpbWUoKSB3aW5kb3dOdW1iZXI6X2hvc3RXaW5kb3cud2luZG93TnVtYmVyIGNvbnRleHQ6
bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZp
ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rlcl1dOwog
fQogCiAtIChOU1N0cmluZyAqKXN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5TU3RyaW5n
ICopc2NyaXB0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>