<?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>152216</bug_id>
          
          <creation_ts>2015-12-12 15:08:55 -0800</creation_ts>
          <short_desc>Data detector yellow highlight location is vertically mirrored in WebKit1</short_desc>
          <delta_ts>2016-01-22 14:45: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>New Bugs</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1148744</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-12 15:08:55 -0800</bug_when>
    <thetext>Data detector yellow highlight location is vertically mirrored in WebKit1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148745</commentid>
    <comment_count>1</comment_count>
      <attachid>267244</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-12 15:09:12 -0800</bug_when>
    <thetext>Created attachment 267244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148750</commentid>
    <comment_count>2</comment_count>
      <attachid>267244</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-12-12 16:05:13 -0800</bug_when>
    <thetext>Comment on attachment 267244
Patch

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

&gt; Source/WebKit/mac/ChangeLog:3
&gt; +        Data detector yellow highlight location is vertically mirrored in WebKit1

No test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148753</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-12 16:15:47 -0800</bug_when>
    <thetext>No idea how to test. We could add a way to dump this specific rect at some point, but that would be pretty overly specific to this one patch. Ref/pixel tests won&apos;t work because they don&apos;t capture subwindows. At the moment we have no tests for TextIndicators in actual use, just some TextIndicator unit-ish tests that wouldn&apos;t have hit this. Ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148754</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-12 16:59:16 -0800</bug_when>
    <thetext>Another alternative: an API test where we override NSWindow addChildWindow and dump its properties.

