<?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>132726</bug_id>
          
          <creation_ts>2014-05-08 21:51:38 -0700</creation_ts>
          <short_desc>[iOS][WK2] Set up the resize events</short_desc>
          <delta_ts>2014-05-09 16:09:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007885</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-08 21:51:38 -0700</bug_when>
    <thetext>[iOS][WK2] Set up the resize events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007895</commentid>
    <comment_count>1</comment_count>
      <attachid>231131</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-08 22:33:22 -0700</bug_when>
    <thetext>Created attachment 231131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008028</commentid>
    <comment_count>2</comment_count>
      <attachid>231131</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-09 10:56:58 -0700</bug_when>
    <thetext>Comment on attachment 231131
Patch

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

This is so tricky that it really demands test coverage; we need to figure out how to test this in an automated way. I’m really concerned that we will break this in the future.

&gt; Source/WebCore/WebCore.exp.in:2451
&gt; +__ZN7WebCore9FrameView27setCustomSizeForResizeEventENS_7IntSizeE

Should run the sort-export-file script. I’m pretty sure that this will sort lower in the file, because it’s a literal ASCII sort, so 9F will come after 10.

&gt; Source/WebKit2/Shared/VisibleContentRectUpdateInfo.h:54
&gt; +        , m_isChangingObscuredInsetsInteractively(isChangingObscuredInsetsInteractively)

We want to initialize this to false above in the default constructor too.

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:2039
&gt; +    frameView.setCustomSizeForResizeEvent(roundedIntSize(unobscuredContentRectSizeInContentCoordinates));

I worry about the use of rounded in all the various cases like this, but I suppose it’s not new. Is rounding correct as opposed to ceiling or floor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008113</commentid>
    <comment_count>3</comment_count>
      <attachid>231189</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-09 15:41:31 -0700</bug_when>
    <thetext>Created attachment 231189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008116</commentid>
    <comment_count>4</comment_count>
      <attachid>231189</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-09 15:46:21 -0700</bug_when>
    <thetext>Comment on attachment 231189
Patch

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

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Wire the UI Process updates to frameview to send the resize events appropriately.

FrameView

&gt; Source/WebKit2/ChangeLog:29
&gt; +        Since JavaScript now gets two chances to change the content, we query the actual scroll offset

Can you explain the &quot;now gets two chances&quot; here in the change log?

&gt; Source/WebCore/page/FrameView.h:701
&gt; +    bool m_useCustomSizeForResizeEvent;

You forgot to initialize this in the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008124</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-09 16:09:09 -0700</bug_when>
    <thetext>Committed r168556: &lt;http://trac.webkit.org/changeset/168556&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231131</attachid>
            <date>2014-05-08 22:33:22 -0700</date>
            <delta_ts>2014-05-09 15:41:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132726-20140508223259.patch</filename>
            <type>text/plain</type>
            <size>19084</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE4OTY4ZWE0MWRlOGVk
