<?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>153969</bug_id>
          
          <creation_ts>2016-02-07 18:37:54 -0800</creation_ts>
          <short_desc>Use modern SPI header idiom for NSScrollerImp and NSScrollerImpPair</short_desc>
          <delta_ts>2016-02-07 19:01:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1162808</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-02-07 18:37:54 -0800</bug_when>
    <thetext>Use modern SPI header idiom for NSScrollerImp and NSScrollerImpPair</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162809</commentid>
    <comment_count>1</comment_count>
      <attachid>270835</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-02-07 18:45:34 -0800</bug_when>
    <thetext>Created attachment 270835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162810</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-07 18:48:02 -0800</bug_when>
    <thetext>Attachment 270835 did not pass style-queue:


ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:37:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:54:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:57:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:59:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:62:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:68:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:69:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:70:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:71:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:72:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:73:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:74:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:75:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:76:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:77:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:87:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:109:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:110:  Should have space between @property and attributes.  [whitespace/property] [4]
ERROR: Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:111:  Should have space between @property and attributes.  [whitespace/property] [4]
Total errors found: 19 in 8 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>1162812</commentid>
    <comment_count>3</comment_count>
      <attachid>270835</attachid>
    <who name="">mitz</who>
    <bug_when>2016-02-07 18:53:19 -0800</bug_when>
    <thetext>Comment on attachment 270835
Patch

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

&gt; Source/WebCore/platform/mac/ScrollbarThemeMac.mm:144
&gt;  static bool supportsExpandedScrollbars()
&gt;  {
&gt;      // FIXME: This is temporary until all platforms that support ScrollbarPainter support this part of the API.
&gt; -    static bool globalSupportsExpandedScrollbars = [NSClassFromString(@&quot;NSScrollerImp&quot;) instancesRespondToSelector:@selector(setExpanded:)];
&gt; +    static bool globalSupportsExpandedScrollbars = [[NSScrollerImp class] instancesRespondToSelector:@selector(setExpanded:)];
&gt;      return globalSupportsExpandedScrollbars;
&gt;  }

I think this isn’t necessary anymore.

&gt; Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:36
&gt; +@interface NSScrollerImp (WebCoreIPI)

We now use class extensions rather than categories in such cases.

&gt; Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:88
&gt; +@interface NSScrollerImp (WebCoreIPI)
&gt; +@property(getter=isTracking) BOOL tracking;
&gt; +@end

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162813</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-02-07 18:56:00 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 270835 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=270835&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/mac/ScrollbarThemeMac.mm:144
&gt; &gt;  static bool supportsExpandedScrollbars()
&gt; &gt;  {
&gt; &gt;      // FIXME: This is temporary until all platforms that support ScrollbarPainter support this part of the API.
&gt; &gt; -    static bool globalSupportsExpandedScrollbars = [NSClassFromString(@&quot;NSScrollerImp&quot;) instancesRespondToSelector:@selector(setExpanded:)];
&gt; &gt; +    static bool globalSupportsExpandedScrollbars = [[NSScrollerImp class] instancesRespondToSelector:@selector(setExpanded:)];
&gt; &gt;      return globalSupportsExpandedScrollbars;
&gt; &gt;  }
&gt; 
&gt; I think this isn’t necessary anymore.

Agreed. There are a few of these I will clean up in a second pass.

&gt; 
&gt; &gt; Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:36
&gt; &gt; +@interface NSScrollerImp (WebCoreIPI)
&gt; 
&gt; We now use class extensions rather than categories in such cases.
&gt; 
&gt; &gt; Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h:88
&gt; &gt; +@interface NSScrollerImp (WebCoreIPI)
&gt; &gt; +@property(getter=isTracking) BOOL tracking;
&gt; &gt; +@end
&gt; 
&gt; Ditto.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162814</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-02-07 19:01:08 -0800</bug_when>
    <thetext>Committed r196246: &lt;http://trac.webkit.org/changeset/196246&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270835</attachid>
            <date>2016-02-07 18:45:34 -0800</date>
            <delta_ts>2016-02-07 18:53:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-153969-20160207184511.patch</filename>
            <type>text/plain</type>
            <size>37808</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NjI0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBACisyMDE2LTAyLTA3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIG1vZGVybiBTUEkgaGVhZGVyIGlk