Another roadblock: it looks like we don&apos;t currently have support for synthetically invoking force-touch in WebKit1. Might be able to trigger it with the keyboard shortcut, though (?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1148845</commentid>
    <comment_count>5</comment_count>
      <attachid>267244</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-13 13:46:19 -0800</bug_when>
    <thetext>Comment on attachment 267244
Patch

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

Test coverage is a good question.

&gt; Source/WebKit/mac/WebView/WebImmediateActionController.mm:432
&gt; +    RefPtr&lt;TextIndicator&gt; indicator = TextIndicator::createWithRange(*detectedDataRange, TextIndicatorOptionDefault, TextIndicatorPresentationTransition::FadeIn);

auto is typically better than RefPtr and it might be Ref; unless this is old and still returns PassRefPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149697</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-16 11:14:46 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 267244 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=267244&amp;action=review
&gt; 
&gt; Test coverage is a good question.
&gt; 
&gt; &gt; Source/WebKit/mac/WebView/WebImmediateActionController.mm:432
&gt; &gt; +    RefPtr&lt;TextIndicator&gt; indicator = TextIndicator::createWithRange(*detectedDataRange, TextIndicatorOptionDefault, TextIndicatorPresentationTransition::FadeIn);
&gt; 
&gt; auto is typically better than RefPtr and it might be Ref; unless this is old
&gt; and still returns PassRefPtr

It&apos;s not Ref, TextIndicator creation can fail (in a hundred different ways). auto is fine, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150009</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-17 11:39:29 -0800</bug_when>
    <thetext>Ugh, I did all the work to do subwindow dumping for WKTR, then realized I needed in in DRT, then realized (again) that we don&apos;t have support for synthetic force-click in DRT.

I&apos;m just going to land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150010</commentid>
    <comment_count>8</comment_count>
      <attachid>267572</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-17 11:40:03 -0800</bug_when>
    <thetext>Created attachment 267572
subwindow dumping patch for safekeeping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150011</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-12-17 11:42:50 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/194221</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155925</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-01-15 14:05:23 -0800</bug_when>
    <thetext>Reopening for a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155926</commentid>
    <comment_count>11</comment_count>
      <attachid>269097</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-01-15 14:10:07 -0800</bug_when>
    <thetext>Created attachment 269097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1155927</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-15 14:11:45 -0800</bug_when>
    <thetext>Attachment 269097 did not pass style-queue:


ERROR: Source/WebKit/mac/WebView/WebView.mm:8573:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit/mac/WebView/WebView.mm:8637:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157842</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-01-22 14:45:46 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/195149</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267244</attachid>
            <date>2015-12-12 15:09:12 -0800</date>
            <delta_ts>2016-01-15 14:10:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152216-20151212150838.patch</filename>
            <type>text/plain</type>
            <size>2501</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMjVjNTA1NGUy
MGZiOWE0MjE2YjY0ZDJkNmJhNDY5Mzk4N2JmZTgwYy4uYmM1MjY2ZWFiYzQzOWM4ZmU2MDNkODY3
ODczYzMzNjE5ZjAxNDYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1
LTEyLTEyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAg
IERhdGEgZGV0ZWN0b3IgeWVsbG93IGhpZ2hsaWdodCBsb2NhdGlvbiBpcyB2ZXJ0aWNhbGx5IG1p
cnJvcmVkIGluIFdlYktpdDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MjIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjM4NDgwMDM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRUZXh0XSk6
CisgICAgICAgIE1hdGNoIHRoZSBjb252ZXJzaW9uIHdlIGRvIGF0IGV2ZXJ5IG90aGVyIFdLMSBU
ZXh0SW5kaWNhdG9yIGNvbnN0cnVjdGlvbi4KKwogMjAxNS0xMi0xMSAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVkaWFTdHJlYW1dIEFkZCBhIHNl
dHRpbmcgdG8gYWxsb3cgdGhlIG1vY2sgbWVkaWEgY2FwdHVyZSBkZXZpY2VzIHRvIGJlIGVuYWJs
ZWQgYW5kIGRpc2FibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggNWFmMTBhZDRkNTRmMWM1NGY0
NGM1NDMyZTEzNWM0MDI2M2FhMGU5MC4uZTM1N2Q3MTBlZWM5YzY2OWVhNDYwNzhlZTkzNzQ0MjE4
OTk2NzE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQpAQCAtNDI5LDEyICs0MjksMTMgQEAgc3RhdGlj
IEludFJlY3QgZWxlbWVudEJvdW5kaW5nQm94SW5XaW5kb3dDb29yZGluYXRlc0Zyb21Ob2RlKE5v
ZGUqIG5vZGUpCiAgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAotICAgIFJlZlB0cjxU
ZXh0SW5kaWNhdG9yPiBkZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6
Y3JlYXRlV2l0aFJhbmdlKCpkZXRlY3RlZERhdGFSYW5nZSwgVGV4dEluZGljYXRvck9wdGlvbkRl
ZmF1bHQsIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpGYWRlSW4pOworICAg
IFJlZlB0cjxUZXh0SW5kaWNhdG9yPiBpbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVX
aXRoUmFuZ2UoKmRldGVjdGVkRGF0YVJhbmdlLCBUZXh0SW5kaWNhdG9yT3B0aW9uRGVmYXVsdCwg
VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkZhZGVJbik7CisgICAgaW5kaWNh
dG9yLT5kYXRhKCkudGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcyA9IFtfd2Vi
VmlldyBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6aW5kaWNhdG9yLT50ZXh0Qm91bmRpbmdSZWN0
SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCldOwogCiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0g
W2FjdGlvbkNvbnRleHQgY29udGV4dEZvclZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJh
Y3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxl
cjpeKCkgewotICAgICAgICBpZiAoZGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvcikKLSAgICAgICAg
ICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGljYXRvcjoqZGV0ZWN0ZWREYXRhVGV4dEluZGljYXRv
ciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOwor
ICAgICAgICBpZiAoaW5kaWNhdG9yKQorICAgICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5k
aWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGlt
ZTo6UGVybWFuZW50XTsKICAgICB9IGludGVyYWN0aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsKICAg
ICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXRdOwogICAgIH1dOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267572</attachid>
            <date>2015-12-17 11:40:03 -0800</date>
            <delta_ts>2016-01-15 14:10:04 -0800</delta_ts>
            <desc>subwindow dumping patch for safekeeping</desc>
            <filename>subwindow.diff</filename>
            <type>text/plain</type>
            <size>15734</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDhjY2M2OWQuLmUxNjNmM2IgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMzQsNiArMzQsOCBAQCBmYXN0L2V2ZW50cy9jYW5jZWxsZWQtZm9yY2UtY2xpY2stbGlu
ay1uYXZpZ2F0aW9uLmh0bWwgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL2ZvcmNlLWNsaWNrLWxpbmst
c2VsZWN0aW9uLWJlaGF2aW9yLmh0bWwgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL2ZvcmNlLWNsaWNr
LW9uLWxpbmstbmF2aWdhdGlvbi5odG1sIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9mb3JjZS1jbGlj
ay10ZXh0LXNlbGVjdGlvbi1iZWhhdmlvci5odG1sIFsgU2tpcCBdCitmYXN0L2V2ZW50cy9mb3Jj
ZS1jbGljay10ZXh0LWluZGljYXRvci1sb2NhdGlvbi5odG1sIFsgU2tpcCBdCitmYXN0L2V2ZW50
cy9mb3JjZS1jbGljay1kYXRhLWRldGVjdG9ycy10ZXh0LWluZGljYXRvci1sb2NhdGlvbi5odG1s
IFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9tb3VzZS1mb3JjZS1jaGFuZ2VkLmh0bWwgWyBTa2lwIF0K
IGZhc3QvZXZlbnRzL21vdXNlLWZvcmNlLWRvd24uaHRtbCBbIFNraXAgXQogZmFzdC9ldmVudHMv
bW91c2UtZm9yY2UtdXAuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvZm9yY2UtY2xpY2stZGF0YS1kZXRlY3RvcnMtdGV4dC1pbmRpY2F0b3ItbG9jYXRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZm9yY2UtY2xpY2stZGF0
YS1kZXRlY3RvcnMtdGV4dC1pbmRpY2F0b3ItbG9jYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlMDQxZGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mb3JjZS1jbGljay1kYXRhLWRldGVjdG9ycy10ZXh0LWlu
ZGljYXRvci1sb2NhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisxIEluZmluaXRl
IExvb3AsIEN1cGVydGlubyBDQSwgOTUwMTQKK1N1YndpbmRvdyBHZW9tZXRyeToKKyAgV2luZG93
IChOU1dpbmRvdykgYXQgb2Zmc2V0IGZyb20gbWFpbiB3aW5kb3cgKDAsIC01NjgpLCBzaXplICgy
NTl4MzApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mb3JjZS1jbGljay1k
YXRhLWRldGVjdG9ycy10ZXh0LWluZGljYXRvci1sb2NhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvZm9yY2UtY2xpY2stZGF0YS1kZXRlY3RvcnMtdGV4dC1pbmRpY2F0b3ItbG9j
YXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWY2ZTE2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZm9yY2UtY2xpY2stZGF0
YS1kZXRlY3RvcnMtdGV4dC1pbmRpY2F0b3ItbG9jYXRpb24uaHRtbApAQCAtMCwwICsxLDMyIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNoZWNrRm9yRG9uZSgpCit7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wU3Vid2luZG93R2VvbWV0cnkoKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbygxNiwgMTYpOworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZUZvcmNlQ2xpY2soKTsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoY2hlY2tGb3JEb25lLCAw
KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJzdGFydFRl
c3QoKSI+CisKKzxkaXYgaWQ9InRleHQiPjEgSW5maW5pdGUgTG9vcCwgQ3VwZXJ0aW5vIENBLCA5
NTAxNDwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9mb3JjZS1jbGljay10ZXh0LWluZGljYXRvci1sb2NhdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mb3JjZS1jbGljay10ZXh0LWluZGljYXRvci1s
b2NhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MjA4ZTUxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZvcmNl
LWNsaWNrLXRleHQtaW5kaWNhdG9yLWxvY2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKK0ZvcmNlIGNsaWNrIG1lLgorU3Vid2luZG93IEdlb21ldHJ5OgorICBXaW5kb3cgKE5TV2lu
ZG93KSBhdCBvZmZzZXQgZnJvbSBtYWluIHdpbmRvdyAoMCwgLTU2OCksIHNpemUgKDUzeDMwKQor
ICBXaW5kb3cgKF9OU1BvcG92ZXJXaW5kb3cpIGF0IG9mZnNldCBmcm9tIG1haW4gd2luZG93ICgt
OTk4NywgMTA2MTMpLCBzaXplICg0MTZ4NDMyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvZm9yY2UtY2xpY2stdGV4dC1pbmRpY2F0b3ItbG9jYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2ZvcmNlLWNsaWNrLXRleHQtaW5kaWNhdG9yLWxvY2F0aW9uLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE0YTI4NAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZvcmNlLWNsaWNrLXRleHQtaW5kaWNh
dG9yLWxvY2F0aW9uLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBjaGVja0ZvckRvbmUoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHN0YXJ0
VGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcFN1YndpbmRvd0dlb21ldHJ5KCkKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
MTYsIDE2KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VGb3JjZUNsaWNrKCk7CisgICAgICAg
IHdpbmRvdy5zZXRUaW1lb3V0KGNoZWNrRm9yRG9uZSwgMCk7CisgICAgfQorfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgorCis8ZGl2IGlkPSJ0ZXh0
Ij5Gb3JjZSBjbGljayBtZS48L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDk2MzZjZmMuLjUwM2Jl
MmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTExLDYgKzExLDggQEAgc3dpcGUgWyBQYXNzIF0KIGZhc3QvZXZlbnRzL2NhbmNlbGxlZC1m
b3JjZS1jbGljay1saW5rLW5hdmlnYXRpb24uaHRtbCBbIFBhc3MgXQogZmFzdC9ldmVudHMvZm9y
Y2UtY2xpY2stbGluay1zZWxlY3Rpb24tYmVoYXZpb3IuaHRtbCBbIFBhc3MgXQogZmFzdC9ldmVu
dHMvZm9yY2UtY2xpY2stb24tbGluay1uYXZpZ2F0aW9uLmh0bWwgWyBQYXNzIF0KK2Zhc3QvZXZl
bnRzL2ZvcmNlLWNsaWNrLXRleHQtaW5kaWNhdG9yLWxvY2F0aW9uLmh0bWwgWyBQYXNzIF0KK2Zh
c3QvZXZlbnRzL2ZvcmNlLWNsaWNrLWRhdGEtZGV0ZWN0b3JzLXRleHQtaW5kaWNhdG9yLWxvY2F0
aW9uLmh0bWwgWyBQYXNzIF0KIGZhc3QvZXZlbnRzL2ZvcmNlLWNsaWNrLXRleHQtc2VsZWN0aW9u
LWJlaGF2aW9yLmh0bWwgWyBGYWlsdXJlIF0KIAogZmFzdC9oYXJuZXNzL3VpLXNpZGUtc2NyaXB0
cy5odG1sIFsgUGFzcyBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZTVkMjgzNy4uNzAxYmZhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTEyLTE1ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIERhdGEgZGV0ZWN0b3IgeWVsbG93
IGhpZ2hsaWdodCBsb2NhdGlvbiBpcyB2ZXJ0aWNhbGx5IG1pcnJvcmVkIGluIFdlYktpdDEKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjIxNgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjM4NDgwMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIubW06CisgICAgICAgICgtW1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1h
dGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRUZXh0XSk6CisgICAgICAgIE1hdGNoIHRoZSBj
b252ZXJzaW9uIHdlIGRvIGF0IGV2ZXJ5IG90aGVyIFdLMSBUZXh0SW5kaWNhdG9yIGNvbnN0cnVj
dGlvbi4KKwogMjAxNS0xMi0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNh
bm9uLmZyPgogCiAgICAgICAgIFtGZXRjaCBBUEldIEFkZCBmZXRjaCBBUEkgY29tcGlsZSB0aW1l
IGZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5tbQppbmRleCA1YWYxMGFkLi5lNmQ0YTViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLm1tCkBAIC0yNzIsNyArMjcyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAg
ICAgICAgICAgICBfdHlwZSA9IFdlYkltbWVkaWF0ZUFjdGlvbkxpbmtQcmV2aWV3OwogCiAgICAg
ICAgICAgICBSZWZQdHI8UmFuZ2U+IGxpbmtSYW5nZSA9IHJhbmdlT2ZDb250ZW50cygqX2hpdFRl
c3RSZXN1bHQuVVJMRWxlbWVudCgpKTsKLSAgICAgICAgICAgIFJlZlB0cjxUZXh0SW5kaWNhdG9y
PiBpbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UoKmxpbmtSYW5nZSwg
VGV4dEluZGljYXRvck9wdGlvbkRlZmF1bHQsIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFu
c2l0aW9uOjpGYWRlSW4pOworICAgICAgICAgICAgYXV0byBpbmRpY2F0b3IgPSBUZXh0SW5kaWNh
dG9yOjpjcmVhdGVXaXRoUmFuZ2UoKmxpbmtSYW5nZSwgVGV4dEluZGljYXRvck9wdGlvbkRlZmF1
bHQsIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpGYWRlSW4pOwogICAgICAg
ICAgICAgaWYgKGluZGljYXRvcikKICAgICAgICAgICAgICAgICBbX3dlYlZpZXcgX3NldFRleHRJ
bmRpY2F0b3I6KmluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0
aW1lOjpQZXJtYW5lbnRdOwogCkBAIC00MjksMTIgKzQyOSwxMyBAQCBzdGF0aWMgSW50UmVjdCBl
bGVtZW50Qm91bmRpbmdCb3hJbldpbmRvd0Nvb3JkaW5hdGVzRnJvbU5vZGUoTm9kZSogbm9kZSkK
ICAgICAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgUmVmUHRyPFRleHRJbmRpY2F0
b3I+IGRldGVjdGVkRGF0YVRleHRJbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRo
UmFuZ2UoKmRldGVjdGVkRGF0YVJhbmdlLCBUZXh0SW5kaWNhdG9yT3B0aW9uRGVmYXVsdCwgVGV4
dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246OkZhZGVJbik7CisgICAgYXV0byBpbmRp
Y2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoUmFuZ2UoKmRldGVjdGVkRGF0YVJhbmdl
LCBUZXh0SW5kaWNhdG9yT3B0aW9uRGVmYXVsdCwgVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRy
YW5zaXRpb246OkZhZGVJbik7CisgICAgaW5kaWNhdG9yLT5kYXRhKCkudGV4dEJvdW5kaW5nUmVj
dEluUm9vdFZpZXdDb29yZGluYXRlcyA9IFtfd2ViVmlldyBfY29udmVydFJlY3RGcm9tUm9vdFZp
ZXc6aW5kaWNhdG9yLT50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCldOwog
CiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlvbkNvbnRleHQgY29udGV4dEZvclZp
ZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewog
ICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxlcjpeKCkgewotICAgICAgICBpZiAoZGV0ZWN0
ZWREYXRhVGV4dEluZGljYXRvcikKLSAgICAgICAgICAgIFtfd2ViVmlldyBfc2V0VGV4dEluZGlj
YXRvcjoqZGV0ZWN0ZWREYXRhVGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICBpZiAoaW5kaWNhdG9yKQorICAg
ICAgICAgICAgW193ZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOippbmRpY2F0b3Igd2l0aExpZmV0
aW1lOlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKICAgICB9IGludGVy
YWN0aW9uU3RvcHBlZEhhbmRsZXI6XigpIHsKICAgICAgICAgW193ZWJWaWV3IF9jbGVhclRleHRJ
bmRpY2F0b3JXaXRoQW5pbWF0aW9uOlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRp
b246OkZhZGVPdXRdOwogICAgIH1dOwpAQCAtNDYxLDcgKzQ2Miw3IEBAIHN0YXRpYyBJbnRSZWN0
IGVsZW1lbnRCb3VuZGluZ0JveEluV2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShOb2RlKiBub2Rl
KQogICAgIFJlZlB0cjxSYW5nZT4gbGlua1JhbmdlID0gcmFuZ2VPZkNvbnRlbnRzKCpfaGl0VGVz
dFJlc3VsdC5VUkxFbGVtZW50KCkpOwogICAgIGlmICghbGlua1JhbmdlKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gaW5kaWNhdG9yID0gVGV4dElu
ZGljYXRvcjo6Y3JlYXRlV2l0aFJhbmdlKCpsaW5rUmFuZ2UsIFRleHRJbmRpY2F0b3JPcHRpb25E
ZWZhdWx0LCBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6RmFkZUluKTsKKyAg
ICBhdXRvIGluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhSYW5nZSgqbGlua1Jh
bmdlLCBUZXh0SW5kaWNhdG9yT3B0aW9uRGVmYXVsdCwgVGV4dEluZGljYXRvclByZXNlbnRhdGlv
blRyYW5zaXRpb246OkZhZGVJbik7CiAgICAgaW5kaWNhdG9yLT5kYXRhKCkudGV4dEJvdW5kaW5n
UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcyA9IFtfd2ViVmlldyBfY29udmVydFJlY3RGcm9tUm9v
dFZpZXc6aW5kaWNhdG9yLT50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCld
OwogCiAgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlvbkNvbnRleHQgY29udGV4dEZv
clZpZXc6X3dlYlZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggMTlmMTgwZS4uYTZjNzQzYiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC00OSw2ICs0OSw3IEBAIGludGVyZmFjZSBUZXN0UnVu
bmVyIHsKICAgICB2b2lkIGR1bXBEYXRhYmFzZUNhbGxiYWNrcygpOwogICAgIHZvaWQgZHVtcERP
TUFzV2ViQXJjaGl2ZSgpOwogICAgIHZvaWQgZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCk7
CisgICAgdm9pZCBkdW1wU3Vid2luZG93R2VvbWV0cnkoKTsKIAogICAgIC8vIFNwZWNpYWwgb3B0
aW9ucy4KICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGEz
MjU4ODEuLjBlNWNjYjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0zNTQsNiArMzU0LDEwIEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OmRvbmUoKQogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBh
dWRpb1Jlc3VsdEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkF1
ZGlvUmVzdWx0IikpOwogICAgIFdLRGljdGlvbmFyeVNldEl0ZW0oZG9uZU1lc3NhZ2VCb2R5Lmdl
dCgpLCBhdWRpb1Jlc3VsdEtleS5nZXQoKSwgbV9hdWRpb1Jlc3VsdC5nZXQoKSk7CiAKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc2hvdWxkRHVtcFN1YndpbmRvd0dlb21ldHJ5S2V5ID0g
YWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiU2hvdWxkRHVtcFN1YndpbmRv
d0dlb21ldHJ5IikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gc2hvdWxkRHVtcFN1
YndpbmRvd0dlb21ldHJ5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShtX3Rlc3RSdW5uZXItPnNo
b3VsZER1bXBTdWJ3aW5kb3dHZW9tZXRyeSgpKSk7CisgICAgV0tEaWN0aW9uYXJ5U2V0SXRlbShk
b25lTWVzc2FnZUJvZHkuZ2V0KCksIHNob3VsZER1bXBTdWJ3aW5kb3dHZW9tZXRyeUtleS5nZXQo
KSwgc2hvdWxkRHVtcFN1YndpbmRvd0dlb21ldHJ5LmdldCgpKTsKKwogICAgIFdLQnVuZGxlUGFn
ZVBvc3RNZXNzYWdlKHBhZ2UoKS0+cGFnZSgpLCBkb25lTWVzc2FnZU5hbWUuZ2V0KCksIGRvbmVN
ZXNzYWdlQm9keS5nZXQoKSk7CiAKICAgICBjbG9zZU90aGVyUGFnZXMoKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMjk2
MzJmNC4uM2VhMjVlMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTg4LDYgKzg4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZHVtcERhdGFiYXNlQ2FsbGJhY2tzKCkgeyBtX2R1bXBEYXRhYmFzZUNhbGxiYWNrcyA9IHRydWU7
IH0KICAgICB2b2lkIGR1bXBET01Bc1dlYkFyY2hpdmUoKSB7IG1fd2hhdFRvRHVtcCA9IERPTUFz
V2ViQXJjaGl2ZTsgfQogICAgIHZvaWQgZHVtcFBvbGljeURlbGVnYXRlQ2FsbGJhY2tzKCkgeyBt
X2R1bXBQb2xpY3lDYWxsYmFja3MgPSB0cnVlOyB9CisgICAgdm9pZCBkdW1wU3Vid2luZG93R2Vv
bWV0cnkoKSB7IG1fZHVtcFN1YndpbmRvd0dlb21ldHJ5ID0gdHJ1ZTsgfQogCiAgICAgdm9pZCBz
ZXRTaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpIHsgbV9kdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzID0gdmFsdWU7IH0KICAgICB2b2lkIHNldFNob3VsZER1bXBQcm9ncmVzc0Zp
bmlzaGVkQ2FsbGJhY2soYm9vbCB2YWx1ZSkgeyBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJh
Y2sgPSB2YWx1ZTsgfQpAQCAtMTg2LDYgKzE4Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIHNob3Vs
ZER1bXBEYXRhYmFzZUNhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcERhdGFiYXNlQ2Fs
bGJhY2tzOyB9CiAgICAgYm9vbCBzaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fZHVtcFNlbGVjdGlvblJlY3Q7IH0KICAgICBib29sIHNob3VsZER1bXBQb2xpY3lDYWxs
YmFja3MoKSBjb25zdCB7IHJldHVybiBtX2R1bXBQb2xpY3lDYWxsYmFja3M7IH0KKyAgICBib29s
IHNob3VsZER1bXBTdWJ3aW5kb3dHZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFN1Yndp
bmRvd0dlb21ldHJ5OyB9CiAKICAgICBib29sIGlzUG9saWN5RGVsZWdhdGVFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQ7IH0KICAgICBib29sIGlzUG9saWN5
RGVsZWdhdGVQZXJtaXNzaXZlKCkgY29uc3QgeyByZXR1cm4gbV9wb2xpY3lEZWxlZ2F0ZVBlcm1p
c3NpdmU7IH0KQEAgLTMzOCw2ICszNDAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wQXBw
bGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wRGF0YWJhc2VD
YWxsYmFja3M7CiAgICAgYm9vbCBtX2R1bXBQb2xpY3lDYWxsYmFja3MgeyBmYWxzZSB9OworICAg
IGJvb2wgbV9kdW1wU3Vid2luZG93R2VvbWV0cnkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaXNh
bGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhOwogICAgIGJvb2wgbV93YWl0VG9E
dW1wOyAvLyBUcnVlIGlmIHdhaXRVbnRpbERvbmUoKSBoYXMgYmVlbiBjYWxsZWQsIGJ1dCBub3Rp
ZnlEb25lKCkgaGFzIG5vdCB5ZXQgYmVlbiBjYWxsZWQuCiAgICAgYm9vbCBtX3Rlc3RSZXBhaW50
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKaW5kZXggYzgyNmExYS4u
OGQwMTQ1YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZp
ZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC04
NSw2ICs4NSwxMiBAQCBwdWJsaWM6CiAgICAgV0tSZXRhaW5QdHI8V0tJbWFnZVJlZj4gd2luZG93
U25hcHNob3RJbWFnZSgpOwogICAgIGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zOyB9CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgU3RyaW5nIHN1
YndpbmRvd0Rlc2NyaXB0aW9uKCk7CisjZWxzZQorICAgIFN0cmluZyBzdWJ3aW5kb3dEZXNjcmlw
dGlvbigpIHsgcmV0dXJuICJOb3QgaW1wbGVtZW50ZWQuIiB9CisjZW5kaWYKKwogICAgIHZvaWQg
Y2hhbmdlV2luZG93U2NhbGVJZk5lZWRlZChmbG9hdCBuZXdTY2FsZSk7CiAgICAgdm9pZCBzZXRO
YXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCmluZGV4IDJlMGY3NzQuLjhmOTBhNTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0yMjcsNiArMjI3LDExIEBAIHZvaWQg
VGVzdEludm9jYXRpb246OmZvcmNlUmVwYWludERvbmVDYWxsYmFjayhXS0Vycm9yUmVmIGVycm9y
LCB2b2lkKiBjb250ZXh0KQogCiB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkdW1wUmVzdWx0cygpCiB7
CisgICAgaWYgKG1fZHVtcFN1YndpbmRvd0dlb21ldHJ5KSB7CisgICAgICAgIG1fdGV4dE91dHB1
dC5hcHBlbmQoIlN1YndpbmRvdyBHZW9tZXRyeTpcbiIpOworICAgICAgICBtX3RleHRPdXRwdXQu
YXBwZW5kKFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5zdWJ3aW5k
b3dEZXNjcmlwdGlvbigpKTsKKyAgICB9CisKICAgICBpZiAobV90ZXh0T3V0cHV0Lmxlbmd0aCgp
IHx8ICFtX2F1ZGlvUmVzdWx0KQogICAgICAgICBkdW1wKG1fdGV4dE91dHB1dC50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwogICAgIGVsc2UKQEAgLTMzMCw2ICszMzUsMTAgQEAgdm9pZCBUZXN0
SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdS
ZWYgbWVzc2FnZU5hbWUKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGF1ZGlvUmVz
dWx0S2V5ID0gIGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkF1ZGlvUmVz
dWx0IikpOwogICAgICAgICBtX2F1ZGlvUmVzdWx0ID0gc3RhdGljX2Nhc3Q8V0tEYXRhUmVmPihX
S0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYXVkaW9SZXN1
bHRLZXkuZ2V0KCkpKTsKIAorICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc2hvdWxk
RHVtcFN1YndpbmRvd0dlb21ldHJ5S2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiU2hvdWxkRHVtcFN1YndpbmRvd0dlb21ldHJ5IikpOworICAgICAgICBXS0Jvb2xl
YW5SZWYgc2hvdWxkRHVtcFN1YndpbmRvd0dlb21ldHJ5ID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFu
UmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgc2hv
dWxkRHVtcFN1YndpbmRvd0dlb21ldHJ5S2V5LmdldCgpKSk7CisgICAgICAgIG1fZHVtcFN1Yndp
bmRvd0dlb21ldHJ5ID0gV0tCb29sZWFuR2V0VmFsdWUoc2hvdWxkRHVtcFN1YndpbmRvd0dlb21l
dHJ5KTsKKwogICAgICAgICBtX2dvdEZpbmFsTWVzc2FnZSA9IHRydWU7CiAgICAgICAgIFRlc3RD
b250cm9sbGVyOjpzaW5nbGV0b24oKS5ub3RpZnlEb25lKCk7CiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAppbmRleCA3YzNiYzE3Li43ZDI3NjYz
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCkBAIC0xMDcsNiArMTA3
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHVtcFBpeGVscyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3BpeGVsUmVzdWx0SXNQZW5kaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fd2ViUHJvY2Vz
c0lzVW5yZXNwb25zaXZlIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZHVtcFN1YndpbmRvd0dlb21l
dHJ5IHsgZmFsc2UgfTsKIAogICAgIFN0cmluZ0J1aWxkZXIgbV90ZXh0T3V0cHV0OwogICAgIFdL
UmV0YWluUHRyPFdLRGF0YVJlZj4gbV9hdWRpb1Jlc3VsdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQppbmRleCAzN2RhMDIzLi4xNzI1MjUy
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdN
YWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFj
Lm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJh
dGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lm
IFdLX0FQSV9FTkFCTEVECiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoRGV0YWlscykKQEAgLTIzMSw2
ICsyMzIsMzEgQEAgV0tSZXRhaW5QdHI8V0tJbWFnZVJlZj4gUGxhdGZvcm1XZWJWaWV3Ojp3aW5k
b3dTbmFwc2hvdEltYWdlKCkKICAgICByZXR1cm4gYWRvcHRXSyhXS0ltYWdlQ3JlYXRlRnJvbUNH
SW1hZ2Uod2luZG93U25hcHNob3RJbWFnZS5nZXQoKSwgMCkpOwogfQogCitTdHJpbmcgUGxhdGZv
cm1XZWJWaWV3OjpzdWJ3aW5kb3dEZXNjcmlwdGlvbigpCit7CisgICAgTlNXaW5kb3cgKm1haW5X
aW5kb3cgPSBwbGF0Zm9ybVZpZXcoKS53aW5kb3c7CisgICAgU3RyaW5nQnVpbGRlciBzdHJpbmdC
dWlsZGVyOworICAgIGZvciAoTlNXaW5kb3cgKmNoaWxkIGluIG1haW5XaW5kb3cuY2hpbGRXaW5k
b3dzKSB7CisgICAgICAgIGlmIChbY2hpbGQuY2xhc3NOYW1lIGlzRXF1YWxUb1N0cmluZzpAIl9O
U1BvcG92ZXJXaW5kb3ciXSkgeworICAgICAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgIFNraXBwaW5nIF9OU1BvcG92ZXJXaW5kb3cgd2luZG93IChzaXplIG1heSBiZSB2ZXJz
aW9uLWRlcGVuZGVudClcbiIpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAg
ICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgIFdpbmRvdyAoIik7CisgICAgICAg
IHN0cmluZ0J1aWxkZXIuYXBwZW5kKGNoaWxkLmNsYXNzTmFtZSk7CisgICAgICAgIHN0cmluZ0J1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiKSBhdCBvZmZzZXQgZnJvbSBtYWluIHdpbmRvdyAoIik7Cisg
ICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kTnVtYmVyKG1haW5XaW5kb3cuZnJhbWUub3JpZ2lu
LnggLSBjaGlsZC5mcmFtZS5vcmlnaW4ueCk7CisgICAgICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmROdW1iZXIobWFpbldp
bmRvdy5mcmFtZS5vcmlnaW4ueSAtIGNoaWxkLmZyYW1lLm9yaWdpbi55KTsKKyAgICAgICAgc3Ry
aW5nQnVpbGRlci5hcHBlbmRMaXRlcmFsKCIpLCBzaXplICgiKTsKKyAgICAgICAgc3RyaW5nQnVp
bGRlci5hcHBlbmROdW1iZXIoY2hpbGQuZnJhbWUuc2l6ZS53aWR0aCk7CisgICAgICAgIHN0cmlu
Z0J1aWxkZXIuYXBwZW5kTGl0ZXJhbCgieCIpOworICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVu
ZE51bWJlcihjaGlsZC5mcmFtZS5zaXplLmhlaWdodCk7CisgICAgICAgIHN0cmluZ0J1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiKVxuIik7CisgICAgfQorCisgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIu
dG9TdHJpbmcoKTsKK30KKwogYm9vbCBQbGF0Zm9ybVdlYlZpZXc6OnZpZXdTdXBwb3J0c09wdGlv
bnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKG1fb3B0aW9u
cy51c2VUaHJlYWRlZFNjcm9sbGluZyAhPSBvcHRpb25zLnVzZVRocmVhZGVkU2Nyb2xsaW5nIHx8
IG1fb3B0aW9ucy5vdmVycmlkZUxhbmd1YWdlcyAhPSBvcHRpb25zLm92ZXJyaWRlTGFuZ3VhZ2Vz
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269097</attachid>
            <date>2016-01-15 14:10:07 -0800</date>
            <delta_ts>2016-01-15 14:20:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152216-20160115140937.patch</filename>
            <type>text/plain</type>
            <size>12246</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1MDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM2ZjQwNWJhNDFkMDcz
ZGRmMTI4ZDZmODQ2ODkxNmMwMmUzOGRhMS4uZTQyNDBiYTRlNjlhNzRkMjhhYmQ0ZDRhOTEzZWZl
ZTViYmM3MWJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAxLTE1ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIERhdGEgZGV0ZWN0
b3IgeWVsbG93IGhpZ2hsaWdodCBsb2NhdGlvbiBpcyB2ZXJ0aWNhbGx5IG1pcnJvcmVkIGluIFdl
YktpdDEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MjIxNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjM4NDgwMDM+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBiZWNhdXNlIHdl
IGN1cnJlbnRseSBoYXZlIG5vIGRlY2VudCBtZWNoYW5pc20gZm9yIHRlc3RpbmcKKyAgICAgICAg
d2hlcmUgVGV4dEluZGljYXRvci9Mb29rdXAvRGF0YURldGVjdG9ycyBhY3R1YWxseSBtYWtlIGl0
IHRvIHRoZSBzY3JlZW4sCisgICAgICAgIG5vciBmb3Igc3ludGhldGljIGZvcmNlLWNsaWNrIGlu
IFdlYktpdDEuCisKKyAgICAgICAgKiBlZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLmg6Cisg
ICAgICAgICogZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5tbToKKyAgICAgICAgKFdlYkNv
cmU6OnNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6RGlj
dGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9uQ29udHJvbGxlckZvclBvcHVwKToKKyAgICAgICAgQWRk
IGFuIG9wdGlvbmFsIGZ1bmN0aW9uIGZvciBjb252ZXJ0aW5nIGJldHdlZW4gcm9vdC1GcmFtZVZp
ZXcgYW5kCisgICAgICAgIGhhbmRlZC1pbi1OU1ZpZXcgY29vcmRpbmF0ZXMsIGFuZCB1c2UgaXQg
dG8gY29udmVydCB0ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzCisgICAgICAg
IGludG8gdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBXZWJWaWV3LgorCiAyMDE2LTAxLTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB3b3Jr
YXJvdW5kIGZvciByZGFyOi8vcHJvYmxlbS8yMzYyMzY3MApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDgy
NjU3ZGZlYWMwMTNjOTQxOTg0N2RmM2MyOWMzNGQ0NGY2NzE4YmQuLjljZDUwZjllZTk4ZTM0NGJi
YzQ2Y2IxNDMwNjM0ZGIxYTU4NjA5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBA
QAorMjAxNi0wMS0xNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBEYXRhIGRldGVjdG9yIHllbGxvdyBoaWdobGlnaHQgbG9jYXRpb24gaXMgdmVydGlj
YWxseSBtaXJyb3JlZCBpbiBXZWJLaXQxCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTIyMTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIzODQ4MDAz
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVk
VGV4dF0pOgorICAgICAgICAoLVtXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRp
b25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkTGlua10pOgorICAgICAgICBUaGVzZSBhc3NpZ25t
ZW50cyBoYXZlIG5vIGVmZmVjdCBiZWNhdXNlIHRoZXkncmUgb3BlcmF0aW5nIG9uIGEgY29weSwg
YmVjYXVzZQorICAgICAgICBUZXh0SW5kaWNhdG9yOjpkYXRhKCkgZG9lcyBub3QgcmV0dXJuIGEg
cmVmZXJlbmNlLi4uIHNvIHJlbW92ZSB0aGVtLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOndpdGhMaWZldGltZTpd
KToKKyAgICAgICAgQ29udmVydCB0ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVz
IHRvIFdlYlZpZXcgY29vcmRpbmF0ZXMgYmVmb3JlCisgICAgICAgIGNvbnZlcnRpbmcgdG8gV2lu
ZG93IGNvb3JkaW5hdGVzIGZyb20gV2ViVmlldyBjb29yZGluYXRlcyBzbyB3ZSBnZXQgZmxpcHBp
bmcgcmlnaHQuCisKKyAgICAgICAgKC1bV2ViVmlldyBfYW5pbWF0aW9uQ29udHJvbGxlckZvckRp
Y3Rpb25hcnlMb29rdXBQb3B1cEluZm86XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3Nob3dEaWN0
aW9uYXJ5TG9va3VwUG9wdXA6XSk6CisgICAgICAgIERpdHRvIGZvciB0aGVzZSwgZXhjZXB0IGlu
IHRoZSBhZm9yZW1lbnRpb25lZCBjb252ZXJzaW9uIGNhbGxiYWNrLgorCiAyMDE2LTAxLTE0ICBC
ZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBXSzEgYW5kIFdLMiBzaG91
bGQgc2hhcmUgbW9yZSBjYW5kaWRhdGUgcmVxdWVzdCBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLmgKaW5kZXggZTE2NWJkM2Y1YzczYWU2ZjFjZGQw
M2QyN2U4ZjEwMDAxZjRjMTMxYy4uOTgyZGFjMzRkMThkMGNkNmVkM2E1NWUzZTc0ZWIzMWVlYWRl
YmE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRGljdGlvbmFyeUxv
b2t1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXAu
aApAQCAtNTgsMTAgKzU4LDEwIEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBTaG91bGQgbW92
ZS91bmlmeSBkaWN0aW9uYXJ5UG9wdXBJbmZvRm9yUmFuZ2UgaGVyZSB0b28uCiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzaG93UG9wdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5m
byYsIE5TVmlldyAqLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiB0ZXh0SW5k
aWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2spOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIHNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiwgTlNWaWV3ICosIHN0ZDo6
ZnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+IHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25D
YWxsYmFjaywgc3RkOjpmdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4gcm9vdFZpZXdUb1Zp
ZXdDb252ZXJzaW9uQ2FsbGJhY2sgPSBudWxscHRyKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBoaWRlUG9wdXAoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQbGF0Zm9y
bUFuaW1hdGlvbkNvbnRyb2xsZXIgYW5pbWF0aW9uQ29udHJvbGxlckZvclBvcHVwKGNvbnN0IERp
Y3Rpb25hcnlQb3B1cEluZm8mLCBOU1ZpZXcgKiwgc3RkOjpmdW5jdGlvbjx2b2lkKFRleHRJbmRp
Y2F0b3ImKT4gdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgUGxhdGZvcm1BbmltYXRpb25Db250cm9sbGVyIGFuaW1hdGlvbkNvbnRy
b2xsZXJGb3JQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiwgTlNWaWV3ICosIHN0ZDo6
ZnVuY3Rpb248dm9pZChUZXh0SW5kaWNhdG9yJik+IHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25D
YWxsYmFjaywgc3RkOjpmdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4gcm9vdFZpZXdUb1Zp
ZXdDb252ZXJzaW9uQ2FsbGJhY2sgPSBudWxscHRyKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlM
b29rdXAubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9EaWN0aW9uYXJ5TG9va3VwLm1t
CmluZGV4IGUxOWQxMmNmY2E4NzBiZTEzMzVhMDdjOTdhMmNjNzliOGI4NmQ4ZjMuLjFhOWMxYjdm
MmU3OThmODE3MzBjYjFiYjg3MDYwMzJhMDVmMDEyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFjL0RpY3Rpb25hcnlMb29rdXAubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRGljdGlvbmFyeUxvb2t1cC5tbQpAQCAtMjA1LDcgKzIwNSw3IEBAIE5TU3Ry
aW5nICpEaWN0aW9uYXJ5TG9va3VwOjpzdHJpbmdGb3JQREZTZWxlY3Rpb24oUERGU2VsZWN0aW9u
ICpzZWxlY3Rpb24sIE5TRGljCiAgICAgcmV0dXJuIG5pbDsKIH0KIAotc3RhdGljIFBsYXRmb3Jt
QW5pbWF0aW9uQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIo
Ym9vbCBjcmVhdGVBbmltYXRpb25Db250cm9sbGVyLCBjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZv
JiBkaWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcgKnZpZXcsIHN0ZDo6ZnVuY3Rpb248dm9pZChU
ZXh0SW5kaWNhdG9yJik+IHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjaykKK3N0YXRp
YyBQbGF0Zm9ybUFuaW1hdGlvbkNvbnRyb2xsZXIgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25D
b250cm9sbGVyKGJvb2wgY3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlciwgY29uc3QgRGljdGlvbmFy
eVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgTlNWaWV3ICp2aWV3LCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJh
Y2ssIHN0ZDo6ZnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0UmVjdCk+IHJvb3RWaWV3VG9WaWV3Q29u
dmVyc2lvbkNhbGxiYWNrKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIApA
QCAtMjIyLDcgKzIyMiwxMCBAQCBzdGF0aWMgUGxhdGZvcm1BbmltYXRpb25Db250cm9sbGVyIHNo
b3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcihib29sIGNyZQogCiAgICAgICAgIGlm
IChbZ2V0TFVMb29rdXBEZWZpbml0aW9uTW9kdWxlQ2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKHNob3dEZWZpbml0aW9uRm9yVGVybTpyZWxhdGl2ZVRvUmVjdDpvZlZpZXc6b3B0
aW9uczopXSkgewogICAgICAgICAgICAgRmxvYXRSZWN0IGZpcnN0VGV4dFJlY3RJblZpZXdDb29y
ZGluYXRlcyA9IHRleHRJbmRpY2F0b3IuZ2V0KCkudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29y
ZGluYXRlcygpWzBdOwotICAgICAgICAgICAgZmlyc3RUZXh0UmVjdEluVmlld0Nvb3JkaW5hdGVz
Lm1vdmVCeSh0ZXh0SW5kaWNhdG9yLmdldCgpLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29v
cmRpbmF0ZXMoKS5sb2NhdGlvbigpKTsKKyAgICAgICAgICAgIEZsb2F0UmVjdCB0ZXh0Qm91bmRp
bmdSZWN0SW5WaWV3Q29vcmRpbmF0ZXMgPSB0ZXh0SW5kaWNhdG9yLmdldCgpLnRleHRCb3VuZGlu
Z1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKTsKKyAgICAgICAgICAgIGlmIChyb290Vmlld1Rv
Vmlld0NvbnZlcnNpb25DYWxsYmFjaykKKyAgICAgICAgICAgICAgICB0ZXh0Qm91bmRpbmdSZWN0
SW5WaWV3Q29vcmRpbmF0ZXMgPSByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayh0ZXh0
Qm91bmRpbmdSZWN0SW5WaWV3Q29vcmRpbmF0ZXMpOworICAgICAgICAgICAgZmlyc3RUZXh0UmVj
dEluVmlld0Nvb3JkaW5hdGVzLm1vdmVCeSh0ZXh0Qm91bmRpbmdSZWN0SW5WaWV3Q29vcmRpbmF0
ZXMubG9jYXRpb24oKSk7CiAgICAgICAgICAgICBpZiAoY3JlYXRlQW5pbWF0aW9uQ29udHJvbGxl
cikKICAgICAgICAgICAgICAgICByZXR1cm4gW2dldExVTG9va3VwRGVmaW5pdGlvbk1vZHVsZUNs
YXNzKCkgbG9va3VwQW5pbWF0aW9uQ29udHJvbGxlckZvclRlcm06ZGljdGlvbmFyeVBvcHVwSW5m
by5hdHRyaWJ1dGVkU3RyaW5nLmdldCgpIHJlbGF0aXZlVG9SZWN0OmZpcnN0VGV4dFJlY3RJblZp
ZXdDb29yZGluYXRlcyBvZlZpZXc6dmlldyBvcHRpb25zOm11dGFibGVPcHRpb25zLmdldCgpXTsK
IApAQCAtMjQ3LDkgKzI1MCw5IEBAIHN0YXRpYyBQbGF0Zm9ybUFuaW1hdGlvbkNvbnRyb2xsZXIg
c2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9sbGVyKGJvb2wgY3JlCiAgICAgcmV0dXJu
IG5pbDsKIH0KIAotdm9pZCBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoY29uc3QgRGljdGlv
bmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywgTlNWaWV3ICp2aWV3LCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiB0ZXh0SW5kaWNhdG9ySW5zdGFsbGF0aW9uQ2Fs
bGJhY2spCit2b2lkIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChjb25zdCBEaWN0aW9uYXJ5
UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcgKnZpZXcsIHN0ZDo6ZnVuY3Rp
b248dm9pZChUZXh0SW5kaWNhdG9yJik+IHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFj
aywgc3RkOjpmdW5jdGlvbjxGbG9hdFJlY3QoRmxvYXRSZWN0KT4gcm9vdFZpZXdUb1ZpZXdDb252
ZXJzaW9uQ2FsbGJhY2spCiB7Ci0gICAgc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9s
bGVyKGZhbHNlLCBkaWN0aW9uYXJ5UG9wdXBJbmZvLCB2aWV3LCB0ZXh0SW5kaWNhdG9ySW5zdGFs
bGF0aW9uQ2FsbGJhY2spOworICAgIHNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxl
cihmYWxzZSwgZGljdGlvbmFyeVBvcHVwSW5mbywgdmlldywgdGV4dEluZGljYXRvckluc3RhbGxh
dGlvbkNhbGxiYWNrLCByb290Vmlld1RvVmlld0NvbnZlcnNpb25DYWxsYmFjayk7CiB9CiAKIHZv
aWQgRGljdGlvbmFyeUxvb2t1cDo6aGlkZVBvcHVwKCkKQEAgLTI2Myw5ICsyNjYsOSBAQCB2b2lk
IERpY3Rpb25hcnlMb29rdXA6OmhpZGVQb3B1cCgpCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKIH0KIAotUGxhdGZvcm1BbmltYXRpb25Db250cm9sbGVyIERpY3Rpb25hcnlMb29rdXA6
OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQb3B1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBk
aWN0aW9uYXJ5UG9wdXBJbmZvLCBOU1ZpZXcgKnZpZXcsIHN0ZDo6ZnVuY3Rpb248dm9pZChUZXh0
SW5kaWNhdG9yJik+IHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjaykKK1BsYXRmb3Jt
QW5pbWF0aW9uQ29udHJvbGxlciBEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVy
Rm9yUG9wdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYgZGljdGlvbmFyeVBvcHVwSW5mbywg
TlNWaWV3ICp2aWV3LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoVGV4dEluZGljYXRvciYpPiB0ZXh0SW5k
aWNhdG9ySW5zdGFsbGF0aW9uQ2FsbGJhY2ssIHN0ZDo6ZnVuY3Rpb248RmxvYXRSZWN0KEZsb2F0
UmVjdCk+IHJvb3RWaWV3VG9WaWV3Q29udmVyc2lvbkNhbGxiYWNrKQogewotICAgIHJldHVybiBz
aG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIodHJ1ZSwgZGljdGlvbmFyeVBvcHVw
SW5mbywgdmlldywgdGV4dEluZGljYXRvckluc3RhbGxhdGlvbkNhbGxiYWNrKTsKKyAgICByZXR1
cm4gc2hvd1BvcHVwT3JDcmVhdGVBbmltYXRpb25Db250cm9sbGVyKHRydWUsIGRpY3Rpb25hcnlQ
b3B1cEluZm8sIHZpZXcsIHRleHRJbmRpY2F0b3JJbnN0YWxsYXRpb25DYWxsYmFjaywgcm9vdFZp
ZXdUb1ZpZXdDb252ZXJzaW9uQ2FsbGJhY2spOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIubW0KaW5kZXggOWI0ZjNkNWFiNGFiNjE2YzZiZDhiMjM2YTNkMzYyMTEx
ZmFiMzhkMy4uZGJiMjNiMDI2Nzk0NzRiOWU0ODA5MGJjODIzM2Y1YmYyN2E5ZWVlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlci5tbQpAQCAtNDMwLDcgKzQzMCw2IEBAIHN0YXRpYyBJbnRSZWN0IGVsZW1lbnRC
b3VuZGluZ0JveEluV2luZG93Q29vcmRpbmF0ZXNGcm9tTm9kZShOb2RlKiBub2RlKQogICAgIH0K
IAogICAgIGF1dG8gaW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFJhbmdlKCpk
ZXRlY3RlZERhdGFSYW5nZSwgVGV4dEluZGljYXRvck9wdGlvbkRlZmF1bHQsIFRleHRJbmRpY2F0
b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpGYWRlSW4pOwotICAgIGluZGljYXRvci0+ZGF0YSgp
LnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMgPSBbX3dlYlZpZXcgX2NvbnZl
cnRSZWN0RnJvbVJvb3RWaWV3OmluZGljYXRvci0+dGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdD
b29yZGluYXRlcygpXTsKIAogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250
ZXh0IGNvbnRleHRGb3JWaWV3Ol93ZWJWaWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRl
ZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKQEAg
LTQ2Myw3ICs0NjIsNiBAQCBzdGF0aWMgSW50UmVjdCBlbGVtZW50Qm91bmRpbmdCb3hJbldpbmRv
d0Nvb3JkaW5hdGVzRnJvbU5vZGUoTm9kZSogbm9kZSkKICAgICBpZiAoIWxpbmtSYW5nZSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBpbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9y
OjpjcmVhdGVXaXRoUmFuZ2UoKmxpbmtSYW5nZSwgVGV4dEluZGljYXRvck9wdGlvbkRlZmF1bHQs
IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpGYWRlSW4pOwotICAgIGluZGlj
YXRvci0+ZGF0YSgpLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMgPSBbX3dl
YlZpZXcgX2NvbnZlcnRSZWN0RnJvbVJvb3RWaWV3OmluZGljYXRvci0+dGV4dEJvdW5kaW5nUmVj
dEluUm9vdFZpZXdDb29yZGluYXRlcygpXTsKIAogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9
IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93ZWJWaWV3IGFsdE1vZGU6WUVTIGludGVy
YWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRs
ZXI6XigpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBlNWQyMTY4YjAz
MWQwNzczZjY3Y2RiMjQwODczNDQ2YjhjNzViMDNkLi43MDEzNjI2ZTc2MzIzOGE0MDcyYzFlYmMx
MGZjZTUxOTQwODgyMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04
NTY4LDExICs4NTY4LDEwIEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJz
KCkKIAogICAgIFtzZWxmIF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF07CiAKLSAgICBEaWN0
aW9uYXJ5UG9wdXBJbmZvIGFkanVzdGVkUG9wdXBJbmZvID0gZGljdGlvbmFyeVBvcHVwSW5mbzsK
LSAgICBhZGp1c3RlZFBvcHVwSW5mby50ZXh0SW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJv
b3RWaWV3Q29vcmRpbmF0ZXMgPSBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZpZXc6YWRqdXN0
ZWRQb3B1cEluZm8udGV4dEluZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3Jk
aW5hdGVzXTsKLQotICAgIHJldHVybiBEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9s
bGVyRm9yUG9wdXAoYWRqdXN0ZWRQb3B1cEluZm8sIHNlbGYsIFtzZWxmXShUZXh0SW5kaWNhdG9y
JiB0ZXh0SW5kaWNhdG9yKSB7CisgICAgcmV0dXJuIERpY3Rpb25hcnlMb29rdXA6OmFuaW1hdGlv
bkNvbnRyb2xsZXJGb3JQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0oVGV4
dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewogICAgICAgICBbc2VsZiBfc2V0VGV4dEluZGlj
YXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRp
bWU6OlBlcm1hbmVudF07CisgICAgfSwgW3NlbGZdKEZsb2F0UmVjdCByZWN0SW5Sb290Vmlld0Nv
b3JkaW5hdGVzKSB7CisgICAgICAgIHJldHVybiBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9vdFZp
ZXc6cmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CiAgICAgfSk7CiB9CiAjZW5kaWYgLy8gX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKQEAgLTg1OTcsNyArODU5Niw3
IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKICAgICBpZiAoIV9w
cml2YXRlLT50ZXh0SW5kaWNhdG9yV2luZG93KQogICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGlj
YXRvcldpbmRvdyA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dEluZGljYXRvcldpbmRvdz4oc2VsZik7
CiAKLSAgICBOU1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluV2luZG93Q29vcmRpbmF0ZXMgPSBbc2Vs
ZiBjb252ZXJ0UmVjdDp0ZXh0SW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29v
cmRpbmF0ZXMoKSB0b1ZpZXc6bmlsXTsKKyAgICBOU1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluV2lu
ZG93Q29vcmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UmVjdDpbc2VsZiBfY29udmVydFJlY3RGcm9t
Um9vdFZpZXc6dGV4dEluZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5h
dGVzKCldIHRvVmlldzpuaWxdOwogICAgIE5TUmVjdCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5D
b29yZGluYXRlcyA9IFtzZWxmLndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOnRleHRCb3VuZGlu
Z1JlY3RJbldpbmRvd0Nvb3JkaW5hdGVzXTsKICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvcldp
bmRvdy0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0
Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKIH0KQEAgLTg2MzMs
MTEgKzg2MzIsMTAgQEAgYm9vbCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQog
CiAgICAgW3NlbGYgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKIAotICAgIERpY3Rpb25h
cnlQb3B1cEluZm8gYWRqdXN0ZWRQb3B1cEluZm8gPSBkaWN0aW9uYXJ5UG9wdXBJbmZvOwotICAg
IGFkanVzdGVkUG9wdXBJbmZvLnRleHRJbmRpY2F0b3IudGV4dEJvdW5kaW5nUmVjdEluUm9vdFZp
ZXdDb29yZGluYXRlcyA9IFtzZWxmIF9jb252ZXJ0UmVjdEZyb21Sb290VmlldzphZGp1c3RlZFBv
cHVwSW5mby50ZXh0SW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0
ZXNdOwotCi0gICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGFkanVzdGVkUG9wdXBJbmZv
LCBzZWxmLCBbc2VsZl0oVGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgeworICAgIERpY3Rp
b25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBzZWxmLCBbc2VsZl0o
VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewogICAgICAgICBbc2VsZiBfc2V0VGV4dElu
ZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNhdG9yV2luZG93TGlm
ZXRpbWU6OlBlcm1hbmVudF07CisgICAgfSwgW3NlbGZdKEZsb2F0UmVjdCByZWN0SW5Sb290Vmll
d0Nvb3JkaW5hdGVzKSB7CisgICAgICAgIHJldHVybiBbc2VsZiBfY29udmVydFJlY3RGcm9tUm9v
dFZpZXc6cmVjdEluUm9vdFZpZXdDb29yZGluYXRlc107CiAgICAgfSk7CiB9CiAK
</data>
<flag name="review"
          id="294036"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>