MjFiMDk2NTczMzI4NTA3ZjY1OGFmNWM2Zi4uZTZkMDliNDI3NjQ4NTNlNTE2MDYxYWIzODdjYjcz
MWY2NjJkMTljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTA1LTA4ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW1dLMl0g
U2V0IHVwIHRoZSByZXNpemUgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzI3MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBMZXQgdGhlIFdlYktpdDIgbGF5ZXIgb3ZlcnJpZGUgdGhlIHNpemUg
dXNlZCBmb3IgcmVzaXplIGV2ZW50cy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2l6ZUZvclJlc2l6ZUV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2VuZFJlc2l6ZUV2ZW50SWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRDdXN0b21TaXplRm9yUmVzaXplRXZl
bnQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisKIDIwMTQtMDUtMDggIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIEJvdHRv
bS1yZWxhdGl2ZSBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyBhcmUgbWlzcGxhY2VkIG9uIHBhZ2Ug
bG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDZlOTMwMjMxZjQ0Yjk3ZTQ0MDJlMjg3NThjMDNhNzIxMjBkNmY0
NGYuLmIwM2U0MTVjNGU2Yzc3Y2E5MDBlOWY4NTQ4OGY1MDlkNWIyN2I3YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MiBAQAorMjAxNC0wNS0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWlu
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJdIFNldCB1cCB0aGUgcmVzaXplIGV2ZW50
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNzI2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2lyZSB0
aGUgVUkgUHJvY2VzcyB1cGRhdGVzIHRvIGZyYW1ldmlldyB0byBzZW5kIHRoZSByZXNpemUgZXZl
bnRzIGFwcHJvcHJpYXRlbHkuCisKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm86OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm86OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUluZm86OmlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZl
bHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXcubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlkVXBkYXRlVmlzaWJs
ZVJlY3Q6dW5vYnNjdXJlZFJlY3Q6c2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5naW5nT2JzY3Vy
ZWRJbnNldHNJbnRlcmFjdGl2ZWx5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFVw
ZGF0ZVZpc2libGVSZWN0OnVub2JzY3VyZWRSZWN0OnNjYWxlOmluU3RhYmxlU3RhdGU6XSk6IERl
bGV0ZWQuCisgICAgICAgIFBhc3MgZG93biB0aGUgc3RhdHVzIG9mIHRoZSBjb250ZW50IGluc2V0
cyB3aXRoIHRoZSB2aWV3IHVwZGF0ZSB0byBtYWluIGZyYW1lJ3MgRnJhbWVWaWV3CisgICAgICAg
IHdoZW4gbmVlZGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlKToKKyAgICAgICAgT24gbGl2ZSByZXNpemUsIHNlbmQgdGhlIHJlc2l6ZSBldmVudCwgdGhl
biB0aGUgc2Nyb2xsIGV2ZW50cyAoaWYgbmVlZGVkKS4KKworICAgICAgICBTaW5jZSBKYXZhU2Ny
aXB0IG5vdyBnZXRzIHR3byBjaGFuY2VzIHRvIGNoYW5nZSB0aGUgY29udGVudCwgd2UgcXVlcnkg
dGhlIGFjdHVhbCBzY3JvbGwgb2Zmc2V0CisgICAgICAgIGFuZCBzY2FsZSBmb3IgdGhlIER5bmFt
aWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIERlZmluZSB0aGUgY3Vz
dG9tIHNpemUgb24gbG9hZCBiZWZvcmUgdGhlIGFwcCBnZXRzIGEgY2hhbmNlIHRvIHNlbmQgZGlm
ZmVyZW50IHJlY3RzLgorICAgICAgICBJZiBmb3Igc29tZSByZWFzb24gdGhlIGFwcCBjaGFuZ2Vz
IGl0cyBtaW5kIGFib3V0IHRoZSBpbnNldHMsIHRoZSBjb250ZW50IHdpbGwgYmUgbm90aWZpZWQg
d2l0aCBhIHJlc2l6ZSBldmVudC4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVW
aXNpYmxlQ29udGVudFJlY3RzKToKKyAgICAgICAgU2VuZCB0aGUgcmVzaXplIGV2ZW50IHdoZW4g
dGhlIGluc2V0cyBhcmUgc3RhYmxlLgorICAgICAgICBBbHNvIG1vdmUgdGhlIHNjcm9sbCBldmVu
dCBhZnRlciB0aGUgcmVzaXplIGV2ZW50IGZvciBjb25zaXN0ZW5jeSB3aXRoIGxpdmUgcmVzaXpl
LgorCiAyMDE0LTA1LTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBbaU9TXSBTd2l0Y2ggZ2VvbG9jYXRpb24gdG8gYW4gZXhwbGljaXQgYXV0aG9y
aXphdGlvbiBxdWVyeSBtb2RlbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjMDY3YzUzODYyMjNj
ZTM2NTdhNWRjMTMzYWZiNWE2NjkyMjNkMWI2Li5jNTE4NGU0YmQzODAxYzljMWQwNjhkZTM0MzMy
Y2Q0YTIyZGQ1YzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjQ0OCw2ICsyNDQ4LDcgQEAg
X1dlYlRocmVhZFVubG9ja0d1YXJkRm9yTWFpbAogX1dlYlVJQXBwbGljYXRpb25EaWRCZWNvbWVB
Y3RpdmVOb3RpZmljYXRpb24KIF9XZWJVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5v
dGlmaWNhdGlvbgogX1dlYlVJQXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlTm90aWZpY2F0aW9u
CitfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjdzZXRDdXN0b21TaXplRm9yUmVzaXplRXZlbnRFTlNf
N0ludFNpemVFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxNXNldFNjcm9sbE9mZnNldEVSS05T
XzhJbnRQb2ludEUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIxc2V0RXhwb3NlZENvbnRlbnRS
ZWN0RVJLTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcyNHNldFVub2JzY3Vy
ZWRDb250ZW50UmVjdEVSS05TXzdJbnRSZWN0RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmlu
ZGV4IDE3NzFhNzE3MGJiZTdlNTRmYzk2ZjdjMzE5MTY2NWJmMDI4OWU3MTcuLjhmMjg5YjRlMTBk
ZGQ2ZDdjOTFlZmYwY2JlZjNiYjQ4ZDgwZTFlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTEyMTMsMTEgKzEyMTMsNyBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxs
b3dTdWJ0cmVlKQogCiAgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RMYXlvdXQgPSBmYWxzZTsK
ICAgICAgICAgICAgICAgICAgICAgbV9maXJzdExheW91dENhbGxiYWNrUGVuZGluZyA9IHRydWU7
Ci0gICAgICAgICAgICAgICAgICAgIGlmICh1c2VGaXhlZExheW91dCgpICYmICFmaXhlZExheW91
dFNpemUoKS5pc0VtcHR5KCkgJiYgZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSBmaXhlZExheW91dFNpemUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Vmlld3Bv
cnRTaXplID0gdmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkaW5nU2Nyb2xsYmFycygpLnNpemUoKTsK
LQorICAgICAgICAgICAgICAgICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSBzaXplRm9yUmVzaXpl
RXZlbnQoKTsKICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Wm9vbUZhY3RvciA9IHJvb3QtPnN0
eWxlKCkuem9vbSgpOwogCiAgICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgaW5pdGlhbCB2
TW9kZSB0byBBbHdheXNPbiBpZiB3ZSdyZSBhdXRvLgpAQCAtMjc5Niw2ICsyNzkyLDE3IEBAIHZv
aWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkKICAgICBzZW5kUmVzaXplRXZl
bnRJZk5lZWRlZCgpOwogfQogCitJbnRTaXplIEZyYW1lVmlldzo6c2l6ZUZvclJlc2l6ZUV2ZW50
KCkgY29uc3QKK3sKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKG1fdXNlQ3VzdG9tU2l6ZUZv
clJlc2l6ZUV2ZW50KQorICAgICAgICByZXR1cm4gbV9jdXN0b21TaXplRm9yUmVzaXplRXZlbnQ7
CisjZW5kaWYKKyAgICBpZiAodXNlRml4ZWRMYXlvdXQoKSAmJiAhZml4ZWRMYXlvdXRTaXplKCku
aXNFbXB0eSgpICYmIGRlbGVnYXRlc1Njcm9sbGluZygpKQorICAgICAgICByZXR1cm4gZml4ZWRM
YXlvdXRTaXplKCk7CisgICAgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdEluY2x1ZGluZ1Njcm9s
bGJhcnMoKS5zaXplKCk7Cit9CisKIHZvaWQgRnJhbWVWaWV3OjpzZW5kUmVzaXplRXZlbnRJZk5l
ZWRlZCgpCiB7CiAgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXco
KTsKQEAgLTI4MDQsMTIgKzI4MTEsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2VuZFJlc2l6ZUV2ZW50
SWZOZWVkZWQoKQogICAgIGlmIChmcmFtZSgpLnBhZ2UoKSAmJiBmcmFtZSgpLnBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkuaXNTVkdJbWFnZUNocm9tZUNsaWVudCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBJbnRTaXplIGN1cnJlbnRTaXplOwotICAgIGlmICh1c2VGaXhlZExheW91dCgpICYm
ICFmaXhlZExheW91dFNpemUoKS5pc0VtcHR5KCkgJiYgZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCi0g
ICAgICAgIGN1cnJlbnRTaXplID0gZml4ZWRMYXlvdXRTaXplKCk7Ci0gICAgZWxzZQotICAgICAg
ICBjdXJyZW50U2l6ZSA9IHZpc2libGVDb250ZW50UmVjdEluY2x1ZGluZ1Njcm9sbGJhcnMoKS5z
aXplKCk7Ci0KKyAgICBJbnRTaXplIGN1cnJlbnRTaXplID0gc2l6ZUZvclJlc2l6ZUV2ZW50KCk7
CiAgICAgZmxvYXQgY3VycmVudFpvb21GYWN0b3IgPSByZW5kZXJWaWV3LT5zdHlsZSgpLnpvb20o
KTsKICAgICBib29sIHNob3VsZFNlbmRSZXNpemVFdmVudCA9ICFtX2ZpcnN0TGF5b3V0ICYmIChj
dXJyZW50U2l6ZSAhPSBtX2xhc3RWaWV3cG9ydFNpemUgfHwgY3VycmVudFpvb21GYWN0b3IgIT0g
bV9sYXN0Wm9vbUZhY3Rvcik7CiAKQEAgLTQxNTgsNiArNDE2MCwxMyBAQCBib29sIEZyYW1lVmll
dzo6dXBkYXRlRml4ZWRQb3NpdGlvbkxheW91dFJlY3QoKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAordm9pZCBGcmFtZVZpZXc6OnNldEN1c3RvbVNpemVGb3JSZXNpemVFdmVudChJbnRTaXplIGN1
c3RvbVNpemUpCit7CisgICAgbV91c2VDdXN0b21TaXplRm9yUmVzaXplRXZlbnQgPSB0cnVlOwor
ICAgIG1fY3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50ID0gY3VzdG9tU2l6ZTsKKyAgICBzZW5kUmVz
aXplRXZlbnRJZk5lZWRlZCgpOworfQorCiB2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsVmVsb2Np
dHkoZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRv
dWJsZSBzY2FsZUNoYW5nZVJhdGUsIGRvdWJsZSB0aW1lc3RhbXApCiB7CiAgICAgbV9ob3Jpem9u
dGFsVmVsb2NpdHkgPSBob3Jpem9udGFsVmVsb2NpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApp
bmRleCBiNTdlZjQ5YmY3NDA1NDIyYTEzMjIwMTk2OTE4OWQ2Njg0MTkwNmE4Li5kNmU4MWQyNjA0
MTU4ZTE2OGQ1MzcyMjBlZDNkZGRkYjQ4NzI0YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
QEAgLTEzMCw2ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXN0b21GaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdChjb25zdCBJbnRSZWN0Jik7CiAgICAgYm9vbCB1cGRhdGVGaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdCgpOwogCisgICAgdm9pZCBzZXRDdXN0b21TaXplRm9yUmVzaXplRXZlbnQo
SW50U2l6ZSk7CisKICAgICB2b2lkIHNldFNjcm9sbFZlbG9jaXR5KGRvdWJsZSBob3Jpem9udGFs
VmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRl
LCBkb3VibGUgdGltZXN0YW1wKTsKICAgICBGbG9hdFJlY3QgY29tcHV0ZUNvdmVyYWdlUmVjdChk
b3VibGUgaG9yaXpvbnRhbE1hcmdpbiwgZG91YmxlIHZlcnRpY2FsTWFyZ2luKSBjb25zdDsKICNl
bHNlCkBAIC01NzcsNiArNTc5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRk
U2Nyb2xsYmFyKFNjcm9sbGJhciosIFNjcm9sbGJhck9yaWVudGF0aW9uKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVNjcm9sbGJhcihTY3JvbGxiYXIqLCBTY3JvbGxiYXJP
cmllbnRhdGlvbikgb3ZlcnJpZGU7CiAKKyAgICBJbnRTaXplIHNpemVGb3JSZXNpemVFdmVudCgp
IGNvbnN0OwogICAgIHZvaWQgc2VuZFJlc2l6ZUV2ZW50SWZOZWVkZWQoKTsKIAogICAgIHZvaWQg
dXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoKTsKQEAgLTY5NSw2ICs2OTgsOSBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV91c2VDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdDsKICAgICBJbnRSZWN0
IG1fY3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q7CiAKKyAgICBib29sIG1fdXNlQ3VzdG9t
U2l6ZUZvclJlc2l6ZUV2ZW50OworICAgIEludFNpemUgbV9jdXN0b21TaXplRm9yUmVzaXplRXZl
bnQ7CisKICAgICBkb3VibGUgbV9ob3Jpem9udGFsVmVsb2NpdHk7CiAgICAgZG91YmxlIG1fdmVy
dGljYWxWZWxvY2l0eTsKICAgICBkb3VibGUgbV9zY2FsZUNoYW5nZVJhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAK
aW5kZXggNDE0OGNlZTIwNGEwMTYxYzczZGEwMWM4OTEyZGY4MTgwN2VjMWNmYi4uNGQxZTg4YWIw
NzliZmJhOGUzZjdiYWM2NWUzNGM4NzE5OThkNDFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcApAQCAtMzgsNiAr
MzgsNyBAQCB2b2lkIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmVuY29kZShJUEM6OkFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fc2NhbGU7CiAg
ICAgZW5jb2RlciA8PCBtX3VwZGF0ZUlEOwogICAgIGVuY29kZXIgPDwgbV9pblN0YWJsZVN0YXRl
OworICAgIGVuY29kZXIgPDwgbV9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5
OwogICAgIGVuY29kZXIgPDwgbV90aW1lc3RhbXA7CiAgICAgZW5jb2RlciA8PCBtX2hvcml6b250
YWxWZWxvY2l0eTsKICAgICBlbmNvZGVyIDw8IG1fdmVydGljYWxWZWxvY2l0eTsKQEAgLTU4LDYg
KzU5LDggQEAgYm9vbCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUoSVBDOjpB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIFZpc2libGUKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faW5TdGFibGVTdGF0ZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2lzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV90aW1lc3RhbXApKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9ob3Jpem9udGFsVmVs
b2NpdHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvLmgKaW5kZXggNzU5OTE2NjFjNzYyMzYzMTA2ZWM5MjEwNTZhZGQzOGMxNTky
MjZiYy4uODNhZTNlM2Q3NGU1OGZiMDcwYTQxZTQxMGM5MGM2NWIzNmJkNmI4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5o
CkBAIC00NCwxMyArNDQsMTQgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICBWaXNpYmxl
Q29udGVudFJlY3RVcGRhdGVJbmZvKHVpbnQ2NF90IHVwZGF0ZUlELCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGV4cG9zZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3Vy
ZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0
LCBkb3VibGUgc2NhbGUsIGJvb2wgaW5TdGFibGVTdGF0ZSwgZG91YmxlIHRpbWVzdGFtcCwgZG91
YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBz
Y2FsZUNoYW5nZVJhdGUpCisgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyh1aW50NjRf
dCB1cGRhdGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkUmVjdCwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlLCBib29sIGluU3RhYmxl
U3RhdGUsIGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwgZG91Ymxl
IHRpbWVzdGFtcCwgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVs
b2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUpCiAgICAgICAgIDogbV9leHBvc2VkUmVjdChl
eHBvc2VkUmVjdCkKICAgICAgICAgLCBtX3Vub2JzY3VyZWRSZWN0KHVub2JzY3VyZWRSZWN0KQog
ICAgICAgICAsIG1fY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoY3VzdG9tRml4ZWRQb3NpdGlvblJl
Y3QpCiAgICAgICAgICwgbV9zY2FsZShzY2FsZSkKICAgICAgICAgLCBtX3VwZGF0ZUlEKHVwZGF0
ZUlEKQogICAgICAgICAsIG1faW5TdGFibGVTdGF0ZShpblN0YWJsZVN0YXRlKQorICAgICAgICAs
IG1faXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseShpc0NoYW5naW5nT2JzY3Vy
ZWRJbnNldHNJbnRlcmFjdGl2ZWx5KQogICAgICAgICAsIG1fdGltZXN0YW1wKHRpbWVzdGFtcCkK
ICAgICAgICAgLCBtX2hvcml6b250YWxWZWxvY2l0eShob3Jpem9udGFsVmVsb2NpdHkpCiAgICAg
ICAgICwgbV92ZXJ0aWNhbFZlbG9jaXR5KHZlcnRpY2FsVmVsb2NpdHkpCkBAIC02NCw2ICs2NSw3
IEBAIHB1YmxpYzoKICAgICBkb3VibGUgc2NhbGUoKSBjb25zdCB7IHJldHVybiBtX3NjYWxlOyB9
CiAgICAgdWludDY0X3QgdXBkYXRlSUQoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZUlEOyB9CiAg
ICAgYm9vbCBpblN0YWJsZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pblN0YWJsZVN0YXRlOyB9
CisgICAgYm9vbCBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5KCkgY29uc3Qg
eyByZXR1cm4gbV9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OyB9CiAKICAg
ICBkb3VibGUgdGltZXN0YW1wKCkgY29uc3QgeyByZXR1cm4gbV90aW1lc3RhbXA7IH0KICAgICBk
b3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5KCkgY29uc3QgeyByZXR1cm4gbV9ob3Jpem9udGFsVmVs
b2NpdHk7IH0KQEAgLTgwLDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9zY2FsZTsK
ICAgICB1aW50NjRfdCBtX3VwZGF0ZUlEOwogICAgIGJvb2wgbV9pblN0YWJsZVN0YXRlOworICAg
IGJvb2wgbV9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OwogICAgIGRvdWJs
ZSBtX3RpbWVzdGFtcDsKICAgICBkb3VibGUgbV9ob3Jpem9udGFsVmVsb2NpdHk7CiAgICAgZG91
YmxlIG1fdmVydGljYWxWZWxvY2l0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMmVkNzc1NzM3MmQzZThmYzdiMjAzYjE1MDU3YjAz
ZDNhYWE3ODlkMC4uYmVjNDhlMjY4YTM2NjIwZGI1OTdkZDU2MDNiOTgwZmVhNzY3ZTkyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAg
LTc3OSw3ICs3NzksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0
aW9uTWluaW11bUxheW91dFNpemUoV2ViS2l0OjpXZWJQYWdlUHJveAogICAgIENHRmxvYXQgc2Nh
bGVGYWN0b3IgPSBjb250ZW50Wm9vbVNjYWxlKHNlbGYpOwogCiAgICAgQk9PTCBpc1N0YWJsZVN0
YXRlID0gIShfaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSB8fCBbX3Njcm9s
bFZpZXcgaXNEcmFnZ2luZ10gfHwgW19zY3JvbGxWaWV3IGlzRGVjZWxlcmF0aW5nXSB8fCBbX3Nj
cm9sbFZpZXcgaXNab29taW5nXSB8fCBbX3Njcm9sbFZpZXcgaXNab29tQm91bmNpbmddIHx8IFtf
c2Nyb2xsVmlldyBfaXNBbmltYXRpbmdab29tXSk7Ci0gICAgW19jb250ZW50VmlldyBkaWRVcGRh
dGVWaXNpYmxlUmVjdDp2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzIHVub2JzY3VyZWRS
ZWN0OnVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgc2NhbGU6c2NhbGVGYWN0b3Ig
aW5TdGFibGVTdGF0ZTppc1N0YWJsZVN0YXRlXTsKKyAgICBbX2NvbnRlbnRWaWV3IGRpZFVwZGF0
ZVZpc2libGVSZWN0OnZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgdW5vYnNjdXJlZFJl
Y3Q6dW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyBzY2FsZTpzY2FsZUZhY3RvciBp
blN0YWJsZVN0YXRlOmlzU3RhYmxlU3RhdGUgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJh
Y3RpdmVseTpfaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseV07CiB9CiAKIC0g
KHZvaWQpX2tleWJvYXJkQ2hhbmdlZFdpdGhJbmZvOihOU0RpY3Rpb25hcnkgKilrZXlib2FyZElu
Zm8gYWRqdXN0U2Nyb2xsVmlldzooQk9PTClhZGp1c3RTY3JvbGxWaWV3CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IGIzOGIxMDQ3MzZlYWIzZGU3
YjQ5NThkOWY2ZTU1ZDQzM2UzNDZhODQuLjc0Yzc5YWFiZTQ0ZTg3MWIwNmQyNmFmOTExOWE3ZmZj
YWJlYzQwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
dy5oCkBAIC02MCw3ICs2MCw3IEBAIHN0cnVjdCBXZWJQYWdlQ29uZmlndXJhdGlvbjsKIC0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4dDooV2ViS2l0OjpX
ZWJDb250ZXh0Jiljb250ZXh0IGNvbmZpZ3VyYXRpb246KFdlYktpdDo6V2ViUGFnZUNvbmZpZ3Vy
YXRpb24pd2ViUGFnZUNvbmZpZ3VyYXRpb24gd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsK
IAogLSAodm9pZClzZXRNaW5pbXVtU2l6ZTooQ0dTaXplKXNpemU7Ci0tICh2b2lkKWRpZFVwZGF0
ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNjdXJlZFJlY3Q6KENHUmVjdCl1
bm9ic2N1cmVkUmVjdCBzY2FsZTooQ0dGbG9hdClzY2FsZSBpblN0YWJsZVN0YXRlOihCT09MKWlz
U3RhYmxlU3RhdGU7CistICh2b2lkKWRpZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJs
ZVJlY3QgdW5vYnNjdXJlZFJlY3Q6KENHUmVjdCl1bm9ic2N1cmVkUmVjdCBzY2FsZTooQ0dGbG9h
dClzY2FsZSBpblN0YWJsZVN0YXRlOihCT09MKWlzU3RhYmxlU3RhdGUgaXNDaGFuZ2luZ09ic2N1
cmVkSW5zZXRzSW50ZXJhY3RpdmVseTooQk9PTClpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRl
cmFjdGl2ZWx5OwogCiAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZzsKIC0gKHZvaWQpZGlkWm9v
bVRvU2NhbGU6KENHRmxvYXQpc2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcubW0KaW5kZXggNmM3YjE1MTUwMDU5NzEyODkzNDFlMDI2OTEyODM2NWZl
MTllOTRjYi4uM2U2NTdmZjBkYzc2OGIxMWM3YjY5YmM0OGY3NjRiMzgyNTRmY2NiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMjk3LDcg
KzI5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0RnJvbUV4
cG9zZWRSZWN0KENHUmVjdCB1bm9ic2N1cmVkUmVjdCwKICAgICByZXR1cm4gRnJhbWVWaWV3Ojpy
ZWN0Rm9yVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMoZW5jbG9zaW5nTGF5b3V0UmVjdCh1bm9i
c2N1cmVkUmVjdCksIHJvdW5kZWRMYXlvdXRTaXplKEZsb2F0U2l6ZShkb2N1bWVudFNpemUpKSwg
c2NhbGUsIGZhbHNlLCBTdGlja1RvVmlld3BvcnRCb3VuZHMpOwogfQogCi0tICh2b2lkKWRpZFVw
ZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNjdXJlZFJlY3Q6KENHUmVj
dCl1bm9ic2N1cmVkUmVjdCBzY2FsZTooQ0dGbG9hdCl6b29tU2NhbGUgaW5TdGFibGVTdGF0ZToo
Qk9PTClpc1N0YWJsZVN0YXRlCistICh2b2lkKWRpZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3Qp
dmlzaWJsZVJlY3QgdW5vYnNjdXJlZFJlY3Q6KENHUmVjdCl1bm9ic2N1cmVkUmVjdCBzY2FsZToo
Q0dGbG9hdCl6b29tU2NhbGUgaW5TdGFibGVTdGF0ZTooQk9PTClpc1N0YWJsZVN0YXRlIGlzQ2hh
bmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHk6KEJPT0wpaXNDaGFuZ2luZ09ic2N1cmVk
SW5zZXRzSW50ZXJhY3RpdmVseQogewogICAgIGRvdWJsZSB0aW1lc3RhbXAgPSBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKTsKICAgICBIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpWZWxvY2l0
eURhdGEgdmVsb2NpdHlEYXRhOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyBpbmxpbmUgRmxv
YXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0RnJvbUV4cG9zZWRSZWN0KENHUmVjdCB1bm9ic2N1cmVk
UmVjdCwKICAgICB9CiAKICAgICBGbG9hdFJlY3QgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QgPSBm
aXhlZFBvc2l0aW9uUmVjdEZyb21FeHBvc2VkUmVjdCh1bm9ic2N1cmVkUmVjdCwgW3NlbGYgYm91
bmRzXS5zaXplLCB6b29tU2NhbGUpOwotICAgIF9wYWdlLT51cGRhdGVWaXNpYmxlQ29udGVudFJl
Y3RzKFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oX3BhZ2UtPm5leHRWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJRCgpLCB2aXNpYmxlUmVjdCwgdW5vYnNjdXJlZFJlY3QsIGN1c3RvbUZpeGVk
UG9zaXRpb25SZWN0LCBmaWx0ZXJlZFNjYWxlLCBpc1N0YWJsZVN0YXRlLCB0aW1lc3RhbXAsIHZl
bG9jaXR5RGF0YS5ob3Jpem9udGFsVmVsb2NpdHksIHZlbG9jaXR5RGF0YS52ZXJ0aWNhbFZlbG9j
aXR5LCB2ZWxvY2l0eURhdGEuc2NhbGVDaGFuZ2VSYXRlKSk7CisgICAgX3BhZ2UtPnVwZGF0ZVZp
c2libGVDb250ZW50UmVjdHMoVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhfcGFnZS0+bmV4
dFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlEKCksIHZpc2libGVSZWN0LCB1bm9ic2N1cmVkUmVj
dCwgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGZpbHRlcmVkU2NhbGUsIGlzU3RhYmxlU3RhdGUs
IGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksIHRpbWVzdGFtcCwgdmVsb2Np
dHlEYXRhLmhvcml6b250YWxWZWxvY2l0eSwgdmVsb2NpdHlEYXRhLnZlcnRpY2FsVmVsb2NpdHks
IHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUpKTsKICAgICAKICAgICBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5KiBzY3JvbGxpbmdDb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5KCk7CiAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnZpZXdwb3J0
Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxpbmdDb29yZGluYXRvci0+cm9vdFNj
cm9sbGluZ05vZGVJRCgpLCB1bm9ic2N1cmVkUmVjdCwgem9vbVNjYWxlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA4
ZmU3MWQ4NjQ2Y2M3NzdkYTAyZTkxOWM0ZGNhZjhmMmFhZGQ4NTk5Li5lMTgyZTk5MTY2OGVjM2Y3
YmU2MDUzNWUxZmMyNzRlZWU2ODhlMWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yMDI4LDE1ICsyMDI4LDE5IEBA
IHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUm
IG1pbmltdW1MYXlvdXRTaXplLCBjb25zCiAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFZlbG9jaXR5
KDAsIDAsIDAsIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKIAogICAgIEludFJlY3Qg
cm91bmRlZFVub2JzY3VyZWRDb250ZW50UmVjdCA9IHJvdW5kZWRJbnRSZWN0KG5ld1Vub2JzY3Vy
ZWRDb250ZW50UmVjdCk7Ci0gICAgZnJhbWVWaWV3LnNldFNjcm9sbE9mZnNldChyb3VuZGVkVW5v
YnNjdXJlZENvbnRlbnRSZWN0LmxvY2F0aW9uKCkpOwogICAgIGZyYW1lVmlldy5zZXRVbm9ic2N1
cmVkQ29udGVudFJlY3Qocm91bmRlZFVub2JzY3VyZWRDb250ZW50UmVjdCk7CiAgICAgbV9kcmF3
aW5nQXJlYS0+c2V0RXhwb3NlZENvbnRlbnRSZWN0KG5ld0V4cG9zZWRDb250ZW50UmVjdCk7CiAK
ICAgICBpZiAoc2NhbGUgPT0gdGFyZ2V0U2NhbGUpCiAgICAgICAgIHNjYWxlUGFnZShzY2FsZSwg
cm91bmRlZFVub2JzY3VyZWRDb250ZW50UmVjdC5sb2NhdGlvbigpKTsKIAotICAgIGlmIChzY2Fs
ZSAhPSB0YXJnZXRTY2FsZSB8fCByb3VuZGVkSW50UG9pbnQodGFyZ2V0VW5vYnNjdXJlZFJlY3Qu
bG9jYXRpb24oKSkgIT0gcm91bmRlZFVub2JzY3VyZWRDb250ZW50UmVjdC5sb2NhdGlvbigpKQot
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkR5bmFtaWNWaWV3cG9ydFVwZGF0
ZUNoYW5nZWRUYXJnZXQoc2NhbGUsIHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJlY3QubG9jYXRp
b24oKSkpOworICAgIEZsb2F0U2l6ZSB1bm9ic2N1cmVkQ29udGVudFJlY3RTaXplSW5Db250ZW50
Q29vcmRpbmF0ZXMgPSBuZXdVbm9ic2N1cmVkQ29udGVudFJlY3Quc2l6ZSgpOworICAgIHVub2Jz
Y3VyZWRDb250ZW50UmVjdFNpemVJbkNvbnRlbnRDb29yZGluYXRlcy5zY2FsZShzY2FsZSk7Cisg
ICAgZnJhbWVWaWV3LnNldEN1c3RvbVNpemVGb3JSZXNpemVFdmVudChyb3VuZGVkSW50U2l6ZSh1
bm9ic2N1cmVkQ29udGVudFJlY3RTaXplSW5Db250ZW50Q29vcmRpbmF0ZXMpKTsKKyAgICBmcmFt
ZVZpZXcuc2V0U2Nyb2xsT2Zmc2V0KHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJlY3QubG9jYXRp
b24oKSk7CisKKyAgICBpZiAocGFnZVNjYWxlRmFjdG9yKCkgIT0gdGFyZ2V0U2NhbGUgfHwgcm91
bmRlZEludFBvaW50KHRhcmdldFVub2JzY3VyZWRSZWN0LmxvY2F0aW9uKCkpICE9IGZyYW1lVmll
dy5zY3JvbGxQb3NpdGlvbigpKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQocGFnZVNjYWxlRmFjdG9yKCksIGZy
YW1lVmlldy5zY3JvbGxQb3NpdGlvbigpKSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6cmVzZXRWaWV3
cG9ydERlZmF1bHRDb25maWd1cmF0aW9uKFdlYkZyYW1lKiBmcmFtZSkKQEAgLTIwOTEsNiArMjA5
NSw4IEBAIHZvaWQgV2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCgpCiAgICAg
aWYgKCFtX2hhc1JlY2VpdmVkVmlzaWJsZUNvbnRlbnRSZWN0c0FmdGVyRGlkQ29tbWl0TG9hZCkg
ewogICAgICAgICAvLyBUaGlzIHRha2VzIHNjYWxlIGludG8gYWNjb3VudCwgc28gZG8gYWZ0ZXIg
dGhlIHNjYWxlIGNoYW5nZS4KICAgICAgICAgZnJhbWVWaWV3LnNldEN1c3RvbUZpeGVkUG9zaXRp
b25MYXlvdXRSZWN0KGVuY2xvc2luZ0ludFJlY3QoZnJhbWVWaWV3LnZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3RzUmVjdCgpKSk7CisKKyAgICAgICAgZnJhbWVWaWV3LnNldEN1c3RvbVNpemVGb3JS
ZXNpemVFdmVudChyb3VuZGVkSW50U2l6ZShtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5taW5pbXVt
TGF5b3V0U2l6ZSgpKSk7CiAgICAgfQogfQogCkBAIC0yMTY0LDcgKzIxNzAsNiBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mbyYgdmlzaQogICAgIGlmIChzY3JvbGxQb3NpdGlvbiAhPSBJbnRQb2ludChmcmFt
ZVZpZXcuc2Nyb2xsT2Zmc2V0KCkpKQogICAgICAgICBtX2R5bmFtaWNTaXplVXBkYXRlSGlzdG9y
eS5jbGVhcigpOwogCi0gICAgZnJhbWVWaWV3LnNldFNjcm9sbE9mZnNldChzY3JvbGxQb3NpdGlv
bik7CiAgICAgZnJhbWVWaWV3LnNldFVub2JzY3VyZWRDb250ZW50UmVjdChyb3VuZGVkVW5vYnNj
dXJlZFJlY3QpOwogCiAgICAgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSA9IHZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8uaG9yaXpvbnRhbFZlbG9jaXR5KCk7CkBAIC0yMTc2LDYgKzIxODEs
MTQgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2kKIAogICAgIGlmICh2aXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvLmluU3RhYmxlU3RhdGUoKSkKICAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUo
KS52aWV3KCktPnNldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KGVuY2xvc2luZ0ludFJl
Y3QodmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgp
KSk7CisKKyAgICBpZiAoIXZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaXNDaGFuZ2luZ09i
c2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSgpKSB7CisgICAgICAgIEZsb2F0U2l6ZSB1bm9ic2N1
cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGUgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLnVub2JzY3VyZWRSZWN0KCkuc2l6ZSgpOworICAgICAgICB1bm9ic2N1cmVkUmVjdEluU2Ny
b2xsVmlld0Nvb3JkaW5hdGUuc2NhbGUodmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5zY2Fs
ZSgpKTsKKyAgICAgICAgZnJhbWVWaWV3LnNldEN1c3RvbVNpemVGb3JSZXNpemVFdmVudChyb3Vu
ZGVkSW50U2l6ZSh1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGUpKTsKKyAgICB9
CisKKyAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsT2Zmc2V0KHNjcm9sbFBvc2l0aW9uKTsKIH0KIAog
dm9pZCBXZWJQYWdlOjp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWluZygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231189</attachid>
            <date>2014-05-09 15:41:31 -0700</date>
            <delta_ts>2014-05-09 15:46:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132726-20140509154108.patch</filename>
            <type>text/plain</type>
            <size>27883</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4NTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE4OTY4ZWE0MWRlOGVk