aW9tIGZvciBOU1Njcm9sbGVySW1wIGFuZCBOU1Njcm9sbGVySW1wUGFpcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzOTY5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZSBOU1Njcm9sbGVySW1wU1BJLmgK
KworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjLm1tOgorICAgICAgICBVc2UgbmV3IGluY2x1ZGUgb2YgTlNTY3JvbGxlckltcFNQ
SS5oLgorCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWVDb21wb3NpdGUuaDoKKyAg
ICAgICAgRGVmaW5lIFNjcm9sbGJhclBhaW50ZXIgbW9yZSBwcmVjaXNlbHkgYXMgTlNTY3JvbGxl
ckltcCAqIG5vdyB0aGF0IHRoZSB0eXBlIGlzIGF2YWlsYWJsZSB0byB1cy4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5oOgorICAgICAgICBSZW1vdmUgTlNP
YmplY3QgY2F0ZWdvcnkgYmFzZWQgU1BJIHVzYWdlIHdpdGggdGhlIG1vZGVybiBvbmUgTlNTY3Jv
bGxlckltcFNQSS5oCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFp
bHMubW06CisgICAgICAgIChXZWJDb3JlOjpyZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUpOgorICAg
ICAgICBTaW1wbGlmeSByZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSBub3cgdGhhdCBhbGwgT1Mn
cyB3ZSBzaGlwIG9uIGhhdmUgK1tOU1Njcm9sbGVyIHByZWZlcnJlZFNjcm9sbGVyU3R5bGVdLgor
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOgorICAgICAgICAo
c3VwcG9ydHNVSVN0YXRlVHJhbnNpdGlvblByb2dyZXNzKToKKyAgICAgICAgKHN1cHBvcnRzRXhw
YW5zaW9uVHJhbnNpdGlvblByb2dyZXNzKToKKyAgICAgICAgKHN1cHBvcnRzQ29udGVudEFyZWFT
Y3JvbGxlZEluRGlyZWN0aW9uKToKKyAgICAgICAgU3RvcCB1c2luZyBOU0NsYXNzRnJvbVN0cmlu
ZyBub3cgdGhhdCB3ZSBjYW4gcmVmZXJlbmNlIHRoZSBjbGFzc2VzIGV4cGxpY2l0bHkuCisKKyAg
ICAgICAgKC1bV2ViU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZSBpbnZhbGlkYXRl
XSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUgY29u
dGVudEFyZWFSZWN0Rm9yU2Nyb2xsZXJJbXBQYWlyOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxi
YXJQYWludGVyQ29udHJvbGxlckRlbGVnYXRlIGluTGl2ZVJlc2l6ZUZvclNjcm9sbGVySW1wUGFp
cjpdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZSBt
b3VzZUxvY2F0aW9uSW5Db250ZW50QXJlYUZvclNjcm9sbGVySW1wUGFpcjpdKToKKyAgICAgICAg
KC1bV2ViU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXJEZWxlZ2F0ZSBzY3JvbGxlckltcFBhaXI6
Y29udmVydENvbnRlbnRQb2ludDp0b1Njcm9sbGVySW1wOl0pOgorICAgICAgICAoLVtXZWJTY3Jv
bGxiYXJQYWludGVyQ29udHJvbGxlckRlbGVnYXRlIHNjcm9sbGVySW1wUGFpcjpzZXRDb250ZW50
QXJlYU5lZWRzRGlzcGxheUluUmVjdDpdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJEZWxlZ2F0ZSBzY3JvbGxlckltcFBhaXI6dXBkYXRlU2Nyb2xsZXJTdHlsZUZv
ck5ld1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZTpdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsYmFy
UGFpbnRlckRlbGVnYXRlIGxheWVyXSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJhclBhaW50ZXJE
ZWxlZ2F0ZSBtb3VzZUxvY2F0aW9uSW5TY3JvbGxlckZvclNjcm9sbGVySW1wOl0pOgorICAgICAg
ICAoLVtXZWJTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgY29udmVydFJlY3RUb0xheWVyOl0pOgor
ICAgICAgICAoLVtXZWJTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgc2hvdWxkVXNlTGF5ZXJQZXJQ
YXJ0Rm9yU2Nyb2xsZXJJbXA6XSk6CisgICAgICAgICgtW1dlYlNjcm9sbGJhclBhaW50ZXJEZWxl
Z2F0ZSBzZXRVcEFscGhhQW5pbWF0aW9uOnNjcm9sbGVyUGFpbnRlcjpwYXJ0OmFuaW1hdGVBbHBo
YVRvOmR1cmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUg
c2Nyb2xsZXJJbXA6YW5pbWF0ZUtub2JBbHBoYVRvOmR1cmF0aW9uOl0pOgorICAgICAgICAoLVtX
ZWJTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgc2Nyb2xsZXJJbXA6YW5pbWF0ZVRyYWNrQWxwaGFU
bzpkdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlIHNj
cm9sbGVySW1wOmFuaW1hdGVVSVN0YXRlVHJhbnNpdGlvbldpdGhEdXJhdGlvbjpdKToKKyAgICAg
ICAgKC1bV2ViU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlIHNjcm9sbGVySW1wOmFuaW1hdGVFeHBh
bnNpb25UcmFuc2l0aW9uV2l0aER1cmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJTY3JvbGxiYXJQ
YWludGVyRGVsZWdhdGUgc2Nyb2xsZXJJbXA6b3ZlcmxheVNjcm9sbGVyU3RhdGVDaGFuZ2VkVG86
XSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JN
YWMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmxvY2tPdmVybGF5U2Ny
b2xsYmFyU3RhdGVUb0hpZGRlbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1h
Yzo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNYWM6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6OnVwZGF0ZVNjcm9sbGVyU3R5bGUpOgorICAgICAgICBBZGQgcHJv
cGVyIGNvbmZvcm1pbmcgdG8gcHJvdG9jb2xzIGFuZCByZXBsYWNlIGlkcyB3aXRoIHByb3BlciB0
eXBlcy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OnN1cHBvcnRzRXhwYW5kZWRTY3JvbGxiYXJzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpyZWdpc3RlclNjcm9sbGJhcik6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6c2Nyb2xsYmFyVGhpY2tuZXNzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpzZXRVcENvbnRlbnRTaGFkb3dMYXllcik6Cisg
ICAgICAgIFN0b3AgdXNpbmcgTlNDbGFzc0Zyb21TdHJpbmcgbm93IHRoYXQgd2UgY2FuIHJlZmVy
ZW5jZSB0aGUgY2xhc3NlcyBleHBsaWNpdGx5LgorCisgICAgICAgICogcGxhdGZvcm0vc3BpL21h
Yy9OU1Njcm9sbGVySW1wU1BJLmg6IEFkZGVkLgorCiAyMDE2LTAyLTA3ICBaYWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgT3V0bGluZSBkb2VzIG5vdCBjbGlwIHdoZW4g
YW5jZXN0b3IgaGFzIG92ZXJmbG93OiBoaWRkZW4gYW5kIHJlcXVpcmVzIGxheWVyLgpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMTk2MjQ1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MTY4LDEzICs0MTY4LDEzIEBACiAJCUE0
NTZGQTI3MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQ1NkZBMjUxMUFENEE4MzAwMjBCNDIw
IC8qIExhYmVsc05vZGVMaXN0LmggKi87IH07CiAJCUE1MDE5MjBFMTMyRUJGMkUwMDhCRkU1NSAv
KiBBdXRvY2FwaXRhbGl6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTUwMTkyMEMxMzJFQkYyRTAwOEJGRTU1IC8qIEF1dG9jYXBpdGFsaXplLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTUwMkM1REYx
MzA0OUIzNTAwRkM3RDUzIC8qIFdlYlNhZmVHQ0FjdGl2aXR5Q2FsbGJhY2tJT1MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MDJDNUREMTMwNDlCMzUw
MEZDN0Q1MyAvKiBXZWJTYWZlR0NBY3Rpdml0eUNhbGxiYWNrSU9TLmggKi87IH07CisJCUE1MDcx
RTgwMUM1MDZCNjYwMDk5NTFCRSAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTA3MUU3RTFDNTA2N0EwMDA5
OTUxQkUgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwICovOyB9OworCQlBNTA3MUU4MTFDNTA2
QjY5MDA5OTUxQkUgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MDcxRTdGMUM1MDY3QTAwMDk5NTFCRSAvKiBJ
bnNwZWN0b3JNZW1vcnlBZ2VudC5oICovOyB9OwogCQlBNTA3MUU4NTFDNTZEMERDMDA5OTUxQkUg
LyogUmVzb3VyY2VVc2FnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1MDcxRTgyMUM1NkQwNzkwMDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlRGF0
YS5oICovOyB9OwogCQlBNTA3MUU4NjFDNTZEMERGMDA5OTUxQkUgLyogUmVzb3VyY2VVc2FnZVRo
cmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NTA3MUU4MzFDNTZEMDc5MDA5OTUxQkUgLyogUmVzb3VyY2VVc2FnZVRocmVhZC5jcHAgKi87IH07
CiAJCUE1MDcxRTg3MUM1NkQwRTEwMDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlVGhyZWFkLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTA3MUU4NDFDNTZE
MDc5MDA5OTUxQkUgLyogUmVzb3VyY2VVc2FnZVRocmVhZC5oICovOyB9OwogCQlBNTA3MUU4OTFD
NTZENEZFMDA5OTUxQkUgLyogUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUwNzFFODgxQzU2RDRGQTAwOTk1
MUJFIC8qIFJlc291cmNlVXNhZ2VUaHJlYWRDb2NvYS5tbSAqLzsgfTsKIAkJQTUwNzFFOEIxQzU2
RkIzMTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MDcxRThBMUM1NkZBRkEwMDk5NTFCRSAvKiBS
ZXNvdXJjZVVzYWdlRGF0YS5jcHAgKi87IH07Ci0JCUE1MDcxRTgwMUM1MDZCNjYwMDk5NTFCRSAv
KiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNTA3MUU3RTFDNTA2N0EwMDA5OTUxQkUgLyogSW5zcGVjdG9yTWVt
b3J5QWdlbnQuY3BwICovOyB9OwotCQlBNTA3MUU4MTFDNTA2QjY5MDA5OTUxQkUgLyogSW5zcGVj
dG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE1MDcxRTdGMUM1MDY3QTAwMDk5NTFCRSAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5o
ICovOyB9OwogCQlBNTEzQjNENzExNEIxNjY2MDAxQzQyOUIgLyogS2V5RXZlbnRDb2NvYS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTVDOTc0Q0YxMTQ4
NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50Q29jb2EuaCAqLzsgfTsKIAkJQTUxM0IzRDgxMTRCMTY2
QTAwMUM0MjlCIC8qIEtleUV2ZW50Q29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNUM5NzREMDExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRD
b2NvYS5tbSAqLzsgfTsKIAkJQTUxNkU4QjcxMzZFMDREQjAwNzZDM0MwIC8qIExvY2FsaXplZERh
dGVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTUxNkU4QjQxMzZFMDREQjAwNzZDM0MwIC8qIExvY2FsaXplZERhdGVDYWNoZS5oICovOyB9OwpA
QCAtMTAyODcsNiArMTAyODcsNyBAQAogCQk3QUY5QjIwOTE4Q0ZCNUYyMDBDNjRCRUYgLyogSlNW
VFRSZWdpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNWVFRSZWdpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0FGOUIyMEExOENGQjVGMzAwQzY0QkVG
IC8qIEpTVlRUUmVnaW9uTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1ZUVFJlZ2lvbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
QUY5QjIwQjE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVlRUUmVnaW9uTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3QzA0MDYxMjFDNjZFRTlDMDBBRjA3MTEgLyogTlNTY3JvbGxlckltcFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU1Njcm9sbGVySW1wU1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMUU5NzI1MUE5Rjk4MzQwMDdCRjBGQiAv
KiBBdXRvRmlsbEJ1dHRvbkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXV0b0ZpbGxCdXR0b25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0MxRTk3MjYxQTlGOTgzNDAwN0JGMEZCIC8qIEF1dG9GaWxsQnV0dG9uRWxlbWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRvRmlsbEJ1dHRvbkVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MyQkREM0IxN0M3Rjk4QjAwMzhG
RjE1IC8qIEpTRE9NR2xvYmFsT2JqZWN0VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0RPTUdsb2JhbE9iamVjdFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTE4MDUsMTMgKzExODA2LDEzIEBACiAJCUE0NTZGQTI1MTFBRDRBODMw
MDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMYWJlbHNOb2RlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTAx
OTIwQzEzMkVCRjJFMDA4QkZFNTUgLyogQXV0b2NhcGl0YWxpemUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXV0b2NhcGl0YWxpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTUwMkM1REQxMzA0OUIzNTAwRkM3RDUzIC8qIFdlYlNhZmVHQ0FjdGl2aXR5Q2Fs
bGJhY2tJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2FmZUdDQWN0
aXZpdHlDYWxsYmFja0lPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNTA3MUU3
RTFDNTA2N0EwMDA5OTUxQkUgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNTA3MUU3RjFDNTA2N0EwMDA5OTUxQkUgLyogSW5z
cGVjdG9yTWVtb3J5QWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
cGVjdG9yTWVtb3J5QWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTUwNzFF
ODIxQzU2RDA3OTAwOTk1MUJFIC8qIFJlc291cmNlVXNhZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlVXNhZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE1MDcxRTgzMUM1NkQwNzkwMDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlVGhy
ZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc291cmNlVXNh
Z2VUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTA3MUU4NDFDNTZE
MDc5MDA5OTUxQkUgLyogUmVzb3VyY2VVc2FnZVRocmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXNvdXJjZVVzYWdlVGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE1MDcxRTg4MUM1NkQ0RkEwMDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlVGhyZWFk
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJj
ZVVzYWdlVGhyZWFkQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1MDcx
RThBMUM1NkZBRkEwMDk5NTFCRSAvKiBSZXNvdXJjZVVzYWdlRGF0YS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZVVzYWdlRGF0YS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1MDcxRTdFMUM1MDY3QTAwMDk5NTFCRSAvKiBJbnNwZWN0
b3JNZW1vcnlBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JNZW1vcnlBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1
MDcxRTdGMUM1MDY3QTAwMDk5NTFCRSAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JNZW1vcnlBZ2VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNTE2RThCNDEzNkUwNERCMDA3NkMzQzAgLyogTG9jYWxp
emVkRGF0ZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXpl
ZERhdGVDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTE2RThCNTEzNkUw
NERCMDA3NkMzQzAgLyogTG9jYWxpemVkRGF0ZUNhY2hlLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxpemVkRGF0ZUNhY2hlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNTE4MjI1NDE3RTJBMEQ0MDBBOUJBMUQgLyogSW5zcGVjdG9yT3Zl
cmxheVBhZ2UuY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5jc3M7IHBhdGggPSBJbnNwZWN0b3JPdmVybGF5UGFnZS5jc3M7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODg3Miw2ICsxODg3Myw3IEBACiAJCQkJOTMyMUQ1OEYx
QTM5MDZGQTAwODA1MkJFIC8qIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEku
aCAqLywKIAkJCQk5MzdGNENDRDFBMkQ0QjAxMDBCQjM5RjUgLyogTlNNZW51U1BJLmggKi8sCiAJ
CQkJOTNGMUUxRUIxQTQwRkREQzAwMzQ4RDEzIC8qIE5TUG9wb3ZlclNQSS5oICovLAorCQkJCTdD
MDQwNjEyMUM2NkVFOUMwMEFGMDcxMSAvKiBOU1Njcm9sbGVySW1wU1BJLmggKi8sCiAJCQkJRjQw
RUE4QUExQjg2N0Q2NTAwQ0U1NTgxIC8qIE5TU2Nyb2xsaW5nSW5wdXRGaWx0ZXJTUEkuaCAqLywK
IAkJCQkyRENCODM3NzE5Rjk5QkJBMDBBN0ZCRTQgLyogTlNTaGFyaW5nU2VydmljZVBpY2tlclNQ
SS5oICovLAogCQkJCTJEQ0I4Mzc4MTlGOTlCQkEwMEE3RkJFNCAvKiBOU1NoYXJpbmdTZXJ2aWNl
U1BJLmggKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yy5tbQkocmV2aXNpb24gMTk2MjQ1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTMxLDcgKzMxLDcgQEAKICNpbXBvcnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiTGF5b3V0
U2l6ZS5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgotI2ltcG9ydCAiTlNTY3JvbGxlckltcERldGFp
bHMuaCIKKyNpbXBvcnQgIk5TU2Nyb2xsZXJJbXBTUEkuaCIKICNpbXBvcnQgIlBsYXRmb3JtV2hl
ZWxFdmVudC5oIgogI2ltcG9ydCAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbXBvcnQgIlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJU
aGVtZUNvbXBvc2l0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhclRoZW1lQ29tcG9zaXRlLmgJKHJldmlzaW9uIDE5NjI0NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDggQEAKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi10eXBlZGVmIGlkIFNjcm9sbGJhclBhaW50ZXI7CitPQkpDX0NMQVNTIE5TU2Ny
b2xsZXJJbXA7Cit0eXBlZGVmIE5TU2Nyb2xsZXJJbXAgKlNjcm9sbGJhclBhaW50ZXI7CiAjZWxz
ZQogdHlwZWRlZiB2b2lkKiBTY3JvbGxiYXJQYWludGVyOwogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaAkocmV2
aXNpb24gMTk2MjQ1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJ
bXBEZXRhaWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDc0ICsyNiw2IEBACiAjaWZuZGVmIFdl
YkNvcmVfTlNTY3JvbGxlckltcERldGFpbHNfaAogI2RlZmluZSBXZWJDb3JlX05TU2Nyb2xsZXJJ
bXBEZXRhaWxzX2gKIAotLy8gUHVibGljIEFQSXMgbm90IGF2YWlsYWJsZSBvbiB2ZXJzaW9ucyBv
ZiBNYWMgb24gd2hpY2ggd2UgYnVpbGQKLQotQGludGVyZmFjZSBOU09iamVjdCAoU2Nyb2xsYmFy
UGFpbnRlcikKLSsgKGlkKXNjcm9sbGVySW1wV2l0aFN0eWxlOihOU1Njcm9sbGVyU3R5bGUpbmV3
U2Nyb2xsZXJTdHlsZSBjb250cm9sU2l6ZTooTlNDb250cm9sU2l6ZSluZXdDb250cm9sU2l6ZSBo
b3Jpem9udGFsOihCT09MKWhvcml6b250YWwgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6KGlkKXByZXZp
b3VzOwotLSAoQ0dGbG9hdClrbm9iQWxwaGE7Ci0tICh2b2lkKXNldEtub2JBbHBoYTooQ0dGbG9h
dClrbm9iQWxwaGE7Ci0tIChDR0Zsb2F0KXRyYWNrQWxwaGE7Ci0tICh2b2lkKXNldFRyYWNrQWxw
aGE6KENHRmxvYXQpdHJhY2tBbHBoYTsKLS0gKHZvaWQpc2V0RW5hYmxlZDooQk9PTCllbmFibGVk
OwotLSAodm9pZClzZXRCb3VuZHNTaXplOihOU1NpemUpYm91bmRzU2l6ZTsKLS0gKHZvaWQpc2V0
RG91YmxlVmFsdWU6KGRvdWJsZSlkb3VibGVWYWx1ZTsKLS0gKHZvaWQpc2V0UHJlc2VudGF0aW9u
VmFsdWU6KGRvdWJsZSlwcmVzZW50YXRpb25WYWx1ZTsKLS0gKEJPT0wpc2hvdWxkVXNlUHJlc2Vu
dGF0aW9uVmFsdWU7Ci0tICh2b2lkKXNldFVzZVByZXNlbnRhdGlvblZhbHVlOihCT09MKXVzZVBy
ZXNlbnRhdGlvblZhbHVlOwotLSAodm9pZClzZXRLbm9iUHJvcG9ydGlvbjooQ0dGbG9hdClwcm9w
b3J0aW9uOwotLSAodm9pZClzZXRLbm9iU3R5bGU6KE5TU2Nyb2xsZXJLbm9iU3R5bGUpa25vYlN0
eWxlOwotLSAodm9pZClzZXRFeHBhbmRlZDooQk9PTClleHBhbmRlZDsKLS0gKEJPT0wpaXNFeHBh
bmRlZDsKLS0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkKWRlbGVnYXRlOwotLSAodm9pZClzZXRVaVN0
YXRlVHJhbnNpdGlvblByb2dyZXNzOihDR0Zsb2F0KXVpU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3M7
Ci0tICh2b2lkKXNldEV4cGFuc2lvblRyYW5zaXRpb25Qcm9ncmVzczooQ0dGbG9hdClleHBhbnNp
b25UcmFuc2l0aW9uUHJvZ3Jlc3M7Ci0tIChCT09MKWlzSG9yaXpvbnRhbDsKLS0gKENHRmxvYXQp
dHJhY2tXaWR0aDsKLS0gKENHRmxvYXQpdHJhY2tCb3hXaWR0aDsKLS0gKENHRmxvYXQpa25vYk1p
bkxlbmd0aDsKLS0gKENHRmxvYXQpdHJhY2tPdmVybGFwRW5kSW5zZXQ7Ci0tIChDR0Zsb2F0KWtu
b2JPdmVybGFwRW5kSW5zZXQ7Ci0tIChDR0Zsb2F0KXRyYWNrRW5kSW5zZXQ7Ci0tIChDR0Zsb2F0
KWtub2JFbmRJbnNldDsKLS0gKENHRmxvYXQpdWlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzczsKLS0g
KENHRmxvYXQpZXhwYW5zaW9uVHJhbnNpdGlvblByb2dyZXNzOwotLSAoTlNSZWN0KXJlY3RGb3JQ
YXJ0OihOU1Njcm9sbGVyUGFydClwYXJ0Q29kZTsKLS0gKHZvaWQpZHJhd0tub2JTbG90SW5SZWN0
OihOU1JlY3Qpc2xvdFJlY3QgaGlnaGxpZ2h0OihCT09MKWZsYWcgYWxwaGE6KENHRmxvYXQpYWxw
aGE7Ci0tICh2b2lkKWRyYXdLbm9iOwotLSAodm9pZCltb3VzZUVudGVyZWRTY3JvbGxlcjsKLS0g
KHZvaWQpbW91c2VFeGl0ZWRTY3JvbGxlcjsKLS0gKHZvaWQpc2V0VHJhY2tpbmc6KEJPT0wpdHJh
Y2tpbmc7Ci0tICh2b2lkKXNldE5lZWRzRGlzcGxheTooQk9PTClmbGFnOwotQGVuZAotCi1AaW50
ZXJmYWNlIE5TT2JqZWN0IChTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlcikKLS0gKHZvaWQpc2V0
RGVsZWdhdGU6KGlkKWRlbGVnYXRlOwotLSAodm9pZCloaWRlT3ZlcmxheVNjcm9sbGVyczsKLS0g
KHZvaWQpZmxhc2hTY3JvbGxlcnM7Ci0tICh2b2lkKWxvY2tPdmVybGF5U2Nyb2xsZXJTdGF0ZToo
TlNVSW50ZWdlcilzdGF0ZTsKLS0gKEJPT0wpb3ZlcmxheVNjcm9sbGVyU3RhdGVJc0xvY2tlZDsK
LS0gKHZvaWQpdW5sb2NrT3ZlcmxheVNjcm9sbGVyU3RhdGU7Ci0tIChpZClob3Jpem9udGFsU2Ny
b2xsZXJJbXA7Ci0tICh2b2lkKXNldEhvcml6b250YWxTY3JvbGxlckltcDooaWQpaG9yaXpvbnRh
bDsKLS0gKGlkKXZlcnRpY2FsU2Nyb2xsZXJJbXA7Ci0tICh2b2lkKXNldFZlcnRpY2FsU2Nyb2xs
ZXJJbXA6KGlkKXZlcnRpY2FsOwotLSAoTlNTY3JvbGxlclN0eWxlKXNjcm9sbGVyU3R5bGU7Ci0t
ICh2b2lkKXNldFNjcm9sbGVyU3R5bGU6KE5TU2Nyb2xsZXJTdHlsZSlzY3JvbGxlclN0eWxlOwot
LSAodm9pZCljb250ZW50QXJlYVNjcm9sbGVkOwotLSAodm9pZCljb250ZW50QXJlYVNjcm9sbGVk
SW5EaXJlY3Rpb246KE5TUG9pbnQpZGlyZWN0aW9uOwotLSAodm9pZCljb250ZW50QXJlYVdpbGxE
cmF3OwotLSAodm9pZCltb3VzZUVudGVyZWRDb250ZW50QXJlYTsKLS0gKHZvaWQpbW91c2VFeGl0
ZWRDb250ZW50QXJlYTsKLS0gKHZvaWQpbW91c2VNb3ZlZEluQ29udGVudEFyZWE7Ci0tICh2b2lk
KXN0YXJ0TGl2ZVJlc2l6ZTsKLS0gKHZvaWQpY29udGVudEFyZWFEaWRSZXNpemU7Ci0tICh2b2lk
KWVuZExpdmVSZXNpemU7Ci0tICh2b2lkKXdpbmRvd09yZGVyZWRJbjsKLS0gKHZvaWQpd2luZG93
T3JkZXJlZE91dDsKLS0gKHZvaWQpYmVnaW5TY3JvbGxHZXN0dXJlOwotLSAodm9pZCllbmRTY3Jv
bGxHZXN0dXJlOwotQGVuZAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5TU2Nyb2xsZXJTdHls
ZSByZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMubW0JKHJldmlzaW9uIDE5NjI0
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9OU1Njcm9sbGVySW1wRGV0YWlscy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjcsMTYgKzI3LDE2IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJOU1Njcm9sbGVySW1wRGV0YWlscy5oIgorCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1OU1Njcm9sbGVyU3R5bGUgcmVjb21tZW5k
ZWRTY3JvbGxlclN0eWxlKCkgeworTlNTY3JvbGxlclN0eWxlIHJlY29tbWVuZGVkU2Nyb2xsZXJT
dHlsZSgpCit7CiAgICAgaWYgKFNldHRpbmdzOjp1c2VzT3ZlcmxheVNjcm9sbGJhcnMoKSkKICAg
ICAgICAgcmV0dXJuIE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXk7Ci0gICAgaWYgKFtOU1Njcm9sbGVy
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocHJlZmVycmVkU2Nyb2xsZXJTdHlsZSldKQot
ICAgICAgICByZXR1cm4gW05TU2Nyb2xsZXIgcHJlZmVycmVkU2Nyb2xsZXJTdHlsZV07Ci0gICAg
cmV0dXJuIE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeTsKKyAgICByZXR1cm4gW05TU2Nyb2xsZXIgcHJl
ZmVycmVkU2Nyb2xsZXJTdHlsZV07CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0JKHJldmlzaW9uIDE5NjI0NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTlNTY3JvbGxlckltcERldGFpbHMuaCIKKyNp
bmNsdWRlICJOU1Njcm9sbGVySW1wU1BJLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsVmlldy5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgi
CkBAIC00NywxOSArNDgsMTkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBzdGF0aWMgYm9v
bCBzdXBwb3J0c1VJU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3MoKQogewogICAgIC8vIEZJWE1FOiBU
aGlzIGlzIHRlbXBvcmFyeSB1bnRpbCBhbGwgcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCBTY3JvbGxi
YXJQYWludGVyIHN1cHBvcnQgdGhpcyBwYXJ0IG9mIHRoZSBBUEkuCi0gICAgc3RhdGljIGNvbnN0
IGJvb2wgZ2xvYmFsU3VwcG9ydHNVSVN0YXRlVHJhbnNpdGlvblByb2dyZXNzID0gW05TQ2xhc3NG
cm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIGluc3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihtb3VzZUVudGVyZWRTY3JvbGxlcildOworICAgIHN0YXRpYyBjb25zdCBib29sIGds
b2JhbFN1cHBvcnRzVUlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzcyA9IFtbTlNTY3JvbGxlckltcCBj
bGFzc10gaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKG1vdXNlRW50ZXJlZFNj
cm9sbGVyKV07CiAgICAgcmV0dXJuIGdsb2JhbFN1cHBvcnRzVUlTdGF0ZVRyYW5zaXRpb25Qcm9n
cmVzczsKIH0KIAogc3RhdGljIGJvb2wgc3VwcG9ydHNFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jl
c3MoKQogewotICAgIHN0YXRpYyBjb25zdCBib29sIGdsb2JhbFN1cHBvcnRzRXhwYW5zaW9uVHJh
bnNpdGlvblByb2dyZXNzID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIGlu
c3RhbmNlc1Jlc3BvbmRUb1NlbGVjdG9yOkBzZWxlY3RvcihleHBhbnNpb25UcmFuc2l0aW9uUHJv
Z3Jlc3MpXTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBnbG9iYWxTdXBwb3J0c0V4cGFuc2lvblRy
YW5zaXRpb25Qcm9ncmVzcyA9IFtbTlNTY3JvbGxlckltcCBjbGFzc10gaW5zdGFuY2VzUmVzcG9u
ZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGV4cGFuc2lvblRyYW5zaXRpb25Qcm9ncmVzcyldOwogICAg
IHJldHVybiBnbG9iYWxTdXBwb3J0c0V4cGFuc2lvblRyYW5zaXRpb25Qcm9ncmVzczsKIH0KIAog
c3RhdGljIGJvb2wgc3VwcG9ydHNDb250ZW50QXJlYVNjcm9sbGVkSW5EaXJlY3Rpb24oKQogewot
ICAgIHN0YXRpYyBjb25zdCBib29sIGdsb2JhbFN1cHBvcnRzQ29udGVudEFyZWFTY3JvbGxlZElu
RGlyZWN0aW9uID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcFBhaXIiKSBpbnN0
YW5jZXNSZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3IoY29udGVudEFyZWFTY3JvbGxlZEluRGly
ZWN0aW9uOildOworICAgIHN0YXRpYyBjb25zdCBib29sIGdsb2JhbFN1cHBvcnRzQ29udGVudEFy
ZWFTY3JvbGxlZEluRGlyZWN0aW9uID0gW1tOU1Njcm9sbGVySW1wUGFpciBjbGFzc10gaW5zdGFu
Y2VzUmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKGNvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVj
dGlvbjopXTsKICAgICByZXR1cm4gZ2xvYmFsU3VwcG9ydHNDb250ZW50QXJlYVNjcm9sbGVkSW5E
aXJlY3Rpb247CiB9CiAKQEAgLTE4MSw3ICsxODIsNyBAQCAtICh2b2lkKV9yZWN1cnNpdmVSZWNv
bXB1dGVUb29sVGlwcwogCiBAZW5kCiAKLUBpbnRlcmZhY2UgV2ViU2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0CitAaW50ZXJmYWNlIFdlYlNjcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyRGVsZWdhdGUgOiBOU09iamVjdCA8TlNTY3JvbGxlckltcFBhaXJEZWxlZ2F0
ZT4KIHsKICAgICBTY3JvbGxhYmxlQXJlYSogX3Njcm9sbGFibGVBcmVhOwogfQpAQCAtMjA1LDcg
KzIwNiw3IEBAIC0gKHZvaWQpaW52YWxpZGF0ZQogICAgIF9zY3JvbGxhYmxlQXJlYSA9IDA7CiB9
CiAKLS0gKE5TUmVjdCljb250ZW50QXJlYVJlY3RGb3JTY3JvbGxlckltcFBhaXI6KGlkKXNjcm9s
bGVySW1wUGFpcgorLSAoTlNSZWN0KWNvbnRlbnRBcmVhUmVjdEZvclNjcm9sbGVySW1wUGFpcjoo
TlNTY3JvbGxlckltcFBhaXIgKilzY3JvbGxlckltcFBhaXIKIHsKICAgICBVTlVTRURfUEFSQU0o
c2Nyb2xsZXJJbXBQYWlyKTsKICAgICBpZiAoIV9zY3JvbGxhYmxlQXJlYSkKQEAgLTIxNSw3ICsy
MTYsNyBAQCAtIChOU1JlY3QpY29udGVudEFyZWFSZWN0Rm9yU2Nyb2xsZXJJbXBQCiAgICAgcmV0
dXJuIE5TTWFrZVJlY3QoMCwgMCwgY29udGVudHNTaXplLndpZHRoKCksIGNvbnRlbnRzU2l6ZS5o
ZWlnaHQoKSk7CiB9CiAKLS0gKEJPT0wpaW5MaXZlUmVzaXplRm9yU2Nyb2xsZXJJbXBQYWlyOihp
ZClzY3JvbGxlckltcFBhaXIKKy0gKEJPT0wpaW5MaXZlUmVzaXplRm9yU2Nyb2xsZXJJbXBQYWly
OihOU1Njcm9sbGVySW1wUGFpciAqKXNjcm9sbGVySW1wUGFpcgogewogICAgIFVOVVNFRF9QQVJB
TShzY3JvbGxlckltcFBhaXIpOwogICAgIGlmICghX3Njcm9sbGFibGVBcmVhKQpAQCAtMjI0LDcg
KzIyNSw3IEBAIC0gKEJPT0wpaW5MaXZlUmVzaXplRm9yU2Nyb2xsZXJJbXBQYWlyOigKICAgICBy
ZXR1cm4gX3Njcm9sbGFibGVBcmVhLT5pbkxpdmVSZXNpemUoKTsKIH0KIAotLSAoTlNQb2ludClt
b3VzZUxvY2F0aW9uSW5Db250ZW50QXJlYUZvclNjcm9sbGVySW1wUGFpcjooaWQpc2Nyb2xsZXJJ
bXBQYWlyCistIChOU1BvaW50KW1vdXNlTG9jYXRpb25JbkNvbnRlbnRBcmVhRm9yU2Nyb2xsZXJJ
bXBQYWlyOihOU1Njcm9sbGVySW1wUGFpciAqKXNjcm9sbGVySW1wUGFpcgogewogICAgIFVOVVNF
RF9QQVJBTShzY3JvbGxlckltcFBhaXIpOwogICAgIGlmICghX3Njcm9sbGFibGVBcmVhKQpAQCAt
MjMzLDcgKzIzNCw3IEBAIC0gKE5TUG9pbnQpbW91c2VMb2NhdGlvbkluQ29udGVudEFyZWFGb3IK
ICAgICByZXR1cm4gX3Njcm9sbGFibGVBcmVhLT5sYXN0S25vd25Nb3VzZVBvc2l0aW9uKCk7CiB9
CiAKLS0gKE5TUG9pbnQpc2Nyb2xsZXJJbXBQYWlyOihpZClzY3JvbGxlckltcFBhaXIgY29udmVy
dENvbnRlbnRQb2ludDooTlNQb2ludClwb2ludEluQ29udGVudEFyZWEgdG9TY3JvbGxlckltcDoo
aWQpc2Nyb2xsZXJJbXAKKy0gKE5TUG9pbnQpc2Nyb2xsZXJJbXBQYWlyOihOU1Njcm9sbGVySW1w
UGFpciAqKXNjcm9sbGVySW1wUGFpciBjb252ZXJ0Q29udGVudFBvaW50OihOU1BvaW50KXBvaW50
SW5Db250ZW50QXJlYSB0b1Njcm9sbGVySW1wOihOU1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXAK
IHsKICAgICBVTlVTRURfUEFSQU0oc2Nyb2xsZXJJbXBQYWlyKTsKIApAQCAtMjU5LDcgKzI2MCw3
IEBAIC0gKE5TUG9pbnQpc2Nyb2xsZXJJbXBQYWlyOihpZClzY3JvbGxlckkKICAgICByZXR1cm4g
c2Nyb2xsYmFyLT5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KFdlYkNvcmU6OkludFBvaW50KHBv
aW50SW5Db250ZW50QXJlYSkpOwogfQogCi0tICh2b2lkKXNjcm9sbGVySW1wUGFpcjooaWQpc2Ny
b2xsZXJJbXBQYWlyIHNldENvbnRlbnRBcmVhTmVlZHNEaXNwbGF5SW5SZWN0OihOU1JlY3QpcmVj
dAorLSAodm9pZClzY3JvbGxlckltcFBhaXI6KE5TU2Nyb2xsZXJJbXBQYWlyICopc2Nyb2xsZXJJ
bXBQYWlyIHNldENvbnRlbnRBcmVhTmVlZHNEaXNwbGF5SW5SZWN0OihOU1JlY3QpcmVjdAogewog
ICAgIFVOVVNFRF9QQVJBTShzY3JvbGxlckltcFBhaXIpOwogICAgIFVOVVNFRF9QQVJBTShyZWN0
KTsKQEAgLTI3Myw3ICsyNzQsNyBAQCAtICh2b2lkKXNjcm9sbGVySW1wUGFpcjooaWQpc2Nyb2xs
ZXJJbXBQCiAgICAgX3Njcm9sbGFibGVBcmVhLT5zY3JvbGxBbmltYXRvcigpLmNvbnRlbnRBcmVh
V2lsbFBhaW50KCk7CiB9CiAKLS0gKHZvaWQpc2Nyb2xsZXJJbXBQYWlyOihpZClzY3JvbGxlcklt
cFBhaXIgdXBkYXRlU2Nyb2xsZXJTdHlsZUZvck5ld1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZToo
TlNTY3JvbGxlclN0eWxlKW5ld1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZQorLSAodm9pZClzY3Jv
bGxlckltcFBhaXI6KE5TU2Nyb2xsZXJJbXBQYWlyICopc2Nyb2xsZXJJbXBQYWlyIHVwZGF0ZVNj
cm9sbGVyU3R5bGVGb3JOZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGU6KE5TU2Nyb2xsZXJTdHls
ZSluZXdSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUKIHsKICAgICBpZiAoIV9zY3JvbGxhYmxlQXJl
YSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzgxLDcgKzM4Miw3IEBAIC0gKHZvaWQpaW52YWxpZGF0
ZQogCiBAZW5kCiAKLUBpbnRlcmZhY2UgV2ViU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlIDogTlNP
YmplY3Q8TlNBbmltYXRpb25EZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV2ViU2Nyb2xsYmFyUGFpbnRl
ckRlbGVnYXRlIDogTlNPYmplY3Q8TlNBbmltYXRpb25EZWxlZ2F0ZSwgTlNTY3JvbGxlckltcERl
bGVnYXRlPgogewogICAgIFdlYkNvcmU6OlNjcm9sbGJhciogX3Njcm9sbGJhcjsKIApAQCAtNDQ5
LDcgKzQ1MCw3IEBAIC0gKENBTGF5ZXIgKilsYXllcgogICAgIHJldHVybiBsYXllciA/IGxheWVy
LT5wbGF0Zm9ybUxheWVyKCkgOiBkdW1teUxheWVyOwogfQogCi0tIChOU1BvaW50KW1vdXNlTG9j
YXRpb25JblNjcm9sbGVyRm9yU2Nyb2xsZXJJbXA6KGlkKXNjcm9sbGVySW1wCistIChOU1BvaW50
KW1vdXNlTG9jYXRpb25JblNjcm9sbGVyRm9yU2Nyb2xsZXJJbXA6KE5TU2Nyb2xsZXJJbXAgKilz
Y3JvbGxlckltcAogewogICAgIGlmICghX3Njcm9sbGJhcikKICAgICAgICAgcmV0dXJuIE5TWmVy
b1BvaW50OwpAQCAtNDY0LDcgKzQ2NSw3IEBAIC0gKE5TUmVjdCljb252ZXJ0UmVjdFRvTGF5ZXI6
KE5TUmVjdClyZWMKICAgICByZXR1cm4gcmVjdDsKIH0KIAotLSAoQk9PTClzaG91bGRVc2VMYXll
clBlclBhcnRGb3JTY3JvbGxlckltcDooaWQpc2Nyb2xsZXJJbXAKKy0gKEJPT0wpc2hvdWxkVXNl
TGF5ZXJQZXJQYXJ0Rm9yU2Nyb2xsZXJJbXA6KE5TU2Nyb2xsZXJJbXAgKilzY3JvbGxlckltcAog
ewogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxlckltcCk7CiAKQEAgLTUxNiw3ICs1MTcsNyBAQCAt
ICh2b2lkKXNldFVwQWxwaGFBbmltYXRpb246KFJldGFpblB0cjxXCiAgICAgW3Njcm9sbGJhclBh
cnRBbmltYXRpb24gc3RhcnRBbmltYXRpb25dOwogfQogCi0tICh2b2lkKXNjcm9sbGVySW1wOihp
ZClzY3JvbGxlckltcCBhbmltYXRlS25vYkFscGhhVG86KENHRmxvYXQpbmV3S25vYkFscGhhIGR1
cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbgorLSAodm9pZClzY3JvbGxlckltcDooTlNT
Y3JvbGxlckltcCAqKXNjcm9sbGVySW1wIGFuaW1hdGVLbm9iQWxwaGFUbzooQ0dGbG9hdCluZXdL
bm9iQWxwaGEgZHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uCiB7CiAgICAgaWYgKCFf
c2Nyb2xsYmFyKQogICAgICAgICByZXR1cm47CkBAIC01MzksNyArNTQwLDcgQEAgLSAodm9pZClz
Y3JvbGxlckltcDooaWQpc2Nyb2xsZXJJbXAgYW5pbQogICAgIFtzZWxmIHNldFVwQWxwaGFBbmlt
YXRpb246X2tub2JBbHBoYUFuaW1hdGlvbiBzY3JvbGxlclBhaW50ZXI6c2Nyb2xsZXJQYWludGVy
IHBhcnQ6V2ViQ29yZTo6VGh1bWJQYXJ0IGFuaW1hdGVBbHBoYVRvOm5ld0tub2JBbHBoYSBkdXJh
dGlvbjpkdXJhdGlvbl07CiB9CiAKLS0gKHZvaWQpc2Nyb2xsZXJJbXA6KGlkKXNjcm9sbGVySW1w
IGFuaW1hdGVUcmFja0FscGhhVG86KENHRmxvYXQpbmV3VHJhY2tBbHBoYSBkdXJhdGlvbjooTlNU
aW1lSW50ZXJ2YWwpZHVyYXRpb24KKy0gKHZvaWQpc2Nyb2xsZXJJbXA6KE5TU2Nyb2xsZXJJbXAg
KilzY3JvbGxlckltcCBhbmltYXRlVHJhY2tBbHBoYVRvOihDR0Zsb2F0KW5ld1RyYWNrQWxwaGEg
ZHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uCiB7CiAgICAgaWYgKCFfc2Nyb2xsYmFy
KQogICAgICAgICByZXR1cm47CkBAIC01NTAsNyArNTUxLDcgQEAgLSAodm9pZClzY3JvbGxlcklt
cDooaWQpc2Nyb2xsZXJJbXAgYW5pbQogICAgIFtzZWxmIHNldFVwQWxwaGFBbmltYXRpb246X3Ry
YWNrQWxwaGFBbmltYXRpb24gc2Nyb2xsZXJQYWludGVyOnNjcm9sbGVyUGFpbnRlciBwYXJ0Oldl
YkNvcmU6OkJhY2tUcmFja1BhcnQgYW5pbWF0ZUFscGhhVG86bmV3VHJhY2tBbHBoYSBkdXJhdGlv
bjpkdXJhdGlvbl07CiB9CiAKLS0gKHZvaWQpc2Nyb2xsZXJJbXA6KGlkKXNjcm9sbGVySW1wIGFu
aW1hdGVVSVN0YXRlVHJhbnNpdGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRp
b24KKy0gKHZvaWQpc2Nyb2xsZXJJbXA6KE5TU2Nyb2xsZXJJbXAgKilzY3JvbGxlckltcCBhbmlt
YXRlVUlTdGF0ZVRyYW5zaXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9u
CiB7CiAgICAgaWYgKCFfc2Nyb2xsYmFyKQogICAgICAgICByZXR1cm47CkBAIC01ODQsNyArNTg1
LDcgQEAgLSAodm9pZClzY3JvbGxlckltcDooaWQpc2Nyb2xsZXJJbXAgYW5pbQogICAgIFtfdWlT
dGF0ZVRyYW5zaXRpb25BbmltYXRpb24gc3RhcnRBbmltYXRpb25dOwogfQogCi0tICh2b2lkKXNj
cm9sbGVySW1wOihpZClzY3JvbGxlckltcCBhbmltYXRlRXhwYW5zaW9uVHJhbnNpdGlvbldpdGhE
dXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KKy0gKHZvaWQpc2Nyb2xsZXJJbXA6KE5T
U2Nyb2xsZXJJbXAgKilzY3JvbGxlckltcCBhbmltYXRlRXhwYW5zaW9uVHJhbnNpdGlvbldpdGhE
dXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KIHsKICAgICBpZiAoIV9zY3JvbGxiYXIp
CiAgICAgICAgIHJldHVybjsKQEAgLTYxNCw3ICs2MTUsNyBAQCAtICh2b2lkKXNjcm9sbGVySW1w
OihpZClzY3JvbGxlckltcCBhbmltCiAgICAgW19leHBhbnNpb25UcmFuc2l0aW9uQW5pbWF0aW9u
IHN0YXJ0QW5pbWF0aW9uXTsKIH0KIAotLSAodm9pZClzY3JvbGxlckltcDooaWQpc2Nyb2xsZXJJ
bXAgb3ZlcmxheVNjcm9sbGVyU3RhdGVDaGFuZ2VkVG86KE5TVUludGVnZXIpbmV3T3ZlcmxheVNj
cm9sbGVyU3RhdGUKKy0gKHZvaWQpc2Nyb2xsZXJJbXA6KE5TU2Nyb2xsZXJJbXAgKilzY3JvbGxl
ckltcCBvdmVybGF5U2Nyb2xsZXJTdGF0ZUNoYW5nZWRUbzooTlNPdmVybGF5U2Nyb2xsZXJTdGF0
ZSluZXdPdmVybGF5U2Nyb2xsZXJTdGF0ZQogewogICAgIFVOVVNFRF9QQVJBTShzY3JvbGxlcklt
cCk7CiAgICAgVU5VU0VEX1BBUkFNKG5ld092ZXJsYXlTY3JvbGxlclN0YXRlKTsKQEAgLTY1MSw4
ICs2NTIsOCBAQCBTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMoU2NyCiAgICAg
bV9zY3JvbGxBbmltYXRpb25IZWxwZXIgPSBhZG9wdE5TKFtbTlNDbGFzc0Zyb21TdHJpbmcoQCJO
U1Njcm9sbEFuaW1hdGlvbkhlbHBlciIpIGFsbG9jXSBpbml0V2l0aERlbGVnYXRlOm1fc2Nyb2xs
QW5pbWF0aW9uSGVscGVyRGVsZWdhdGUuZ2V0KCldKTsKIAogICAgIG1fc2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXJEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJTY3JvbGxiYXJQYWludGVyQ29udHJv
bGxlckRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbGFibGVBcmVhOiZzY3JvbGxhYmxlQXJl
YV0pOwotICAgIG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbTlNDbGFz
c0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wUGFpciIpIGFsbG9jXSBpbml0XSk7Ci0gICAgW21f
c2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6KGlkKW1fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgbV9zY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlciA9IGFkb3B0TlMoW1tOU1Njcm9sbGVySW1wUGFpciBhbGxvY10gaW5pdF0pOworICAg
IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHNldERlbGVnYXRlOm1fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKV07CiAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXIgc2V0U2Nyb2xsZXJTdHlsZTpyZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKV07CiB9
CiAKQEAgLTk1Miw3ICs5NTMsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptYXlCZWdpblNj
cm9sbEdlCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpsb2NrT3ZlcmxheVNjcm9sbGJhclN0YXRl
VG9IaWRkZW4oYm9vbCBzaG91bGRMb2NrU3RhdGUpCiB7CiAgICAgaWYgKHNob3VsZExvY2tTdGF0
ZSkKLSAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgbG9ja092ZXJsYXlTY3Jv
bGxlclN0YXRlOlNjcm9sbGJhck92ZXJsYXlTdGF0ZUhpZGRlbl07CisgICAgICAgIFttX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyIGxvY2tPdmVybGF5U2Nyb2xsZXJTdGF0ZTpOU092ZXJsYXlT
Y3JvbGxlclN0YXRlSGlkZGVuXTsKICAgICBlbHNlIHsKICAgICAgICAgW21fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIgdW5sb2NrT3ZlcmxheVNjcm9sbGVyU3RhdGVdOwogCkBAIC05NzcsNyAr
OTc4LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkVmVydGljYWxTYwogICAgIEFT
U0VSVCghbV92ZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSk7CiAgICAgbV92ZXJ0aWNh
bFNjcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJTY3JvbGxiYXJQYWludGVy
RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsYmFyOnNjcm9sbGJhcl0pOwogCi0gICAgW3Bh
aW50ZXIgc2V0RGVsZWdhdGU6KGlkKW1fdmVydGljYWxTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUu
Z2V0KCldOworICAgIFtwYWludGVyIHNldERlbGVnYXRlOm1fdmVydGljYWxTY3JvbGxiYXJQYWlu
dGVyRGVsZWdhdGUuZ2V0KCldOwogICAgIGlmIChHcmFwaGljc0xheWVyKiBsYXllciA9IHNjcm9s
bGJhci0+c2Nyb2xsYWJsZUFyZWEoKS5sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAg
ICAgIFtwYWludGVyIHNldExheWVyOmxheWVyLT5wbGF0Zm9ybUxheWVyKCldOwogCkBAIC0xMDA5
LDcgKzEwMTAsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRBZGRIb3Jpem9udGFsCiAg
ICAgQVNTRVJUKCFtX2hvcml6b250YWxTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUpOwogICAgIG1f
aG9yaXpvbnRhbFNjcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJTY3JvbGxi
YXJQYWludGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsYmFyOnNjcm9sbGJhcl0pOwog
Ci0gICAgW3BhaW50ZXIgc2V0RGVsZWdhdGU6KGlkKW1faG9yaXpvbnRhbFNjcm9sbGJhclBhaW50
ZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgW3BhaW50ZXIgc2V0RGVsZWdhdGU6bV9ob3Jpem9udGFs
U2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlLmdldCgpXTsKICAgICBpZiAoR3JhcGhpY3NMYXllciog
bGF5ZXIgPSBzY3JvbGxiYXItPnNjcm9sbGFibGVBcmVhKCkubGF5ZXJGb3JIb3Jpem9udGFsU2Ny
b2xsYmFyKCkpCiAgICAgICAgIFtwYWludGVyIHNldExheWVyOmxheWVyLT5wbGF0Zm9ybUxheWVy
KCldOwogCkBAIC0xMzMxLDEwICsxMzMyLDggQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6dXBk
YXRlU2Nyb2xsZXJTdAogICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhci0+aW52YWxpZGF0ZSgpOwog
CiAgICAgICAgIFNjcm9sbGJhclBhaW50ZXIgb2xkVmVydGljYWxQYWludGVyID0gW21fc2Nyb2xs
YmFyUGFpbnRlckNvbnRyb2xsZXIgdmVydGljYWxTY3JvbGxlckltcF07Ci0gICAgICAgIFNjcm9s
bGJhclBhaW50ZXIgbmV3VmVydGljYWxQYWludGVyID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNT
Y3JvbGxlckltcCIpIHNjcm9sbGVySW1wV2l0aFN0eWxlOm5ld1N0eWxlIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29udHJvbFNpemU6KE5TQ29udHJvbFNpemUpdmVydGljYWxTY3JvbGxi
YXItPmNvbnRyb2xTaXplKCkgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3Jpem9udGFs
Ok5PIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6b2xk
VmVydGljYWxQYWludGVyXTsKKyAgICAgICAgU2Nyb2xsYmFyUGFpbnRlciBuZXdWZXJ0aWNhbFBh
aW50ZXIgPSBbTlNTY3JvbGxlckltcCBzY3JvbGxlckltcFdpdGhTdHlsZTpuZXdTdHlsZSBjb250
cm9sU2l6ZTooTlNDb250cm9sU2l6ZSl2ZXJ0aWNhbFNjcm9sbGJhci0+Y29udHJvbFNpemUoKSBo
b3Jpem9udGFsOk5PIHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZFZlcnRpY2FsUGFpbnRlcl07CisK
ICAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgc2V0VmVydGljYWxTY3JvbGxl
ckltcDpuZXdWZXJ0aWNhbFBhaW50ZXJdOwogICAgICAgICBtYWNUaGVtZS0+c2V0TmV3UGFpbnRl
ckZvclNjcm9sbGJhcigqdmVydGljYWxTY3JvbGxiYXIsIG5ld1ZlcnRpY2FsUGFpbnRlcik7CiAK
QEAgLTEzNDksMTAgKzEzNDgsOCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVTY3Jv
bGxlclN0CiAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXItPmludmFsaWRhdGUoKTsKIAogICAg
ICAgICBTY3JvbGxiYXJQYWludGVyIG9sZEhvcml6b250YWxQYWludGVyID0gW21fc2Nyb2xsYmFy
UGFpbnRlckNvbnRyb2xsZXIgaG9yaXpvbnRhbFNjcm9sbGVySW1wXTsKLSAgICAgICAgU2Nyb2xs
YmFyUGFpbnRlciBuZXdIb3Jpem9udGFsUGFpbnRlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5T
U2Nyb2xsZXJJbXAiKSBzY3JvbGxlckltcFdpdGhTdHlsZTpuZXdTdHlsZSAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRyb2xTaXplOihOU0NvbnRyb2xTaXplKWhvcml6b250YWxTY3Jv
bGxiYXItPmNvbnRyb2xTaXplKCkgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3Jpem9u
dGFsOllFUyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2luZ1Njcm9sbGVySW1w
Om9sZEhvcml6b250YWxQYWludGVyXTsKKyAgICAgICAgU2Nyb2xsYmFyUGFpbnRlciBuZXdIb3Jp
em9udGFsUGFpbnRlciA9IFtOU1Njcm9sbGVySW1wIHNjcm9sbGVySW1wV2l0aFN0eWxlOm5ld1N0
eWxlIGNvbnRyb2xTaXplOihOU0NvbnRyb2xTaXplKWhvcml6b250YWxTY3JvbGxiYXItPmNvbnRy
b2xTaXplKCkgaG9yaXpvbnRhbDpZRVMgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6b2xkSG9yaXpvbnRh
bFBhaW50ZXJdOworCiAgICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHNldEhv
cml6b250YWxTY3JvbGxlckltcDpuZXdIb3Jpem9udGFsUGFpbnRlcl07CiAgICAgICAgIG1hY1Ro
ZW1lLT5zZXROZXdQYWludGVyRm9yU2Nyb2xsYmFyKCpob3Jpem9udGFsU2Nyb2xsYmFyLCBuZXdI
b3Jpem9udGFsUGFpbnRlcik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMubW0JKHJldmlzaW9uIDE5NjI0NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjgsMTAgKzI4LDExIEBACiAKICNpbmNsdWRlICJCbG9ja0V4Y2VwdGlvbnMuaCIKICNpbmNs
dWRlICJDb2xvck1hYy5oIgotI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NMYXllci5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiTG9jYWxD
dXJyZW50R3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTlNTY3JvbGxlckltcERldGFpbHMu
aCIKKyNpbmNsdWRlICJOU1Njcm9sbGVySW1wU1BJLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3Vz
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3JNYWMuaCIKICNpbmNsdWRlICJTY3Jv
bGxWaWV3LmgiCkBAIC0xMzgsNyArMTM5LDcgQEAgc3RhdGljIFNjcm9sbGJhckJ1dHRvbnNQbGFj
ZW1lbnQgZ0J1dHRvbgogc3RhdGljIGJvb2wgc3VwcG9ydHNFeHBhbmRlZFNjcm9sbGJhcnMoKQog
ewogICAgIC8vIEZJWE1FOiBUaGlzIGlzIHRlbXBvcmFyeSB1bnRpbCBhbGwgcGxhdGZvcm1zIHRo
YXQgc3VwcG9ydCBTY3JvbGxiYXJQYWludGVyIHN1cHBvcnQgdGhpcyBwYXJ0IG9mIHRoZSBBUEku
Ci0gICAgc3RhdGljIGJvb2wgZ2xvYmFsU3VwcG9ydHNFeHBhbmRlZFNjcm9sbGJhcnMgPSBbTlND
bGFzc0Zyb21TdHJpbmcoQCJOU1Njcm9sbGVySW1wIikgaW5zdGFuY2VzUmVzcG9uZFRvU2VsZWN0
b3I6QHNlbGVjdG9yKHNldEV4cGFuZGVkOildOworICAgIHN0YXRpYyBib29sIGdsb2JhbFN1cHBv
cnRzRXhwYW5kZWRTY3JvbGxiYXJzID0gW1tOU1Njcm9sbGVySW1wIGNsYXNzXSBpbnN0YW5jZXNS
ZXNwb25kVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0RXhwYW5kZWQ6KV07CiAgICAgcmV0dXJuIGds
b2JhbFN1cHBvcnRzRXhwYW5kZWRTY3JvbGxiYXJzOwogfQogCkBAIC0xNjEsNyArMTYyLDcgQEAg
dm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6cmVnaXN0ZXJTY3JvbGxiYQogICAgICAgICByZXR1cm47
CiAKICAgICBib29sIGlzSG9yaXpvbnRhbCA9IHNjcm9sbGJhci5vcmllbnRhdGlvbigpID09IEhv
cml6b250YWxTY3JvbGxiYXI7Ci0gICAgU2Nyb2xsYmFyUGFpbnRlciBzY3JvbGxiYXJQYWludGVy
ID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIHNjcm9sbGVySW1wV2l0aFN0
eWxlOnJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpIGNvbnRyb2xTaXplOnNjcm9sbGJhckNvbnRy
b2xTaXplVG9OU0NvbnRyb2xTaXplKHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKSBob3Jpem9udGFs
OmlzSG9yaXpvbnRhbCByZXBsYWNpbmdTY3JvbGxlckltcDpuaWxdOworICAgIFNjcm9sbGJhclBh
aW50ZXIgc2Nyb2xsYmFyUGFpbnRlciA9IFtOU1Njcm9sbGVySW1wIHNjcm9sbGVySW1wV2l0aFN0
eWxlOnJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpIGNvbnRyb2xTaXplOnNjcm9sbGJhckNvbnRy
b2xTaXplVG9OU0NvbnRyb2xTaXplKHNjcm9sbGJhci5jb250cm9sU2l6ZSgpKSBob3Jpem9udGFs
OmlzSG9yaXpvbnRhbCByZXBsYWNpbmdTY3JvbGxlckltcDpuaWxdOwogICAgIHNjcm9sbGJhck1h
cCgpLT5hZGQoJnNjcm9sbGJhciwgc2Nyb2xsYmFyUGFpbnRlcik7CiAgICAgdXBkYXRlRW5hYmxl
ZFN0YXRlKHNjcm9sbGJhcik7CiAgICAgdXBkYXRlU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKHNjcm9s
bGJhcik7CkBAIC0yMjQsNyArMjI1LDcgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6cHJlZmVy
ZW5jZXNDaGFuZwogaW50IFNjcm9sbGJhclRoZW1lTWFjOjpzY3JvbGxiYXJUaGlja25lc3MoU2Ny
b2xsYmFyQ29udHJvbFNpemUgY29udHJvbFNpemUpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwotICAgIFNjcm9sbGJhclBhaW50ZXIgc2Nyb2xsYmFyUGFpbnRlciA9IFtOU0Ns
YXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKSBzY3JvbGxlckltcFdpdGhTdHlsZTpyZWNv
bW1lbmRlZFNjcm9sbGVyU3R5bGUoKSBjb250cm9sU2l6ZTpzY3JvbGxiYXJDb250cm9sU2l6ZVRv
TlNDb250cm9sU2l6ZShjb250cm9sU2l6ZSkgaG9yaXpvbnRhbDpOTyByZXBsYWNpbmdTY3JvbGxl
ckltcDpuaWxdOworICAgIFNjcm9sbGJhclBhaW50ZXIgc2Nyb2xsYmFyUGFpbnRlciA9IFtOU1Nj
cm9sbGVySW1wIHNjcm9sbGVySW1wV2l0aFN0eWxlOnJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgp
IGNvbnRyb2xTaXplOnNjcm9sbGJhckNvbnRyb2xTaXplVG9OU0NvbnRyb2xTaXplKGNvbnRyb2xT
aXplKSBob3Jpem9udGFsOk5PIHJlcGxhY2luZ1Njcm9sbGVySW1wOm5pbF07CiAgICAgaWYgKHN1
cHBvcnRzRXhwYW5kZWRTY3JvbGxiYXJzKCkpCiAgICAgICAgIFtzY3JvbGxiYXJQYWludGVyIHNl
dEV4cGFuZGVkOllFU107CiAgICAgcmV0dXJuIFtzY3JvbGxiYXJQYWludGVyIHRyYWNrQm94V2lk
dGhdOwpAQCAtNTg4LDcgKzU4OSw2IEBAIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnNldFVwQ29u
dGVudFNoYWQKICAgICAvLyBvZiBzaGFkb3dzLCBhbmQgd2Uga25vdyB0aGF0IFdlYkNvcmUgd29u
J3QgdG91Y2ggdGhpcyBsYXllci4KICAgICBzZXRVcE92ZXJoYW5nQXJlYVNoYWRvdyhncmFwaGlj
c0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpOwogfQotCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9OU1Njcm9sbGVy
SW1wU1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9O
U1Njcm9sbGVySW1wU1BJLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcGkvbWFjL05TU2Nyb2xsZXJJbXBTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTlNTY3JvbGxlckltcFNQSV9oCisjZGVmaW5lIE5T
U2Nyb2xsZXJJbXBTUElfaAorCisjaWYgVVNFKEFQUEtJVCkKKworI2lmIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCisKKyNpbXBvcnQgPEFwcEtpdC9OU1Njcm9sbGVySW1wUGFpcl9Qcml2YXRlLmg+
CisjaW1wb3J0IDxBcHBLaXQvTlNTY3JvbGxlckltcF9Qcml2YXRlLmg+CisKK0BpbnRlcmZhY2Ug
TlNTY3JvbGxlckltcCAoV2ViQ29yZUlQSSkKK0Bwcm9wZXJ0eShnZXR0ZXI9aXNUcmFja2luZykg
Qk9PTCB0cmFja2luZzsKK0BlbmQKKworI2Vsc2UKKworZW51bSB7CisgICAgTlNPdmVybGF5U2Ny
b2xsZXJTdGF0ZUhpZGRlbiA9IDAsCisgICAgTlNPdmVybGF5U2Nyb2xsZXJTdGF0ZVRodW1iU2hv
d24gPSAxLAorICAgIE5TT3ZlcmxheVNjcm9sbGVyU3RhdGVBbGxTaG93biA9IDIsCisgICAgTlNP
dmVybGF5U2Nyb2xsZXJTdGF0ZVB1bHNlVGh1bWIgPSAzLAorfTsKK3R5cGVkZWYgTlNVSW50ZWdl
ciBOU092ZXJsYXlTY3JvbGxlclN0YXRlOworCitAcHJvdG9jb2wgTlNTY3JvbGxlckltcERlbGVn
YXRlOworCitAaW50ZXJmYWNlIE5TU2Nyb2xsZXJJbXAgOiBOU09iamVjdAorKyAoTlNTY3JvbGxl
ckltcCAqKXNjcm9sbGVySW1wV2l0aFN0eWxlOihOU1Njcm9sbGVyU3R5bGUpbmV3U2Nyb2xsZXJT
dHlsZSBjb250cm9sU2l6ZTooTlNDb250cm9sU2l6ZSluZXdDb250cm9sU2l6ZSBob3Jpem9udGFs
OihCT09MKWhvcml6b250YWwgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6KGlkKXByZXZpb3VzOworQHBy
b3BlcnR5KHJldGFpbikgQ0FMYXllciAqbGF5ZXI7CistICh2b2lkKXNldE5lZWRzRGlzcGxheToo
Qk9PTClmbGFnOworQHByb3BlcnR5IE5TU2Nyb2xsZXJLbm9iU3R5bGUga25vYlN0eWxlOworQHBy
b3BlcnR5KGdldHRlcj1pc0hvcml6b250YWwpIEJPT0wgaG9yaXpvbnRhbDsKK0Bwcm9wZXJ0eSBO
U1NpemUgYm91bmRzU2l6ZTsKK0Bwcm9wZXJ0eShnZXR0ZXI9aXNFbmFibGVkKSBCT09MIGVuYWJs
ZWQ7CitAcHJvcGVydHkgZG91YmxlIGRvdWJsZVZhbHVlOworQHByb3BlcnR5IGRvdWJsZSBwcmVz
ZW50YXRpb25WYWx1ZTsKK0Bwcm9wZXJ0eShnZXR0ZXI9c2hvdWxkVXNlUHJlc2VudGF0aW9uVmFs
dWUpIEJPT0wgdXNlUHJlc2VudGF0aW9uVmFsdWU7CitAcHJvcGVydHkgQ0dGbG9hdCBrbm9iUHJv
cG9ydGlvbjsKK0Bwcm9wZXJ0eSBDR0Zsb2F0IHVpU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3M7CitA
cHJvcGVydHkgQ0dGbG9hdCBleHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3M7CitAcHJvcGVydHkg
Q0dGbG9hdCB0cmFja0FscGhhOworQHByb3BlcnR5IENHRmxvYXQga25vYkFscGhhOworQHByb3Bl
cnR5KGdldHRlcj1pc0V4cGFuZGVkKSBCT09MIGV4cGFuZGVkOworQHByb3BlcnR5KGFzc2lnbikg
aWQ8TlNTY3JvbGxlckltcERlbGVnYXRlPiBkZWxlZ2F0ZTsKK0Bwcm9wZXJ0eShyZWFkb25seSkg
Q0dGbG9hdCB0cmFja0JveFdpZHRoOworQHByb3BlcnR5KHJlYWRvbmx5KSBDR0Zsb2F0IHRyYWNr
V2lkdGg7CitAcHJvcGVydHkocmVhZG9ubHkpIENHRmxvYXQgdHJhY2tTaWRlSW5zZXQ7CitAcHJv
cGVydHkocmVhZG9ubHkpIENHRmxvYXQgdHJhY2tFbmRJbnNldDsKK0Bwcm9wZXJ0eShyZWFkb25s
eSkgQ0dGbG9hdCBrbm9iRW5kSW5zZXQ7CitAcHJvcGVydHkocmVhZG9ubHkpIENHRmxvYXQga25v
Yk1pbkxlbmd0aDsKK0Bwcm9wZXJ0eShyZWFkb25seSkgQ0dGbG9hdCBrbm9iT3ZlcmxhcEVuZElu
c2V0OworQHByb3BlcnR5KHJlYWRvbmx5KSBDR0Zsb2F0IHRyYWNrT3ZlcmxhcEVuZEluc2V0Owor
LSAoTlNSZWN0KXJlY3RGb3JQYXJ0OihOU1Njcm9sbGVyUGFydClwYXJ0Q29kZTsKKy0gKHZvaWQp
ZHJhd0tub2JTbG90SW5SZWN0OihOU1JlY3Qpc2xvdFJlY3QgaGlnaGxpZ2h0OihCT09MKWZsYWcg
YWxwaGE6KENHRmxvYXQpYWxwaGE7CistICh2b2lkKWRyYXdLbm9iU2xvdEluUmVjdDooTlNSZWN0
KXNsb3RSZWN0IGhpZ2hsaWdodDooQk9PTClmbGFnOworLSAodm9pZClkcmF3S25vYjsKKy0gKHZv
aWQpbW91c2VFbnRlcmVkU2Nyb2xsZXI7CistICh2b2lkKW1vdXNlRXhpdGVkU2Nyb2xsZXI7CitA
ZW5kCisKK0BpbnRlcmZhY2UgTlNTY3JvbGxlckltcCAoV2ViQ29yZUlQSSkKK0Bwcm9wZXJ0eShn
ZXR0ZXI9aXNUcmFja2luZykgQk9PTCB0cmFja2luZzsKK0BlbmQKKworQHByb3RvY29sIE5TU2Ny
b2xsZXJJbXBEZWxlZ2F0ZQorQHJlcXVpcmVkCistIChOU1JlY3QpY29udmVydFJlY3RUb0JhY2tp
bmc6KE5TUmVjdClhUmVjdDsKKy0gKE5TUmVjdCljb252ZXJ0UmVjdEZyb21CYWNraW5nOihOU1Jl
Y3QpYVJlY3Q7CistIChDQUxheWVyICopbGF5ZXI7CistICh2b2lkKXNjcm9sbGVySW1wOihOU1Nj
cm9sbGVySW1wICopc2Nyb2xsZXJJbXAgYW5pbWF0ZUtub2JBbHBoYVRvOihDR0Zsb2F0KW5ld0tu
b2JBbHBoYSBkdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CistICh2b2lkKXNjcm9s
bGVySW1wOihOU1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXAgYW5pbWF0ZVRyYWNrQWxwaGFUbzoo
Q0dGbG9hdCluZXdUcmFja0FscGhhIGR1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbjsK
Ky0gKHZvaWQpc2Nyb2xsZXJJbXA6KE5TU2Nyb2xsZXJJbXAgKilzY3JvbGxlckltcCBvdmVybGF5
U2Nyb2xsZXJTdGF0ZUNoYW5nZWRUbzooTlNPdmVybGF5U2Nyb2xsZXJTdGF0ZSluZXdPdmVybGF5
U2Nyb2xsZXJTdGF0ZTsKK0BvcHRpb25hbAorLSAodm9pZClzY3JvbGxlckltcDooTlNTY3JvbGxl
ckltcCAqKXNjcm9sbGVySW1wIGFuaW1hdGVVSVN0YXRlVHJhbnNpdGlvbldpdGhEdXJhdGlvbjoo
TlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CistICh2b2lkKXNjcm9sbGVySW1wOihOU1Njcm9sbGVy
SW1wICopc2Nyb2xsZXJJbXAgYW5pbWF0ZUV4cGFuc2lvblRyYW5zaXRpb25XaXRoRHVyYXRpb246
KE5TVGltZUludGVydmFsKWR1cmF0aW9uOworLSAoTlNQb2ludCltb3VzZUxvY2F0aW9uSW5TY3Jv
bGxlckZvclNjcm9sbGVySW1wOihOU1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXA7CistIChOU1Jl
Y3QpY29udmVydFJlY3RUb0xheWVyOihOU1JlY3QpYVJlY3Q7CistIChCT09MKXNob3VsZFVzZUxh
eWVyUGVyUGFydEZvclNjcm9sbGVySW1wOihOU1Njcm9sbGVySW1wICopc2Nyb2xsZXJJbXA7CitA
ZW5kCisKK0Bwcm90b2NvbCBOU1Njcm9sbGVySW1wUGFpckRlbGVnYXRlOworCitAaW50ZXJmYWNl
IE5TU2Nyb2xsZXJJbXBQYWlyIDogTlNPYmplY3QKK0Bwcm9wZXJ0eShhc3NpZ24pIGlkPE5TU2Ny
b2xsZXJJbXBQYWlyRGVsZWdhdGU+IGRlbGVnYXRlOworQHByb3BlcnR5KHJldGFpbikgTlNTY3Jv
bGxlckltcCAqdmVydGljYWxTY3JvbGxlckltcDsKK0Bwcm9wZXJ0eShyZXRhaW4pIE5TU2Nyb2xs
ZXJJbXAgKmhvcml6b250YWxTY3JvbGxlckltcDsKK0Bwcm9wZXJ0eSBOU1Njcm9sbGVyU3R5bGUg
c2Nyb2xsZXJTdHlsZTsKKy0gKHZvaWQpZmxhc2hTY3JvbGxlcnM7CistICh2b2lkKWhpZGVPdmVy
bGF5U2Nyb2xsZXJzOworLSAodm9pZClsb2NrT3ZlcmxheVNjcm9sbGVyU3RhdGU6KE5TT3Zlcmxh
eVNjcm9sbGVyU3RhdGUpc3RhdGU7CistICh2b2lkKXVubG9ja092ZXJsYXlTY3JvbGxlclN0YXRl
OworLSAoQk9PTClvdmVybGF5U2Nyb2xsZXJTdGF0ZUlzTG9ja2VkOworLSAodm9pZCljb250ZW50
QXJlYVNjcm9sbGVkOworLSAodm9pZCljb250ZW50QXJlYVNjcm9sbGVkSW5EaXJlY3Rpb246KE5T
UG9pbnQpZGlyZWN0aW9uOworLSAodm9pZCljb250ZW50QXJlYVdpbGxEcmF3OworLSAodm9pZCl3
aW5kb3dPcmRlcmVkT3V0OworLSAodm9pZCl3aW5kb3dPcmRlcmVkSW47CistICh2b2lkKW1vdXNl
RW50ZXJlZENvbnRlbnRBcmVhOworLSAodm9pZCltb3VzZUV4aXRlZENvbnRlbnRBcmVhOworLSAo
dm9pZCltb3VzZU1vdmVkSW5Db250ZW50QXJlYTsKKy0gKHZvaWQpc3RhcnRMaXZlUmVzaXplOwor
LSAodm9pZCljb250ZW50QXJlYURpZFJlc2l6ZTsKKy0gKHZvaWQpZW5kTGl2ZVJlc2l6ZTsKKy0g
KHZvaWQpYmVnaW5TY3JvbGxHZXN0dXJlOworLSAodm9pZCllbmRTY3JvbGxHZXN0dXJlOworQGVu
ZAorCitAcHJvdG9jb2wgTlNTY3JvbGxlckltcFBhaXJEZWxlZ2F0ZQorQHJlcXVpcmVkCistIChO
U1JlY3QpY29udGVudEFyZWFSZWN0Rm9yU2Nyb2xsZXJJbXBQYWlyOihOU1Njcm9sbGVySW1wUGFp
ciAqKXNjcm9sbGVySW1wUGFpcjsKKy0gKEJPT0wpaW5MaXZlUmVzaXplRm9yU2Nyb2xsZXJJbXBQ
YWlyOihOU1Njcm9sbGVySW1wUGFpciAqKXNjcm9sbGVySW1wUGFpcjsKKy0gKE5TUG9pbnQpbW91
c2VMb2NhdGlvbkluQ29udGVudEFyZWFGb3JTY3JvbGxlckltcFBhaXI6KE5TU2Nyb2xsZXJJbXBQ
YWlyICopc2Nyb2xsZXJJbXBQYWlyOworLSAoTlNQb2ludClzY3JvbGxlckltcFBhaXI6KE5TU2Ny
b2xsZXJJbXBQYWlyICopc2Nyb2xsZXJJbXBQYWlyIGNvbnZlcnRDb250ZW50UG9pbnQ6KE5TUG9p
bnQpcG9pbnRJbkNvbnRlbnRBcmVhIHRvU2Nyb2xsZXJJbXA6KE5TU2Nyb2xsZXJJbXAgKilzY3Jv
bGxlckltcDsKKy0gKHZvaWQpc2Nyb2xsZXJJbXBQYWlyOihOU1Njcm9sbGVySW1wUGFpciAqKXNj
cm9sbGVySW1wUGFpciBzZXRDb250ZW50QXJlYU5lZWRzRGlzcGxheUluUmVjdDooTlNSZWN0KXJl
Y3Q7CistICh2b2lkKXNjcm9sbGVySW1wUGFpcjooTlNTY3JvbGxlckltcFBhaXIgKilzY3JvbGxl
ckltcFBhaXIgdXBkYXRlU2Nyb2xsZXJTdHlsZUZvck5ld1JlY29tbWVuZGVkU2Nyb2xsZXJTdHls
ZTooTlNTY3JvbGxlclN0eWxlKW5ld1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZTsKK0BvcHRpb25h
bAorLSAoQk9PTClzY3JvbGxlckltcFBhaXI6KE5TU2Nyb2xsZXJJbXBQYWlyICopc2Nyb2xsZXJJ
bXBQYWlyIGlzQ29udGVudFBvaW50VmlzaWJsZTooTlNQb2ludClwb2ludEluQ29udGVudEFyZWE7
CitAZW5kCisKKyNlbmRpZgorCisjZW5kaWYgLy8gVVNFKEFQUEtJVCkKKworI2VuZGlmIC8vIE5T
U2Nyb2xsZXJJbXBTUElfaAo=
</data>
<flag name="review"
          id="295669"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>