<?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>129438</bug_id>
          
          <creation_ts>2014-02-27 11:02:54 -0800</creation_ts>
          <short_desc>Add highDPI support to DumpRenderTree/WebKitTestRunner without the need of reloading the test case.</short_desc>
          <delta_ts>2014-02-28 13:37:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (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>
          <dependson>129483</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985259</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-02-27 11:02:54 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985273</commentid>
    <comment_count>1</comment_count>
      <attachid>225397</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-27 11:21:47 -0800</bug_when>
    <thetext>Created attachment 225397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985288</commentid>
    <comment_count>2</comment_count>
      <attachid>225397</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-27 11:48:48 -0800</bug_when>
    <thetext>Comment on attachment 225397
Patch

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

&gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1445
&gt; +static void changeOffscreenWindowScaleIfNeeded()

I don&apos;t think the &quot;offscreen&quot; here is useful.

&gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1448
&gt; +    bool needsHighDPIOffscreenWindow = (gTestRunner-&gt;testPathOrURL().find(&quot;highDPI-&quot;) != string::npos);

This should share code with changeOffscreenWindowScaleIfNeeded(). Please don&apos;t do the patch check in two places.

&gt; Tools/WebKitTestRunner/TestInvocation.cpp:132
&gt; +    bool needsHighDPIOffscreenWindow = strstr(pathOrURL, &quot;highDPI-&quot;);

I think you should do a case insensitive check. Many will be running on case-insensitive file systems.

&gt; Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm:256
&gt; +    // Changing the scaling factor on the window does not trigger NSWindowDidChangeBackingPropertiesNotification. We need to send the notification off manually.

s/off//

&gt; Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm:257
&gt; +    NSMutableDictionary *notificationUserInfo = [[NSMutableDictionary alloc] initWithCapacity:1];

RetainPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985343</commentid>
    <comment_count>3</comment_count>
      <attachid>225409</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-27 14:25:59 -0800</bug_when>
    <thetext>Created attachment 225409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985345</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-02-27 14:27:31 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 225397 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=225397&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1445
&gt; &gt; +static void changeOffscreenWindowScaleIfNeeded()
&gt; 
&gt; I don&apos;t think the &quot;offscreen&quot; here is useful.
done.

&gt; 
&gt; &gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1448
&gt; &gt; +    bool needsHighDPIOffscreenWindow = (gTestRunner-&gt;testPathOrURL().find(&quot;highDPI-&quot;) != string::npos);
&gt; 
&gt; This should share code with changeOffscreenWindowScaleIfNeeded(). Please don&apos;t do the patch check in two places.
DumpRenderTree/WebKitTestRunner.

&gt; 
&gt; &gt; Tools/WebKitTestRunner/TestInvocation.cpp:132
&gt; &gt; +    bool needsHighDPIOffscreenWindow = strstr(pathOrURL, &quot;highDPI-&quot;);
&gt; 
&gt; I think you should do a case insensitive check. Many will be running on case-insensitive file systems.
&gt; 
done.

&gt; &gt; Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm:256
&gt; &gt; +    // Changing the scaling factor on the window does not trigger NSWindowDidChangeBackingPropertiesNotification. We need to send the notification off manually.
&gt; 
&gt; s/off//
done.

&gt; 
&gt; &gt; Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm:257
&gt; &gt; +    NSMutableDictionary *notificationUserInfo = [[NSMutableDictionary alloc] initWithCapacity:1];
&gt; 
&gt; RetainPtr?
done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985371</commentid>
    <comment_count>5</comment_count>
      <attachid>225419</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-27 15:12:39 -0800</bug_when>
    <thetext>Created attachment 225419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985547</commentid>
    <comment_count>6</comment_count>
      <attachid>225419</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-28 07:18:46 -0800</bug_when>
    <thetext>Comment on attachment 225419
Patch

Clearing flags on attachment: 225419

Committed r164859: &lt;http://trac.webkit.org/changeset/164859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985548</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-28 07:18:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985551</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-28 07:42:56 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 129483</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985656</commentid>
    <comment_count>9</comment_count>
      <attachid>225478</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-28 11:32:02 -0800</bug_when>
    <thetext>Created attachment 225478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985657</commentid>
    <comment_count>10</comment_count>
      <attachid>225478</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-02-28 11:32:32 -0800</bug_when>
    <thetext>Comment on attachment 225478
Patch

EWS testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985695</commentid>
    <comment_count>11</comment_count>
      <attachid>225478</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-28 13:37:44 -0800</bug_when>
    <thetext>Comment on attachment 225478
Patch

Clearing flags on attachment: 225478

Committed r164882: &lt;http://trac.webkit.org/changeset/164882&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985696</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-28 13:37:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225397</attachid>
            <date>2014-02-27 11:21:47 -0800</date>
            <delta_ts>2014-02-27 14:25:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129438-20140227112150.patch</filename>
            <type>text/plain</type>
            <size>12977</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NzE2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmZjMDFjODQxMzFmZmY0MjE2ZmI0MmQ2ZDUwZWY5Nzc4
YmNlNmFhNy4uYmMzMmM3NmMxMTEyYzBhOGZlMDQxZjAxZGUwZGU5N2JkYjA5Mzg4YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDE0LTAyLTI3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIGhpZ2hEUEkgc3VwcG9ydCB0byBEdW1wUmVuZGVyVHJlZS9XZWJLaXRUZXN0UnVubmVy
IHdpdGhvdXQgdGhlIG5lZWQgb2YgcmVsb2FkaW5nIHRoZSB0ZXN0IGNhc2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk0MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAnaGlnaERQSS0nIChmaWxlbmFt
ZSlwcmVmaXhlZCB0ZXN0IGNhc2VzIG5vdyB0cmlnZ2VyIDJ4IHNjYWxlIGZhY3RvciBvbiB0aGUg
dGVzdGluZworICAgICAgICBvZmZzY3JlZW4gd2luZG93LiBJdCBtYWtlcyB0ZXN0aW5nIHN1YnBp
eGVsIHJlbmRlcmluZyBhbmQgcG9zaXRpb25pbmcgcG9zc2libGUuCisKKyAgICAgICAgQm90aCB0
aGUgb2Zmc2NyZWVuIHdpbmRvdydzIGFuZCBXZWJLaXQncyBzY2FsaW5nIGFyZSBzZXQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06
CisgICAgICAgIChjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KTogdW5yZWxhdGVkIGNs
ZWFudXAuCisgICAgICAgIChkZXN0cm95V2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdyk6IHVucmVs
YXRlZCBjbGVhbnVwLgorICAgICAgICAoZHVtcFJlbmRlclRyZWUpOgorICAgICAgICAoY2hhbmdl
T2Zmc2NyZWVuV2luZG93U2NhbGVJZk5lZWRlZCk6CisgICAgICAgIChydW5UZXN0KToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cuaDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cubW06CisgICAgICAgICgt
W0R1bXBSZW5kZXJUcmVlV2luZG93IGluaXRXaXRoQ29udGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tp
bmc6ZGVmZXI6XSk6IGNsZWFudXAuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cDoKKyAgICAgICAgKFdUUjo6Y2hhbmdlT2Zmc2NyZWVuV2luZG93U2NhbGVJZk5lZWRlZCk6Cisg
ICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2UpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAgKFdUUjo6UGxhdGZv
cm1XZWJWaWV3OjpjaGFuZ2VPZmZzY3JlZW5XaW5kb3dTY2FsZUlmTmVlZGVkKToKKwogMjAxNC0w
Mi0yNiAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBSZS1lbmFibGUgZ3RrLWRvYyBpbiBFV1MKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA4MTZlNzZlODczNGI2ODUzMzU1ZGU3ODQxODNmNThi
ZTA4OTZjMWE5Li40M2JmYTIwZDE0OGY0Yjk0YWMxNDBiNGQyZjJiY2M2ZTg1MTBkYzNiIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC03NzEsMTAgKzc3
MSwzNiBAQCBXZWJWaWV3ICpjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KCkKICAgICAg
ICAgW3VpV2luZG93IHJldGFpbl07CiAgICAgfQogI2VuZGlmCisgICAgbWFpbkZyYW1lID0gW3dl
YlZpZXcgbWFpbkZyYW1lXTsKIAogICAgIHJldHVybiB3ZWJWaWV3OwogfQogCitzdGF0aWMgdm9p
ZCBkZXN0cm95V2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdygpCit7CisgICAgV2ViVmlldyAqd2Vi
VmlldyA9IFttYWluRnJhbWUgd2ViVmlld107CisKKyAgICBbd2ViVmlldyBjbG9zZV07CisgICAg
bWFpbkZyYW1lID0gbmlsOworCisjaWYgIVBMQVRGT1JNKElPUykKKyAgICBOU1dpbmRvdyogd2lu
ZG93ID0gW3dlYlZpZXcgd2luZG93XTsKKyAgICAvLyBXb3JrIGFyb3VuZCBwcm9ibGVtIHdoZXJl
IHJlZ2lzdGVyaW5nIGRyYWcgdHlwZXMgbGVhdmVzIGFuIG91dHN0YW5kaW5nCisgICAgLy8gInBl
cmZvcm0gc2VsZWN0b3IiIG9uIHRoZSB3aW5kb3csIHdoaWNoIHJldGFpbnMgdGhlIHdpbmRvdy4g
SXQncyBhIGJpdAorICAgIC8vIGluZWxlZ2FudCBhbmQgcGVyaGFwcyBkYW5nZXJvdXMgdG8ganVz
dCBibG93IHRoZW0gYWxsIGF3YXksIGJ1dCBpbiBwcmFjdGljZQorICAgIC8vIGl0IHByb2JhYmx5
IHdvbid0IGNhdXNlIGFueSB0cm91YmxlIChhbmQgdGhpcyBpcyBqdXN0IGEgdGVzdCB0b29sLCBh
ZnRlciBhbGwpLgorICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1SZXF1ZXN0c1dp
dGhUYXJnZXQ6d2luZG93XTsKKworICAgIFt3aW5kb3cgY2xvc2VdOyAvLyByZWxlYXNlcyB3aGVu
IGNsb3NlZAorI2Vsc2UKKyAgICBVSVdpbmRvdyAqdWlXaW5kb3cgPSBbZ1dlYkJyb3dzZXJWaWV3
IHdpbmRvd107CisgICAgW3VpV2luZG93IHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgIFt1aVdp
bmRvdyByZWxlYXNlXTsKKyNlbmRpZgorCisgICAgW3dlYlZpZXcgcmVsZWFzZV07Cit9CisKIHN0
YXRpYyBOU1N0cmluZyAqbGlicmFyeVBhdGhGb3JEdW1wUmVuZGVyVHJlZSgpCiB7CiAgICAgLy9G
SVhNRTogVGhpcyBtYXkgbm90IGJlIHN1ZmZpY2llbnQgdG8gcHJldmVudCBpbnRlcmFjdGlvbnMv
Y3Jhc2hlcwpAQCAtMTEyMSw4ICsxMTQ3LDcgQEAgdm9pZCBkdW1wUmVuZGVyVHJlZShpbnQgYXJn
YywgY29uc3QgY2hhciAqYXJndltdKQogICAgIFtOU1NvdW5kIF9zZXRBbGVydFR5cGU6MF07CiAj
ZW5kaWYKIAotICAgIFdlYlZpZXcgKndlYlZpZXcgPSBjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVu
V2luZG93KCk7Ci0gICAgbWFpbkZyYW1lID0gW3dlYlZpZXcgbWFpbkZyYW1lXTsKKyAgICBjcmVh
dGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KCk7CiAKICAgICBbW05TVVJMQ2FjaGUgc2hhcmVk
VVJMQ2FjaGVdIHJlbW92ZUFsbENhY2hlZFJlc3BvbnNlc107CiAgICAgW1dlYkNhY2hlIGVtcHR5
XTsKQEAgLTExNDgsMjcgKzExNzMsNyBAQCB2b2lkIGR1bXBSZW5kZXJUcmVlKGludCBhcmdjLCBj
b25zdCBjaGFyICphcmd2W10pCiAgICAgaWYgKHRocmVhZGVkKQogICAgICAgICBzdG9wSmF2YVNj
cmlwdFRocmVhZHMoKTsKIAotI2lmICFQTEFURk9STShJT1MpCi0gICAgTlNXaW5kb3cgKndpbmRv
dyA9IFt3ZWJWaWV3IHdpbmRvd107Ci0jZW5kaWYKLSAgICBbd2ViVmlldyBjbG9zZV07Ci0gICAg
bWFpbkZyYW1lID0gbmlsOwotCi0jaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBXb3JrIGFyb3Vu
ZCBwcm9ibGVtIHdoZXJlIHJlZ2lzdGVyaW5nIGRyYWcgdHlwZXMgbGVhdmVzIGFuIG91dHN0YW5k
aW5nCi0gICAgLy8gInBlcmZvcm0gc2VsZWN0b3IiIG9uIHRoZSB3aW5kb3csIHdoaWNoIHJldGFp
bnMgdGhlIHdpbmRvdy4gSXQncyBhIGJpdAotICAgIC8vIGluZWxlZ2FudCBhbmQgcGVyaGFwcyBk
YW5nZXJvdXMgdG8ganVzdCBibG93IHRoZW0gYWxsIGF3YXksIGJ1dCBpbiBwcmFjdGljZQotICAg
IC8vIGl0IHByb2JhYmx5IHdvbid0IGNhdXNlIGFueSB0cm91YmxlIChhbmQgdGhpcyBpcyBqdXN0
IGEgdGVzdCB0b29sLCBhZnRlciBhbGwpLgotICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1Bl
cmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6d2luZG93XTsKLSAgICAKLSAgICBbd2luZG93IGNsb3Nl
XTsgLy8gcmVsZWFzZXMgd2hlbiBjbG9zZWQKLSNlbHNlCi0gICAgVUlXaW5kb3cgKnVpV2luZG93
ID0gW2dXZWJCcm93c2VyVmlldyB3aW5kb3ddOwotICAgIFt1aVdpbmRvdyByZW1vdmVGcm9tU3Vw
ZXJ2aWV3XTsKLSAgICBbdWlXaW5kb3cgcmVsZWFzZV07Ci0jZW5kaWYKLQotICAgIFt3ZWJWaWV3
IHJlbGVhc2VdOworICAgIGRlc3Ryb3lXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KCk7CiAgICAg
CiAgICAgcmVsZWFzZUdsb2JhbENvbnRyb2xsZXJzKCk7CiAgICAgCkBAIC0xNDM3LDYgKzE0NDIs
MTkgQEAgc3RhdGljIHZvaWQgZHVtcEJhY2tGb3J3YXJkTGlzdEZvcldlYlZpZXcoV2ViVmlldyAq
dmlldykKICAgICBwcmludGYoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09XG4iKTsKIH0KIAorc3RhdGljIHZvaWQgY2hhbmdlT2Zmc2NyZWVuV2luZG93U2Nh
bGVJZk5lZWRlZCgpCit7CisgICAgYm9vbCBoYXNIaWdoRFBJT2Zmc2NyZWVuV2luZG93ID0gW1tb
bWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10gYmFja2luZ1NjYWxlRmFjdG9yXSAhPSAxOworICAg
IGJvb2wgbmVlZHNIaWdoRFBJT2Zmc2NyZWVuV2luZG93ID0gKGdUZXN0UnVubmVyLT50ZXN0UGF0
aE9yVVJMKCkuZmluZCgiaGlnaERQSS0iKSAhPSBzdHJpbmc6Om5wb3MpOworICAgIGlmIChoYXNI
aWdoRFBJT2Zmc2NyZWVuV2luZG93ID09IG5lZWRzSGlnaERQSU9mZnNjcmVlbldpbmRvdykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgQ0dGbG9hdCBuZXdTY2FsZUZhY3RvciA9IG5lZWRzSGlnaERQ
SU9mZnNjcmVlbldpbmRvdyA/IDIgOiAxOworICAgIC8vIFdoZW4gdGhlIG5ldyBzY2FsZSBmYWN0
b3IgaXMgc2V0IG9uIHRoZSB3aW5kb3cgZmlyc3QsIFdlYlZpZXcgZG9lc24ndCBzZWUgaXQgYXMg
YSBuZXcgc2NhbGUgYW5kIHN0b3BzIHByb3BhZ2F0aW5nIHRoZSBiZWhhdmlvciBjaGFuZ2UgdG8g
V2ViQ29yZTo6UGFnZS4KKyAgICBnVGVzdFJ1bm5lci0+c2V0QmFja2luZ1NjYWxlRmFjdG9yKG5l
d1NjYWxlRmFjdG9yKTsKKyAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gd2luZG93XSBfc2V0V2lu
ZG93UmVzb2x1dGlvbjpuZXdTY2FsZUZhY3RvciBkaXNwbGF5SWZDaGFuZ2VkOllFU107Cit9CisK
IHN0YXRpYyB2b2lkIHNpemVXZWJWaWV3Rm9yQ3VycmVudFRlc3QoKQogewogICAgIC8vIFczQyBT
VkcgdGVzdHMgZXhwZWN0IHRvIGJlIDQ4MHgzNjAKQEAgLTE3NDMsNiArMTc2MSw5IEBAIHN0YXRp
YyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAgICAgcmVzZXRXZWJWaWV3
VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCk7CiAKICAgICBnVGVzdFJ1bm5lciA9IFRl
c3RSdW5uZXI6OmNyZWF0ZSh0ZXN0VVJMLCBjb21tYW5kLmV4cGVjdGVkUGl4ZWxIYXNoKTsKKwor
ICAgIGNoYW5nZU9mZnNjcmVlbldpbmRvd1NjYWxlSWZOZWVkZWQoKTsKKwogICAgIHRvcExvYWRp
bmdGcmFtZSA9IG5pbDsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIEFTU0VSVCghZHJhZ2dpbmdJ
bmZvKTsgLy8gdGhlIHByZXZpb3VzIHRlc3Qgc2hvdWxkIGhhdmUgY2FsbGVkIGV2ZW50U2VuZGVy
Lm1vdXNlVXAgdG8gZHJvcCEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZVdpbmRvdy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlV2luZG93LmgKaW5kZXggODljOTc5YzhjMTNjNDU4OTM2ZjJmMTE0NTkzNmY4NmM3MzZl
MWFhOS4uYTkxYjAzOTE5MzQxNGE2ZTQ2MWRlNzExM2IyMTkwMDZiYTBhMDdjOCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93LmgKQEAgLTM4LDYg
KzM4LDEyIEBACiAKIEBjbGFzcyBXZWJWaWV3OwogCitAaW50ZXJmYWNlIE5TV2luZG93IChEZXRh
aWxzKQorCistICh2b2lkKV9zZXRXaW5kb3dSZXNvbHV0aW9uOihDR0Zsb2F0KXJlc29sdXRpb24g
ZGlzcGxheUlmQ2hhbmdlZDooQk9PTClkaXNwbGF5SWZDaGFuZ2VkOworCitAZW5kCisKIEBpbnRl
cmZhY2UgRHVtcFJlbmRlclRyZWVXaW5kb3cgOiBOU1dpbmRvdwogewogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tCmluZGV4IDJlY2U5Yzk5
MWNmNTI4NGVjYjQyN2I3NTBjYzMwNDI2Mjk3ZmY5ZTEuLjEzNzgyYTlhNDE5ODA4Y2MxOTQ4MTE1
YTk0MzFjODk2YTljZDdiNDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZVdpbmRvdy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWVXaW5kb3cubW0KQEAgLTc0LDggKzc0LDkgQEAgc3RhdGljIENGQXJyYXlDYWxs
QmFja3MgTm9uUmV0YWluaW5nQXJyYXlDYWxsYmFja3MgPSB7CiAjaWYgIVBMQVRGT1JNKElPUykK
IC0gKGlkKWluaXRXaXRoQ29udGVudFJlY3Q6KE5TUmVjdCljb250ZW50UmVjdCBzdHlsZU1hc2s6
KE5TVUludGVnZXIpc3R5bGVNYXNrIGJhY2tpbmc6KE5TQmFja2luZ1N0b3JlVHlwZSlidWZmZXJp
bmdUeXBlIGRlZmVyOihCT09MKWRlZmVyQ3JlYXRpb24KIHsKLSAgICBbc2VsZiBfYWRkVG9PcGVu
V2luZG93c107Ci0gICAgcmV0dXJuIFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRS
ZWN0IHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmRlZmVy
Q3JlYXRpb25dOworICAgIGlmICgoc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNv
bnRlbnRSZWN0IHN0eWxlTWFzazpzdHlsZU1hc2sgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVy
OmRlZmVyQ3JlYXRpb25dKSkKKyAgICAgICAgW3NlbGYgX2FkZFRvT3BlbldpbmRvd3NdOworICAg
IHJldHVybiBzZWxmOwogfQogI2Vsc2UKIC0gKGlkKWluaXRXaXRoTGF5ZXI6KENBTGF5ZXIgKils
YXllcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcu
aCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggZGI5N2I2
NGNhMzZkMWRjYjYwOGUwNTk1OGIwZTc2MmM2NGY4NDc3Yi4uZjlkNzljNmQ0NmQxZjE5OTNjM2I5
MjliNTdmYjU3NWY2ZTE3ZTg4OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2Vi
Vmlldy5oCkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICBXS1JldGFpblB0cjxXS0ltYWdl
UmVmPiB3aW5kb3dTbmFwc2hvdEltYWdlKCk7CiAgICAgV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMo
KSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuZ2V0KCk7IH0KIAorICAgIHZvaWQgY2hhbmdlT2Zm
c2NyZWVuV2luZG93U2NhbGVJZk5lZWRlZChmbG9hdCBuZXdTY2FsZSk7CisKIHByaXZhdGU6CiAg
ICAgUGxhdGZvcm1XS1ZpZXcgbV92aWV3OwogICAgIFBsYXRmb3JtV2luZG93IG1fd2luZG93Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBmMWRkYzBlZWI5
OTI2ZWI4Mzc4OWYxMTgwZTkwNWJlNTQxZjY1ODJkLi4xYmRmNmExNTYzZjRkMzZlY2RhOTBhOGZh
MTYxMWE0ODVkMzNiM2FhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9u
LmNwcApAQCAtMTI3LDYgKzEyNywxMiBAQCBzdGF0aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1cnJl
bnRUZXN0KGNvbnN0IGNoYXIqIHBhdGhPclVSTCkKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNo
YXJlZCgpLm1haW5XZWJWaWV3KCktPnJlc2l6ZVRvKFRlc3RDb250cm9sbGVyOjp2aWV3V2lkdGgs
IFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0KTsKIH0KIAorc3RhdGljIHZvaWQgY2hhbmdlT2Zm
c2NyZWVuV2luZG93U2NhbGVJZk5lZWRlZChjb25zdCBjaGFyKiBwYXRoT3JVUkwpCit7CisgICAg
Ym9vbCBuZWVkc0hpZ2hEUElPZmZzY3JlZW5XaW5kb3cgPSBzdHJzdHIocGF0aE9yVVJMLCAiaGln
aERQSS0iKTsKKyAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+Y2hh
bmdlT2Zmc2NyZWVuV2luZG93U2NhbGVJZk5lZWRlZChuZWVkc0hpZ2hEUElPZmZzY3JlZW5XaW5k
b3cgPyAyIDogMSk7Cit9CisKIHN0YXRpYyBib29sIHNob3VsZExvZ0ZyYW1lTG9hZERlbGVnYXRl
cyhjb25zdCBjaGFyKiBwYXRoT3JVUkwpCiB7CiAgICAgcmV0dXJuIHN0cnN0cihwYXRoT3JVUkws
ICJsb2FkaW5nLyIpOwpAQCAtMTkzLDYgKzE5OSw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUxheW91
dFR5cGUoY29uc3QgY2hhciogcGF0aE9yVVJMKQogdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tl
KCkKIHsKICAgICBUZXN0Q29udHJvbGxlcjo6VGltZW91dER1cmF0aW9uIHRpbWVvdXRUb1VzZSA9
IFRlc3RDb250cm9sbGVyOjpMb25nVGltZW91dDsKKyAgICBjaGFuZ2VPZmZzY3JlZW5XaW5kb3dT
Y2FsZUlmTmVlZGVkKG1fcGF0aE9yVVJMLmNfc3RyKCkpOwogICAgIHNpemVXZWJWaWV3Rm9yQ3Vy
cmVudFRlc3QobV9wYXRoT3JVUkwuY19zdHIoKSk7CiAgICAgdXBkYXRlTGF5b3V0VHlwZShtX3Bh
dGhPclVSTC5jX3N0cigpKTsKICAgICB1cGRhdGVUaHJlYWRlZFNjcm9sbGluZ0ZvckN1cnJlbnRU
ZXN0KG1fcGF0aE9yVVJMLmNfc3RyKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9t
YWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IGI2YzUzYTJlMThkOTYyNTY3ODk5YWM2M2M0
OWZhMWZhMTUzN2I4MDYuLmRlMDM5NjcyYTVmMjkxODRmOTJlZTIzZGQ5MDlhZDBiM2MxM2I5NzUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01h
Yy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMu
bW0KQEAgLTEwOSw2ICsxMDksMTEgQEAgZW51bSB7CiAgICAgTlNSZWN0IGN1cnJlbnRGcmFtZSA9
IFtzZWxmIGZyYW1lXTsKICAgICByZXR1cm4gTlNNYWtlUmVjdChfZmFrZU9yaWdpbi54LCBfZmFr
ZU9yaWdpbi55LCBjdXJyZW50RnJhbWUuc2l6ZS53aWR0aCwgY3VycmVudEZyYW1lLnNpemUuaGVp
Z2h0KTsKIH0KK0BlbmQKKworQGludGVyZmFjZSBOU1dpbmRvdyAoRGV0YWlscykKKworLSAodm9p
ZClfc2V0V2luZG93UmVzb2x1dGlvbjooQ0dGbG9hdClyZXNvbHV0aW9uIGRpc3BsYXlJZkNoYW5n
ZWQ6KEJPT0wpZGlzcGxheUlmQ2hhbmdlZDsKIAogQGVuZAogCkBAIC0yNDIsNCArMjQ3LDE3IEBA
IGJvb2wgUGxhdGZvcm1XZWJWaWV3Ojp2aWV3U3VwcG9ydHNPcHRpb25zKFdLRGljdGlvbmFyeVJl
ZiBvcHRpb25zKSBjb25zdAogICAgIHJldHVybiB1c2VUaHJlYWRlZFNjcm9sbGluZyA9PSBbKFRl
c3RSdW5uZXJXS1ZpZXcgKiltX3ZpZXcgdXNlVGhyZWFkZWRTY3JvbGxpbmddOwogfQogCit2b2lk
IFBsYXRmb3JtV2ViVmlldzo6Y2hhbmdlT2Zmc2NyZWVuV2luZG93U2NhbGVJZk5lZWRlZChmbG9h
dCBuZXdTY2FsZSkKK3sKKyAgICBDR0Zsb2F0IGN1cnJlbnRTY2FsZSA9IFttX3dpbmRvdyBiYWNr
aW5nU2NhbGVGYWN0b3JdOworICAgIGlmIChjdXJyZW50U2NhbGUgPT0gbmV3U2NhbGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBbbV93aW5kb3cgX3NldFdpbmRvd1Jlc29sdXRpb246bmV3U2NhbGUg
ZGlzcGxheUlmQ2hhbmdlZDpZRVNdOworICAgIC8vIENoYW5naW5nIHRoZSBzY2FsaW5nIGZhY3Rv
ciBvbiB0aGUgd2luZG93IGRvZXMgbm90IHRyaWdnZXIgTlNXaW5kb3dEaWRDaGFuZ2VCYWNraW5n
UHJvcGVydGllc05vdGlmaWNhdGlvbi4gV2UgbmVlZCB0byBzZW5kIHRoZSBub3RpZmljYXRpb24g
b2ZmIG1hbnVhbGx5LgorICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKm5vdGlmaWNhdGlvblVzZXJJ
bmZvID0gW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OjFdOwor
ICAgIFtub3RpZmljYXRpb25Vc2VySW5mbyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhE
b3VibGU6Y3VycmVudFNjYWxlXSBmb3JLZXk6TlNCYWNraW5nUHJvcGVydHlPbGRTY2FsZUZhY3Rv
cktleV07CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBwb3N0Tm90
aWZpY2F0aW9uTmFtZTpOU1dpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzTm90aWZpY2F0
aW9uIG9iamVjdDptX3dpbmRvdyB1c2VySW5mbzpub3RpZmljYXRpb25Vc2VySW5mb107CisgICAg
W25vdGlmaWNhdGlvblVzZXJJbmZvIHJlbGVhc2VdOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MGNlOGZjZDNmODg5NTE3YmJjZTJmNTQxMDQyZTY0NjViNmE4MGE4Li5hZmU3NmI2
MzY4ODdlODEyNTBlNzRkMDQwNzBkMmY1OTIwZjlhZGYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTQtMDItMjcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgaGlnaERQSSBzdXBwb3J0IHRvIER1bXBSZW5kZXJUcmVlL1dlYktpdFRlc3RSdW5uZXIgd2l0
aG91dCB0aGUgbmVlZCBvZiByZWxvYWRpbmcgdGhlIHRlc3QgY2FzZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTQzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICdoaWdoRFBJLScgKGZpbGVuYW1lKXBy
ZWZpeGVkIHRlc3QgY2FzZXMgbm93IHRyaWdnZXIgMnggc2NhbGUgZmFjdG9yIG9uIHRoZSB0ZXN0
aW5nCisgICAgICAgIG9mZnNjcmVlbiB3aW5kb3cuIEl0IG1ha2VzIHRlc3Rpbmcgc3VicGl4ZWwg
cmVuZGVyaW5nIGFuZCBwb3NpdGlvbmluZyBwb3NzaWJsZS4KKworICAgICAgICBCb3RoIHRoZSBv
ZmZzY3JlZW4gd2luZG93J3MgYW5kIFdlYktpdCdzIHNjYWxpbmcgYXJlIHNldCBhY2NvcmRpbmds
eS4KKworICAgICAgICAqIGZhc3QvYm9yZGVycy9oaWdoRFBJLXNpbXBsZS1oYWlybGluZS1ib3Jk
ZXItcGFpbnRpbmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJz
L2hpZ2hEUEktc2ltcGxlLWhhaXJsaW5lLWJvcmRlci1wYWludGluZy5odG1sOiBBZGRlZC4KKwog
MjAxNC0wMi0yNiAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdIFJlZ3Jlc3Npb24gd2hlbiBzaG93aW5nIHRoZSBjYXB0aW9ucyBt
ZW51CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvaGlnaERQSS1zaW1wbGUt
aGFpcmxpbmUtYm9yZGVyLXBhaW50aW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2JvcmRlcnMvaGlnaERQSS1zaW1wbGUtaGFpcmxpbmUtYm9yZGVyLXBhaW50aW5nLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTFmOGNkNDk5ZDk4YTZhNDUyZjU5ZWU0MDU5Zjc5NDUxZWViYjY5
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9oaWdoRFBJLXNp
bXBsZS1oYWlybGluZS1ib3JkZXItcGFpbnRpbmctZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHRpdGxlPkl0IHRlc3RzIGlmIDAuNXB4IGJv
cmRlcnMgZ2V0IHBhaW50ZWQuPC90aXRsZT4KKzxzdHlsZT4KKyAgZGl2IHsKKwl3aWR0aDogNDlw
eDsKKwloZWlnaHQ6IDQ5cHg7CisJYm9yZGVyOiAxcHggc29saWQgZ3JlZW47CisgIH0KKzwvc3R5
bGU+Cis8Ym9keT4KKwk8ZGl2PjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ib3JkZXJzL2hpZ2hEUEktc2ltcGxlLWhhaXJsaW5lLWJvcmRlci1wYWludGluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZ2hEUEktc2ltcGxlLWhhaXJsaW5lLWJv
cmRlci1wYWludGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMzNkNTFhNzgyZTJhYmIyN2EwMTIzMmM0
YWQ3OWJjNTYwN2FlODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2JvcmRl
cnMvaGlnaERQSS1zaW1wbGUtaGFpcmxpbmUtYm9yZGVyLXBhaW50aW5nLmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5JdCB0ZXN0cyBpZiAwLjVw
eCBib3JkZXJzIGdldCBwYWludGVkLjwvdGl0bGU+Cis8c3R5bGU+Cisub3V0ZXIgeworCXdpZHRo
OiA1MHB4OworCWhlaWdodDogNTBweDsKKwlib3JkZXI6IDAuNXB4IHNvbGlkIGdyZWVuOworfQor
LmlubmVyIHsKKwl3aWR0aDogNDlweDsKKwloZWlnaHQ6IDQ5cHg7CisJYm9yZGVyOiAwLjVweCBz
b2xpZCBncmVlbjsKK30KKzwvc3R5bGU+Cis8Ym9keT4KKwk8ZGl2IGNsYXNzPSJvdXRlciI+PGRp
diBjbGFzcz0iaW5uZXIiPjwvZGl2PjwvZGl2PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225409</attachid>
            <date>2014-02-27 14:25:59 -0800</date>
            <delta_ts>2014-02-27 15:12:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129438-20140227142604.patch</filename>
            <type>text/plain</type>
            <size>14955</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NzE2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmZjMDFjODQxMzFmZmY0MjE2ZmI0MmQ2ZDUwZWY5Nzc4
YmNlNmFhNy4uYmMzMmM3NmMxMTEyYzBhOGZlMDQxZjAxZGUwZGU5N2JkYjA5Mzg4YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDE0LTAyLTI3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIGhpZ2hEUEkgc3VwcG9ydCB0byBEdW1wUmVuZGVyVHJlZS9XZWJLaXRUZXN0UnVubmVy
IHdpdGhvdXQgdGhlIG5lZWQgb2YgcmVsb2FkaW5nIHRoZSB0ZXN0IGNhc2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk0MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAnaGlnaERQSS0nIChmaWxlbmFt
ZSlwcmVmaXhlZCB0ZXN0IGNhc2VzIG5vdyB0cmlnZ2VyIDJ4IHNjYWxlIGZhY3RvciBvbiB0aGUg
dGVzdGluZworICAgICAgICBvZmZzY3JlZW4gd2luZG93LiBJdCBtYWtlcyB0ZXN0aW5nIHN1YnBp
eGVsIHJlbmRlcmluZyBhbmQgcG9zaXRpb25pbmcgcG9zc2libGUuCisKKyAgICAgICAgQm90aCB0
aGUgb2Zmc2NyZWVuIHdpbmRvdydzIGFuZCBXZWJLaXQncyBzY2FsaW5nIGFyZSBzZXQgYWNjb3Jk
aW5nbHkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06
CisgICAgICAgIChjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KTogdW5yZWxhdGVkIGNs
ZWFudXAuCisgICAgICAgIChkZXN0cm95V2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdyk6IHVucmVs
YXRlZCBjbGVhbnVwLgorICAgICAgICAoZHVtcFJlbmRlclRyZWUpOgorICAgICAgICAoY2hhbmdl
T2Zmc2NyZWVuV2luZG93U2NhbGVJZk5lZWRlZCk6CisgICAgICAgIChydW5UZXN0KToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cuaDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cubW06CisgICAgICAgICgt
W0R1bXBSZW5kZXJUcmVlV2luZG93IGluaXRXaXRoQ29udGVudFJlY3Q6c3R5bGVNYXNrOmJhY2tp
bmc6ZGVmZXI6XSk6IGNsZWFudXAuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cDoKKyAgICAgICAgKFdUUjo6Y2hhbmdlT2Zmc2NyZWVuV2luZG93U2NhbGVJZk5lZWRlZCk6Cisg
ICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2UpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAgKFdUUjo6UGxhdGZv
cm1XZWJWaWV3OjpjaGFuZ2VPZmZzY3JlZW5XaW5kb3dTY2FsZUlmTmVlZGVkKToKKwogMjAxNC0w
Mi0yNiAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBSZS1lbmFibGUgZ3RrLWRvYyBpbiBFV1MKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA4MTZlNzZlODczNGI2ODUzMzU1ZGU3ODQxODNmNThi
ZTA4OTZjMWE5Li4xMDIwNTZjN2E3ZDFiM2I3MjM1OTg4Mzg4NDhjYzE5ODBiMmJiNTg5IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC05MCw2ICs5MCw3
IEBACiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Pd25QdHIuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiAjaWYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4K
QEAgLTc3MSwxMCArNzcyLDM2IEBAIFdlYlZpZXcgKmNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5X
aW5kb3coKQogICAgICAgICBbdWlXaW5kb3cgcmV0YWluXTsKICAgICB9CiAjZW5kaWYKKyAgICBt
YWluRnJhbWUgPSBbd2ViVmlldyBtYWluRnJhbWVdOwogCiAgICAgcmV0dXJuIHdlYlZpZXc7CiB9
CiAKK3N0YXRpYyB2b2lkIGRlc3Ryb3lXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KCkKK3sKKyAg
ICBXZWJWaWV3ICp3ZWJWaWV3ID0gW21haW5GcmFtZSB3ZWJWaWV3XTsKKworICAgIFt3ZWJWaWV3
IGNsb3NlXTsKKyAgICBtYWluRnJhbWUgPSBuaWw7CisKKyNpZiAhUExBVEZPUk0oSU9TKQorICAg
IE5TV2luZG93KiB3aW5kb3cgPSBbd2ViVmlldyB3aW5kb3ddOworICAgIC8vIFdvcmsgYXJvdW5k
IHByb2JsZW0gd2hlcmUgcmVnaXN0ZXJpbmcgZHJhZyB0eXBlcyBsZWF2ZXMgYW4gb3V0c3RhbmRp
bmcKKyAgICAvLyAicGVyZm9ybSBzZWxlY3RvciIgb24gdGhlIHdpbmRvdywgd2hpY2ggcmV0YWlu
cyB0aGUgd2luZG93LiBJdCdzIGEgYml0CisgICAgLy8gaW5lbGVnYW50IGFuZCBwZXJoYXBzIGRh
bmdlcm91cyB0byBqdXN0IGJsb3cgdGhlbSBhbGwgYXdheSwgYnV0IGluIHByYWN0aWNlCisgICAg
Ly8gaXQgcHJvYmFibHkgd29uJ3QgY2F1c2UgYW55IHRyb3VibGUgKGFuZCB0aGlzIGlzIGp1c3Qg
YSB0ZXN0IHRvb2wsIGFmdGVyIGFsbCkuCisgICAgW05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVy
Zm9ybVJlcXVlc3RzV2l0aFRhcmdldDp3aW5kb3ddOworCisgICAgW3dpbmRvdyBjbG9zZV07IC8v
IHJlbGVhc2VzIHdoZW4gY2xvc2VkCisjZWxzZQorICAgIFVJV2luZG93ICp1aVdpbmRvdyA9IFtn
V2ViQnJvd3NlclZpZXcgd2luZG93XTsKKyAgICBbdWlXaW5kb3cgcmVtb3ZlRnJvbVN1cGVydmll
d107CisgICAgW3VpV2luZG93IHJlbGVhc2VdOworI2VuZGlmCisKKyAgICBbd2ViVmlldyByZWxl
YXNlXTsKK30KKwogc3RhdGljIE5TU3RyaW5nICpsaWJyYXJ5UGF0aEZvckR1bXBSZW5kZXJUcmVl
KCkKIHsKICAgICAvL0ZJWE1FOiBUaGlzIG1heSBub3QgYmUgc3VmZmljaWVudCB0byBwcmV2ZW50
IGludGVyYWN0aW9ucy9jcmFzaGVzCkBAIC0xMTIxLDggKzExNDgsNyBAQCB2b2lkIGR1bXBSZW5k
ZXJUcmVlKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCiAgICAgW05TU291bmQgX3NldEFs
ZXJ0VHlwZTowXTsKICNlbmRpZgogCi0gICAgV2ViVmlldyAqd2ViVmlldyA9IGNyZWF0ZVdlYlZp
ZXdBbmRPZmZzY3JlZW5XaW5kb3coKTsKLSAgICBtYWluRnJhbWUgPSBbd2ViVmlldyBtYWluRnJh
bWVdOworICAgIGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3coKTsKIAogICAgIFtbTlNV
UkxDYWNoZSBzaGFyZWRVUkxDYWNoZV0gcmVtb3ZlQWxsQ2FjaGVkUmVzcG9uc2VzXTsKICAgICBb
V2ViQ2FjaGUgZW1wdHldOwpAQCAtMTE0OCwyNyArMTE3NCw3IEBAIHZvaWQgZHVtcFJlbmRlclRy
ZWUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKICAgICBpZiAodGhyZWFkZWQpCiAgICAg
ICAgIHN0b3BKYXZhU2NyaXB0VGhyZWFkcygpOwogCi0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBO
U1dpbmRvdyAqd2luZG93ID0gW3dlYlZpZXcgd2luZG93XTsKLSNlbmRpZgotICAgIFt3ZWJWaWV3
IGNsb3NlXTsKLSAgICBtYWluRnJhbWUgPSBuaWw7Ci0KLSNpZiAhUExBVEZPUk0oSU9TKQotICAg
IC8vIFdvcmsgYXJvdW5kIHByb2JsZW0gd2hlcmUgcmVnaXN0ZXJpbmcgZHJhZyB0eXBlcyBsZWF2
ZXMgYW4gb3V0c3RhbmRpbmcKLSAgICAvLyAicGVyZm9ybSBzZWxlY3RvciIgb24gdGhlIHdpbmRv
dywgd2hpY2ggcmV0YWlucyB0aGUgd2luZG93LiBJdCdzIGEgYml0Ci0gICAgLy8gaW5lbGVnYW50
IGFuZCBwZXJoYXBzIGRhbmdlcm91cyB0byBqdXN0IGJsb3cgdGhlbSBhbGwgYXdheSwgYnV0IGlu
IHByYWN0aWNlCi0gICAgLy8gaXQgcHJvYmFibHkgd29uJ3QgY2F1c2UgYW55IHRyb3VibGUgKGFu
ZCB0aGlzIGlzIGp1c3QgYSB0ZXN0IHRvb2wsIGFmdGVyIGFsbCkuCi0gICAgW05TT2JqZWN0IGNh
bmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDp3aW5kb3ddOwotICAgIAotICAg
IFt3aW5kb3cgY2xvc2VdOyAvLyByZWxlYXNlcyB3aGVuIGNsb3NlZAotI2Vsc2UKLSAgICBVSVdp
bmRvdyAqdWlXaW5kb3cgPSBbZ1dlYkJyb3dzZXJWaWV3IHdpbmRvd107Ci0gICAgW3VpV2luZG93
IHJlbW92ZUZyb21TdXBlcnZpZXddOwotICAgIFt1aVdpbmRvdyByZWxlYXNlXTsKLSNlbmRpZgot
Ci0gICAgW3dlYlZpZXcgcmVsZWFzZV07CisgICAgZGVzdHJveVdlYlZpZXdBbmRPZmZzY3JlZW5X
aW5kb3coKTsKICAgICAKICAgICByZWxlYXNlR2xvYmFsQ29udHJvbGxlcnMoKTsKICAgICAKQEAg
LTE0MzcsNiArMTQ0MywyMCBAQCBzdGF0aWMgdm9pZCBkdW1wQmFja0ZvcndhcmRMaXN0Rm9yV2Vi
VmlldyhXZWJWaWV3ICp2aWV3KQogICAgIHByaW50ZigiPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT1cbiIpOwogfQogCitzdGF0aWMgdm9pZCBjaGFuZ2VXaW5k
b3dTY2FsZUlmTmVlZGVkKGNvbnN0IGNoYXIqIHRlc3RQYXRoT3JVUikKK3sKKyAgICBib29sIGhh
c0hpZ2hEUElXaW5kb3cgPSBbW1ttYWluRnJhbWUgd2ViVmlld10gd2luZG93XSBiYWNraW5nU2Nh
bGVGYWN0b3JdICE9IDE7CisgICAgV1RGOjpTdHJpbmcgbG9jYWxQYXRoT3JVcmwgPSBTdHJpbmco
dGVzdFBhdGhPclVSKTsKKyAgICBib29sIG5lZWRzSGlnaERQSVdpbmRvdyA9IGxvY2FsUGF0aE9y
VXJsLmZpbmRJZ25vcmluZ0Nhc2UoImhpZ2hEUEktIikgIT0gbm90Rm91bmQ7CisgICAgaWYgKGhh
c0hpZ2hEUElXaW5kb3cgPT0gbmVlZHNIaWdoRFBJV2luZG93KQorICAgICAgICByZXR1cm47CisK
KyAgICBDR0Zsb2F0IG5ld1NjYWxlRmFjdG9yID0gbmVlZHNIaWdoRFBJV2luZG93ID8gMiA6IDE7
CisgICAgLy8gV2hlbiB0aGUgbmV3IHNjYWxlIGZhY3RvciBpcyBzZXQgb24gdGhlIHdpbmRvdyBm
aXJzdCwgV2ViVmlldyBkb2Vzbid0IHNlZSBpdCBhcyBhIG5ldyBzY2FsZSBhbmQgc3RvcHMgcHJv
cGFnYXRpbmcgdGhlIGJlaGF2aW9yIGNoYW5nZSB0byBXZWJDb3JlOjpQYWdlLgorICAgIGdUZXN0
UnVubmVyLT5zZXRCYWNraW5nU2NhbGVGYWN0b3IobmV3U2NhbGVGYWN0b3IpOworICAgIFtbW21h
aW5GcmFtZSB3ZWJWaWV3XSB3aW5kb3ddIF9zZXRXaW5kb3dSZXNvbHV0aW9uOm5ld1NjYWxlRmFj
dG9yIGRpc3BsYXlJZkNoYW5nZWQ6WUVTXTsKK30KKwogc3RhdGljIHZvaWQgc2l6ZVdlYlZpZXdG
b3JDdXJyZW50VGVzdCgpCiB7CiAgICAgLy8gVzNDIFNWRyB0ZXN0cyBleHBlY3QgdG8gYmUgNDgw
eDM2MApAQCAtMTczOCw4ICsxNzU4LDEwIEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3Ry
aW5nJiBpbnB1dExpbmUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb25zdCBzdHJp
bmcgdGVzdFVSTChbW3VybCBhYnNvbHV0ZVN0cmluZ10gVVRGOFN0cmluZ10pOworICAgIGNvbnN0
IGNoYXIqIHRlc3RVUkwoW1t1cmwgYWJzb2x1dGVTdHJpbmddIFVURjhTdHJpbmddKTsKICAgICAK
KyAgICBjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKHRlc3RVUkwpOworCiAgICAgcmVzZXRXZWJW
aWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCk7CiAKICAgICBnVGVzdFJ1bm5lciA9
IFRlc3RSdW5uZXI6OmNyZWF0ZSh0ZXN0VVJMLCBjb21tYW5kLmV4cGVjdGVkUGl4ZWxIYXNoKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZVdpbmRv
dy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93LmgKaW5k
ZXggODljOTc5YzhjMTNjNDU4OTM2ZjJmMTE0NTkzNmY4NmM3MzZlMWFhOS4uYTkxYjAzOTE5MzQx
NGE2ZTQ2MWRlNzExM2IyMTkwMDZiYTBhMDdjOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93LmgKQEAgLTM4LDYgKzM4LDEyIEBACiAKIEBjbGFz
cyBXZWJWaWV3OwogCitAaW50ZXJmYWNlIE5TV2luZG93IChEZXRhaWxzKQorCistICh2b2lkKV9z
ZXRXaW5kb3dSZXNvbHV0aW9uOihDR0Zsb2F0KXJlc29sdXRpb24gZGlzcGxheUlmQ2hhbmdlZDoo
Qk9PTClkaXNwbGF5SWZDaGFuZ2VkOworCitAZW5kCisKIEBpbnRlcmZhY2UgRHVtcFJlbmRlclRy
ZWVXaW5kb3cgOiBOU1dpbmRvdwogewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tCmluZGV4IDJlY2U5Yzk5MWNmNTI4NGVjYjQyN2I3NTBj
YzMwNDI2Mjk3ZmY5ZTEuLjEzNzgyYTlhNDE5ODA4Y2MxOTQ4MTE1YTk0MzFjODk2YTljZDdiNDAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZVdpbmRv
dy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cu
bW0KQEAgLTc0LDggKzc0LDkgQEAgc3RhdGljIENGQXJyYXlDYWxsQmFja3MgTm9uUmV0YWluaW5n
QXJyYXlDYWxsYmFja3MgPSB7CiAjaWYgIVBMQVRGT1JNKElPUykKIC0gKGlkKWluaXRXaXRoQ29u
dGVudFJlY3Q6KE5TUmVjdCljb250ZW50UmVjdCBzdHlsZU1hc2s6KE5TVUludGVnZXIpc3R5bGVN
YXNrIGJhY2tpbmc6KE5TQmFja2luZ1N0b3JlVHlwZSlidWZmZXJpbmdUeXBlIGRlZmVyOihCT09M
KWRlZmVyQ3JlYXRpb24KIHsKLSAgICBbc2VsZiBfYWRkVG9PcGVuV2luZG93c107Ci0gICAgcmV0
dXJuIFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFzazpzdHls
ZU1hc2sgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmRlZmVyQ3JlYXRpb25dOworICAgIGlm
ICgoc2VsZiA9IFtzdXBlciBpbml0V2l0aENvbnRlbnRSZWN0OmNvbnRlbnRSZWN0IHN0eWxlTWFz
azpzdHlsZU1hc2sgYmFja2luZzpidWZmZXJpbmdUeXBlIGRlZmVyOmRlZmVyQ3JlYXRpb25dKSkK
KyAgICAgICAgW3NlbGYgX2FkZFRvT3BlbldpbmRvd3NdOworICAgIHJldHVybiBzZWxmOwogfQog
I2Vsc2UKIC0gKGlkKWluaXRXaXRoTGF5ZXI6KENBTGF5ZXIgKilsYXllcgpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggZGI5N2I2NGNhMzZkMWRjYjYwOGUwNTk1
OGIwZTc2MmM2NGY4NDc3Yi4uODNkOTUyMTU3YTJkOGJlNTE0MjgzZTBmZmUxMzhmMGQ2MTEwY2Rk
MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC04OSw2ICs4
OSw4IEBAIHB1YmxpYzoKICAgICBXS1JldGFpblB0cjxXS0ltYWdlUmVmPiB3aW5kb3dTbmFwc2hv
dEltYWdlKCk7CiAgICAgV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBt
X29wdGlvbnMuZ2V0KCk7IH0KIAorICAgIHZvaWQgY2hhbmdlV2luZG93U2NhbGVJZk5lZWRlZChm
bG9hdCBuZXdTY2FsZSk7CisKIHByaXZhdGU6CiAgICAgUGxhdGZvcm1XS1ZpZXcgbV92aWV3Owog
ICAgIFBsYXRmb3JtV2luZG93IG1fd2luZG93OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcAppbmRleCBmMWRkYzBlZWI5OTI2ZWI4Mzc4OWYxMTgwZTkwNWJlNTQxZjY1
ODJkLi44ZDYyY2E0YzFhMzk2OTAwMjIwMTQ1NDUzZWUzOWEzZGFjNjUxZTE1IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTI3LDYgKzEyNywxMyBAQCBz
dGF0aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KGNvbnN0IGNoYXIqIHBhdGhPclVS
TCkKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnJlc2l6
ZVRvKFRlc3RDb250cm9sbGVyOjp2aWV3V2lkdGgsIFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0
KTsKIH0KIAorc3RhdGljIHZvaWQgY2hhbmdlV2luZG93U2NhbGVJZk5lZWRlZChjb25zdCBjaGFy
KiBwYXRoT3JVUkwpCit7CisgICAgV1RGOjpTdHJpbmcgbG9jYWxQYXRoT3JVcmwgPSBTdHJpbmco
cGF0aE9yVVJMKTsKKyAgICBib29sIG5lZWRzSGlnaERQSVdpbmRvdyA9IGxvY2FsUGF0aE9yVXJs
LmZpbmRJZ25vcmluZ0Nhc2UoImhpZ2hEUEktIikgIT0gbm90Rm91bmQ7CisgICAgVGVzdENvbnRy
b2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQo
bmVlZHNIaWdoRFBJV2luZG93ID8gMiA6IDEpOworfQorCiBzdGF0aWMgYm9vbCBzaG91bGRMb2dG
cmFtZUxvYWREZWxlZ2F0ZXMoY29uc3QgY2hhciogcGF0aE9yVVJMKQogewogICAgIHJldHVybiBz
dHJzdHIocGF0aE9yVVJMLCAibG9hZGluZy8iKTsKQEAgLTE5Myw2ICsyMDAsNyBAQCBzdGF0aWMg
dm9pZCB1cGRhdGVMYXlvdXRUeXBlKGNvbnN0IGNoYXIqIHBhdGhPclVSTCkKIHZvaWQgVGVzdElu
dm9jYXRpb246Omludm9rZSgpCiB7CiAgICAgVGVzdENvbnRyb2xsZXI6OlRpbWVvdXREdXJhdGlv
biB0aW1lb3V0VG9Vc2UgPSBUZXN0Q29udHJvbGxlcjo6TG9uZ1RpbWVvdXQ7CisgICAgY2hhbmdl
V2luZG93U2NhbGVJZk5lZWRlZChtX3BhdGhPclVSTC5jX3N0cigpKTsKICAgICBzaXplV2ViVmll
d0ZvckN1cnJlbnRUZXN0KG1fcGF0aE9yVVJMLmNfc3RyKCkpOwogICAgIHVwZGF0ZUxheW91dFR5
cGUobV9wYXRoT3JVUkwuY19zdHIoKSk7CiAgICAgdXBkYXRlVGhyZWFkZWRTY3JvbGxpbmdGb3JD
dXJyZW50VGVzdChtX3BhdGhPclVSTC5jX3N0cigpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZpZXdFZmwuY3BwCmluZGV4IDYwZjUzODIwYjk4NjVhMzE4
MzI5YmNlOGZiMjRjYTA2NzRmYjNiYTcuLjg0NmU0YjczZjY3YTEzNGU0NGQ3NDAzZjc5YzUyNzhi
OTcyYjdjNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1BsYXRmb3Jt
V2ViVmlld0VmbC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1X
ZWJWaWV3RWZsLmNwcApAQCAtMTI3LDYgKzEyNywxMCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6
bWFrZVdlYlZpZXdGaXJzdFJlc3BvbmRlcigpCiB7CiB9CiAKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3
OjpjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0KQoreworfQorCiBXS1JldGFpblB0cjxX
S0ltYWdlUmVmPiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKQogewogICAg
IGludCB3aWR0aDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRm
b3JtV2ViVmlld0d0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9QbGF0Zm9ybVdl
YlZpZXdHdGsuY3BwCmluZGV4IGZkNmY4NDY2YjQ5NmExN2FkODVmNGQxZmQ1MzliMDI4ZTlhNDYz
ZGQuLjllN2M4NzYxMzg2YTlkNTYyZjVlNjRlMDRmOTE1NmEzYzNmMjhkOTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcApAQCAtMTE0
LDYgKzExNCwxMCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6bWFrZVdlYlZpZXdGaXJzdFJlc3Bv
bmRlcigpCiB7CiB9CiAKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpjaGFuZ2VXaW5kb3dTY2FsZUlm
TmVlZGVkKGZsb2F0KQoreworfQorCiBXS1JldGFpblB0cjxXS0ltYWdlUmVmPiBQbGF0Zm9ybVdl
YlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQg
dG8gY2FwdHVyZSBwaXhlbHMgaW4gdGhlIFVJIHByb2Nlc3MsCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0gYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KaW5kZXggNWE2NzUyNzU5YTdlZjM5
MmU0Mzg3ZjRjMzAzNjllYTMzZTk0NTYzMC4uMDI5ZjdhNGQ0NjEyNTBmZjk4MTViMDk1M2NiYWJi
NmQ2YmFmNTZlMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZv
cm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3Jt
V2ViVmlld0lPUy5tbQpAQCAtMjA3LDYgKzIwNywxMSBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6
bWFrZVdlYlZpZXdGaXJzdFJlc3BvbmRlcigpCiAvLyAgICBbbV93aW5kb3cgbWFrZUZpcnN0UmVz
cG9uZGVyOm1fdmlld107CiB9CiAKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpjaGFuZ2VXaW5kb3dT
Y2FsZUlmTmVlZGVkKGZsb2F0KQoreworICAgIC8vIFJldGluYSBvbmx5IHN1cmZhY2UuCit9CisK
IFdLUmV0YWluUHRyPFdLSW1hZ2VSZWY+IFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJ
bWFnZSgpCiB7CiAgICAgcmV0dXJuIDA7IC8vIEZJWE1FIGZvciBpT1M/CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXggYjZjNTNhMmUx
OGQ5NjI1Njc4OTlhYzYzYzQ5ZmExZmExNTM3YjgwNi4uNmI3NzMxZGFhMDE5NmI2MTI5MDQwMmNh
OWFhZWFlYTU1NWQwNmYyYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
UGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Bs
YXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMTA5LDYgKzEwOSwxMSBAQCBlbnVtIHsKICAgICBOU1Jl
Y3QgY3VycmVudEZyYW1lID0gW3NlbGYgZnJhbWVdOwogICAgIHJldHVybiBOU01ha2VSZWN0KF9m
YWtlT3JpZ2luLngsIF9mYWtlT3JpZ2luLnksIGN1cnJlbnRGcmFtZS5zaXplLndpZHRoLCBjdXJy
ZW50RnJhbWUuc2l6ZS5oZWlnaHQpOwogfQorQGVuZAorCitAaW50ZXJmYWNlIE5TV2luZG93IChE
ZXRhaWxzKQorCistICh2b2lkKV9zZXRXaW5kb3dSZXNvbHV0aW9uOihDR0Zsb2F0KXJlc29sdXRp
b24gZGlzcGxheUlmQ2hhbmdlZDooQk9PTClkaXNwbGF5SWZDaGFuZ2VkOwogCiBAZW5kCiAKQEAg
LTI0Miw0ICsyNDcsMTYgQEAgYm9vbCBQbGF0Zm9ybVdlYlZpZXc6OnZpZXdTdXBwb3J0c09wdGlv
bnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpIGNvbnN0CiAgICAgcmV0dXJuIHVzZVRocmVhZGVk
U2Nyb2xsaW5nID09IFsoVGVzdFJ1bm5lcldLVmlldyAqKW1fdmlldyB1c2VUaHJlYWRlZFNjcm9s
bGluZ107CiB9CiAKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpjaGFuZ2VXaW5kb3dTY2FsZUlmTmVl
ZGVkKGZsb2F0IG5ld1NjYWxlKQoreworICAgIENHRmxvYXQgY3VycmVudFNjYWxlID0gW21fd2lu
ZG93IGJhY2tpbmdTY2FsZUZhY3Rvcl07CisgICAgaWYgKGN1cnJlbnRTY2FsZSA9PSBuZXdTY2Fs
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIFttX3dpbmRvdyBfc2V0V2luZG93UmVzb2x1dGlvbjpu
ZXdTY2FsZSBkaXNwbGF5SWZDaGFuZ2VkOllFU107CisgICAgLy8gQ2hhbmdpbmcgdGhlIHNjYWxp
bmcgZmFjdG9yIG9uIHRoZSB3aW5kb3cgZG9lcyBub3QgdHJpZ2dlciBOU1dpbmRvd0RpZENoYW5n
ZUJhY2tpbmdQcm9wZXJ0aWVzTm90aWZpY2F0aW9uLiBXZSBuZWVkIHRvIHNlbmQgdGhlIG5vdGlm
aWNhdGlvbiBtYW51YWxseS4KKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gbm90
aWZpY2F0aW9uVXNlckluZm8gPSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6MV07CisgICAgW25vdGlmaWNhdGlvblVzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1i
ZXIgbnVtYmVyV2l0aERvdWJsZTpjdXJyZW50U2NhbGVdIGZvcktleTpOU0JhY2tpbmdQcm9wZXJ0
eU9sZFNjYWxlRmFjdG9yS2V5XTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIHBvc3ROb3RpZmljYXRpb25OYW1lOk5TV2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3Bl
cnRpZXNOb3RpZmljYXRpb24gb2JqZWN0Om1fd2luZG93IHVzZXJJbmZvOm5vdGlmaWNhdGlvblVz
ZXJJbmZvLmdldCgpXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzBjZThmY2Qz
Zjg4OTUxN2JiY2UyZjU0MTA0MmU2NDY1YjZhODBhOC4uYWZlNzZiNjM2ODg3ZTgxMjUwZTc0ZDA0
MDcwZDJmNTkyMGY5YWRmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAyLTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGhpZ2hEUEkgc3VwcG9y
dCB0byBEdW1wUmVuZGVyVHJlZS9XZWJLaXRUZXN0UnVubmVyIHdpdGhvdXQgdGhlIG5lZWQgb2Yg
cmVsb2FkaW5nIHRoZSB0ZXN0IGNhc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAnaGlnaERQSS0nIChmaWxlbmFtZSlwcmVmaXhlZCB0ZXN0IGNhc2Vz
IG5vdyB0cmlnZ2VyIDJ4IHNjYWxlIGZhY3RvciBvbiB0aGUgdGVzdGluZworICAgICAgICBvZmZz
Y3JlZW4gd2luZG93LiBJdCBtYWtlcyB0ZXN0aW5nIHN1YnBpeGVsIHJlbmRlcmluZyBhbmQgcG9z
aXRpb25pbmcgcG9zc2libGUuCisKKyAgICAgICAgQm90aCB0aGUgb2Zmc2NyZWVuIHdpbmRvdydz
IGFuZCBXZWJLaXQncyBzY2FsaW5nIGFyZSBzZXQgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgKiBm
YXN0L2JvcmRlcnMvaGlnaERQSS1zaW1wbGUtaGFpcmxpbmUtYm9yZGVyLXBhaW50aW5nLWV4cGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9oaWdoRFBJLXNpbXBsZS1o
YWlybGluZS1ib3JkZXItcGFpbnRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTQtMDItMjYgIFhhYmll
ciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBSZWdyZXNzaW9uIHdoZW4gc2hvd2luZyB0aGUgY2FwdGlvbnMgbWVudQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZ2hEUEktc2ltcGxlLWhhaXJsaW5lLWJvcmRlci1w
YWludGluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZ2hEUEkt
c2ltcGxlLWhhaXJsaW5lLWJvcmRlci1wYWludGluZy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUxZjhjZDQ5OWQ5OGE2YTQ1MmY1OWVlNDA1OWY3OTQ1MWVlYmI2OTIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvaGlnaERQSS1zaW1wbGUtaGFpcmxpbmUtYm9y
ZGVyLXBhaW50aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzx0aXRsZT5JdCB0ZXN0cyBpZiAwLjVweCBib3JkZXJzIGdldCBwYWludGVk
LjwvdGl0bGU+Cis8c3R5bGU+CisgIGRpdiB7CisJd2lkdGg6IDQ5cHg7CisJaGVpZ2h0OiA0OXB4
OworCWJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworICB9Cis8L3N0eWxlPgorPGJvZHk+CisJPGRp
dj48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9o
aWdoRFBJLXNpbXBsZS1oYWlybGluZS1ib3JkZXItcGFpbnRpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvYm9yZGVycy9oaWdoRFBJLXNpbXBsZS1oYWlybGluZS1ib3JkZXItcGFpbnRpbmcuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wZTMzZDUxYTc4MmUyYWJiMjdhMDEyMzJjNGFkNzliYzU2MDdhZTgwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZ2hEUEktc2ltcGxl
LWhhaXJsaW5lLWJvcmRlci1wYWludGluZy5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8dGl0bGU+SXQgdGVzdHMgaWYgMC41cHggYm9yZGVycyBnZXQgcGFp
bnRlZC48L3RpdGxlPgorPHN0eWxlPgorLm91dGVyIHsKKwl3aWR0aDogNTBweDsKKwloZWlnaHQ6
IDUwcHg7CisJYm9yZGVyOiAwLjVweCBzb2xpZCBncmVlbjsKK30KKy5pbm5lciB7CisJd2lkdGg6
IDQ5cHg7CisJaGVpZ2h0OiA0OXB4OworCWJvcmRlcjogMC41cHggc29saWQgZ3JlZW47Cit9Cis8
L3N0eWxlPgorPGJvZHk+CisJPGRpdiBjbGFzcz0ib3V0ZXIiPjxkaXYgY2xhc3M9ImlubmVyIj48
L2Rpdj48L2Rpdj4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225419</attachid>
            <date>2014-02-27 15:12:39 -0800</date>
            <delta_ts>2014-02-28 11:32:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129438-20140227151244.patch</filename>
            <type>text/plain</type>
            <size>14907</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NzE2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmZjMDFjODQxMzFmZmY0MjE2ZmI0MmQ2ZDUwZWY5Nzc4
YmNlNmFhNy4uZWI3NjE5NmRlYThjYWJiNjM4ZTFhNDQ5MjE3MWI1NTkyOGY2Mjg0NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMx
IEBACisyMDE0LTAyLTI3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIGhpRFBJIHN1cHBvcnQgdG8gRHVtcFJlbmRlclRyZWUvV2ViS2l0VGVzdFJ1bm5lciB3
aXRob3V0IHRoZSBuZWVkIG9mIHJlbG9hZGluZyB0aGUgdGVzdCBjYXNlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgJ2hpZHBpLScgcHJlZml4ZWQgdGVz
dCBjYXNlcyBub3cgdHJpZ2dlciAyeCBzY2FsZSBmYWN0b3Igb24gdGhlIHRlc3RpbmcKKyAgICAg
ICAgb2Zmc2NyZWVuIHdpbmRvdy4gSXQgbWFrZXMgdGVzdGluZyBzdWJwaXhlbCByZW5kZXJpbmcg
YW5kIHBvc2l0aW9uaW5nIHBvc3NpYmxlLgorCisgICAgICAgIEJvdGggdGhlIG9mZnNjcmVlbiB3
aW5kb3cncyBhbmQgV2ViS2l0J3Mgc2NhbGluZyBhcmUgc2V0IGFjY29yZGluZ2x5LgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoY3Jl
YXRlV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdyk6IHVucmVsYXRlZCBjbGVhbnVwLgorICAgICAg
ICAoZGVzdHJveVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3cpOiB1bnJlbGF0ZWQgY2xlYW51cC4K
KyAgICAgICAgKGR1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKGNoYW5nZU9mZnNjcmVlbldpbmRv
d1NjYWxlSWZOZWVkZWQpOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tOgorICAgICAgICAoLVtEdW1wUmVuZGVyVHJl
ZVdpbmRvdyBpbml0V2l0aENvbnRlbnRSZWN0OnN0eWxlTWFzazpiYWNraW5nOmRlZmVyOl0pOiBj
bGVhbnVwLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChX
VFI6OmNoYW5nZU9mZnNjcmVlbldpbmRvd1NjYWxlSWZOZWVkZWQpOgorICAgICAgICAoV1RSOjpU
ZXN0SW52b2NhdGlvbjo6aW52b2tlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9Q
bGF0Zm9ybVdlYlZpZXdNYWMubW06CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6Y2hh
bmdlT2Zmc2NyZWVuV2luZG93U2NhbGVJZk5lZWRlZCk6CisKIDIwMTQtMDItMjYgIE1hbnVlbCBS
ZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmUtZW5h
YmxlIGd0ay1kb2MgaW4gRVdTCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KaW5kZXggODE2ZTc2ZTg3MzRiNjg1MzM1NWRlNzg0MTgzZjU4YmUwODk2YzFhOS4uOWIy
ZTA1OTdjMDQ2MDM3ZTlhNTAzYzE3NmY2YTg4OTZkODc5NzkyZSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtOTAsNiArOTAsNyBAQAogI2ltcG9ydCA8
d3RmL1RocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL09iamNSdW50aW1lRXh0cmFzLmg+CiAjaW1w
b3J0IDx3dGYvT3duUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lm
ICFQTEFURk9STShJT1MpCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CkBAIC03NzEsMTAgKzc3
MiwzNiBAQCBXZWJWaWV3ICpjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KCkKICAgICAg
ICAgW3VpV2luZG93IHJldGFpbl07CiAgICAgfQogI2VuZGlmCisgICAgbWFpbkZyYW1lID0gW3dl
YlZpZXcgbWFpbkZyYW1lXTsKIAogICAgIHJldHVybiB3ZWJWaWV3OwogfQogCitzdGF0aWMgdm9p
ZCBkZXN0cm95V2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdygpCit7CisgICAgV2ViVmlldyAqd2Vi
VmlldyA9IFttYWluRnJhbWUgd2ViVmlld107CisKKyAgICBbd2ViVmlldyBjbG9zZV07CisgICAg
bWFpbkZyYW1lID0gbmlsOworCisjaWYgIVBMQVRGT1JNKElPUykKKyAgICBOU1dpbmRvdyogd2lu
ZG93ID0gW3dlYlZpZXcgd2luZG93XTsKKyAgICAvLyBXb3JrIGFyb3VuZCBwcm9ibGVtIHdoZXJl
IHJlZ2lzdGVyaW5nIGRyYWcgdHlwZXMgbGVhdmVzIGFuIG91dHN0YW5kaW5nCisgICAgLy8gInBl
cmZvcm0gc2VsZWN0b3IiIG9uIHRoZSB3aW5kb3csIHdoaWNoIHJldGFpbnMgdGhlIHdpbmRvdy4g
SXQncyBhIGJpdAorICAgIC8vIGluZWxlZ2FudCBhbmQgcGVyaGFwcyBkYW5nZXJvdXMgdG8ganVz
dCBibG93IHRoZW0gYWxsIGF3YXksIGJ1dCBpbiBwcmFjdGljZQorICAgIC8vIGl0IHByb2JhYmx5
IHdvbid0IGNhdXNlIGFueSB0cm91YmxlIChhbmQgdGhpcyBpcyBqdXN0IGEgdGVzdCB0b29sLCBh
ZnRlciBhbGwpLgorICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1SZXF1ZXN0c1dp
dGhUYXJnZXQ6d2luZG93XTsKKworICAgIFt3aW5kb3cgY2xvc2VdOyAvLyByZWxlYXNlcyB3aGVu
IGNsb3NlZAorI2Vsc2UKKyAgICBVSVdpbmRvdyAqdWlXaW5kb3cgPSBbZ1dlYkJyb3dzZXJWaWV3
IHdpbmRvd107CisgICAgW3VpV2luZG93IHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgIFt1aVdp
bmRvdyByZWxlYXNlXTsKKyNlbmRpZgorCisgICAgW3dlYlZpZXcgcmVsZWFzZV07Cit9CisKIHN0
YXRpYyBOU1N0cmluZyAqbGlicmFyeVBhdGhGb3JEdW1wUmVuZGVyVHJlZSgpCiB7CiAgICAgLy9G
SVhNRTogVGhpcyBtYXkgbm90IGJlIHN1ZmZpY2llbnQgdG8gcHJldmVudCBpbnRlcmFjdGlvbnMv
Y3Jhc2hlcwpAQCAtMTEyMSw4ICsxMTQ4LDcgQEAgdm9pZCBkdW1wUmVuZGVyVHJlZShpbnQgYXJn
YywgY29uc3QgY2hhciAqYXJndltdKQogICAgIFtOU1NvdW5kIF9zZXRBbGVydFR5cGU6MF07CiAj
ZW5kaWYKIAotICAgIFdlYlZpZXcgKndlYlZpZXcgPSBjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVu
V2luZG93KCk7Ci0gICAgbWFpbkZyYW1lID0gW3dlYlZpZXcgbWFpbkZyYW1lXTsKKyAgICBjcmVh
dGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KCk7CiAKICAgICBbW05TVVJMQ2FjaGUgc2hhcmVk
VVJMQ2FjaGVdIHJlbW92ZUFsbENhY2hlZFJlc3BvbnNlc107CiAgICAgW1dlYkNhY2hlIGVtcHR5
XTsKQEAgLTExNDgsMjcgKzExNzQsNyBAQCB2b2lkIGR1bXBSZW5kZXJUcmVlKGludCBhcmdjLCBj
b25zdCBjaGFyICphcmd2W10pCiAgICAgaWYgKHRocmVhZGVkKQogICAgICAgICBzdG9wSmF2YVNj
cmlwdFRocmVhZHMoKTsKIAotI2lmICFQTEFURk9STShJT1MpCi0gICAgTlNXaW5kb3cgKndpbmRv
dyA9IFt3ZWJWaWV3IHdpbmRvd107Ci0jZW5kaWYKLSAgICBbd2ViVmlldyBjbG9zZV07Ci0gICAg
bWFpbkZyYW1lID0gbmlsOwotCi0jaWYgIVBMQVRGT1JNKElPUykKLSAgICAvLyBXb3JrIGFyb3Vu
ZCBwcm9ibGVtIHdoZXJlIHJlZ2lzdGVyaW5nIGRyYWcgdHlwZXMgbGVhdmVzIGFuIG91dHN0YW5k
aW5nCi0gICAgLy8gInBlcmZvcm0gc2VsZWN0b3IiIG9uIHRoZSB3aW5kb3csIHdoaWNoIHJldGFp
bnMgdGhlIHdpbmRvdy4gSXQncyBhIGJpdAotICAgIC8vIGluZWxlZ2FudCBhbmQgcGVyaGFwcyBk
YW5nZXJvdXMgdG8ganVzdCBibG93IHRoZW0gYWxsIGF3YXksIGJ1dCBpbiBwcmFjdGljZQotICAg
IC8vIGl0IHByb2JhYmx5IHdvbid0IGNhdXNlIGFueSB0cm91YmxlIChhbmQgdGhpcyBpcyBqdXN0
IGEgdGVzdCB0b29sLCBhZnRlciBhbGwpLgotICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1Bl
cmZvcm1SZXF1ZXN0c1dpdGhUYXJnZXQ6d2luZG93XTsKLSAgICAKLSAgICBbd2luZG93IGNsb3Nl
XTsgLy8gcmVsZWFzZXMgd2hlbiBjbG9zZWQKLSNlbHNlCi0gICAgVUlXaW5kb3cgKnVpV2luZG93
ID0gW2dXZWJCcm93c2VyVmlldyB3aW5kb3ddOwotICAgIFt1aVdpbmRvdyByZW1vdmVGcm9tU3Vw
ZXJ2aWV3XTsKLSAgICBbdWlXaW5kb3cgcmVsZWFzZV07Ci0jZW5kaWYKLQotICAgIFt3ZWJWaWV3
IHJlbGVhc2VdOworICAgIGRlc3Ryb3lXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KCk7CiAgICAg
CiAgICAgcmVsZWFzZUdsb2JhbENvbnRyb2xsZXJzKCk7CiAgICAgCkBAIC0xNDM3LDYgKzE0NDMs
MjAgQEAgc3RhdGljIHZvaWQgZHVtcEJhY2tGb3J3YXJkTGlzdEZvcldlYlZpZXcoV2ViVmlldyAq
dmlldykKICAgICBwcmludGYoIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09XG4iKTsKIH0KIAorc3RhdGljIHZvaWQgY2hhbmdlV2luZG93U2NhbGVJZk5lZWRl
ZChjb25zdCBjaGFyKiB0ZXN0UGF0aE9yVVIpCit7CisgICAgYm9vbCBoYXNIaWdoRFBJV2luZG93
ID0gW1tbbWFpbkZyYW1lIHdlYlZpZXddIHdpbmRvd10gYmFja2luZ1NjYWxlRmFjdG9yXSAhPSAx
OworICAgIFdURjo6U3RyaW5nIGxvY2FsUGF0aE9yVXJsID0gU3RyaW5nKHRlc3RQYXRoT3JVUik7
CisgICAgYm9vbCBuZWVkc0hpZ2hEUElXaW5kb3cgPSBsb2NhbFBhdGhPclVybC5maW5kSWdub3Jp
bmdDYXNlKCJoaWRwaS0iKSAhPSBub3RGb3VuZDsKKyAgICBpZiAoaGFzSGlnaERQSVdpbmRvdyA9
PSBuZWVkc0hpZ2hEUElXaW5kb3cpCisgICAgICAgIHJldHVybjsKKworICAgIENHRmxvYXQgbmV3
U2NhbGVGYWN0b3IgPSBuZWVkc0hpZ2hEUElXaW5kb3cgPyAyIDogMTsKKyAgICAvLyBXaGVuIHRo
ZSBuZXcgc2NhbGUgZmFjdG9yIGlzIHNldCBvbiB0aGUgd2luZG93IGZpcnN0LCBXZWJWaWV3IGRv
ZXNuJ3Qgc2VlIGl0IGFzIGEgbmV3IHNjYWxlIGFuZCBzdG9wcyBwcm9wYWdhdGluZyB0aGUgYmVo
YXZpb3IgY2hhbmdlIHRvIFdlYkNvcmU6OlBhZ2UuCisgICAgZ1Rlc3RSdW5uZXItPnNldEJhY2tp
bmdTY2FsZUZhY3RvcihuZXdTY2FsZUZhY3Rvcik7CisgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXdd
IHdpbmRvd10gX3NldFdpbmRvd1Jlc29sdXRpb246bmV3U2NhbGVGYWN0b3IgZGlzcGxheUlmQ2hh
bmdlZDpZRVNdOworfQorCiBzdGF0aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KCkK
IHsKICAgICAvLyBXM0MgU1ZHIHRlc3RzIGV4cGVjdCB0byBiZSA0ODB4MzYwCkBAIC0xNzM4LDgg
KzE3NTgsMTAgQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNvbnN0IHN0cmluZyB0ZXN0VVJMKFtbdXJs
IGFic29sdXRlU3RyaW5nXSBVVEY4U3RyaW5nXSk7CisgICAgY29uc3QgY2hhciogdGVzdFVSTChb
W3VybCBhYnNvbHV0ZVN0cmluZ10gVVRGOFN0cmluZ10pOwogICAgIAorICAgIGNoYW5nZVdpbmRv
d1NjYWxlSWZOZWVkZWQodGVzdFVSTCk7CisKICAgICByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRT
dGF0ZUJlZm9yZVRlc3RpbmcoKTsKIAogICAgIGdUZXN0UnVubmVyID0gVGVzdFJ1bm5lcjo6Y3Jl
YXRlKHRlc3RVUkwsIGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93LmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cuaAppbmRleCA4OWM5NzljOGMxM2M0
NTg5MzZmMmYxMTQ1OTM2Zjg2YzczNmUxYWE5Li5hOTFiMDM5MTkzNDE0YTZlNDYxZGU3MTEzYjIx
OTAwNmJhMGEwN2M4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWVXaW5kb3cuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWVXaW5kb3cuaApAQCAtMzgsNiArMzgsMTIgQEAKIAogQGNsYXNzIFdlYlZpZXc7CiAKK0Bp
bnRlcmZhY2UgTlNXaW5kb3cgKERldGFpbHMpCisKKy0gKHZvaWQpX3NldFdpbmRvd1Jlc29sdXRp
b246KENHRmxvYXQpcmVzb2x1dGlvbiBkaXNwbGF5SWZDaGFuZ2VkOihCT09MKWRpc3BsYXlJZkNo
YW5nZWQ7CisKK0BlbmQKKwogQGludGVyZmFjZSBEdW1wUmVuZGVyVHJlZVdpbmRvdyA6IE5TV2lu
ZG93CiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWVXaW5kb3cubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVX
aW5kb3cubW0KaW5kZXggMmVjZTljOTkxY2Y1Mjg0ZWNiNDI3Yjc1MGNjMzA0MjYyOTdmZjllMS4u
MTM3ODJhOWE0MTk4MDhjYzE5NDgxMTVhOTQzMWM4OTZhOWNkN2I0MCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZVdpbmRvdy5tbQpAQCAtNzQsOCArNzQs
OSBAQCBzdGF0aWMgQ0ZBcnJheUNhbGxCYWNrcyBOb25SZXRhaW5pbmdBcnJheUNhbGxiYWNrcyA9
IHsKICNpZiAhUExBVEZPUk0oSU9TKQogLSAoaWQpaW5pdFdpdGhDb250ZW50UmVjdDooTlNSZWN0
KWNvbnRlbnRSZWN0IHN0eWxlTWFzazooTlNVSW50ZWdlcilzdHlsZU1hc2sgYmFja2luZzooTlNC
YWNraW5nU3RvcmVUeXBlKWJ1ZmZlcmluZ1R5cGUgZGVmZXI6KEJPT0wpZGVmZXJDcmVhdGlvbgog
ewotICAgIFtzZWxmIF9hZGRUb09wZW5XaW5kb3dzXTsKLSAgICByZXR1cm4gW3N1cGVyIGluaXRX
aXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOmJ1
ZmZlcmluZ1R5cGUgZGVmZXI6ZGVmZXJDcmVhdGlvbl07CisgICAgaWYgKChzZWxmID0gW3N1cGVy
IGluaXRXaXRoQ29udGVudFJlY3Q6Y29udGVudFJlY3Qgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNr
aW5nOmJ1ZmZlcmluZ1R5cGUgZGVmZXI6ZGVmZXJDcmVhdGlvbl0pKQorICAgICAgICBbc2VsZiBf
YWRkVG9PcGVuV2luZG93c107CisgICAgcmV0dXJuIHNlbGY7CiB9CiAjZWxzZQogLSAoaWQpaW5p
dFdpdGhMYXllcjooQ0FMYXllciAqKWxheWVyCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bVdlYlZpZXcuaAppbmRleCBkYjk3YjY0Y2EzNmQxZGNiNjA4ZTA1OTU4YjBlNzYyYzY0Zjg0Nzdi
Li44M2Q5NTIxNTdhMmQ4YmU1MTQyODNlMGZmZTEzOGYwZDYxMTBjZGQzIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTg5LDYgKzg5LDggQEAgcHVibGljOgog
ICAgIFdLUmV0YWluUHRyPFdLSW1hZ2VSZWY+IHdpbmRvd1NuYXBzaG90SW1hZ2UoKTsKICAgICBX
S0RpY3Rpb25hcnlSZWYgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5nZXQoKTsg
fQogCisgICAgdm9pZCBjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0IG5ld1NjYWxlKTsK
KwogcHJpdmF0ZToKICAgICBQbGF0Zm9ybVdLVmlldyBtX3ZpZXc7CiAgICAgUGxhdGZvcm1XaW5k
b3cgbV93aW5kb3c7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmlu
ZGV4IGYxZGRjMGVlYjk5MjZlYjgzNzg5ZjExODBlOTA1YmU1NDFmNjU4MmQuLmY3NmJjODVhZmM1
ZjExNzVhN2Y5MzgzNmZjMzYwODJmODY1ZDFlNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCkBAIC0xMjcsNiArMTI3LDEzIEBAIHN0YXRpYyB2b2lkIHNpemVX
ZWJWaWV3Rm9yQ3VycmVudFRlc3QoY29uc3QgY2hhciogcGF0aE9yVVJMKQogICAgICAgICBUZXN0
Q29udHJvbGxlcjo6c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+cmVzaXplVG8oVGVzdENvbnRyb2xs
ZXI6OnZpZXdXaWR0aCwgVGVzdENvbnRyb2xsZXI6OnZpZXdIZWlnaHQpOwogfQogCitzdGF0aWMg
dm9pZCBjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGNvbnN0IGNoYXIqIHBhdGhPclVSTCkKK3sK
KyAgICBXVEY6OlN0cmluZyBsb2NhbFBhdGhPclVybCA9IFN0cmluZyhwYXRoT3JVUkwpOworICAg
IGJvb2wgbmVlZHNIaWdoRFBJV2luZG93ID0gbG9jYWxQYXRoT3JVcmwuZmluZElnbm9yaW5nQ2Fz
ZSgiaGlkcGktIikgIT0gbm90Rm91bmQ7CisgICAgVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1h
aW5XZWJWaWV3KCktPmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQobmVlZHNIaWdoRFBJV2luZG93
ID8gMiA6IDEpOworfQorCiBzdGF0aWMgYm9vbCBzaG91bGRMb2dGcmFtZUxvYWREZWxlZ2F0ZXMo
Y29uc3QgY2hhciogcGF0aE9yVVJMKQogewogICAgIHJldHVybiBzdHJzdHIocGF0aE9yVVJMLCAi
bG9hZGluZy8iKTsKQEAgLTE5Myw2ICsyMDAsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVMYXlvdXRU
eXBlKGNvbnN0IGNoYXIqIHBhdGhPclVSTCkKIHZvaWQgVGVzdEludm9jYXRpb246Omludm9rZSgp
CiB7CiAgICAgVGVzdENvbnRyb2xsZXI6OlRpbWVvdXREdXJhdGlvbiB0aW1lb3V0VG9Vc2UgPSBU
ZXN0Q29udHJvbGxlcjo6TG9uZ1RpbWVvdXQ7CisgICAgY2hhbmdlV2luZG93U2NhbGVJZk5lZWRl
ZChtX3BhdGhPclVSTC5jX3N0cigpKTsKICAgICBzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KG1f
cGF0aE9yVVJMLmNfc3RyKCkpOwogICAgIHVwZGF0ZUxheW91dFR5cGUobV9wYXRoT3JVUkwuY19z
dHIoKSk7CiAgICAgdXBkYXRlVGhyZWFkZWRTY3JvbGxpbmdGb3JDdXJyZW50VGVzdChtX3BhdGhP
clVSTC5jX3N0cigpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1Bs
YXRmb3JtV2ViVmlld0VmbC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9y
bVdlYlZpZXdFZmwuY3BwCmluZGV4IDYwZjUzODIwYjk4NjVhMzE4MzI5YmNlOGZiMjRjYTA2NzRm
YjNiYTcuLjg0NmU0YjczZjY3YTEzNGU0NGQ3NDAzZjc5YzUyNzhiOTcyYjdjNGIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3RWZsLmNwcApAQCAt
MTI3LDYgKzEyNywxMCBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6bWFrZVdlYlZpZXdGaXJzdFJl
c3BvbmRlcigpCiB7CiB9CiAKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpjaGFuZ2VXaW5kb3dTY2Fs
ZUlmTmVlZGVkKGZsb2F0KQoreworfQorCiBXS1JldGFpblB0cjxXS0ltYWdlUmVmPiBQbGF0Zm9y
bVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKQogewogICAgIGludCB3aWR0aDsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCmluZGV4
IGZkNmY4NDY2YjQ5NmExN2FkODVmNGQxZmQ1MzliMDI4ZTlhNDYzZGQuLjllN2M4NzYxMzg2YTlk
NTYyZjVlNjRlMDRmOTE1NmEzYzNmMjhkOTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcApAQCAtMTE0LDYgKzExNCwxMCBAQCB2b2lk
IFBsYXRmb3JtV2ViVmlldzo6bWFrZVdlYlZpZXdGaXJzdFJlc3BvbmRlcigpCiB7CiB9CiAKK3Zv
aWQgUGxhdGZvcm1XZWJWaWV3OjpjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0KQorewor
fQorCiBXS1JldGFpblB0cjxXS0ltYWdlUmVmPiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBz
aG90SW1hZ2UoKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdG8gY2FwdHVyZSBwaXhlbHMg
aW4gdGhlIFVJIHByb2Nlc3MsCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lv
cy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0
Zm9ybVdlYlZpZXdJT1MubW0KaW5kZXggNWE2NzUyNzU5YTdlZjM5MmU0Mzg3ZjRjMzAzNjllYTMz
ZTk0NTYzMC4uMDI5ZjdhNGQ0NjEyNTBmZjk4MTViMDk1M2NiYWJiNmQ2YmFmNTZlMCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAt
MjA3LDYgKzIwNywxMSBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6bWFrZVdlYlZpZXdGaXJzdFJl
c3BvbmRlcigpCiAvLyAgICBbbV93aW5kb3cgbWFrZUZpcnN0UmVzcG9uZGVyOm1fdmlld107CiB9
CiAKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0
KQoreworICAgIC8vIFJldGluYSBvbmx5IHN1cmZhY2UuCit9CisKIFdLUmV0YWluUHRyPFdLSW1h
Z2VSZWY+IFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJbWFnZSgpCiB7CiAgICAgcmV0
dXJuIDA7IC8vIEZJWE1FIGZvciBpT1M/CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXggYjZjNTNhMmUxOGQ5NjI1Njc4OTlhYzYzYzQ5
ZmExZmExNTM3YjgwNi4uNmI3NzMxZGFhMDE5NmI2MTI5MDQwMmNhOWFhZWFlYTU1NWQwNmYyYSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFj
Lm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5t
bQpAQCAtMTA5LDYgKzEwOSwxMSBAQCBlbnVtIHsKICAgICBOU1JlY3QgY3VycmVudEZyYW1lID0g
W3NlbGYgZnJhbWVdOwogICAgIHJldHVybiBOU01ha2VSZWN0KF9mYWtlT3JpZ2luLngsIF9mYWtl
T3JpZ2luLnksIGN1cnJlbnRGcmFtZS5zaXplLndpZHRoLCBjdXJyZW50RnJhbWUuc2l6ZS5oZWln
aHQpOwogfQorQGVuZAorCitAaW50ZXJmYWNlIE5TV2luZG93IChEZXRhaWxzKQorCistICh2b2lk
KV9zZXRXaW5kb3dSZXNvbHV0aW9uOihDR0Zsb2F0KXJlc29sdXRpb24gZGlzcGxheUlmQ2hhbmdl
ZDooQk9PTClkaXNwbGF5SWZDaGFuZ2VkOwogCiBAZW5kCiAKQEAgLTI0Miw0ICsyNDcsMTYgQEAg
Ym9vbCBQbGF0Zm9ybVdlYlZpZXc6OnZpZXdTdXBwb3J0c09wdGlvbnMoV0tEaWN0aW9uYXJ5UmVm
IG9wdGlvbnMpIGNvbnN0CiAgICAgcmV0dXJuIHVzZVRocmVhZGVkU2Nyb2xsaW5nID09IFsoVGVz
dFJ1bm5lcldLVmlldyAqKW1fdmlldyB1c2VUaHJlYWRlZFNjcm9sbGluZ107CiB9CiAKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjpjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0IG5ld1NjYWxl
KQoreworICAgIENHRmxvYXQgY3VycmVudFNjYWxlID0gW21fd2luZG93IGJhY2tpbmdTY2FsZUZh
Y3Rvcl07CisgICAgaWYgKGN1cnJlbnRTY2FsZSA9PSBuZXdTY2FsZSkKKyAgICAgICAgcmV0dXJu
OworICAgIFttX3dpbmRvdyBfc2V0V2luZG93UmVzb2x1dGlvbjpuZXdTY2FsZSBkaXNwbGF5SWZD
aGFuZ2VkOllFU107CisgICAgLy8gQ2hhbmdpbmcgdGhlIHNjYWxpbmcgZmFjdG9yIG9uIHRoZSB3
aW5kb3cgZG9lcyBub3QgdHJpZ2dlciBOU1dpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVz
Tm90aWZpY2F0aW9uLiBXZSBuZWVkIHRvIHNlbmQgdGhlIG5vdGlmaWNhdGlvbiBtYW51YWxseS4K
KyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4gbm90aWZpY2F0aW9uVXNlckluZm8g
PSBbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6MV07CisgICAg
W25vdGlmaWNhdGlvblVzZXJJbmZvIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aERvdWJs
ZTpjdXJyZW50U2NhbGVdIGZvcktleTpOU0JhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5
XTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmlj
YXRpb25OYW1lOk5TV2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNOb3RpZmljYXRpb24g
b2JqZWN0Om1fd2luZG93IHVzZXJJbmZvOm5vdGlmaWNhdGlvblVzZXJJbmZvLmdldCgpXTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzBjZThmY2QzZjg4OTUxN2JiY2UyZjU0MTA0
MmU2NDY1YjZhODBhOC4uMDJmYzNmOTE2OWU5OWZkYzhkMjkzMWIzNjdmYTdjMjgyMDE0NjgwOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAyLTI3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIGhpRFBJIHN1cHBvcnQgdG8gRHVtcFJlbmRlclRyZWUv
V2ViS2l0VGVzdFJ1bm5lciB3aXRob3V0IHRoZSBuZWVkIG9mIHJlbG9hZGluZyB0aGUgdGVzdCBj
YXNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5
NDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgJ2hp
ZHBpLScgcHJlZml4ZWQgdGVzdCBjYXNlcyBub3cgdHJpZ2dlciAyeCBzY2FsZSBmYWN0b3Igb24g
dGhlIHRlc3RpbmcKKyAgICAgICAgb2Zmc2NyZWVuIHdpbmRvdy4gSXQgbWFrZXMgdGVzdGluZyBz
dWJwaXhlbCByZW5kZXJpbmcgYW5kIHBvc2l0aW9uaW5nIHBvc3NpYmxlLgorCisgICAgICAgIEJv
dGggdGhlIG9mZnNjcmVlbiB3aW5kb3cncyBhbmQgV2ViS2l0J3Mgc2NhbGluZyBhcmUgc2V0IGFj
Y29yZGluZ2x5LgorCisgICAgICAgICogZmFzdC9ib3JkZXJzL2hpZHBpLXNpbXBsZS1oYWlybGlu
ZS1ib3JkZXItcGFpbnRpbmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9i
b3JkZXJzL2hpZHBpLXNpbXBsZS1oYWlybGluZS1ib3JkZXItcGFpbnRpbmcuaHRtbDogQWRkZWQu
CisKIDIwMTQtMDItMjYgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBSZWdyZXNzaW9uIHdoZW4gc2hvd2luZyB0aGUgY2FwdGlv
bnMgbWVudQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLXNpbXBs
ZS1oYWlybGluZS1ib3JkZXItcGFpbnRpbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvYm9yZGVycy9oaWRwaS1zaW1wbGUtaGFpcmxpbmUtYm9yZGVyLXBhaW50aW5nLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTFmOGNkNDk5ZDk4YTZhNDUyZjU5ZWU0MDU5Zjc5NDUxZWViYjY5
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9oaWRwaS1zaW1w
bGUtaGFpcmxpbmUtYm9yZGVyLXBhaW50aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0aXRsZT5JdCB0ZXN0cyBpZiAwLjVweCBib3Jk
ZXJzIGdldCBwYWludGVkLjwvdGl0bGU+Cis8c3R5bGU+CisgIGRpdiB7CisJd2lkdGg6IDQ5cHg7
CisJaGVpZ2h0OiA0OXB4OworCWJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOworICB9Cis8L3N0eWxl
PgorPGJvZHk+CisJPGRpdj48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvYm9yZGVycy9oaWRwaS1zaW1wbGUtaGFpcmxpbmUtYm9yZGVyLXBhaW50aW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvaGlkcGktc2ltcGxlLWhhaXJsaW5lLWJvcmRlci1w
YWludGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMzNkNTFhNzgyZTJhYmIyN2EwMTIzMmM0YWQ3OWJj
NTYwN2FlODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvaGlk
cGktc2ltcGxlLWhhaXJsaW5lLWJvcmRlci1wYWludGluZy5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8dGl0bGU+SXQgdGVzdHMgaWYgMC41cHggYm9yZGVy
cyBnZXQgcGFpbnRlZC48L3RpdGxlPgorPHN0eWxlPgorLm91dGVyIHsKKwl3aWR0aDogNTBweDsK
KwloZWlnaHQ6IDUwcHg7CisJYm9yZGVyOiAwLjVweCBzb2xpZCBncmVlbjsKK30KKy5pbm5lciB7
CisJd2lkdGg6IDQ5cHg7CisJaGVpZ2h0OiA0OXB4OworCWJvcmRlcjogMC41cHggc29saWQgZ3Jl
ZW47Cit9Cis8L3N0eWxlPgorPGJvZHk+CisJPGRpdiBjbGFzcz0ib3V0ZXIiPjxkaXYgY2xhc3M9
ImlubmVyIj48L2Rpdj48L2Rpdj4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225478</attachid>
            <date>2014-02-28 11:32:02 -0800</date>
            <delta_ts>2014-02-28 13:37:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129438-20140228113205.patch</filename>
            <type>text/plain</type>
            <size>14936</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0ODYyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmE1ZTFmMzQzY2ZjM2M2NDYzNDdjMTdkZDIxZjllMGQy
NGIyYjI5ZS4uNDI2YmI5NWM2Mjg4ODM3YzkzYTkyNzFlNjZjZWI2NGU0ZGQyY2E0MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDE0LTAyLTI4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIGhpRFBJIHN1cHBvcnQgdG8gRHVtcFJlbmRlclRyZWUvV2ViS2l0VGVzdFJ1bm5lciB3
aXRob3V0IHRoZSBuZWVkIG9mIHJlbG9hZGluZyB0aGUgdGVzdCBjYXNlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NDM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICdoaWRwaS0nIHByZWZpeGVkIHRlc3Qg
Y2FzZXMgbm93IHRyaWdnZXIgMnggc2NhbGUgZmFjdG9yIG9uIHRoZSB0ZXN0aW5nCisgICAgICAg
IG9mZnNjcmVlbiB3aW5kb3cuIEl0IG1ha2VzIHRlc3Rpbmcgc3VicGl4ZWwgcmVuZGVyaW5nIGFu
ZCBwb3NpdGlvbmluZyBwb3NzaWJsZS4KKworICAgICAgICBCb3RoIHRoZSBvZmZzY3JlZW4gd2lu
ZG93J3MgYW5kIFdlYktpdCdzIHNjYWxpbmcgYXJlIHNldCBhY2NvcmRpbmdseS4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKGNyZWF0
ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3cpOiBjbGVhbnVwCisgICAgICAgIChkZXN0cm95V2Vi
Vmlld0FuZE9mZnNjcmVlbldpbmRvdyk6IGNsZWFudXAKKyAgICAgICAgKGR1bXBSZW5kZXJUcmVl
KToKKyAgICAgICAgKGNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQpOgorICAgICAgICAocnVuVGVz
dCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tOgor
ICAgICAgICAoLVtEdW1wUmVuZGVyVHJlZVdpbmRvdyBpbml0V2l0aENvbnRlbnRSZWN0OnN0eWxl
TWFzazpiYWNraW5nOmRlZmVyOl0pOiBjbGVhbnVwCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6Y2hhbmdlV2luZG93U2NhbGVJZk5lZWRlZCk6Cisg
ICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjppbnZva2UpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHA6CisgICAgICAgIChXVFI6OlBsYXRm
b3JtV2ViVmlldzo6Y2hhbmdlV2luZG93U2NhbGVJZk5lZWRlZCk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcDoKKyAgICAgICAgKFdUUjo6UGxh
dGZvcm1XZWJWaWV3OjpjaGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW06CisgICAgICAgIChXVFI6OlBs
YXRmb3JtV2ViVmlldzo6Y2hhbmdlV2luZG93U2NhbGVJZk5lZWRlZCk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tOgorICAgICAgICAoV1RSOjpQ
bGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQpOgorCiAyMDE0LTAyLTI4
ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTY0ODU5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tCmluZGV4IGE0NjJkNjUyNGM5ZGVkNTA5Nzk2MWZmOWU4ODUzZjMwODk3
YjQ4Y2IuLjg2NTViZDRmN2Y2MzNlMjQ5Y2Y0Yzk3OTdlMmQ1ZWNjOGFhMzg4MGIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTkwLDYgKzkwLDcgQEAK
ICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbXBvcnQgPHd0Zi9PYmpjUnVudGltZUV4dHJh
cy5oPgogI2ltcG9ydCA8d3RmL093blB0ci5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKICNpZiAhUExBVEZPUk0oSU9TKQogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgpAQCAt
Nzc1LDYgKzc3NiwzMiBAQCBXZWJWaWV3ICpjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93
KCkKICAgICByZXR1cm4gd2ViVmlldzsKIH0KIAorc3RhdGljIHZvaWQgZGVzdHJveVdlYlZpZXdB
bmRPZmZzY3JlZW5XaW5kb3coKQoreworICAgIFdlYlZpZXcgKndlYlZpZXcgPSBbbWFpbkZyYW1l
IHdlYlZpZXddOworI2lmICFQTEFURk9STShJT1MpCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFt3
ZWJWaWV3IHdpbmRvd107CisjZW5kaWYKKyAgICBbd2ViVmlldyBjbG9zZV07CisgICAgbWFpbkZy
YW1lID0gbmlsOworCisjaWYgIVBMQVRGT1JNKElPUykKKyAgICAvLyBXb3JrIGFyb3VuZCBwcm9i
bGVtIHdoZXJlIHJlZ2lzdGVyaW5nIGRyYWcgdHlwZXMgbGVhdmVzIGFuIG91dHN0YW5kaW5nCisg
ICAgLy8gInBlcmZvcm0gc2VsZWN0b3IiIG9uIHRoZSB3aW5kb3csIHdoaWNoIHJldGFpbnMgdGhl
IHdpbmRvdy4gSXQncyBhIGJpdAorICAgIC8vIGluZWxlZ2FudCBhbmQgcGVyaGFwcyBkYW5nZXJv
dXMgdG8ganVzdCBibG93IHRoZW0gYWxsIGF3YXksIGJ1dCBpbiBwcmFjdGljZQorICAgIC8vIGl0
IHByb2JhYmx5IHdvbid0IGNhdXNlIGFueSB0cm91YmxlIChhbmQgdGhpcyBpcyBqdXN0IGEgdGVz
dCB0b29sLCBhZnRlciBhbGwpLgorICAgIFtOU09iamVjdCBjYW5jZWxQcmV2aW91c1BlcmZvcm1S
ZXF1ZXN0c1dpdGhUYXJnZXQ6d2luZG93XTsKKworICAgIFt3aW5kb3cgY2xvc2VdOyAvLyByZWxl
YXNlcyB3aGVuIGNsb3NlZAorI2Vsc2UKKyAgICBVSVdpbmRvdyAqdWlXaW5kb3cgPSBbZ1dlYkJy
b3dzZXJWaWV3IHdpbmRvd107CisgICAgW3VpV2luZG93IHJlbW92ZUZyb21TdXBlcnZpZXddOwor
ICAgIFt1aVdpbmRvdyByZWxlYXNlXTsKKyNlbmRpZgorCisgICAgW3dlYlZpZXcgcmVsZWFzZV07
Cit9CisKIHN0YXRpYyBOU1N0cmluZyAqbGlicmFyeVBhdGhGb3JEdW1wUmVuZGVyVHJlZSgpCiB7
CiAgICAgLy9GSVhNRTogVGhpcyBtYXkgbm90IGJlIHN1ZmZpY2llbnQgdG8gcHJldmVudCBpbnRl
cmFjdGlvbnMvY3Jhc2hlcwpAQCAtMTE0OCwyNyArMTE3NSw3IEBAIHZvaWQgZHVtcFJlbmRlclRy
ZWUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKICAgICBpZiAodGhyZWFkZWQpCiAgICAg
ICAgIHN0b3BKYXZhU2NyaXB0VGhyZWFkcygpOwogCi0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBO
U1dpbmRvdyAqd2luZG93ID0gW3dlYlZpZXcgd2luZG93XTsKLSNlbmRpZgotICAgIFt3ZWJWaWV3
IGNsb3NlXTsKLSAgICBtYWluRnJhbWUgPSBuaWw7Ci0KLSNpZiAhUExBVEZPUk0oSU9TKQotICAg
IC8vIFdvcmsgYXJvdW5kIHByb2JsZW0gd2hlcmUgcmVnaXN0ZXJpbmcgZHJhZyB0eXBlcyBsZWF2
ZXMgYW4gb3V0c3RhbmRpbmcKLSAgICAvLyAicGVyZm9ybSBzZWxlY3RvciIgb24gdGhlIHdpbmRv
dywgd2hpY2ggcmV0YWlucyB0aGUgd2luZG93LiBJdCdzIGEgYml0Ci0gICAgLy8gaW5lbGVnYW50
IGFuZCBwZXJoYXBzIGRhbmdlcm91cyB0byBqdXN0IGJsb3cgdGhlbSBhbGwgYXdheSwgYnV0IGlu
IHByYWN0aWNlCi0gICAgLy8gaXQgcHJvYmFibHkgd29uJ3QgY2F1c2UgYW55IHRyb3VibGUgKGFu
ZCB0aGlzIGlzIGp1c3QgYSB0ZXN0IHRvb2wsIGFmdGVyIGFsbCkuCi0gICAgW05TT2JqZWN0IGNh
bmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDp3aW5kb3ddOwotICAgIAotICAg
IFt3aW5kb3cgY2xvc2VdOyAvLyByZWxlYXNlcyB3aGVuIGNsb3NlZAotI2Vsc2UKLSAgICBVSVdp
bmRvdyAqdWlXaW5kb3cgPSBbZ1dlYkJyb3dzZXJWaWV3IHdpbmRvd107Ci0gICAgW3VpV2luZG93
IHJlbW92ZUZyb21TdXBlcnZpZXddOwotICAgIFt1aVdpbmRvdyByZWxlYXNlXTsKLSNlbmRpZgot
Ci0gICAgW3dlYlZpZXcgcmVsZWFzZV07CisgICAgZGVzdHJveVdlYlZpZXdBbmRPZmZzY3JlZW5X
aW5kb3coKTsKICAgICAKICAgICByZWxlYXNlR2xvYmFsQ29udHJvbGxlcnMoKTsKICAgICAKQEAg
LTE0MzcsNiArMTQ0NCwyMiBAQCBzdGF0aWMgdm9pZCBkdW1wQmFja0ZvcndhcmRMaXN0Rm9yV2Vi
VmlldyhXZWJWaWV3ICp2aWV3KQogICAgIHByaW50ZigiPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT1cbiIpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3N0
YXRpYyB2b2lkIGNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoY29uc3QgY2hhciogdGVzdFBhdGhP
clVSKQoreworICAgIGJvb2wgaGFzSGlnaERQSVdpbmRvdyA9IFtbW21haW5GcmFtZSB3ZWJWaWV3
XSB3aW5kb3ddIGJhY2tpbmdTY2FsZUZhY3Rvcl0gIT0gMTsKKyAgICBXVEY6OlN0cmluZyBsb2Nh
bFBhdGhPclVybCA9IFN0cmluZyh0ZXN0UGF0aE9yVVIpOworICAgIGJvb2wgbmVlZHNIaWdoRFBJ
V2luZG93ID0gbG9jYWxQYXRoT3JVcmwuZmluZElnbm9yaW5nQ2FzZSgiaGlkcGktIikgIT0gbm90
Rm91bmQ7CisgICAgaWYgKGhhc0hpZ2hEUElXaW5kb3cgPT0gbmVlZHNIaWdoRFBJV2luZG93KQor
ICAgICAgICByZXR1cm47CisKKyAgICBDR0Zsb2F0IG5ld1NjYWxlRmFjdG9yID0gbmVlZHNIaWdo
RFBJV2luZG93ID8gMiA6IDE7CisgICAgLy8gV2hlbiB0aGUgbmV3IHNjYWxlIGZhY3RvciBpcyBz
ZXQgb24gdGhlIHdpbmRvdyBmaXJzdCwgV2ViVmlldyBkb2Vzbid0IHNlZSBpdCBhcyBhIG5ldyBz
Y2FsZSBhbmQgc3RvcHMgcHJvcGFnYXRpbmcgdGhlIGJlaGF2aW9yIGNoYW5nZSB0byBXZWJDb3Jl
OjpQYWdlLgorICAgIGdUZXN0UnVubmVyLT5zZXRCYWNraW5nU2NhbGVGYWN0b3IobmV3U2NhbGVG
YWN0b3IpOworICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSB3aW5kb3ddIF9zZXRXaW5kb3dSZXNv
bHV0aW9uOm5ld1NjYWxlRmFjdG9yIGRpc3BsYXlJZkNoYW5nZWQ6WUVTXTsKK30KKyNlbmRpZgor
CiBzdGF0aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KCkKIHsKICAgICAvLyBXM0Mg
U1ZHIHRlc3RzIGV4cGVjdCB0byBiZSA0ODB4MzYwCkBAIC0xNzMzLDggKzE3NTYsMTEgQEAgc3Rh
dGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGNvbnN0IHN0cmluZyB0ZXN0VVJMKFtbdXJsIGFic29sdXRlU3RyaW5n
XSBVVEY4U3RyaW5nXSk7CisgICAgY29uc3QgY2hhciogdGVzdFVSTChbW3VybCBhYnNvbHV0ZVN0
cmluZ10gVVRGOFN0cmluZ10pOwogICAgIAorI2lmICFQTEFURk9STShJT1MpCisgICAgY2hhbmdl
V2luZG93U2NhbGVJZk5lZWRlZCh0ZXN0VVJMKTsKKyNlbmRpZgogICAgIHJlc2V0V2ViVmlld1Rv
Q29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpOwogCiAgICAgZ1Rlc3RSdW5uZXIgPSBUZXN0
UnVubmVyOjpjcmVhdGUodGVzdFVSTCwgY29tbWFuZC5leHBlY3RlZFBpeGVsSGFzaCk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZVdpbmRvdy5oCmluZGV4IDg5
Yzk3OWM4YzEzYzQ1ODkzNmYyZjExNDU5MzZmODZjNzM2ZTFhYTkuLmE5MWIwMzkxOTM0MTRhNmU0
NjFkZTcxMTNiMjE5MDA2YmEwYTA3YzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZVdpbmRvdy5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZVdpbmRvdy5oCkBAIC0zOCw2ICszOCwxMiBAQAogCiBAY2xhc3MgV2Vi
VmlldzsKIAorQGludGVyZmFjZSBOU1dpbmRvdyAoRGV0YWlscykKKworLSAodm9pZClfc2V0V2lu
ZG93UmVzb2x1dGlvbjooQ0dGbG9hdClyZXNvbHV0aW9uIGRpc3BsYXlJZkNoYW5nZWQ6KEJPT0wp
ZGlzcGxheUlmQ2hhbmdlZDsKKworQGVuZAorCiBAaW50ZXJmYWNlIER1bXBSZW5kZXJUcmVlV2lu
ZG93IDogTlNXaW5kb3cKIHsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZVdpbmRvdy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZVdpbmRvdy5tbQppbmRleCAyZWNlOWM5OTFjZjUyODRlY2I0MjdiNzUwY2MzMDQy
NjI5N2ZmOWUxLi4xMzc4MmE5YTQxOTgwOGNjMTk0ODExNWE5NDMxYzg5NmE5Y2Q3YjQwIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVXaW5kb3cubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlV2luZG93Lm1tCkBA
IC03NCw4ICs3NCw5IEBAIHN0YXRpYyBDRkFycmF5Q2FsbEJhY2tzIE5vblJldGFpbmluZ0FycmF5
Q2FsbGJhY2tzID0gewogI2lmICFQTEFURk9STShJT1MpCiAtIChpZClpbml0V2l0aENvbnRlbnRS
ZWN0OihOU1JlY3QpY29udGVudFJlY3Qgc3R5bGVNYXNrOihOU1VJbnRlZ2VyKXN0eWxlTWFzayBi
YWNraW5nOihOU0JhY2tpbmdTdG9yZVR5cGUpYnVmZmVyaW5nVHlwZSBkZWZlcjooQk9PTClkZWZl
ckNyZWF0aW9uCiB7Ci0gICAgW3NlbGYgX2FkZFRvT3BlbldpbmRvd3NdOwotICAgIHJldHVybiBb
c3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6c3R5bGVNYXNr
IGJhY2tpbmc6YnVmZmVyaW5nVHlwZSBkZWZlcjpkZWZlckNyZWF0aW9uXTsKKyAgICBpZiAoKHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpjb250ZW50UmVjdCBzdHlsZU1hc2s6c3R5
bGVNYXNrIGJhY2tpbmc6YnVmZmVyaW5nVHlwZSBkZWZlcjpkZWZlckNyZWF0aW9uXSkpCisgICAg
ICAgIFtzZWxmIF9hZGRUb09wZW5XaW5kb3dzXTsKKyAgICByZXR1cm4gc2VsZjsKIH0KICNlbHNl
CiAtIChpZClpbml0V2l0aExheWVyOihDQUxheWVyICopbGF5ZXIKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IGRiOTdiNjRjYTM2ZDFkY2I2MDhlMDU5NThiMGU3
NjJjNjRmODQ3N2IuLjgzZDk1MjE1N2EyZDhiZTUxNDI4M2UwZmZlMTM4ZjBkNjExMGNkZDMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtODksNiArODksOCBA
QCBwdWJsaWM6CiAgICAgV0tSZXRhaW5QdHI8V0tJbWFnZVJlZj4gd2luZG93U25hcHNob3RJbWFn
ZSgpOwogICAgIFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRp
b25zLmdldCgpOyB9CiAKKyAgICB2b2lkIGNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoZmxvYXQg
bmV3U2NhbGUpOworCiBwcml2YXRlOgogICAgIFBsYXRmb3JtV0tWaWV3IG1fdmlldzsKICAgICBQ
bGF0Zm9ybVdpbmRvdyBtX3dpbmRvdzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKaW5kZXggZjFkZGMwZWViOTkyNmViODM3ODlmMTE4MGU5MDViZTU0MWY2NTgyZC4u
Zjc2YmM4NWFmYzVmMTE3NWE3ZjkzODM2ZmMzNjA4MmY4NjVkMWU0NSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEyNyw2ICsxMjcsMTMgQEAgc3RhdGlj
IHZvaWQgc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdChjb25zdCBjaGFyKiBwYXRoT3JVUkwpCiAg
ICAgICAgIFRlc3RDb250cm9sbGVyOjpzaGFyZWQoKS5tYWluV2ViVmlldygpLT5yZXNpemVUbyhU
ZXN0Q29udHJvbGxlcjo6dmlld1dpZHRoLCBUZXN0Q29udHJvbGxlcjo6dmlld0hlaWdodCk7CiB9
CiAKK3N0YXRpYyB2b2lkIGNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoY29uc3QgY2hhciogcGF0
aE9yVVJMKQoreworICAgIFdURjo6U3RyaW5nIGxvY2FsUGF0aE9yVXJsID0gU3RyaW5nKHBhdGhP
clVSTCk7CisgICAgYm9vbCBuZWVkc0hpZ2hEUElXaW5kb3cgPSBsb2NhbFBhdGhPclVybC5maW5k
SWdub3JpbmdDYXNlKCJoaWRwaS0iKSAhPSBub3RGb3VuZDsKKyAgICBUZXN0Q29udHJvbGxlcjo6
c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+Y2hhbmdlV2luZG93U2NhbGVJZk5lZWRlZChuZWVkc0hp
Z2hEUElXaW5kb3cgPyAyIDogMSk7Cit9CisKIHN0YXRpYyBib29sIHNob3VsZExvZ0ZyYW1lTG9h
ZERlbGVnYXRlcyhjb25zdCBjaGFyKiBwYXRoT3JVUkwpCiB7CiAgICAgcmV0dXJuIHN0cnN0cihw
YXRoT3JVUkwsICJsb2FkaW5nLyIpOwpAQCAtMTkzLDYgKzIwMCw3IEBAIHN0YXRpYyB2b2lkIHVw
ZGF0ZUxheW91dFR5cGUoY29uc3QgY2hhciogcGF0aE9yVVJMKQogdm9pZCBUZXN0SW52b2NhdGlv
bjo6aW52b2tlKCkKIHsKICAgICBUZXN0Q29udHJvbGxlcjo6VGltZW91dER1cmF0aW9uIHRpbWVv
dXRUb1VzZSA9IFRlc3RDb250cm9sbGVyOjpMb25nVGltZW91dDsKKyAgICBjaGFuZ2VXaW5kb3dT
Y2FsZUlmTmVlZGVkKG1fcGF0aE9yVVJMLmNfc3RyKCkpOwogICAgIHNpemVXZWJWaWV3Rm9yQ3Vy
cmVudFRlc3QobV9wYXRoT3JVUkwuY19zdHIoKSk7CiAgICAgdXBkYXRlTGF5b3V0VHlwZShtX3Bh
dGhPclVSTC5jX3N0cigpKTsKICAgICB1cGRhdGVUaHJlYWRlZFNjcm9sbGluZ0ZvckN1cnJlbnRU
ZXN0KG1fcGF0aE9yVVJMLmNfc3RyKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3RWZsLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
ZWZsL1BsYXRmb3JtV2ViVmlld0VmbC5jcHAKaW5kZXggNjBmNTM4MjBiOTg2NWEzMTgzMjliY2U4
ZmIyNGNhMDY3NGZiM2JhNy4uODQ2ZTRiNzNmNjdhMTM0ZTQ0ZDc0MDNmNzljNTI3OGI5NzJiN2M0
YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvUGxhdGZvcm1XZWJWaWV3
RWZsLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9QbGF0Zm9ybVdlYlZpZXdF
ZmwuY3BwCkBAIC0xMjcsNiArMTI3LDEwIEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjptYWtlV2Vi
Vmlld0ZpcnN0UmVzcG9uZGVyKCkKIHsKIH0KIAordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5n
ZVdpbmRvd1NjYWxlSWZOZWVkZWQoZmxvYXQpCit7Cit9CisKIFdLUmV0YWluUHRyPFdLSW1hZ2VS
ZWY+IFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJbWFnZSgpCiB7CiAgICAgaW50IHdp
ZHRoOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJW
aWV3R3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0
ay5jcHAKaW5kZXggZmQ2Zjg0NjZiNDk2YTE3YWQ4NWY0ZDFmZDUzOWIwMjhlOWE0NjNkZC4uOWU3
Yzg3NjEzODZhOWQ1NjJmNWU2NGUwNGY5MTU2YTNjM2YyOGQ5MyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCkBAIC0xMTQsNiArMTE0
LDEwIEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjptYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCkK
IHsKIH0KIAordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQo
ZmxvYXQpCit7Cit9CisKIFdLUmV0YWluUHRyPFdLSW1hZ2VSZWY+IFBsYXRmb3JtV2ViVmlldzo6
d2luZG93U25hcHNob3RJbWFnZSgpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0byBjYXB0
dXJlIHBpeGVscyBpbiB0aGUgVUkgcHJvY2VzcywKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQppbmRleCA1YTY3NTI3NTlhN2VmMzkyZTQzODdm
NGMzMDM2OWVhMzNlOTQ1NjMwLi4wMjlmN2E0ZDQ2MTI1MGZmOTgxNWIwOTUzY2JhYmI2ZDZiYWY1
NmUwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZp
ZXdJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3
SU9TLm1tCkBAIC0yMDcsNiArMjA3LDExIEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjptYWtlV2Vi
Vmlld0ZpcnN0UmVzcG9uZGVyKCkKIC8vICAgIFttX3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6
bV92aWV3XTsKIH0KIAordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZO
ZWVkZWQoZmxvYXQpCit7CisgICAgLy8gUmV0aW5hIG9ubHkgc3VyZmFjZS4KK30KKwogV0tSZXRh
aW5QdHI8V0tJbWFnZVJlZj4gUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkK
IHsKICAgICByZXR1cm4gMDsgLy8gRklYTUUgZm9yIGlPUz8KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQppbmRleCBiNmM1M2EyZTE4ZDk2MjU2
Nzg5OWFjNjNjNDlmYTFmYTE1MzdiODA2Li42Yjc3MzFkYWEwMTk2YjYxMjkwNDAyY2E5YWFlYWVh
NTU1ZDA2ZjJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9y
bVdlYlZpZXdNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1X
ZWJWaWV3TWFjLm1tCkBAIC0xMDksNiArMTA5LDExIEBAIGVudW0gewogICAgIE5TUmVjdCBjdXJy
ZW50RnJhbWUgPSBbc2VsZiBmcmFtZV07CiAgICAgcmV0dXJuIE5TTWFrZVJlY3QoX2Zha2VPcmln
aW4ueCwgX2Zha2VPcmlnaW4ueSwgY3VycmVudEZyYW1lLnNpemUud2lkdGgsIGN1cnJlbnRGcmFt
ZS5zaXplLmhlaWdodCk7CiB9CitAZW5kCisKK0BpbnRlcmZhY2UgTlNXaW5kb3cgKERldGFpbHMp
CisKKy0gKHZvaWQpX3NldFdpbmRvd1Jlc29sdXRpb246KENHRmxvYXQpcmVzb2x1dGlvbiBkaXNw
bGF5SWZDaGFuZ2VkOihCT09MKWRpc3BsYXlJZkNoYW5nZWQ7CiAKIEBlbmQKIApAQCAtMjQyLDQg
KzI0NywxNiBAQCBib29sIFBsYXRmb3JtV2ViVmlldzo6dmlld1N1cHBvcnRzT3B0aW9ucyhXS0Rp
Y3Rpb25hcnlSZWYgb3B0aW9ucykgY29uc3QKICAgICByZXR1cm4gdXNlVGhyZWFkZWRTY3JvbGxp
bmcgPT0gWyhUZXN0UnVubmVyV0tWaWV3ICopbV92aWV3IHVzZVRocmVhZGVkU2Nyb2xsaW5nXTsK
IH0KIAordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoZmxv
YXQgbmV3U2NhbGUpCit7CisgICAgQ0dGbG9hdCBjdXJyZW50U2NhbGUgPSBbbV93aW5kb3cgYmFj
a2luZ1NjYWxlRmFjdG9yXTsKKyAgICBpZiAoY3VycmVudFNjYWxlID09IG5ld1NjYWxlKQorICAg
ICAgICByZXR1cm47CisgICAgW21fd2luZG93IF9zZXRXaW5kb3dSZXNvbHV0aW9uOm5ld1NjYWxl
IGRpc3BsYXlJZkNoYW5nZWQ6WUVTXTsKKyAgICAvLyBDaGFuZ2luZyB0aGUgc2NhbGluZyBmYWN0
b3Igb24gdGhlIHdpbmRvdyBkb2VzIG5vdCB0cmlnZ2VyIE5TV2luZG93RGlkQ2hhbmdlQmFja2lu
Z1Byb3BlcnRpZXNOb3RpZmljYXRpb24uIFdlIG5lZWQgdG8gc2VuZCB0aGUgbm90aWZpY2F0aW9u
IG1hbnVhbGx5LgorICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBub3RpZmljYXRp
b25Vc2VySW5mbyA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0
eToxXTsKKyAgICBbbm90aWZpY2F0aW9uVXNlckluZm8gc2V0T2JqZWN0OltOU051bWJlciBudW1i
ZXJXaXRoRG91YmxlOmN1cnJlbnRTY2FsZV0gZm9yS2V5Ok5TQmFja2luZ1Byb3BlcnR5T2xkU2Nh
bGVGYWN0b3JLZXldOworICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
cG9zdE5vdGlmaWNhdGlvbk5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllc05v
dGlmaWNhdGlvbiBvYmplY3Q6bV93aW5kb3cgdXNlckluZm86bm90aWZpY2F0aW9uVXNlckluZm8u
Z2V0KCldOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYjI2NDhlNTE5Yzc0NjZj
ZjE4MWFjNjFkZDFjYWIzMmFiMjMwN2MxLi4zOTYxNzM2NTM0ZWViOWFjZTM3YWQ2ODA4MGJjYmEx
NDllODRiNTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDItMjggIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgaGlEUEkgc3VwcG9ydCB0byBEdW1w
UmVuZGVyVHJlZS9XZWJLaXRUZXN0UnVubmVyIHdpdGhvdXQgdGhlIG5lZWQgb2YgcmVsb2FkaW5n
IHRoZSB0ZXN0IGNhc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjk0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgJ2hpZHBpLScgcHJlZml4ZWQgdGVzdCBjYXNlcyBub3cgdHJpZ2dlciAyeCBzY2FsZSBm
YWN0b3Igb24gdGhlIHRlc3RpbmcKKyAgICAgICAgb2Zmc2NyZWVuIHdpbmRvdy4gSXQgbWFrZXMg
dGVzdGluZyBzdWJwaXhlbCByZW5kZXJpbmcgYW5kIHBvc2l0aW9uaW5nIHBvc3NpYmxlLgorCisg
ICAgICAgIEJvdGggdGhlIG9mZnNjcmVlbiB3aW5kb3cncyBhbmQgV2ViS2l0J3Mgc2NhbGluZyBh
cmUgc2V0IGFjY29yZGluZ2x5LgorCisgICAgICAgICogZmFzdC9ib3JkZXJzL2hpZHBpLXNpbXBs
ZS1oYWlybGluZS1ib3JkZXItcGFpbnRpbmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ib3JkZXJzL2hpZHBpLXNpbXBsZS1oYWlybGluZS1ib3JkZXItcGFpbnRpbmcuaHRt
bDogQWRkZWQuCisKIDIwMTQtMDItMjggIE1hcnRpbiBIb2RvdmFuICA8bWhvZG92YW5AaW5mLnUt
c3plZ2VkLmh1PgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IHJvdW5kZWRJbnRQb2ludChy
ZW5kZXJlck1hcHBlZFJlc3VsdCkgPT0gcm91bmRlZEludFBvaW50KHJlc3VsdCkgaW4gV2ViQ29y
ZTo6UmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGFpbmVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2JvcmRlcnMvaGlkcGktc2ltcGxlLWhhaXJsaW5lLWJvcmRlci1wYWludGluZy1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLXNpbXBsZS1oYWly
bGluZS1ib3JkZXItcGFpbnRpbmctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWY4Y2Q0OTlk
OThhNmE0NTJmNTllZTQwNTlmNzk0NTFlZWJiNjkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLXNpbXBsZS1oYWlybGluZS1ib3JkZXItcGFpbnRpbmct
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PHRpdGxlPkl0IHRlc3RzIGlmIDAuNXB4IGJvcmRlcnMgZ2V0IHBhaW50ZWQuPC90aXRsZT4KKzxz
dHlsZT4KKyAgZGl2IHsKKwl3aWR0aDogNDlweDsKKwloZWlnaHQ6IDQ5cHg7CisJYm9yZGVyOiAx
cHggc29saWQgZ3JlZW47CisgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKwk8ZGl2PjwvZGl2PgorPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2hpZHBpLXNpbXBsZS1o
YWlybGluZS1ib3JkZXItcGFpbnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9o
aWRwaS1zaW1wbGUtaGFpcmxpbmUtYm9yZGVyLXBhaW50aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUz
M2Q1MWE3ODJlMmFiYjI3YTAxMjMyYzRhZDc5YmM1NjA3YWU4MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9oaWRwaS1zaW1wbGUtaGFpcmxpbmUtYm9yZGVyLXBh
aW50aW5nLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzx0
aXRsZT5JdCB0ZXN0cyBpZiAwLjVweCBib3JkZXJzIGdldCBwYWludGVkLjwvdGl0bGU+Cis8c3R5
bGU+Cisub3V0ZXIgeworCXdpZHRoOiA1MHB4OworCWhlaWdodDogNTBweDsKKwlib3JkZXI6IDAu
NXB4IHNvbGlkIGdyZWVuOworfQorLmlubmVyIHsKKwl3aWR0aDogNDlweDsKKwloZWlnaHQ6IDQ5
cHg7CisJYm9yZGVyOiAwLjVweCBzb2xpZCBncmVlbjsKK30KKzwvc3R5bGU+Cis8Ym9keT4KKwk8
ZGl2IGNsYXNzPSJvdXRlciI+PGRpdiBjbGFzcz0iaW5uZXIiPjwvZGl2PjwvZGl2PgorPC9ib2R5
Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>