MjFiMDk2NTczMzI4NTA3ZjY1OGFmNWM2Zi4uOTdlOGIxNWY1ODU4MGEyZjJkOWNhYmQ0NWZmZmQ0
NzExMTU5YmNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTA1LTA4ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW1dLMl0g
U2V0IHVwIHRoZSByZXNpemUgZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzI3MjYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBMZXQgdGhlIFdlYktpdDIgbGF5ZXIgb3ZlcnJpZGUgdGhlIHNpemUgdXNl
ZCBmb3IgcmVzaXplIGV2ZW50cy4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2l6ZUZvclJlc2l6ZUV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2VuZFJlc2l6ZUV2ZW50SWZOZWVkZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRDdXN0b21TaXplRm9yUmVzaXplRXZlbnQp
OgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisKIDIwMTQtMDUtMDggIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIEJvdHRvbS1y
ZWxhdGl2ZSBwb3NpdGlvbjpmaXhlZCBlbGVtZW50cyBhcmUgbWlzcGxhY2VkIG9uIHBhZ2UgbG9h
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDZlOTMwMjMxZjQ0Yjk3ZTQ0MDJlMjg3NThjMDNhNzIxMjBkNmY0NGYu
LjRjNTQ2ZDkxY2VhN2M5ODI4NTBjMThhZTRkYjYzZDlmYzZiYjEzNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0MiBAQAorMjAxNC0wNS0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KKworICAgICAgICBbaU9TXVtXSzJdIFNldCB1cCB0aGUgcmVzaXplIGV2ZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNzI2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgV2lyZSB0aGUgVUkg
UHJvY2VzcyB1cGRhdGVzIHRvIGZyYW1ldmlldyB0byBzZW5kIHRoZSByZXNpemUgZXZlbnRzIGFw
cHJvcHJpYXRlbHkuCisKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRl
SW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86
OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8u
aDoKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6VmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OlZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm86OmlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3VwZGF0ZVZpc2libGVDb250ZW50UmVjdHNdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3Q6
dW5vYnNjdXJlZFJlY3Q6c2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5naW5nT2JzY3VyZWRJbnNl
dHNJbnRlcmFjdGl2ZWx5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZp
c2libGVSZWN0OnVub2JzY3VyZWRSZWN0OnNjYWxlOmluU3RhYmxlU3RhdGU6XSk6IERlbGV0ZWQu
CisgICAgICAgIFBhc3MgZG93biB0aGUgc3RhdHVzIG9mIHRoZSBjb250ZW50IGluc2V0cyB3aXRo
IHRoZSB2aWV3IHVwZGF0ZSB0byBtYWluIGZyYW1lJ3MgRnJhbWVWaWV3CisgICAgICAgIHdoZW4g
bmVlZGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToK
KyAgICAgICAgT24gbGl2ZSByZXNpemUsIHNlbmQgdGhlIHJlc2l6ZSBldmVudCwgdGhlbiB0aGUg
c2Nyb2xsIGV2ZW50cyAoaWYgbmVlZGVkKS4KKworICAgICAgICBTaW5jZSBKYXZhU2NyaXB0IG5v
dyBnZXRzIHR3byBjaGFuY2VzIHRvIGNoYW5nZSB0aGUgY29udGVudCwgd2UgcXVlcnkgdGhlIGFj
dHVhbCBzY3JvbGwgb2Zmc2V0CisgICAgICAgIGFuZCBzY2FsZSBmb3IgdGhlIER5bmFtaWNWaWV3
cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmll
d3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAgIERlZmluZSB0aGUgY3VzdG9tIHNp
emUgb24gbG9hZCBiZWZvcmUgdGhlIGFwcCBnZXRzIGEgY2hhbmNlIHRvIHNlbmQgZGlmZmVyZW50
IHJlY3RzLgorICAgICAgICBJZiBmb3Igc29tZSByZWFzb24gdGhlIGFwcCBjaGFuZ2VzIGl0cyBt
aW5kIGFib3V0IHRoZSBpbnNldHMsIHRoZSBjb250ZW50IHdpbGwgYmUgbm90aWZpZWQgd2l0aCBh
IHJlc2l6ZSBldmVudC4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaXNpYmxl
Q29udGVudFJlY3RzKToKKyAgICAgICAgU2VuZCB0aGUgcmVzaXplIGV2ZW50IHdoZW4gdGhlIGlu
c2V0cyBhcmUgc3RhYmxlLgorICAgICAgICBBbHNvIG1vdmUgdGhlIHNjcm9sbCBldmVudCBhZnRl
ciB0aGUgcmVzaXplIGV2ZW50IGZvciBjb25zaXN0ZW5jeSB3aXRoIGxpdmUgcmVzaXplLgorCiAy
MDE0LTA1LTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBbaU9TXSBTd2l0Y2ggZ2VvbG9jYXRpb24gdG8gYW4gZXhwbGljaXQgYXV0aG9yaXphdGlv
biBxdWVyeSBtb2RlbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjMDY3YzUzODYyMjNjZTM2NTdh
NWRjMTMzYWZiNWE2NjkyMjNkMWI2Li5jNTE4NGU0YmQzODAxYzljMWQwNjhkZTM0MzMyY2Q0YTIy
ZGQ1YzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjQ0OCw2ICsyNDQ4LDcgQEAgX1dlYlRo
cmVhZFVubG9ja0d1YXJkRm9yTWFpbAogX1dlYlVJQXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmVO
b3RpZmljYXRpb24KIF9XZWJVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNh
dGlvbgogX1dlYlVJQXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlTm90aWZpY2F0aW9uCitfX1pO
N1dlYkNvcmU5RnJhbWVWaWV3MjdzZXRDdXN0b21TaXplRm9yUmVzaXplRXZlbnRFTlNfN0ludFNp
emVFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxNXNldFNjcm9sbE9mZnNldEVSS05TXzhJbnRQ
b2ludEUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIxc2V0RXhwb3NlZENvbnRlbnRSZWN0RVJL
TlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcyNHNldFVub2JzY3VyZWRDb250
ZW50UmVjdEVSS05TXzdJbnRSZWN0RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDE3
NzFhNzE3MGJiZTdlNTRmYzk2ZjdjMzE5MTY2NWJmMDI4OWU3MTcuLjhmMjg5YjRlMTBkZGQ2ZDdj
OTFlZmYwY2JlZjNiYjQ4ZDgwZTFlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAg
LTEyMTMsMTEgKzEyMTMsNyBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0
cmVlKQogCiAgICAgICAgICAgICAgICAgICAgIG1fZmlyc3RMYXlvdXQgPSBmYWxzZTsKICAgICAg
ICAgICAgICAgICAgICAgbV9maXJzdExheW91dENhbGxiYWNrUGVuZGluZyA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmICh1c2VGaXhlZExheW91dCgpICYmICFmaXhlZExheW91dFNpemUo
KS5pc0VtcHR5KCkgJiYgZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSBmaXhlZExheW91dFNpemUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Vmlld3BvcnRTaXpl
ID0gdmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkaW5nU2Nyb2xsYmFycygpLnNpemUoKTsKLQorICAg
ICAgICAgICAgICAgICAgICBtX2xhc3RWaWV3cG9ydFNpemUgPSBzaXplRm9yUmVzaXplRXZlbnQo
KTsKICAgICAgICAgICAgICAgICAgICAgbV9sYXN0Wm9vbUZhY3RvciA9IHJvb3QtPnN0eWxlKCku
em9vbSgpOwogCiAgICAgICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgaW5pdGlhbCB2TW9kZSB0
byBBbHdheXNPbiBpZiB3ZSdyZSBhdXRvLgpAQCAtMjc5Niw2ICsyNzkyLDE3IEBAIHZvaWQgRnJh
bWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkKICAgICBzZW5kUmVzaXplRXZlbnRJZk5l
ZWRlZCgpOwogfQogCitJbnRTaXplIEZyYW1lVmlldzo6c2l6ZUZvclJlc2l6ZUV2ZW50KCkgY29u
c3QKK3sKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKG1fdXNlQ3VzdG9tU2l6ZUZvclJlc2l6
ZUV2ZW50KQorICAgICAgICByZXR1cm4gbV9jdXN0b21TaXplRm9yUmVzaXplRXZlbnQ7CisjZW5k
aWYKKyAgICBpZiAodXNlRml4ZWRMYXlvdXQoKSAmJiAhZml4ZWRMYXlvdXRTaXplKCkuaXNFbXB0
eSgpICYmIGRlbGVnYXRlc1Njcm9sbGluZygpKQorICAgICAgICByZXR1cm4gZml4ZWRMYXlvdXRT
aXplKCk7CisgICAgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdEluY2x1ZGluZ1Njcm9sbGJhcnMo
KS5zaXplKCk7Cit9CisKIHZvaWQgRnJhbWVWaWV3OjpzZW5kUmVzaXplRXZlbnRJZk5lZWRlZCgp
CiB7CiAgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsKQEAg
LTI4MDQsMTIgKzI4MTEsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2VuZFJlc2l6ZUV2ZW50SWZOZWVk
ZWQoKQogICAgIGlmIChmcmFtZSgpLnBhZ2UoKSAmJiBmcmFtZSgpLnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuaXNTVkdJbWFnZUNocm9tZUNsaWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBJbnRTaXplIGN1cnJlbnRTaXplOwotICAgIGlmICh1c2VGaXhlZExheW91dCgpICYmICFmaXhl
ZExheW91dFNpemUoKS5pc0VtcHR5KCkgJiYgZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCi0gICAgICAg
IGN1cnJlbnRTaXplID0gZml4ZWRMYXlvdXRTaXplKCk7Ci0gICAgZWxzZQotICAgICAgICBjdXJy
ZW50U2l6ZSA9IHZpc2libGVDb250ZW50UmVjdEluY2x1ZGluZ1Njcm9sbGJhcnMoKS5zaXplKCk7
Ci0KKyAgICBJbnRTaXplIGN1cnJlbnRTaXplID0gc2l6ZUZvclJlc2l6ZUV2ZW50KCk7CiAgICAg
ZmxvYXQgY3VycmVudFpvb21GYWN0b3IgPSByZW5kZXJWaWV3LT5zdHlsZSgpLnpvb20oKTsKICAg
ICBib29sIHNob3VsZFNlbmRSZXNpemVFdmVudCA9ICFtX2ZpcnN0TGF5b3V0ICYmIChjdXJyZW50
U2l6ZSAhPSBtX2xhc3RWaWV3cG9ydFNpemUgfHwgY3VycmVudFpvb21GYWN0b3IgIT0gbV9sYXN0
Wm9vbUZhY3Rvcik7CiAKQEAgLTQxNTgsNiArNDE2MCwxMyBAQCBib29sIEZyYW1lVmlldzo6dXBk
YXRlRml4ZWRQb3NpdGlvbkxheW91dFJlY3QoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9p
ZCBGcmFtZVZpZXc6OnNldEN1c3RvbVNpemVGb3JSZXNpemVFdmVudChJbnRTaXplIGN1c3RvbVNp
emUpCit7CisgICAgbV91c2VDdXN0b21TaXplRm9yUmVzaXplRXZlbnQgPSB0cnVlOworICAgIG1f
Y3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50ID0gY3VzdG9tU2l6ZTsKKyAgICBzZW5kUmVzaXplRXZl
bnRJZk5lZWRlZCgpOworfQorCiB2b2lkIEZyYW1lVmlldzo6c2V0U2Nyb2xsVmVsb2NpdHkoZG91
YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBz
Y2FsZUNoYW5nZVJhdGUsIGRvdWJsZSB0aW1lc3RhbXApCiB7CiAgICAgbV9ob3Jpem9udGFsVmVs
b2NpdHkgPSBob3Jpem9udGFsVmVsb2NpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBi
NTdlZjQ5YmY3NDA1NDIyYTEzMjIwMTk2OTE4OWQ2Njg0MTkwNmE4Li5kNmU4MWQyNjA0MTU4ZTE2
OGQ1MzcyMjBlZDNkZGRkYjQ4NzI0YTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTEz
MCw2ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdChjb25zdCBJbnRSZWN0Jik7CiAgICAgYm9vbCB1cGRhdGVGaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdCgpOwogCisgICAgdm9pZCBzZXRDdXN0b21TaXplRm9yUmVzaXplRXZlbnQoSW50U2l6
ZSk7CisKICAgICB2b2lkIHNldFNjcm9sbFZlbG9jaXR5KGRvdWJsZSBob3Jpem9udGFsVmVsb2Np
dHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlLCBkb3Vi
bGUgdGltZXN0YW1wKTsKICAgICBGbG9hdFJlY3QgY29tcHV0ZUNvdmVyYWdlUmVjdChkb3VibGUg
aG9yaXpvbnRhbE1hcmdpbiwgZG91YmxlIHZlcnRpY2FsTWFyZ2luKSBjb25zdDsKICNlbHNlCkBA
IC01NzcsNiArNTc5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkU2Nyb2xs
YmFyKFNjcm9sbGJhciosIFNjcm9sbGJhck9yaWVudGF0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFJlbW92ZVNjcm9sbGJhcihTY3JvbGxiYXIqLCBTY3JvbGxiYXJPcmllbnRh
dGlvbikgb3ZlcnJpZGU7CiAKKyAgICBJbnRTaXplIHNpemVGb3JSZXNpemVFdmVudCgpIGNvbnN0
OwogICAgIHZvaWQgc2VuZFJlc2l6ZUV2ZW50SWZOZWVkZWQoKTsKIAogICAgIHZvaWQgdXBkYXRl
U2Nyb2xsYWJsZUFyZWFTZXQoKTsKQEAgLTY5NSw2ICs2OTgsOSBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV91c2VDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdDsKICAgICBJbnRSZWN0IG1fY3Vz
dG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q7CiAKKyAgICBib29sIG1fdXNlQ3VzdG9tU2l6ZUZv
clJlc2l6ZUV2ZW50OworICAgIEludFNpemUgbV9jdXN0b21TaXplRm9yUmVzaXplRXZlbnQ7CisK
ICAgICBkb3VibGUgbV9ob3Jpem9udGFsVmVsb2NpdHk7CiAgICAgZG91YmxlIG1fdmVydGljYWxW
ZWxvY2l0eTsKICAgICBkb3VibGUgbV9zY2FsZUNoYW5nZVJhdGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKaW5kZXgg
NDE0OGNlZTIwNGEwMTYxYzczZGEwMWM4OTEyZGY4MTgwN2VjMWNmYi4uNjJmMmNiNzhiNGMxZmMx
ZGFkZGM0NzVmNmY5MTE0NGJmZmEyZTk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcApAQCAtMzQsMTAgKzM0LDEy
IEBAIHZvaWQgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5jb2RlKElQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgbV9leHBvc2VkUmVj
dDsKICAgICBlbmNvZGVyIDw8IG1fdW5vYnNjdXJlZFJlY3Q7CisgICAgZW5jb2RlciA8PCBtX3Vu
b2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7CiAgICAgZW5jb2RlciA8PCBtX2N1
c3RvbUZpeGVkUG9zaXRpb25SZWN0OwogICAgIGVuY29kZXIgPDwgbV9zY2FsZTsKICAgICBlbmNv
ZGVyIDw8IG1fdXBkYXRlSUQ7CiAgICAgZW5jb2RlciA8PCBtX2luU3RhYmxlU3RhdGU7CisgICAg
ZW5jb2RlciA8PCBtX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHk7CiAgICAg
ZW5jb2RlciA8PCBtX3RpbWVzdGFtcDsKICAgICBlbmNvZGVyIDw8IG1faG9yaXpvbnRhbFZlbG9j
aXR5OwogICAgIGVuY29kZXIgPDwgbV92ZXJ0aWNhbFZlbG9jaXR5OwpAQCAtNTAsNiArNTIsOCBA
QCBib29sIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgVmlzaWJsZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV91bm9ic2N1cmVkUmVjdCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Vub2JzY3VyZWRSZWN0
SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3NjYWxl
KSkKQEAgLTU4LDYgKzYyLDggQEAgYm9vbCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpk
ZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFZpc2libGUKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1faW5TdGFibGVTdGF0
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5tX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV90aW1lc3RhbXApKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9o
b3Jpem9udGFsVmVsb2NpdHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKaW5kZXggNzU5OTE2NjFjNzYyMzYzMTA2ZWM5MjEw
NTZhZGQzOGMxNTkyMjZiYy4uZWM2YmIxNzgzYjVhYWMzYjc1MDRkNzg1ZWU3ODIxNjFkMzExNWZi
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVw
ZGF0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby5oCkBAIC00MSwxNiArNDEsMTkgQEAgcHVibGljOgogICAgICAgICA6IG1fc2Nh
bGUoLTEpCiAgICAgICAgICwgbV91cGRhdGVJRCgwKQogICAgICAgICAsIG1faW5TdGFibGVTdGF0
ZShmYWxzZSkKKyAgICAgICAgLCBtX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZl
bHkoZmFsc2UpCiAgICAgewogICAgIH0KIAotICAgIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8odWludDY0X3QgdXBkYXRlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGRvdWJsZSBzY2FsZSwgYm9v
bCBpblN0YWJsZVN0YXRlLCBkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgaG9yaXpvbnRhbFZlbG9j
aXR5LCBkb3VibGUgdmVydGljYWxWZWxvY2l0eSwgZG91YmxlIHNjYWxlQ2hhbmdlUmF0ZSkKKyAg
ICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKHVpbnQ2NF90IHVwZGF0ZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9zZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0
SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VzdG9t
Rml4ZWRQb3NpdGlvblJlY3QsIGRvdWJsZSBzY2FsZSwgYm9vbCBpblN0YWJsZVN0YXRlLCBib29s
IGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGRvdWJsZSB0aW1lc3RhbXAs
IGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZlbG9jaXR5LCBkb3Vi
bGUgc2NhbGVDaGFuZ2VSYXRlKQogICAgICAgICA6IG1fZXhwb3NlZFJlY3QoZXhwb3NlZFJlY3Qp
CiAgICAgICAgICwgbV91bm9ic2N1cmVkUmVjdCh1bm9ic2N1cmVkUmVjdCkKKyAgICAgICAgLCBt
X3Vub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXModW5vYnNjdXJlZFJlY3RJblNj
cm9sbFZpZXdDb29yZGluYXRlcykKICAgICAgICAgLCBtX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0
KGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KQogICAgICAgICAsIG1fc2NhbGUoc2NhbGUpCiAgICAg
ICAgICwgbV91cGRhdGVJRCh1cGRhdGVJRCkKICAgICAgICAgLCBtX2luU3RhYmxlU3RhdGUoaW5T
dGFibGVTdGF0ZSkKKyAgICAgICAgLCBtX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0
aXZlbHkoaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSkKICAgICAgICAgLCBt
X3RpbWVzdGFtcCh0aW1lc3RhbXApCiAgICAgICAgICwgbV9ob3Jpem9udGFsVmVsb2NpdHkoaG9y
aXpvbnRhbFZlbG9jaXR5KQogICAgICAgICAsIG1fdmVydGljYWxWZWxvY2l0eSh2ZXJ0aWNhbFZl
bG9jaXR5KQpAQCAtNjAsMTAgKzYzLDEyIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgZXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2V4cG9zZWRSZWN0OyB9
CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdCgpIGNvbnN0IHsg
cmV0dXJuIG1fdW5vYnNjdXJlZFJlY3Q7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBt
X3Vub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7IH0KICAgICBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsgfQogICAgIGRvdWJsZSBzY2FsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2NhbGU7IH0KICAgICB1aW50NjRfdCB1cGRhdGVJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fdXBkYXRlSUQ7IH0KICAgICBib29sIGluU3RhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X2luU3RhYmxlU3RhdGU7IH0KKyAgICBib29sIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVy
YWN0aXZlbHkoKSBjb25zdCB7IHJldHVybiBtX2lzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVy
YWN0aXZlbHk7IH0KIAogICAgIGRvdWJsZSB0aW1lc3RhbXAoKSBjb25zdCB7IHJldHVybiBtX3Rp
bWVzdGFtcDsgfQogICAgIGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHkoKSBjb25zdCB7IHJldHVy
biBtX2hvcml6b250YWxWZWxvY2l0eTsgfQpAQCAtNzYsMTAgKzgxLDEyIEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fZXhwb3NlZFJlY3Q7CiAgICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IG1fdW5vYnNjdXJlZFJlY3Q7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1f
dW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczsKICAgICBXZWJDb3JlOjpGbG9h
dFJlY3QgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsKICAgICBkb3VibGUgbV9zY2FsZTsKICAg
ICB1aW50NjRfdCBtX3VwZGF0ZUlEOwogICAgIGJvb2wgbV9pblN0YWJsZVN0YXRlOworICAgIGJv
b2wgbV9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OwogICAgIGRvdWJsZSBt
X3RpbWVzdGFtcDsKICAgICBkb3VibGUgbV9ob3Jpem9udGFsVmVsb2NpdHk7CiAgICAgZG91Ymxl
IG1fdmVydGljYWxWZWxvY2l0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMmVkNzc1NzM3MmQzZThmYzdiMjAzYjE1MDU3YjAzZDNh
YWE3ODlkMC4uMGFlYWU5MmUxMjZhYzZkODgxMjMxNzBhMDQ3MTRkMmU0ODc0ZTQyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTc3
OSw3ICs3NzksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9u
TWluaW11bUxheW91dFNpemUoV2ViS2l0OjpXZWJQYWdlUHJveAogICAgIENHRmxvYXQgc2NhbGVG
YWN0b3IgPSBjb250ZW50Wm9vbVNjYWxlKHNlbGYpOwogCiAgICAgQk9PTCBpc1N0YWJsZVN0YXRl
ID0gIShfaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSB8fCBbX3Njcm9sbFZp
ZXcgaXNEcmFnZ2luZ10gfHwgW19zY3JvbGxWaWV3IGlzRGVjZWxlcmF0aW5nXSB8fCBbX3Njcm9s
bFZpZXcgaXNab29taW5nXSB8fCBbX3Njcm9sbFZpZXcgaXNab29tQm91bmNpbmddIHx8IFtfc2Ny
b2xsVmlldyBfaXNBbmltYXRpbmdab29tXSk7Ci0gICAgW19jb250ZW50VmlldyBkaWRVcGRhdGVW
aXNpYmxlUmVjdDp2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzIHVub2JzY3VyZWRSZWN0
OnVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgc2NhbGU6c2NhbGVGYWN0b3IgaW5T
dGFibGVTdGF0ZTppc1N0YWJsZVN0YXRlXTsKKyAgICBbX2NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZp
c2libGVSZWN0OnZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgdW5vYnNjdXJlZFJlY3Q6
dW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyB1bm9ic2N1cmVkUmVjdEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzOnVub2JzY3VyZWRSZWN0IHNjYWxlOnNjYWxlRmFjdG9yIGluU3RhYmxl
U3RhdGU6aXNTdGFibGVTdGF0ZSBpc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5
Ol9pc0NoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5XTsKIH0KIAogLSAodm9pZClf
a2V5Ym9hcmRDaGFuZ2VkV2l0aEluZm86KE5TRGljdGlvbmFyeSAqKWtleWJvYXJkSW5mbyBhZGp1
c3RTY3JvbGxWaWV3OihCT09MKWFkanVzdFNjcm9sbFZpZXcKQEAgLTE0ODcsNyArMTQ4Nyw3IEBA
IHN0YXRpYyB2b2lkIHVwZGF0ZVRvcEFuZEJvdHRvbUV4dGVuZGVkQmFja2dyb3VuZEV4Y2x1c2lv
bklmTmVjZXNzYXJ5KFdLV2ViVmlldyoKICAgICBDR1JlY3QgdmlzaWJsZVJlY3RJbkNvbnRlbnRD
b29yZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRSZWN0Om5ld0JvdW5kcyB0b1ZpZXc6X2NvbnRlbnRW
aWV3LmdldCgpXTsKICAgICBDR1JlY3QgdW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRl
cyA9IFtzZWxmIGNvbnZlcnRSZWN0OmZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0
ZXMgdG9WaWV3Ol9jb250ZW50Vmlldy5nZXQoKV07CiAKLSAgICBfcGFnZS0+ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9hdFNpemUobmV3TWluaW11bUxheW91dFNpemUud2lk
dGgsIG5ld01pbmltdW1MYXlvdXRTaXplLmhlaWdodCksIHZpc2libGVSZWN0SW5Db250ZW50Q29v
cmRpbmF0ZXMsIHVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHRhcmdldFNjYWxl
KTsKKyAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpGbG9hdFNp
emUobmV3TWluaW11bUxheW91dFNpemUud2lkdGgsIG5ld01pbmltdW1MYXlvdXRTaXplLmhlaWdo
dCksIHZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMsIHVub2JzY3VyZWRSZWN0SW5Db250
ZW50Q29vcmRpbmF0ZXMsIGZ1dHVyZVVub2JzY3VyZWRSZWN0SW5TZWxmQ29vcmRpbmF0ZXMsIHRh
cmdldFNjYWxlKTsKIH0KIAogLSAodm9pZClfZW5kQW5pbWF0ZWRSZXNpemUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5tbQppbmRleCBhNzc1MzU5MjZlMTI3
NWIyYjU4MjVhMTIwOTk3YTBhOTEzMGJjMjdmLi4yNzcwNjIxY2ZkYmNkNTBjYzBkZTZlMDFiYzM3
YWZhYmJiZDlmMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lv
cy9XS1ZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tW
aWV3SU9TLm1tCkBAIC0yNjMsNyArMjYzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAog
ICAgIENHRmxvYXQgc2NhbGVGYWN0b3IgPSBbX3Njcm9sbFZpZXcgem9vbVNjYWxlXTsKIAotICAg
IFtfY29udGVudFZpZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3Q6dmlzaWJsZVJlY3RJbkNvbnRlbnRD
b29yZGluYXRlcyB1bm9ic2N1cmVkUmVjdDp1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5h
dGVzIHNjYWxlOnNjYWxlRmFjdG9yIGluU3RhYmxlU3RhdGU6WUVTXTsKKyAgICBbX2NvbnRlbnRW
aWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnZpc2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMg
dW5vYnNjdXJlZFJlY3Q6dW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyB1bm9ic2N1
cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOnVub2JzY3VyZWRSZWN0IHNjYWxlOnNjYWxl
RmFjdG9yIGluU3RhYmxlU3RhdGU6WUVTIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0
aXZlbHk6Tk9dOwogfQogCiAtICh2b2lkKV9rZXlib2FyZENoYW5nZWRXaXRoSW5mbzooTlNEaWN0
aW9uYXJ5ICopa2V5Ym9hcmRJbmZvIGFkanVzdFNjcm9sbFZpZXc6KEJPT0wpYWRqdXN0U2Nyb2xs
VmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGI5NjY5ZjQw
OGE3MGFmYTZjNWY4Yzk1YTRmOGI4ZDA4ZmRjYWU0NjMuLjJhNjI1MWNhMTM2MWIxOGEzN2JlMDY5
MGU2ZmFkZDlkMTdmNThhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTU4OSw3ICs1ODksNyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgbmV4dFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlLnVwZGF0ZUlEKCkgKyAxOyB9CiAgICAgdWludDY0X3QgbGFzdFZpc2libGVDb250
ZW50UmVjdFVwZGF0ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlLnVwZGF0ZUlEKCk7IH0KIAotICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXplLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgZG91YmxlIHRhcmdldFNjYWxlKTsKKyAg
ICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXpl
JiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBv
c2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJl
ZFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNj
cm9sbFZpZXdDb29yZGluYXRlcywgZG91YmxlIHRhcmdldFNjYWxlKTsKICAgICAKICAgICB2b2lk
IHNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0TWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUko
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5oCmluZGV4IGIzOGIxMDQ3MzZlYWIzZGU3YjQ5NThkOWY2ZTU1ZDQz
M2UzNDZhODQuLjVlZWNmZTAzMDYyMmFkYTA0OGFlNjhhN2M0MGU1ZWEzOWEyZWNiOWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCkBAIC02MCw3ICs2
MCw3IEBAIHN0cnVjdCBXZWJQYWdlQ29uZmlndXJhdGlvbjsKIC0gKGluc3RhbmNldHlwZSlpbml0
V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4dDooV2ViS2l0OjpXZWJDb250ZXh0Jiljb250
ZXh0IGNvbmZpZ3VyYXRpb246KFdlYktpdDo6V2ViUGFnZUNvbmZpZ3VyYXRpb24pd2ViUGFnZUNv
bmZpZ3VyYXRpb24gd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKIAogLSAodm9pZClzZXRN
aW5pbXVtU2l6ZTooQ0dTaXplKXNpemU7Ci0tICh2b2lkKWRpZFVwZGF0ZVZpc2libGVSZWN0OihD
R1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNjdXJlZFJlY3Q6KENHUmVjdCl1bm9ic2N1cmVkUmVjdCBz
Y2FsZTooQ0dGbG9hdClzY2FsZSBpblN0YWJsZVN0YXRlOihCT09MKWlzU3RhYmxlU3RhdGU7Cist
ICh2b2lkKWRpZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNjdXJl
ZFJlY3Q6KENHUmVjdCl1bm9ic2N1cmVkUmVjdCB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzOihDR1JlY3QpdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcyBz
Y2FsZTooQ0dGbG9hdClzY2FsZSBpblN0YWJsZVN0YXRlOihCT09MKWlzU3RhYmxlU3RhdGUgaXND
aGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTooQk9PTClpc0NoYW5naW5nT2JzY3Vy
ZWRJbnNldHNJbnRlcmFjdGl2ZWx5OwogCiAtICh2b2lkKWRpZEZpbmlzaFNjcm9sbGluZzsKIC0g
KHZvaWQpZGlkWm9vbVRvU2NhbGU6KENHRmxvYXQpc2NhbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggNmM3YjE1MTUwMDU5NzEyODkzNDFl
MDI2OTEyODM2NWZlMTllOTRjYi4uN2JiMGM2MWQ2YzZhNjdiYjQwNTY0NjVkMmY3MzBiZmJiNTQ2
NjE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5t
bQpAQCAtMjk3LDcgKzI5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgRmxvYXRSZWN0IGZpeGVkUG9zaXRp
b25SZWN0RnJvbUV4cG9zZWRSZWN0KENHUmVjdCB1bm9ic2N1cmVkUmVjdCwKICAgICByZXR1cm4g
RnJhbWVWaWV3OjpyZWN0Rm9yVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMoZW5jbG9zaW5nTGF5
b3V0UmVjdCh1bm9ic2N1cmVkUmVjdCksIHJvdW5kZWRMYXlvdXRTaXplKEZsb2F0U2l6ZShkb2N1
bWVudFNpemUpKSwgc2NhbGUsIGZhbHNlLCBTdGlja1RvVmlld3BvcnRCb3VuZHMpOwogfQogCi0t
ICh2b2lkKWRpZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNjdXJl
ZFJlY3Q6KENHUmVjdCl1bm9ic2N1cmVkUmVjdCBzY2FsZTooQ0dGbG9hdCl6b29tU2NhbGUgaW5T
dGFibGVTdGF0ZTooQk9PTClpc1N0YWJsZVN0YXRlCistICh2b2lkKWRpZFVwZGF0ZVZpc2libGVS
ZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNjdXJlZFJlY3Q6KENHUmVjdCl1bm9ic2N1cmVk
UmVjdCB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOihDR1JlY3QpdW5vYnNj
dXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcyBzY2FsZTooQ0dGbG9hdCl6b29tU2NhbGUg
aW5TdGFibGVTdGF0ZTooQk9PTClpc1N0YWJsZVN0YXRlIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0
c0ludGVyYWN0aXZlbHk6KEJPT0wpaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVs
eQogewogICAgIGRvdWJsZSB0aW1lc3RhbXAgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KTsKICAgICBIaXN0b3JpY2FsVmVsb2NpdHlEYXRhOjpWZWxvY2l0eURhdGEgdmVsb2NpdHlEYXRh
OwpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyBpbmxpbmUgRmxvYXRSZWN0IGZpeGVkUG9zaXRp
b25SZWN0RnJvbUV4cG9zZWRSZWN0KENHUmVjdCB1bm9ic2N1cmVkUmVjdCwKICAgICB9CiAKICAg
ICBGbG9hdFJlY3QgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QgPSBmaXhlZFBvc2l0aW9uUmVjdEZy
b21FeHBvc2VkUmVjdCh1bm9ic2N1cmVkUmVjdCwgW3NlbGYgYm91bmRzXS5zaXplLCB6b29tU2Nh
bGUpOwotICAgIF9wYWdlLT51cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKFZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8oX3BhZ2UtPm5leHRWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJRCgpLCB2
aXNpYmxlUmVjdCwgdW5vYnNjdXJlZFJlY3QsIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBmaWx0
ZXJlZFNjYWxlLCBpc1N0YWJsZVN0YXRlLCB0aW1lc3RhbXAsIHZlbG9jaXR5RGF0YS5ob3Jpem9u
dGFsVmVsb2NpdHksIHZlbG9jaXR5RGF0YS52ZXJ0aWNhbFZlbG9jaXR5LCB2ZWxvY2l0eURhdGEu
c2NhbGVDaGFuZ2VSYXRlKSk7CisgICAgX3BhZ2UtPnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMo
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhfcGFnZS0+bmV4dFZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUlEKCksIHZpc2libGVSZWN0LCB1bm9ic2N1cmVkUmVjdCwgdW5vYnNjdXJlZFJlY3RJ
blNjcm9sbFZpZXdDb29yZGluYXRlcywgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGZpbHRlcmVk
U2NhbGUsIGlzU3RhYmxlU3RhdGUsIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZl
bHksIHRpbWVzdGFtcCwgdmVsb2NpdHlEYXRhLmhvcml6b250YWxWZWxvY2l0eSwgdmVsb2NpdHlE
YXRhLnZlcnRpY2FsVmVsb2NpdHksIHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUpKTsKICAg
ICAKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBzY3JvbGxpbmdDb29yZGlu
YXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7CiAgICAgc2Nyb2xsaW5n
Q29vcmRpbmF0b3ItPnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxp
bmdDb29yZGluYXRvci0+cm9vdFNjcm9sbGluZ05vZGVJRCgpLCB1bm9ic2N1cmVkUmVjdCwgem9v
bVNjYWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KaW5kZXggYjg2YWYwNWExNGQwMzFmMmUyMjBiODI0ZDBiNjNmMDdmZWIwOTMyMC4uZmYw
ZTBhNDIzMWZjMzk2MzI4NDk5YWNjZWY1MzE0ZjRkMjRjYzNmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTE5NCw5ICsxOTQsOSBA
QCBib29sIFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1p
bmltdW1MYXlvdXRTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVj
dCwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgZG91YmxlIHRhcmdldFNj
YWxlKQordm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3Qg
RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBv
c2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRl
cywgIGRvdWJsZSB0YXJnZXRTY2FsZSkKIHsKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUobWluaW11bUxheW91dFNpemUsIHRh
cmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIHRhcmdldFNjYWxl
KSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShtaW5pbXVtTGF5b3V0U2l6ZSwgdGFyZ2V0RXhwb3NlZENv
bnRlbnRSZWN0LCB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNj
cm9sbFZpZXdDb29yZGluYXRlcywgdGFyZ2V0U2NhbGUpLCBtX3BhZ2VJRCk7CiB9CiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiOTUxZWY0MzBmNTU2YjU1OWM2ZDkxMTY1ODRjZmMz
M2VjZjJiNzljLi45NDc5ZDc0MjhmZmE4Y2U0MzJhM2Y4MjVlMDA3NWQ5MWQyNTIzNDk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTcwNiw3ICs3
MDYsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0Vmlld3BvcnRD
b25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7
CiAgICAgdm9pZCBzZXRNaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSShjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmKTsKLSAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3Qg
V2ViQ29yZTo6RmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGRvdWJsZSBzY2FsZSk7CisgICAgdm9pZCBkeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbWluaW11bUxheW91
dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMsIGRvdWJsZSBzY2FsZSk7CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlQ29udGVudFJlY3Rz
KGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mKTsKICAgICBib29sIHNjYWxlV2Fz
U2V0QnlVSVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7
IH0KICAgICB2b2lkIHdpbGxTdGFydFVzZXJUcmlnZ2VyZWRab29taW5nKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IGExNDBjZjBhODRiZDIwMjJiODQwNWIyNmIwN2MxY2IyOTUzOGQ2Y2QuLmQwNjU2NzI3Mjdk
NmRhNTQ5YmMyYjkzMGQxZWJmMDNhZDJhMGU4ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00NSw3ICs0NSw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogI2lmIFBMQVRGT1JNKElP
UykKICAgICBTZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShXZWJDb3Jl
OjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXRNaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSShX
ZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKLSAgICBEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdl
YkNvcmU6OkZsb2F0U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IHRh
cmdldEV4cG9zZWRDb250ZW50UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3Vy
ZWRSZWN0LCBkb3VibGUgc2NhbGUpCisgICAgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJD
b3JlOjpGbG9hdFNpemUgbWluaW11bUxheW91dFNpemUsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJn
ZXRFeHBvc2VkQ29udGVudFJlY3QsIFdlYkNvcmU6OkZsb2F0UmVjdCB0YXJnZXRVbm9ic2N1cmVk
UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3
Q29vcmRpbmF0ZXMsIGRvdWJsZSBzY2FsZSkKIAogICAgIEhhbmRsZVRhcChXZWJDb3JlOjpJbnRQ
b2ludCBwb2ludCkKICAgICBQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA4ZmU3MWQ4NjQ2Y2M3Nzdk
YTAyZTkxOWM0ZGNhZjhmMmFhZGQ4NTk5Li5lOTcyNTJlYjhhNjhiODA5M2U0ODU5YmE0Y2IyOGQ0
ODM5MzA1N2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xODkxLDcgKzE4OTEsNyBAQCB2b2lkIFdlYlBhZ2U6OnNl
dE1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKICAg
ICB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIG1pbmltdW1MYXlvdXRTaXpl
LCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVjdCwgZG91YmxlIHRhcmdldFNjYWxlKQordm9pZCBXZWJQ
YWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxh
eW91dFNpemUsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGRvdWJsZSB0
YXJnZXRTY2FsZSkKIHsKICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4gZHluYW1pY1NpemVVcGRh
dGVHdWFyZChtX2luRHluYW1pY1NpemVVcGRhdGUsIHRydWUpOwogICAgIC8vIEZJWE1FOiB0aGlz
IGRvZXMgbm90IGhhbmRsZSB0aGUgY2FzZXMgd2hlcmUgdGhlIGNvbnRlbnQgd291bGQgY2hhbmdl
IHRoZSBjb250ZW50IHNpemUgb3Igc2Nyb2xsIHBvc2l0aW9uIGZyb20gSmF2YVNjcmlwdC4KQEAg
LTIwMjgsMTUgKzIwMjgsMTkgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBk
YXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnMKICAgICBmcmFtZVZp
ZXcuc2V0U2Nyb2xsVmVsb2NpdHkoMCwgMCwgMCwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCkpOwogCiAgICAgSW50UmVjdCByb3VuZGVkVW5vYnNjdXJlZENvbnRlbnRSZWN0ID0gcm91bmRl
ZEludFJlY3QobmV3VW5vYnNjdXJlZENvbnRlbnRSZWN0KTsKLSAgICBmcmFtZVZpZXcuc2V0U2Ny
b2xsT2Zmc2V0KHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJlY3QubG9jYXRpb24oKSk7CiAgICAg
ZnJhbWVWaWV3LnNldFVub2JzY3VyZWRDb250ZW50UmVjdChyb3VuZGVkVW5vYnNjdXJlZENvbnRl
bnRSZWN0KTsKICAgICBtX2RyYXdpbmdBcmVhLT5zZXRFeHBvc2VkQ29udGVudFJlY3QobmV3RXhw
b3NlZENvbnRlbnRSZWN0KTsKIAogICAgIGlmIChzY2FsZSA9PSB0YXJnZXRTY2FsZSkKICAgICAg
ICAgc2NhbGVQYWdlKHNjYWxlLCByb3VuZGVkVW5vYnNjdXJlZENvbnRlbnRSZWN0LmxvY2F0aW9u
KCkpOwogCi0gICAgaWYgKHNjYWxlICE9IHRhcmdldFNjYWxlIHx8IHJvdW5kZWRJbnRQb2ludCh0
YXJnZXRVbm9ic2N1cmVkUmVjdC5sb2NhdGlvbigpKSAhPSByb3VuZGVkVW5vYnNjdXJlZENvbnRl
bnRSZWN0LmxvY2F0aW9uKCkpCi0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChzY2FsZSwgcm91bmRlZFVub2JzY3Vy
ZWRDb250ZW50UmVjdC5sb2NhdGlvbigpKSk7CisgICAgRmxvYXRTaXplIHVub2JzY3VyZWRDb250
ZW50UmVjdFNpemVJbkNvbnRlbnRDb29yZGluYXRlcyA9IG5ld1Vub2JzY3VyZWRDb250ZW50UmVj
dC5zaXplKCk7CisgICAgdW5vYnNjdXJlZENvbnRlbnRSZWN0U2l6ZUluQ29udGVudENvb3JkaW5h
dGVzLnNjYWxlKHNjYWxlKTsKKyAgICBmcmFtZVZpZXcuc2V0Q3VzdG9tU2l6ZUZvclJlc2l6ZUV2
ZW50KGV4cGFuZGVkSW50U2l6ZSh1bm9ic2N1cmVkQ29udGVudFJlY3RTaXplSW5Db250ZW50Q29v
cmRpbmF0ZXMpKTsKKyAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsT2Zmc2V0KHJvdW5kZWRVbm9ic2N1
cmVkQ29udGVudFJlY3QubG9jYXRpb24oKSk7CisKKyAgICBpZiAocGFnZVNjYWxlRmFjdG9yKCkg
IT0gdGFyZ2V0U2NhbGUgfHwgcm91bmRlZEludFBvaW50KHRhcmdldFVub2JzY3VyZWRSZWN0Lmxv
Y2F0aW9uKCkpICE9IGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigpKQorICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQo
cGFnZVNjYWxlRmFjdG9yKCksIGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigpKSk7CiB9CiAKIHZv
aWQgV2ViUGFnZTo6cmVzZXRWaWV3cG9ydERlZmF1bHRDb25maWd1cmF0aW9uKFdlYkZyYW1lKiBm
cmFtZSkKQEAgLTIwOTEsNiArMjA5NSw4IEBAIHZvaWQgV2ViUGFnZTo6dmlld3BvcnRDb25maWd1
cmF0aW9uQ2hhbmdlZCgpCiAgICAgaWYgKCFtX2hhc1JlY2VpdmVkVmlzaWJsZUNvbnRlbnRSZWN0
c0FmdGVyRGlkQ29tbWl0TG9hZCkgewogICAgICAgICAvLyBUaGlzIHRha2VzIHNjYWxlIGludG8g
YWNjb3VudCwgc28gZG8gYWZ0ZXIgdGhlIHNjYWxlIGNoYW5nZS4KICAgICAgICAgZnJhbWVWaWV3
LnNldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KGVuY2xvc2luZ0ludFJlY3QoZnJhbWVW
aWV3LnZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzUmVjdCgpKSk7CisKKyAgICAgICAgZnJhbWVW
aWV3LnNldEN1c3RvbVNpemVGb3JSZXNpemVFdmVudChleHBhbmRlZEludFNpemUobV92aWV3cG9y
dENvbmZpZ3VyYXRpb24ubWluaW11bUxheW91dFNpemUoKSkpOwogICAgIH0KIH0KIApAQCAtMjE2
NCw3ICsyMTcwLDYgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNv
bnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIHZpc2kKICAgICBpZiAoc2Nyb2xsUG9z
aXRpb24gIT0gSW50UG9pbnQoZnJhbWVWaWV3LnNjcm9sbE9mZnNldCgpKSkKICAgICAgICAgbV9k
eW5hbWljU2l6ZVVwZGF0ZUhpc3RvcnkuY2xlYXIoKTsKIAotICAgIGZyYW1lVmlldy5zZXRTY3Jv
bGxPZmZzZXQoc2Nyb2xsUG9zaXRpb24pOwogICAgIGZyYW1lVmlldy5zZXRVbm9ic2N1cmVkQ29u
dGVudFJlY3Qocm91bmRlZFVub2JzY3VyZWRSZWN0KTsKIAogICAgIGRvdWJsZSBob3Jpem9udGFs
VmVsb2NpdHkgPSB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmhvcml6b250YWxWZWxvY2l0
eSgpOwpAQCAtMjE3Niw2ICsyMTgxLDExIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlVmlzaWJsZUNv
bnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiB2aXNpCiAKICAg
ICBpZiAodmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5pblN0YWJsZVN0YXRlKCkpCiAgICAg
ICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpLT5zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdChlbmNsb3NpbmdJbnRSZWN0KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3Vz
dG9tRml4ZWRQb3NpdGlvblJlY3QoKSkpOworCisgICAgaWYgKCF2aXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvLmlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkoKSkKKyAgICAg
ICAgZnJhbWVWaWV3LnNldEN1c3RvbVNpemVGb3JSZXNpemVFdmVudChleHBhbmRlZEludFNpemUo
dmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby51bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzKCkuc2l6ZSgpKSk7CisKKyAgICBmcmFtZVZpZXcuc2V0U2Nyb2xsT2Zmc2V0KHNj
cm9sbFBvc2l0aW9uKTsKIH0KIAogdm9pZCBXZWJQYWdlOjp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVk
Wm9vbWluZygpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>