<?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>194197</bug_id>
          
          <creation_ts>2019-02-02 15:33:44 -0800</creation_ts>
          <short_desc>Tidy up data members of FrameView and related classes to shrink class sizes</short_desc>
          <delta_ts>2019-02-03 09:21:02 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1501534</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-02 15:33:44 -0800</bug_when>
    <thetext>Tidy up data memebers of FrameView and related classes to shrink class sizes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501535</commentid>
    <comment_count>1</comment_count>
      <attachid>360983</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-02 15:36:37 -0800</bug_when>
    <thetext>Created attachment 360983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501536</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-02 15:39:46 -0800</bug_when>
    <thetext>Attachment 360983 did not pass style-queue:


ERROR: Source/WebCore/page/FrameView.h:850:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 10 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>1501537</commentid>
    <comment_count>3</comment_count>
      <attachid>360983</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-02 16:07:02 -0800</bug_when>
    <thetext>Comment on attachment 360983
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Tidy up data memebers of FrameView and related classes to shrink class sizes

Typo for members

&gt; Source/WebCore/platform/ScrollTypes.h:119
&gt; +enum ScrollbarOrientation : uint8_t {

Ditto

&gt; Source/WebCore/platform/ScrollTypes.h:130
&gt; +enum ScrollbarControlSize : uint8_t {

Could be bool instead of uint8_t.

&gt; Source/WebCore/platform/ScrollTypes.h:135
&gt; +enum class ScrollbarExpansionState : uint8_t {

Ditto

&gt; Source/WebCore/platform/ScrollTypes.h:140
&gt; +enum class ScrollEventAxis : uint8_t {

Ditto.

&gt; Source/WebCore/platform/ScrollTypes.h:173
&gt; +enum class ScrollbarStyle : uint8_t {

Ditto

&gt; Source/WebCore/platform/ScrollTypes.h:190
&gt; +enum class ScrollClamping : uint8_t {

Ditto

&gt; Source/WebCore/platform/ScrollTypes.h:195
&gt; +enum ScrollBehaviorForFixedElements : uint8_t {

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501539</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-02 16:13:25 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 360983 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=360983&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Tidy up data memebers of FrameView and related classes to shrink class sizes
&gt; 
&gt; Typo for members
&gt; 
&gt; &gt; Source/WebCore/platform/ScrollTypes.h:119
&gt; &gt; +enum ScrollbarOrientation : uint8_t {
&gt; 
&gt; Ditto
&gt; 
&gt; &gt; Source/WebCore/platform/ScrollTypes.h:130
&gt; &gt; +enum ScrollbarControlSize : uint8_t {
&gt; 
&gt; Could be bool instead of uint8_t.

Could be but I don&apos;t think it&apos;s clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501540</commentid>
    <comment_count>5</comment_count>
      <attachid>360983</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-02 16:16:50 -0800</bug_when>
    <thetext>Comment on attachment 360983
Patch

Clearing flags on attachment: 360983

Committed r240901: &lt;https://trac.webkit.org/changeset/240901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501541</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-02 16:16:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501542</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-02 16:17:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/47765771&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501544</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-02 16:26:38 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; Comment on attachment 360983 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=360983&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; &gt; +        Tidy up data memebers of FrameView and related classes to shrink class sizes
&gt; &gt; 
&gt; &gt; Typo for members
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/ScrollTypes.h:119
&gt; &gt; &gt; +enum ScrollbarOrientation : uint8_t {
&gt; &gt; 
&gt; &gt; Ditto
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/ScrollTypes.h:130
&gt; &gt; &gt; +enum ScrollbarControlSize : uint8_t {
&gt; &gt; 
&gt; &gt; Could be bool instead of uint8_t.
&gt; 
&gt; Could be but I don&apos;t think it&apos;s clearer.

Doesn’t it allow for better packing? It is just an underlying type, not sure why we worry about clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501555</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-02 17:38:28 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; (In reply to Simon Fraser (smfr) from comment #4)
&gt; &gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; &gt; Comment on attachment 360983 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=360983&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; &gt; &gt; +        Tidy up data memebers of FrameView and related classes to shrink class sizes
&gt; &gt; &gt; 
&gt; &gt; &gt; Typo for members
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/ScrollTypes.h:119
&gt; &gt; &gt; &gt; +enum ScrollbarOrientation : uint8_t {
&gt; &gt; &gt; 
&gt; &gt; &gt; Ditto
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/ScrollTypes.h:130
&gt; &gt; &gt; &gt; +enum ScrollbarControlSize : uint8_t {
&gt; &gt; &gt; 
&gt; &gt; &gt; Could be bool instead of uint8_t.
&gt; &gt; 
&gt; &gt; Could be but I don&apos;t think it&apos;s clearer.
&gt; 
&gt; Doesn’t it allow for better packing? It is just an underlying type, not sure
&gt; why we worry about clarity.

sizeof(bool) == sizeof(uint8_t) so bool won&apos;t save any more space.

uint8_t tells me explicitly that it&apos;s bits. &apos;bool&apos; makes me wonder what sizeof(bool) is for this compiler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501569</commentid>
    <comment_count>10</comment_count>
      <attachid>360983</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-02 19:16:23 -0800</bug_when>
    <thetext>Comment on attachment 360983
Patch

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

A few comments related to the code touched here, not to the patch itself.

&gt; Source/WebCore/page/FrameView.cpp:192
&gt; +    , m_mediaType(&quot;screen&quot;)

Spotted this since it’s one of the few ones we are keeping.

1) Maybe we should change this to &quot;screen&quot;_s?
2) Can we put this in the class definition, even though it&apos;s a string literal? I think there’s no reason we can’t.

&gt; Source/WebCore/rendering/Pagination.h:33
&gt; +    Pagination() = default;

Could we just omit this entirely instead?

&gt; Source/WebCore/rendering/Pagination.h:42
&gt;          return mode != other.mode || behavesLikeColumns != other.behavesLikeColumns || pageLength != other.pageLength || gap != other.gap;

Would be nicer to write this so it calls the operator== so we didn’t have to have two lists of all the data members.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501625</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-02-03 09:21:02 -0800</bug_when>
    <thetext>Will do those in bug 194203.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360983</attachid>
            <date>2019-02-02 15:36:37 -0800</date>
            <delta_ts>2019-02-02 16:16:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194197-20190202153635.patch</filename>
            <type>text/plain</type>
            <size>24627</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwODk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU4M2M3MmY2MzA5ODQz
NDJlZjE0M2VjOGQ1Y2Y4YTcyNzY5ZGFmZi4uZTAxZWE3YjJiNTFhNWYyZmQwZjAzNzVhOGZlNjI1
ZDM3MjZlYTg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTAyLTAyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFRpZHkgdXAgZGF0
YSBtZW1lYmVycyBvZiBGcmFtZVZpZXcgYW5kIHJlbGF0ZWQgY2xhc3NlcyB0byBzaHJpbmsgY2xh
c3Mgc2l6ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NDE5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1ha2UgdmFyaW91cyBlbnVtcyA4LWJpdC4gUmUtb3JkZXIgZGF0YSBtZW1iZXJzIG9mIEZyYW1l
VmlldywgRnJhbWVWaWV3TGF5b3V0Q29udGV4dCwgV2lkZ2V0CisgICAgICAgIGFuZCBTY3JvbGxW
aWV3IHRvIG9wdGltaXplIHBhZGRpbmcuCisKKyAgICAgICAgVXNlIG1vcmUgZGF0YSBtZW1iZXIg
aW5pdGlhbGl6ZXJzLgorCisgICAgICAgIFRoaXMgc2hyaW5rcyBGcmFtZVZpZXcgZnJvbSAxMTY4
ICgxNDQgcGFkZGluZyBieXRlcykgdG8gMTA5NiAoOTYgcGFkZGluZyBieXRlcykuCisKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6RnJhbWVWaWV3KToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmll
dy5oOiBEYXRhIG1lbWJlcnMgc2hvdWxkIGNvbWUgYWZ0ZXIgbWVtYmVyIGZ1bmN0aW9ucy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9XaWRnZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUGFnaW5hdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnaW5hdGlvbjo6UGFnaW5hdGlvbik6IERlbGV0ZWQu
CisKIDIwMTktMDItMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVuYW1lICJzY3JvbGxpbmdMYXllciIgaW4gUmVuZGVyTGF5ZXJCYWNraW5nIHRv
ICJzY3JvbGxDb250YWluZXJMYXllciIgZm9yIGNsYXJpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMTIxZWUyZGRl
NWNhOTllNDM2YmY5MjU2ZDQxMjk0YWI0OGFkYjhlNi4uOWNjNjhjYTA1ZDM2YzRmZTE5ZWQ0MmZh
ZTMyNGVlZDQ0MTMyYTMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0wMi0wMiAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBUaWR5IHVw
IGRhdGEgbWVtZWJlcnMgb2YgRnJhbWVWaWV3IGFuZCByZWxhdGVkIGNsYXNzZXMgdG8gc2hyaW5r
IGNsYXNzIHNpemVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTQxOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6IERlY2xhcmUgZW51bSBzaXplLgorCiAyMDE4
LTEyLTE2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDb252ZXJ0
IGFkZGl0aW9uYWwgU3RyaW5nOjpmb3JtYXQgY2xpZW50cyB0byBhbHRlcm5hdGl2ZSBhcHByb2Fj
aGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBhMjU5OWFkYTg3ZDIxNjAzNGQ3NTkyNWNkMzFjYzVm
YzUwZWU2YWViLi42NGViYmM1N2ExZDg0YjE5NGIxNWYwYThlNmY3NjEzZWZiOGIxZTU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKQEAgLTcwLDEyICs3MCw2IEBAIGVudW0gU3BlbGxjaGVja0F0dHJpYnV0
ZVN0YXRlIHsKICAgICBTcGVsbGNoZWNrQXR0cmlidXRlRGVmYXVsdAogfTsKIAotZW51bSBjbGFz
cyBTZWxlY3Rpb25SZXZlYWxNb2RlIHsKLSAgICBSZXZlYWwsCi0gICAgUmV2ZWFsVXBUb01haW5G
cmFtZSwgLy8gU2Nyb2xsIG92ZXJmbG93IGFuZCBpZnJhbWVzLCBidXQgbm90IHRoZSBtYWluIGZy
YW1lLgotICAgIERvTm90UmV2ZWFsCi19OwotCiAjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQog
ZW51bSBjbGFzcyBUb3VjaEFjdGlvbiA6IHVpbnQ4X3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAppbmRleCA1ZTYxOWQ1MmEzNmZhNjNlYjQwZmY4MWRkYmEzMWI0NTU0NGQxZGVk
Li4xMmMxZGU0MjRjOGVhMDQ4NWE4MmU1ZDBlZWYwNDlhMjFhMGJlNzFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCkBAIC0xODMsMzYgKzE4MywxMyBAQCBQYWdpbmF0aW9uOjpNb2RlIHBh
Z2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogCiBG
cmFtZVZpZXc6OkZyYW1lVmlldyhGcmFtZSYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQot
ICAgICwgbV9jYW5IYXZlU2Nyb2xsYmFycyh0cnVlKQorICAgICwgbV9sYXlvdXRDb250ZXh0KCp0
aGlzKQogICAgICwgbV91cGRhdGVFbWJlZGRlZE9iamVjdHNUaW1lcigqdGhpcywgJkZyYW1lVmll
dzo6dXBkYXRlRW1iZWRkZWRPYmplY3RzVGltZXJGaXJlZCkKICAgICAsIG1fdXBkYXRlV2lkZ2V0
UG9zaXRpb25zVGltZXIoKnRoaXMsICZGcmFtZVZpZXc6OnVwZGF0ZVdpZGdldFBvc2l0aW9uc1Rp
bWVyRmlyZWQpCi0gICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCi0gICAgLCBtX2Jhc2VCYWNr
Z3JvdW5kQ29sb3IoQ29sb3I6OndoaXRlKQotICAgICwgbV9tZWRpYVR5cGUoInNjcmVlbiIpCi0g
ICAgLCBtX292ZXJmbG93U3RhdHVzRGlydHkodHJ1ZSkKLSAgICAsIG1fd2FzU2Nyb2xsZWRCeVVz
ZXIoZmFsc2UpCi0gICAgLCBtX2luUHJvZ3JhbW1hdGljU2Nyb2xsKGZhbHNlKQogICAgICwgbV9k
ZWxheWVkU2Nyb2xsRXZlbnRUaW1lcigqdGhpcywgJkZyYW1lVmlldzo6c2VuZFNjcm9sbEV2ZW50
KQotICAgICwgbV9zZWxlY3Rpb25SZXZlYWxNb2RlRm9yRm9jdXNlZEVsZW1lbnQoU2VsZWN0aW9u
UmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCiAgICAgLCBtX2RlbGF5ZWRTY3JvbGxUb0ZvY3VzZWRF
bGVtZW50VGltZXIoKnRoaXMsICZGcmFtZVZpZXc6OnNjcm9sbFRvRm9jdXNlZEVsZW1lbnRUaW1l
ckZpcmVkKQotICAgICwgbV9pc1RyYWNraW5nUmVwYWludHMoZmFsc2UpCi0gICAgLCBtX3Nob3Vs
ZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKHRydWUpCi0gICAgLCBtX3NwZWN1bGF0aXZlVGlsaW5nRW5h
YmxlZChmYWxzZSkKICAgICAsIG1fc3BlY3VsYXRpdmVUaWxpbmdFbmFibGVUaW1lcigqdGhpcywg
JkZyYW1lVmlldzo6c3BlY3VsYXRpdmVUaWxpbmdFbmFibGVUaW1lckZpcmVkKQotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgLCBtX3VzZUN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0
KGZhbHNlKQotICAgICwgbV91c2VDdXN0b21TaXplRm9yUmVzaXplRXZlbnQoZmFsc2UpCi0jZW5k
aWYKLSAgICAsIG1fc2hvdWxkQXV0b1NpemUoZmFsc2UpCi0gICAgLCBtX2luQXV0b1NpemUoZmFs
c2UpCi0gICAgLCBtX2RpZFJ1bkF1dG9zaXplKGZhbHNlKQotICAgICwgbV9hdXRvU2l6ZUZpeGVk
TWluaW11bUhlaWdodCgwKQotICAgICwgbV9oZWFkZXJIZWlnaHQoMCkKLSAgICAsIG1fZm9vdGVy
SGVpZ2h0KDApCi0gICAgLCBtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQodHJ1ZSkKLSAg
ICAsIG1faGFzRmxpcHBlZEJsb2NrUmVuZGVyZXJzKGZhbHNlKQotICAgICwgbV9zY3JvbGxQaW5u
aW5nQmVoYXZpb3IoRG9Ob3RQaW4pCi0gICAgLCBtX2xheW91dENvbnRleHQoKnRoaXMpCisgICAg
LCBtX21lZGlhVHlwZSgic2NyZWVuIikKIHsKICAgICBpbml0KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCmluZGV4IDYzNmVjYjkyZjkyYmE0MzQ2MDExYWE2NzhmODQwMGViNzYzNzU1ODQuLjli
NDc1M2NiNmE4ZDhiZTdmYWFkNmYxM2I5ODVhZjUzMmI2YmJjOTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaApAQCAtNjYsNyArNjYsNiBAQCBjbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgUmVuZGVy
V2lkZ2V0OwogCiBlbnVtIGNsYXNzIEZyYW1lRmxhdHRlbmluZzsKLWVudW0gY2xhc3MgU2VsZWN0
aW9uUmV2ZWFsTW9kZTsKIAogUGFnaW5hdGlvbjo6TW9kZSBwYWdpbmF0aW9uTW9kZUZvclJlbmRl
clN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJik7CiAKQEAgLTgxMywxMTkgKzgxMiw4MCBAQCBwcml2
YXRlOgogICAgIH07CiAgICAgdm9pZCBvdmVycmlkZVZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHMoT3ZlcnJpZGVWaWV3cG9ydFNpemUpOwogCi0gICAgSGFzaFNldDxXaWRnZXQqPiBtX3dp
ZGdldHNJblJlbmRlclRyZWU7Ci0KICAgICBzdGF0aWMgTW9ub3RvbmljVGltZSBzQ3VycmVudFBh
aW50VGltZVN0YW1wOyAvLyB1c2VkIGZvciBkZXRlY3RpbmcgZGVjb2RlZCByZXNvdXJjZSB0aHJh
c2ggaW4gdGhlIGNhY2hlCiAKLSAgICBMYXlvdXRTaXplIG1fc2l6ZTsKLSAgICBMYXlvdXRTaXpl
IG1fbWFyZ2luczsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxMaXN0SGFzaFNldDxSZW5kZXJFbWJl
ZGRlZE9iamVjdCo+PiBtX2VtYmVkZGVkT2JqZWN0c1RvVXBkYXRlOwogICAgIGNvbnN0IFJlZjxG
cmFtZT4gbV9mcmFtZTsKKyAgICBGcmFtZVZpZXdMYXlvdXRDb250ZXh0IG1fbGF5b3V0Q29udGV4
dDsKIAorICAgIEhhc2hTZXQ8V2lkZ2V0Kj4gbV93aWRnZXRzSW5SZW5kZXJUcmVlOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxMaXN0SGFzaFNldDxSZW5kZXJFbWJlZGRlZE9iamVjdCo+PiBtX2VtYmVk
ZGVkT2JqZWN0c1RvVXBkYXRlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PGNvbnN0IFJl
bmRlckVsZW1lbnQqPj4gbV9zbG93UmVwYWludE9iamVjdHM7CiAKLSAgICBib29sIG1fY2FuSGF2
ZVNjcm9sbGJhcnM7Ci0gICAgYm9vbCBtX2Nhbm5vdEJsaXRUb1dpbmRvdzsKLSAgICBib29sIG1f
aXNPdmVybGFwcGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1fY29udGVudElzT3BhcXVlOworICAg
IFJlZlB0cjxDb250YWluZXJOb2RlPiBtX21haW50YWluU2Nyb2xsUG9zaXRpb25BbmNob3I7Cisg
ICAgUmVmUHRyPE5vZGU+IG1fbm9kZVRvRHJhdzsKKworICAgIC8vIFJlbmRlcmVyIHRvIGhvbGQg
b3VyIGN1c3RvbSBzY3JvbGwgY29ybmVyLgorICAgIFJlbmRlclB0cjxSZW5kZXJTY3JvbGxiYXJQ
YXJ0PiBtX3Njcm9sbENvcm5lcjsKIAogICAgIFRpbWVyIG1fdXBkYXRlRW1iZWRkZWRPYmplY3Rz
VGltZXI7CiAgICAgVGltZXIgbV91cGRhdGVXaWRnZXRQb3NpdGlvbnNUaW1lcjsKKyAgICBUaW1l
ciBtX2RlbGF5ZWRTY3JvbGxFdmVudFRpbWVyOworICAgIFRpbWVyIG1fZGVsYXllZFNjcm9sbFRv
Rm9jdXNlZEVsZW1lbnRUaW1lcjsKKyAgICBUaW1lciBtX3NwZWN1bGF0aXZlVGlsaW5nRW5hYmxl
VGltZXI7CiAKLSAgICBib29sIG1fZmlyc3RMYXlvdXRDYWxsYmFja1BlbmRpbmc7CisgICAgTW9u
b3RvbmljVGltZSBtX2xhc3RQYWludFRpbWU7CiAKLSAgICBib29sIG1faXNUcmFuc3BhcmVudDsK
LSNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKLSAgICBib29sIG1fdXNlc0RhcmtBcHBlYXJhbmNl
IHsgZmFsc2UgfTsKLSNlbmRpZgotICAgIENvbG9yIG1fYmFzZUJhY2tncm91bmRDb2xvcjsKKyAg
ICBMYXlvdXRTaXplIG1fc2l6ZTsKKyAgICBMYXlvdXRTaXplIG1fbWFyZ2luczsKKworICAgIENv
bG9yIG1fYmFzZUJhY2tncm91bmRDb2xvciB7IENvbG9yOjp3aGl0ZSB9OwogICAgIEludFNpemUg
bV9sYXN0Vmlld3BvcnRTaXplOwotICAgIGZsb2F0IG1fbGFzdFpvb21GYWN0b3I7CiAKICAgICBT
dHJpbmcgbV9tZWRpYVR5cGU7CiAgICAgU3RyaW5nIG1fbWVkaWFUeXBlV2hlbk5vdFByaW50aW5n
OwogCi0gICAgYm9vbCBtX292ZXJmbG93U3RhdHVzRGlydHk7Ci0gICAgYm9vbCBtX2hvcml6b250
YWxPdmVyZmxvdzsKLSAgICBib29sIG1fdmVydGljYWxPdmVyZmxvdzsKLSAgICBlbnVtIGNsYXNz
IFZpZXdwb3J0UmVuZGVyZXJUeXBlIHsgTm9uZSwgRG9jdW1lbnQsIEJvZHkgfTsKLSAgICBWaWV3
cG9ydFJlbmRlcmVyVHlwZSBtX3ZpZXdwb3J0UmVuZGVyZXJUeXBlIHsgVmlld3BvcnRSZW5kZXJl
clR5cGU6Ok5vbmUgfTsKLQotICAgIFBhZ2luYXRpb24gbV9wYWdpbmF0aW9uOwotCi0gICAgYm9v
bCBtX3dhc1Njcm9sbGVkQnlVc2VyOwotICAgIGJvb2wgbV9pblByb2dyYW1tYXRpY1Njcm9sbDsK
LSAgICBUaW1lciBtX2RlbGF5ZWRTY3JvbGxFdmVudFRpbWVyOwotICAgIGJvb2wgbV9zaG91bGRT
Y3JvbGxUb0ZvY3VzZWRFbGVtZW50IHsgZmFsc2UgfTsKLSAgICBTZWxlY3Rpb25SZXZlYWxNb2Rl
IG1fc2VsZWN0aW9uUmV2ZWFsTW9kZUZvckZvY3VzZWRFbGVtZW50OwotICAgIFRpbWVyIG1fZGVs
YXllZFNjcm9sbFRvRm9jdXNlZEVsZW1lbnRUaW1lcjsKLQotICAgIE1vbm90b25pY1RpbWUgbV9s
YXN0UGFpbnRUaW1lOwotCi0gICAgYm9vbCBtX2lzVHJhY2tpbmdSZXBhaW50czsgLy8gVXNlZCBm
b3IgdGVzdGluZy4KICAgICBWZWN0b3I8RmxvYXRSZWN0PiBtX3RyYWNrZWRSZXBhaW50UmVjdHM7
Ci0KLSAgICBib29sIG1fc2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW47Ci0KLSAgICBPcHRpb25h
bDxGbG9hdFJlY3Q+IG1fdmlld0V4cG9zZWRSZWN0OwogICAgIAorICAgIEludFJlY3QqIG1fY2Fj
aGVkV2luZG93Q2xpcFJlY3QgeyBudWxscHRyIH07CisgICAgVmVjdG9yPFdURjo6RnVuY3Rpb248
dm9pZCAoKT4+IG1fcG9zdExheW91dENhbGxiYWNrUXVldWU7CisKICAgICBMYXlvdXRQb2ludCBt
X2xheW91dFZpZXdwb3J0T3JpZ2luOwogICAgIE9wdGlvbmFsPExheW91dFJlY3Q+IG1fbGF5b3V0
Vmlld3BvcnRPdmVycmlkZVJlY3Q7CiAgICAgT3B0aW9uYWw8TGF5b3V0UmVjdD4gbV92aXN1YWxW
aWV3cG9ydE92ZXJyaWRlUmVjdDsgLy8gVXNlZCB3aGVuIHRoZSBpT1Mga2V5Ym9hcmQgaXMgc2hv
d2luZy4KIAotICAgIFJlZlB0cjxOb2RlPiBtX25vZGVUb0RyYXc7CisgICAgT3B0aW9uYWw8Rmxv
YXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKKwogICAgIE9wdGlvblNldDxQYWludEJlaGF2aW9y
PiBtX3BhaW50QmVoYXZpb3I7Ci0gICAgYm9vbCBtX2lzUGFpbnRpbmc7CiAKLSAgICBib29sIG1f
aXNWaXN1YWxseU5vbkVtcHR5IHsgZmFsc2UgfTsKKyAgICBmbG9hdCBtX2xhc3Rab29tRmFjdG9y
IHsgMSB9OwogICAgIHVuc2lnbmVkIG1fdmlzdWFsbHlOb25FbXB0eUNoYXJhY3RlckNvdW50IHsg
MCB9OwogICAgIHVuc2lnbmVkIG1fdmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQgeyAwIH07Ci0K
ICAgICB1bnNpZ25lZCBtX3RleHRSZW5kZXJlckNvdW50Rm9yVmlzdWFsbHlOb25FbXB0eUNoYXJh
Y3RlcnMgeyAwIH07Ci0gICAgYm9vbCBtX3JlbmRlcmVkU2lnbmlmaWNhbnRBbW91bnRPZlRleHQg
eyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNSZWFjaGVkU2lnbmlmaWNhbnRSZW5kZXJlZFRleHRU
aHJlc2hvbGQgeyBmYWxzZSB9OwotCi0gICAgYm9vbCBtX25lZWRzRGVmZXJyZWRTY3JvbGxiYXJz
VXBkYXRlIHsgZmFsc2UgfTsKLQotICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX21haW50YWlu
U2Nyb2xsUG9zaXRpb25BbmNob3I7Ci0KLSAgICAvLyBSZW5kZXJlciB0byBob2xkIG91ciBjdXN0
b20gc2Nyb2xsIGNvcm5lci4KLSAgICBSZW5kZXJQdHI8UmVuZGVyU2Nyb2xsYmFyUGFydD4gbV9z
Y3JvbGxDb3JuZXI7Ci0KLSAgICBib29sIG1fc3BlY3VsYXRpdmVUaWxpbmdFbmFibGVkOwotICAg
IFRpbWVyIG1fc3BlY3VsYXRpdmVUaWxpbmdFbmFibGVUaW1lcjsKKyAgICBpbnQgbV9oZWFkZXJI
ZWlnaHQgeyAwIH07CisgICAgaW50IG1fZm9vdGVySGVpZ2h0IHsgMCB9OwogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIG1fdXNlQ3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJl
Y3Q7Ci0gICAgSW50UmVjdCBtX2N1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0OworICAgIGJv
b2wgbV91c2VDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3VzZUN1c3RvbVNpemVGb3JSZXNpemVFdmVudCB7IGZhbHNlIH07CiAKLSAgICBib29sIG1f
dXNlQ3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50OworICAgIEludFJlY3QgbV9jdXN0b21GaXhlZFBv
c2l0aW9uTGF5b3V0UmVjdDsKICAgICBJbnRTaXplIG1fY3VzdG9tU2l6ZUZvclJlc2l6ZUV2ZW50
OwogI2VuZGlmCiAKICAgICBPcHRpb25hbDxPdmVycmlkZVZpZXdwb3J0U2l6ZT4gbV9vdmVycmlk
ZVZpZXdwb3J0U2l6ZTsKIAotICAgIC8vIElmIHRydWUsIGF1dG9tYXRpY2FsbHkgcmVzaXplIHRo
ZSBmcmFtZSB2aWV3IGFyb3VuZCBpdHMgY29udGVudC4KLSAgICBib29sIG1fc2hvdWxkQXV0b1Np
emU7Ci0gICAgYm9vbCBtX2luQXV0b1NpemU7Ci0gICAgLy8gVHJ1ZSBpZiBhdXRvc2l6ZSBoYXMg
YmVlbiBydW4gc2luY2UgbV9zaG91bGRBdXRvU2l6ZSB3YXMgc2V0LgotICAgIGJvb2wgbV9kaWRS
dW5BdXRvc2l6ZTsKICAgICAvLyBUaGUgbG93ZXIgYm91bmQgb24gdGhlIHNpemUgd2hlbiBhdXRv
c2l6aW5nLgogICAgIEludFNpemUgbV9taW5BdXRvU2l6ZTsKICAgICAvLyBUaGUgdXBwZXIgYm91
bmQgb24gdGhlIHNpemUgd2hlbiBhdXRvc2l6aW5nLgogICAgIEludFNpemUgbV9tYXhBdXRvU2l6
ZTsKICAgICAvLyBUaGUgZml4ZWQgaGVpZ2h0IHRvIHJlc2l6ZSB0aGUgdmlldyB0byBhZnRlciBh
dXRvc2l6aW5nIGlzIGNvbXBsZXRlLgotICAgIGludCBtX2F1dG9TaXplRml4ZWRNaW5pbXVtSGVp
Z2h0OworICAgIGludCBtX2F1dG9TaXplRml4ZWRNaW5pbXVtSGVpZ2h0IHsgMCB9OwogICAgIC8v
IFRoZSBpbnRyaW5zaWMgY29udGVudCBzaXplIGRlY2lkZWQgYnkgYXV0b3NpemluZy4KICAgICBJ
bnRTaXplIG1fYXV0b1NpemVDb250ZW50U2l6ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3Jv
bGxhYmxlQXJlYVNldD4gbV9zY3JvbGxhYmxlQXJlYXM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZp
ZXdwb3J0Q29uc3RyYWluZWRPYmplY3RTZXQ+IG1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHM7
CiAKLSAgICBpbnQgbV9oZWFkZXJIZWlnaHQ7Ci0gICAgaW50IG1fZm9vdGVySGVpZ2h0OwotCiAg
ICAgT3B0aW9uU2V0PExheW91dE1pbGVzdG9uZT4gbV9taWxlc3RvbmVzUGVuZGluZ1BhaW50Owog
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHZpc3VhbENoYXJhY3RlclRocmVzaG9sZCA9IDIw
MDsKQEAgLTkzNywxNiArODk3LDUxIEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX2luaXRpYWxW
aWV3cG9ydFNpemU7CiAjZW5kaWYKIAotICAgIGJvb2wgbV92aXN1YWxVcGRhdGVzQWxsb3dlZEJ5
Q2xpZW50OwotICAgIGJvb2wgbV9oYXNGbGlwcGVkQmxvY2tSZW5kZXJlcnM7Ci0gICAgYm9vbCBt
X3NwZWN1bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcgeyBmYWxzZSB9OworICAg
IFBhZ2luYXRpb24gbV9wYWdpbmF0aW9uOwogCi0gICAgU2Nyb2xsUGlubmluZ0JlaGF2aW9yIG1f
c2Nyb2xsUGlubmluZ0JlaGF2aW9yOworICAgIGVudW0gY2xhc3MgVmlld3BvcnRSZW5kZXJlclR5
cGUgOiB1aW50OF90IHsgTm9uZSwgRG9jdW1lbnQsIEJvZHkgfTsKKyAgICBWaWV3cG9ydFJlbmRl
cmVyVHlwZSBtX3ZpZXdwb3J0UmVuZGVyZXJUeXBlIHsgVmlld3BvcnRSZW5kZXJlclR5cGU6Ok5v
bmUgfTsKKyAgICBTY3JvbGxQaW5uaW5nQmVoYXZpb3IgbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3Ig
eyBEb05vdFBpbiB9OworICAgIFNlbGVjdGlvblJldmVhbE1vZGUgbV9zZWxlY3Rpb25SZXZlYWxN
b2RlRm9yRm9jdXNlZEVsZW1lbnQgeyBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVhbCB9
OworCisgICAgYm9vbCBtX3Nob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuIHsgdHJ1ZSB9OworICAg
IGJvb2wgbV9vdmVyZmxvd1N0YXR1c0RpcnR5IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9ob3Jpem9u
dGFsT3ZlcmZsb3cgeyBmYWxzZSB9OworICAgIGJvb2wgbV92ZXJ0aWNhbE92ZXJmbG93IHsgZmFs
c2UgfTsKKyAgICBib29sIG1fY2FuSGF2ZVNjcm9sbGJhcnMgeyB0cnVlIH07CisgICAgYm9vbCBt
X2Nhbm5vdEJsaXRUb1dpbmRvdyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzT3ZlcmxhcHBlZCB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2NvbnRlbnRJc09wYXF1ZSB7IGZhbHNlIH07CisgICAgYm9v
bCBtX2ZpcnN0TGF5b3V0Q2FsbGJhY2tQZW5kaW5nIHsgZmFsc2UgfTsKIAotICAgIEludFJlY3Qq
IG1fY2FjaGVkV2luZG93Q2xpcFJlY3QgeyBudWxscHRyIH07Ci0gICAgVmVjdG9yPFdURjo6RnVu
Y3Rpb248dm9pZCAoKT4+IG1fcG9zdExheW91dENhbGxiYWNrUXVldWU7CisgICAgYm9vbCBtX2lz
VHJhbnNwYXJlbnQgeyBmYWxzZSB9OworI2lmIEVOQUJMRShEQVJLX01PREVfQ1NTKQorICAgIGJv
b2wgbV91c2VzRGFya0FwcGVhcmFuY2UgeyBmYWxzZSB9OworI2VuZGlmCiAKLSAgICBGcmFtZVZp
ZXdMYXlvdXRDb250ZXh0IG1fbGF5b3V0Q29udGV4dDsKKyAgICBib29sIG1faXNUcmFja2luZ1Jl
cGFpbnRzIHsgZmFsc2UgfTsgLy8gVXNlZCBmb3IgdGVzdGluZy4KKyAgICBib29sIG1fd2FzU2Ny
b2xsZWRCeVVzZXIgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pblByb2dyYW1tYXRpY1Njcm9sbCB7
IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZFNjcm9sbFRvRm9jdXNlZEVsZW1lbnQgeyBmYWxz
ZSB9OworCisgICAgYm9vbCBtX2lzUGFpbnRpbmcgeyBmYWxzZSB9OworCisgICAgYm9vbCBtX2lz
VmlzdWFsbHlOb25FbXB0eSB7IGZhbHNlIH07CisKKyAgICBib29sIG1fcmVuZGVyZWRTaWduaWZp
Y2FudEFtb3VudE9mVGV4dCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1JlYWNoZWRTaWduaWZp
Y2FudFJlbmRlcmVkVGV4dFRocmVzaG9sZCB7IGZhbHNlIH07CisKKyAgICBib29sIG1fbmVlZHNE
ZWZlcnJlZFNjcm9sbGJhcnNVcGRhdGUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zcGVjdWxhdGl2
ZVRpbGluZ0VuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV92aXN1YWxVcGRhdGVzQWxsb3dl
ZEJ5Q2xpZW50IHsgdHJ1ZSB9OworICAgIGJvb2wgbV9oYXNGbGlwcGVkQmxvY2tSZW5kZXJlcnMg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9zcGVjdWxhdGl2ZVRpbGluZ0RlbGF5RGlzYWJsZWRGb3JU
ZXN0aW5nIHsgZmFsc2UgfTsKKworICAgIC8vIElmIHRydWUsIGF1dG9tYXRpY2FsbHkgcmVzaXpl
IHRoZSBmcmFtZSB2aWV3IGFyb3VuZCBpdHMgY29udGVudC4KKyAgICBib29sIG1fc2hvdWxkQXV0
b1NpemUgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pbkF1dG9TaXplIHsgZmFsc2UgfTsKKyAgICAv
LyBUcnVlIGlmIGF1dG9zaXplIGhhcyBiZWVuIHJ1biBzaW5jZSBtX3Nob3VsZEF1dG9TaXplIHdh
cyBzZXQuCisgICAgYm9vbCBtX2RpZFJ1bkF1dG9zaXplIHsgZmFsc2UgfTsKIH07CiAKIGlubGlu
ZSB2b2lkIEZyYW1lVmlldzo6aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3TGF5b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRD
b250ZXh0LmgKaW5kZXggYjA3Y2Y1YTVkOWIzOGVjMTUyMjczYmE4NDc3M2QzYjNkN2IxZjg4YS4u
Y2YzYzZiZGI2ZDk2MGU3Y2M5Y2M3MjdkYTU3Y2Q2OGEzMzMyZjk5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlzYWJsZVNldE5lZWRzTGF5b3V0KCk7CiAgICAgdm9pZCBlbmFibGVT
ZXROZWVkc0xheW91dCgpOwogCi0gICAgZW51bSBjbGFzcyBMYXlvdXRQaGFzZSB7CisgICAgZW51
bSBjbGFzcyBMYXlvdXRQaGFzZSA6IHVpbnQ4X3QgewogICAgICAgICBPdXRzaWRlTGF5b3V0LAog
ICAgICAgICBJblByZUxheW91dCwKICAgICAgICAgSW5SZW5kZXJUcmVlTGF5b3V0LApAQCAtMTU4
LDYgKzE1OCw3IEBAIHByaXZhdGU6CiAgICAgRnJhbWVWaWV3JiBtX2ZyYW1lVmlldzsKICAgICBU
aW1lciBtX2xheW91dFRpbWVyOwogICAgIFRpbWVyIG1fYXN5bmNocm9ub3VzVGFza3NUaW1lcjsK
KyAgICBXZWFrUHRyPFJlbmRlckVsZW1lbnQ+IG1fc3VidHJlZUxheW91dFJvb3Q7CiAKICAgICBi
b29sIG1fbGF5b3V0U2NoZWR1bGluZ0lzRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZGVs
YXllZExheW91dCB7IGZhbHNlIH07CkBAIC0xNjYsMTQgKzE2NywxMyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pbkFzeW5jaHJvbm91c1Rhc2tzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2V0TmVl
ZHNMYXlvdXRXYXNEZWZlcnJlZCB7IGZhbHNlIH07CiAgICAgTGF5b3V0UGhhc2UgbV9sYXlvdXRQ
aGFzZSB7IExheW91dFBoYXNlOjpPdXRzaWRlTGF5b3V0IH07Ci0gICAgZW51bSBjbGFzcyBMYXlv
dXROZXN0ZWRTdGF0ZSB7IE5vdEluTGF5b3V0LCBOb3ROZXN0ZWQsIE5lc3RlZCB9OworICAgIGVu
dW0gY2xhc3MgTGF5b3V0TmVzdGVkU3RhdGUgOiB1aW50OF90ICB7IE5vdEluTGF5b3V0LCBOb3RO
ZXN0ZWQsIE5lc3RlZCB9OwogICAgIExheW91dE5lc3RlZFN0YXRlIG1fbGF5b3V0TmVzdGVkU3Rh
dGUgeyBMYXlvdXROZXN0ZWRTdGF0ZTo6Tm90SW5MYXlvdXQgfTsKICAgICB1bnNpZ25lZCBtX2xh
eW91dENvdW50IHsgMCB9OwogICAgIHVuc2lnbmVkIG1fZGlzYWJsZVNldE5lZWRzTGF5b3V0Q291
bnQgeyAwIH07CiAgICAgaW50IG1fbGF5b3V0RGlzYWxsb3dlZENvdW50IHsgMCB9OwotICAgIFdl
YWtQdHI8UmVuZGVyRWxlbWVudD4gbV9zdWJ0cmVlTGF5b3V0Um9vdDsKLSAgICBMYXlvdXRTdGF0
ZVN0YWNrIG1fbGF5b3V0U3RhdGVTdGFjazsKICAgICB1bnNpZ25lZCBtX3BhaW50T2Zmc2V0Q2Fj
aGVEaXNhYmxlQ291bnQgeyAwIH07CisgICAgTGF5b3V0U3RhdGVTdGFjayBtX2xheW91dFN0YXRl
U3RhY2s7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVHlwZXMuaAppbmRleCBiOTc5MTdhMjJmMzY2OTNlZjI0NjY1MmUyYTI4OTBiNzM4YjVm
NmJiLi4yYjMxOTUxOGZhOTY1MTc1YzJjMTU1YjAyMmQyZjQzM2QyZmIxYTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKLSNpZm5kZWYgU2Nyb2xsVHlwZXNfaAotI2RlZmluZSBTY3JvbGxUeXBlc19o
CisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8d3RmL0Fzc2Vy
dGlvbnMuaD4KQEAgLTExMSwyMyArMTEwLDM3IEBAIGVudW0gU2Nyb2xsR3JhbnVsYXJpdHkgOiB1
aW50OF90IHsKICAgICBTY3JvbGxCeVBpeGVsCiB9OwogCi1lbnVtIFNjcm9sbEVsYXN0aWNpdHkg
eworZW51bSBTY3JvbGxFbGFzdGljaXR5IDogdWludDhfdCB7CiAgICAgU2Nyb2xsRWxhc3RpY2l0
eUF1dG9tYXRpYywKICAgICBTY3JvbGxFbGFzdGljaXR5Tm9uZSwKICAgICBTY3JvbGxFbGFzdGlj
aXR5QWxsb3dlZAogfTsKIAotZW51bSBTY3JvbGxiYXJPcmllbnRhdGlvbiB7IEhvcml6b250YWxT
Y3JvbGxiYXIsIFZlcnRpY2FsU2Nyb2xsYmFyIH07Ci0KLWVudW0gU2Nyb2xsYmFyTW9kZSB7IFNj
cm9sbGJhckF1dG8sIFNjcm9sbGJhckFsd2F5c09mZiwgU2Nyb2xsYmFyQWx3YXlzT24gfTsKK2Vu
dW0gU2Nyb2xsYmFyT3JpZW50YXRpb24gOiB1aW50OF90IHsKKyAgICBIb3Jpem9udGFsU2Nyb2xs
YmFyLAorICAgIFZlcnRpY2FsU2Nyb2xsYmFyCit9OwogCi1lbnVtIFNjcm9sbGJhckNvbnRyb2xT
aXplIHsgUmVndWxhclNjcm9sbGJhciwgU21hbGxTY3JvbGxiYXIgfTsKK2VudW0gU2Nyb2xsYmFy
TW9kZSA6IHVpbnQ4X3QgeworICAgIFNjcm9sbGJhckF1dG8sCisgICAgU2Nyb2xsYmFyQWx3YXlz
T2ZmLAorICAgIFNjcm9sbGJhckFsd2F5c09uCit9OwogCi1lbnVtIGNsYXNzIFNjcm9sbGJhckV4
cGFuc2lvblN0YXRlIHsgUmVndWxhciwgRXhwYW5kZWQgfTsKK2VudW0gU2Nyb2xsYmFyQ29udHJv
bFNpemUgOiB1aW50OF90IHsKKyAgICBSZWd1bGFyU2Nyb2xsYmFyLAorICAgIFNtYWxsU2Nyb2xs
YmFyCit9OwogCi1lbnVtIGNsYXNzIFNjcm9sbEV2ZW50QXhpcyB7IEhvcml6b250YWwsIFZlcnRp
Y2FsIH07CitlbnVtIGNsYXNzIFNjcm9sbGJhckV4cGFuc2lvblN0YXRlIDogdWludDhfdCB7Cisg
ICAgUmVndWxhciwKKyAgICBFeHBhbmRlZAorfTsKIAotdHlwZWRlZiB1bnNpZ25lZCBTY3JvbGxi
YXJDb250cm9sU3RhdGU7CitlbnVtIGNsYXNzIFNjcm9sbEV2ZW50QXhpcyA6IHVpbnQ4X3Qgewor
ICAgIEhvcml6b250YWwsCisgICAgVmVydGljYWwKK307CiAKIGVudW0gU2Nyb2xsYmFyQ29udHJv
bFN0YXRlTWFzayB7CiAgICAgQWN0aXZlU2Nyb2xsYmFyU3RhdGUgPSAxLApAQCAtMTQ5LDcgKzE2
Miw3IEBAIGVudW0gU2Nyb2xsYmFyUGFydCB7CiAgICAgQWxsUGFydHMgPSAweGZmZmZmZmZmCiB9
OwogCi1lbnVtIFNjcm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgeworZW51bSBTY3JvbGxiYXJCdXR0
b25zUGxhY2VtZW50IDogdWludDhfdCB7CiAgICAgU2Nyb2xsYmFyQnV0dG9uc05vbmUsCiAgICAg
U2Nyb2xsYmFyQnV0dG9uc1NpbmdsZSwKICAgICBTY3JvbGxiYXJCdXR0b25zRG91YmxlU3RhcnQs
CkBAIC0xNTcsNDQgKzE3MCw0OCBAQCBlbnVtIFNjcm9sbGJhckJ1dHRvbnNQbGFjZW1lbnQgewog
ICAgIFNjcm9sbGJhckJ1dHRvbnNEb3VibGVCb3RoCiB9OwogCi1lbnVtIGNsYXNzIFNjcm9sbGJh
clN0eWxlIHsKK2VudW0gY2xhc3MgU2Nyb2xsYmFyU3R5bGUgOiB1aW50OF90IHsKICAgICBBbHdh
eXNWaXNpYmxlLAogICAgIE92ZXJsYXkKIH07CiAKLWVudW0gU2Nyb2xsYmFyT3ZlcmxheVN0eWxl
IHsKK2VudW0gU2Nyb2xsYmFyT3ZlcmxheVN0eWxlOiB1aW50OF90IHsKICAgICBTY3JvbGxiYXJP
dmVybGF5U3R5bGVEZWZhdWx0LAogICAgIFNjcm9sbGJhck92ZXJsYXlTdHlsZURhcmssCiAgICAg
U2Nyb2xsYmFyT3ZlcmxheVN0eWxlTGlnaHQKIH07CiAKLXR5cGVkZWYgdW5zaWduZWQgU2Nyb2xs
YmFyQ29udHJvbFBhcnRNYXNrOwotCi1lbnVtIFNjcm9sbFBpbm5pbmdCZWhhdmlvciB7CitlbnVt
IFNjcm9sbFBpbm5pbmdCZWhhdmlvciA6IHVpbnQ4X3QgewogICAgIERvTm90UGluLAogICAgIFBp
blRvVG9wLAogICAgIFBpblRvQm90dG9tCiB9OwogCi1lbnVtIGNsYXNzIFNjcm9sbENsYW1waW5n
IHsKK2VudW0gY2xhc3MgU2Nyb2xsQ2xhbXBpbmcgOiB1aW50OF90IHsKICAgICBVbmNsYW1wZWQs
CiAgICAgQ2xhbXBlZAogfTsKIAotZW51bSBTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMg
eworZW51bSBTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMgOiB1aW50OF90IHsKICAgICBT
dGlja1RvRG9jdW1lbnRCb3VuZHMsCiAgICAgU3RpY2tUb1ZpZXdwb3J0Qm91bmRzCiB9OwogCi1l
bnVtIGNsYXNzIFNjcm9sbGJhckJ1dHRvblByZXNzQWN0aW9uIHsKK2VudW0gY2xhc3MgU2Nyb2xs
YmFyQnV0dG9uUHJlc3NBY3Rpb24gOiB1aW50OF90IHsKICAgICBOb25lLAogICAgIENlbnRlck9u
VGh1bWIsCiAgICAgU3RhcnREcmFnLAogICAgIFNjcm9sbAogfTsKIAotdXNpbmcgU2Nyb2xsaW5n
Tm9kZUlEID0gdWludDY0X3Q7CitlbnVtIGNsYXNzIFNlbGVjdGlvblJldmVhbE1vZGUgOiB1aW50
OF90ICB7CisgICAgUmV2ZWFsLAorICAgIFJldmVhbFVwVG9NYWluRnJhbWUsIC8vIFNjcm9sbCBv
dmVyZmxvdyBhbmQgaWZyYW1lcywgYnV0IG5vdCB0aGUgbWFpbiBmcmFtZS4KKyAgICBEb05vdFJl
dmVhbAorfTsKIAotfQordXNpbmcgU2Nyb2xsYmFyQ29udHJvbFN0YXRlID0gdW5zaWduZWQ7Cit1
c2luZyBTY3JvbGxiYXJDb250cm9sUGFydE1hc2sgPSB1bnNpZ25lZDsKK3VzaW5nIFNjcm9sbGlu
Z05vZGVJRCA9IHVpbnQ2NF90OwogCi0jZW5kaWYKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCA0Njc1Y2U5YWUzZTdhYzIzYzBkM2Rh
MmM5N2FmNjZmNzM0MTU0MDBhLi44Y2YzZTU3MmEwNTYzYmRiNDRmNmNmMDYxYjJjOGMyZDRhZTA1
Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC00MjcsNiArNDI3LDE0
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgdW5vYnNjdXJlZENvbnRlbnRTaXplQ2hh
bmdlZCgpID0gMDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIGRlZmluZWQgX19P
QkpDX18KK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBOU1ZpZXcqIGRvY3VtZW50Vmlldygp
IGNvbnN0OworCitwcml2YXRlOgorICAgIE5TU2Nyb2xsVmlldzxXZWJDb3JlRnJhbWVTY3JvbGxW
aWV3Piogc2Nyb2xsVmlldygpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgLy8gU2l6
ZSBhdmFpbGFibGUgZm9yIHZpZXcgY29udGVudHMsIGV4Y2x1ZGluZyBjb250ZW50IGluc2V0cy4g
Tm90IGFmZmVjdGVkIGJ5IHpvb21pbmcuCiAgICAgSW50U2l6ZSBzaXplRm9yVW5vYnNjdXJlZENv
bnRlbnQoVmlzaWJsZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzID0gRXhjbHVkZVNjcm9s
bGJhcnMpIGNvbnN0OwpAQCAtNDQwLDYgKzQ0OCwzOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBp
c1Njcm9sbFZpZXcoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2b2lkIGlu
aXQoKTsKKyAgICB2b2lkIGRlc3Ryb3koKTsKKworICAgIEludFJlY3QgcmVjdFRvQ29weU9uU2Ny
b2xsKCkgY29uc3Q7CisKKyAgICAvLyBDYWxsZWQgd2hlbiB0aGUgc2Nyb2xsIHBvc2l0aW9uIHdp
dGhpbiB0aGlzIHZpZXcgY2hhbmdlcy4gRnJhbWVWaWV3IG92ZXJyaWRlcyB0aGlzIHRvIGdlbmVy
YXRlIHJlcGFpbnQgaW52YWxpZGF0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTGF5ZXJQ
b3NpdGlvbnNBZnRlclNjcm9sbGluZygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29t
cG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpID0gMDsKKworICAgIHZvaWQgcGxhdGZvcm1B
ZGRDaGlsZChXaWRnZXQqKTsKKyAgICB2b2lkIHBsYXRmb3JtUmVtb3ZlQ2hpbGQoV2lkZ2V0Kik7
CisgICAgdm9pZCBwbGF0Zm9ybVNldFNjcm9sbGJhck1vZGVzKCk7CisgICAgdm9pZCBwbGF0Zm9y
bVNjcm9sbGJhck1vZGVzKFNjcm9sbGJhck1vZGUmIGhvcml6b250YWwsIFNjcm9sbGJhck1vZGUm
IHZlcnRpY2FsKSBjb25zdDsKKyAgICB2b2lkIHBsYXRmb3JtU2V0Q2FuQmxpdE9uU2Nyb2xsKGJv
b2wpOworICAgIGJvb2wgcGxhdGZvcm1DYW5CbGl0T25TY3JvbGwoKSBjb25zdDsKKyAgICBJbnRS
ZWN0IHBsYXRmb3JtVmlzaWJsZUNvbnRlbnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNv
bnN0OworICAgIEludFNpemUgcGxhdGZvcm1WaXNpYmxlQ29udGVudFNpemUoYm9vbCBpbmNsdWRl
U2Nyb2xsYmFycykgY29uc3Q7CisgICAgSW50UmVjdCBwbGF0Zm9ybVZpc2libGVDb250ZW50UmVj
dEluY2x1ZGluZ09ic2N1cmVkQXJlYShib29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdDsKKyAg
ICBJbnRTaXplIHBsYXRmb3JtVmlzaWJsZUNvbnRlbnRTaXplSW5jbHVkaW5nT2JzY3VyZWRBcmVh
KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0OworICAgIHZvaWQgcGxhdGZvcm1TZXRDb250
ZW50c1NpemUoKTsKKyAgICBJbnRSZWN0IHBsYXRmb3JtQ29udGVudHNUb1NjcmVlbihjb25zdCBJ
bnRSZWN0JikgY29uc3Q7CisgICAgSW50UG9pbnQgcGxhdGZvcm1TY3JlZW5Ub0NvbnRlbnRzKGNv
bnN0IEludFBvaW50JikgY29uc3Q7CisgICAgdm9pZCBwbGF0Zm9ybVNldFNjcm9sbFBvc2l0aW9u
KGNvbnN0IEludFBvaW50Jik7CisgICAgYm9vbCBwbGF0Zm9ybVNjcm9sbChTY3JvbGxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5KTsKKyAgICB2b2lkIHBsYXRmb3JtU2V0U2Nyb2xsYmFyc1N1
cHByZXNzZWQoYm9vbCByZXBhaW50T25VbnN1cHByZXNzKTsKKyAgICB2b2lkIHBsYXRmb3JtUmVw
YWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYpOworICAgIGJvb2wgcGxhdGZvcm1J
c09mZnNjcmVlbigpIGNvbnN0OworICAgIHZvaWQgcGxhdGZvcm1TZXRTY3JvbGxiYXJPdmVybGF5
U3R5bGUoU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKTsKKyAgICB2b2lkIHBsYXRmb3JtU2V0U2Nyb2xs
T3JpZ2luKGNvbnN0IEludFBvaW50JiwgYm9vbCB1cGRhdGVQb3NpdGlvbkF0QWxsLCBib29sIHVw
ZGF0ZVBvc2l0aW9uU3luY2hyb25vdXNseSk7CisKKyAgICB2b2lkIGNhbGN1bGF0ZU92ZXJoYW5n
QXJlYXNGb3JQYWludGluZyhJbnRSZWN0JiBob3Jpem9udGFsT3ZlcmhhbmdSZWN0LCBJbnRSZWN0
JiB2ZXJ0aWNhbE92ZXJoYW5nUmVjdCk7CisgICAgdm9pZCB1cGRhdGVPdmVyaGFuZ0FyZWFzKCk7
CisKICAgICBIYXNoU2V0PFJlZjxXaWRnZXQ+PiBtX2NoaWxkcmVuOwogCiAgICAgUmVmUHRyPFNj
cm9sbGJhcj4gbV9ob3Jpem9udGFsU2Nyb2xsYmFyOwpAQCAtNDY2LDYgKzUwNyw4IEBAIHByaXZh
dGU6CiAKICAgICBJbnRQb2ludCBtX3BhblNjcm9sbEljb25Qb2ludDsKIAorICAgIHVuc2lnbmVk
IG1fdXBkYXRlU2Nyb2xsYmFyc1Bhc3MgeyAwIH07CisKICAgICBib29sIG1faG9yaXpvbnRhbFNj
cm9sbGJhckxvY2sgeyBmYWxzZSB9OwogICAgIGJvb2wgbV92ZXJ0aWNhbFNjcm9sbGJhckxvY2sg
eyBmYWxzZSB9OwogCkBAIC00NzcsNTggKzUyMCwxMyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9j
YW5CbGl0T25TY3JvbGwgeyB0cnVlIH07CiAKICAgICBib29sIG1fc2Nyb2xsYmFyc1N1cHByZXNz
ZWQgeyBmYWxzZSB9OwotCiAgICAgYm9vbCBtX2luVXBkYXRlU2Nyb2xsYmFycyB7IGZhbHNlIH07
Ci0gICAgdW5zaWduZWQgbV91cGRhdGVTY3JvbGxiYXJzUGFzcyB7IDAgfTsKIAogICAgIGJvb2wg
bV9kcmF3UGFuU2Nyb2xsSWNvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3VzZUZpeGVkTGF5b3V0
IHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV9wYWludHNFbnRpcmVDb250ZW50cyB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2RlbGVnYXRlc1Njcm9sbGluZyB7IGZhbHNlIH07Ci0KLQotICAgIHZvaWQg
aW5pdCgpOwotICAgIHZvaWQgZGVzdHJveSgpOwotCi0gICAgSW50UmVjdCByZWN0VG9Db3B5T25T
Y3JvbGwoKSBjb25zdDsKLQotICAgIC8vIENhbGxlZCB3aGVuIHRoZSBzY3JvbGwgcG9zaXRpb24g
d2l0aGluIHRoaXMgdmlldyBjaGFuZ2VzLiBGcmFtZVZpZXcgb3ZlcnJpZGVzIHRoaXMgdG8gZ2Vu
ZXJhdGUgcmVwYWludCBpbnZhbGlkYXRpb25zLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMYXll
clBvc2l0aW9uc0FmdGVyU2Nyb2xsaW5nKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVD
b21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsaW5nKCkgPSAwOwotCi0gICAgdm9pZCBwbGF0Zm9y
bUFkZENoaWxkKFdpZGdldCopOwotICAgIHZvaWQgcGxhdGZvcm1SZW1vdmVDaGlsZChXaWRnZXQq
KTsKLSAgICB2b2lkIHBsYXRmb3JtU2V0U2Nyb2xsYmFyTW9kZXMoKTsKLSAgICB2b2lkIHBsYXRm
b3JtU2Nyb2xsYmFyTW9kZXMoU2Nyb2xsYmFyTW9kZSYgaG9yaXpvbnRhbCwgU2Nyb2xsYmFyTW9k
ZSYgdmVydGljYWwpIGNvbnN0OwotICAgIHZvaWQgcGxhdGZvcm1TZXRDYW5CbGl0T25TY3JvbGwo
Ym9vbCk7Ci0gICAgYm9vbCBwbGF0Zm9ybUNhbkJsaXRPblNjcm9sbCgpIGNvbnN0OwotICAgIElu
dFJlY3QgcGxhdGZvcm1WaXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykg
Y29uc3Q7Ci0gICAgSW50U2l6ZSBwbGF0Zm9ybVZpc2libGVDb250ZW50U2l6ZShib29sIGluY2x1
ZGVTY3JvbGxiYXJzKSBjb25zdDsKLSAgICBJbnRSZWN0IHBsYXRmb3JtVmlzaWJsZUNvbnRlbnRS
ZWN0SW5jbHVkaW5nT2JzY3VyZWRBcmVhKGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0Owot
ICAgIEludFNpemUgcGxhdGZvcm1WaXNpYmxlQ29udGVudFNpemVJbmNsdWRpbmdPYnNjdXJlZEFy
ZWEoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3Q7Ci0gICAgdm9pZCBwbGF0Zm9ybVNldENv
bnRlbnRzU2l6ZSgpOwotICAgIEludFJlY3QgcGxhdGZvcm1Db250ZW50c1RvU2NyZWVuKGNvbnN0
IEludFJlY3QmKSBjb25zdDsKLSAgICBJbnRQb2ludCBwbGF0Zm9ybVNjcmVlblRvQ29udGVudHMo
Y29uc3QgSW50UG9pbnQmKSBjb25zdDsKLSAgICB2b2lkIHBsYXRmb3JtU2V0U2Nyb2xsUG9zaXRp
b24oY29uc3QgSW50UG9pbnQmKTsKLSAgICBib29sIHBsYXRmb3JtU2Nyb2xsKFNjcm9sbERpcmVj
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkpOwotICAgIHZvaWQgcGxhdGZvcm1TZXRTY3JvbGxiYXJz
U3VwcHJlc3NlZChib29sIHJlcGFpbnRPblVuc3VwcHJlc3MpOwotICAgIHZvaWQgcGxhdGZvcm1S
ZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0Jik7Ci0gICAgYm9vbCBwbGF0Zm9y
bUlzT2Zmc2NyZWVuKCkgY29uc3Q7Ci0gICAgdm9pZCBwbGF0Zm9ybVNldFNjcm9sbGJhck92ZXJs
YXlTdHlsZShTY3JvbGxiYXJPdmVybGF5U3R5bGUpOwotICAgCi0gICAgdm9pZCBwbGF0Zm9ybVNl
dFNjcm9sbE9yaWdpbihjb25zdCBJbnRQb2ludCYsIGJvb2wgdXBkYXRlUG9zaXRpb25BdEFsbCwg
Ym9vbCB1cGRhdGVQb3NpdGlvblN5bmNocm9ub3VzbHkpOwotCi0gICAgdm9pZCBjYWxjdWxhdGVP
dmVyaGFuZ0FyZWFzRm9yUGFpbnRpbmcoSW50UmVjdCYgaG9yaXpvbnRhbE92ZXJoYW5nUmVjdCwg
SW50UmVjdCYgdmVydGljYWxPdmVyaGFuZ1JlY3QpOwotICAgIHZvaWQgdXBkYXRlT3ZlcmhhbmdB
cmVhcygpOwotCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIGRlZmluZWQgX19PQkpDX18KLXB1Ymxp
YzoKLSAgICBXRUJDT1JFX0VYUE9SVCBOU1ZpZXcqIGRvY3VtZW50VmlldygpIGNvbnN0OwotCi1w
cml2YXRlOgotICAgIE5TU2Nyb2xsVmlldzxXZWJDb3JlRnJhbWVTY3JvbGxWaWV3Piogc2Nyb2xs
VmlldygpIGNvbnN0OwotI2VuZGlmCiB9OyAvLyBjbGFzcyBTY3JvbGxWaWV3CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdl
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXggOWU0YmU3Y2ZiMjk3
NmMxZWMwZjc1OWMzMWQ2N2YyZmNlOGYzNDViOS4uMjExMTI2NTQ0MDc5YTcxNjY3YWVhM2Y4N2Nj
MmU4NDRlZWVjYThlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTIwNSwxNCArMjA1
LDE1IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmlu
Z1dpbmRvd1RvUm9vdChjb25zdCBXaWRnZXQqIHJvb3RXaWRnZXQsIGNvbnN0IEludFBvaW50Jik7
CiAKIHByaXZhdGU6CisgICAgYm9vbCBtX3NlbGZWaXNpYmxlIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fcGFyZW50VmlzaWJsZSB7IGZhbHNlIH07CisKICAgICBXZWFrUHRyPFNjcm9sbFZpZXc+IG1f
cGFyZW50OwogI2lmICFQTEFURk9STShDT0NPQSkKICAgICBQbGF0Zm9ybVdpZGdldCBtX3dpZGdl
dDsKICNlbHNlCiAgICAgUmV0YWluUHRyPE5TVmlldz4gbV93aWRnZXQ7CiAjZW5kaWYKLSAgICBi
b29sIG1fc2VsZlZpc2libGU7Ci0gICAgYm9vbCBtX3BhcmVudFZpc2libGU7CiAKICAgICBJbnRS
ZWN0IG1fZnJhbWU7IC8vIE5vdCB1c2VkIHdoZW4gYSBuYXRpdmUgd2lkZ2V0IGV4aXN0cy4KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFnaW5hdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhZ2luYXRpb24uaAppbmRleCA4ZDVjYTM3ZGJkNjNhMTlm
ZjA4ZjlmOGRjMzc0YjBiNTBiMmZhMTFhLi5kN2FmZWJkYWQzMWNmNzMxYTg0NGI2MTEzNThlNzk3
YmQxOTM4NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUGFnaW5hdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWdpbmF0aW9uLmgKQEAgLTI4LDE1
ICsyOCw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBQYWdpbmF0aW9uIHsKLSAg
ICBlbnVtIE1vZGUgeyBVbnBhZ2luYXRlZCwgTGVmdFRvUmlnaHRQYWdpbmF0ZWQsIFJpZ2h0VG9M
ZWZ0UGFnaW5hdGVkLCBUb3BUb0JvdHRvbVBhZ2luYXRlZCwgQm90dG9tVG9Ub3BQYWdpbmF0ZWQg
fTsKKyAgICBlbnVtIE1vZGUgOiB1aW50OF90IHsgVW5wYWdpbmF0ZWQsIExlZnRUb1JpZ2h0UGFn
aW5hdGVkLCBSaWdodFRvTGVmdFBhZ2luYXRlZCwgVG9wVG9Cb3R0b21QYWdpbmF0ZWQsIEJvdHRv
bVRvVG9wUGFnaW5hdGVkIH07CiAKLSAgICBQYWdpbmF0aW9uKCkKLSAgICAgICAgOiBtb2RlKFVu
cGFnaW5hdGVkKQotICAgICAgICAsIGJlaGF2ZXNMaWtlQ29sdW1ucyhmYWxzZSkKLSAgICAgICAg
LCBwYWdlTGVuZ3RoKDApCi0gICAgICAgICwgZ2FwKDApCi0gICAgewotICAgIH07CisgICAgUGFn
aW5hdGlvbigpID0gZGVmYXVsdDsKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYWdpbmF0
aW9uJiBvdGhlcikgY29uc3QKICAgICB7CkBAIC00OCwxMCArNDIsMTAgQEAgc3RydWN0IFBhZ2lu
YXRpb24gewogICAgICAgICByZXR1cm4gbW9kZSAhPSBvdGhlci5tb2RlIHx8IGJlaGF2ZXNMaWtl
Q29sdW1ucyAhPSBvdGhlci5iZWhhdmVzTGlrZUNvbHVtbnMgfHwgcGFnZUxlbmd0aCAhPSBvdGhl
ci5wYWdlTGVuZ3RoIHx8IGdhcCAhPSBvdGhlci5nYXA7CiAgICAgfQogCi0gICAgTW9kZSBtb2Rl
OwotICAgIGJvb2wgYmVoYXZlc0xpa2VDb2x1bW5zOwotICAgIHVuc2lnbmVkIHBhZ2VMZW5ndGg7
Ci0gICAgdW5zaWduZWQgZ2FwOworICAgIE1vZGUgbW9kZSB7IFVucGFnaW5hdGVkIH07CisgICAg
Ym9vbCBiZWhhdmVzTGlrZUNvbHVtbnMgeyBmYWxzZSB9OworICAgIHVuc2lnbmVkIHBhZ2VMZW5n
dGggeyAwIH07CisgICAgdW5zaWduZWQgZ2FwIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDk2MTdkMGRhYzAz
YmVmNjYyMTNkMmVkMDZlODY5NjQ3NjIzOTJiOGYuLjM4YzY1NTJiYjFlOGE5NWQwMmExODIyMzg3
YTAyMjgzMDBmMGViODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTgz
LDcgKzgzLDcgQEAgY2xhc3MgVGV4dEluZGljYXRvcjsKIGNsYXNzIFdlYk1lZGlhU2Vzc2lvbk1h
bmFnZXI7CiAKIGVudW0gY2xhc3MgUm91dGVTaGFyaW5nUG9saWN5IDogdWludDhfdDsKLWVudW0g
Y2xhc3MgU2Nyb2xsYmFyU3R5bGU7CitlbnVtIGNsYXNzIFNjcm9sbGJhclN0eWxlIDogdWludDhf
dDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIDogdWludDhfdDsKIGVu
dW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>